2008-06-24 Rodrigo Kumpera <rkumpera@novell.com>
[mono.git] / mono / metadata / ChangeLog
1 2008-06-24 Rodrigo Kumpera  <rkumpera@novell.com>
2
3         * verify.c: Inflate exception clause types.
4         Fixes #402606.
5         
6 2008-06-24 Rodrigo Kumpera  <rkumpera@novell.com>
7
8         * reflection.c (mono_image_get_methodbuilder_token): Don't leak
9         name.
10
11         * reflection.c (mono_image_get_ctorbuilder_token): Same.
12
13         * reflection.c (mono_image_create_method_token): Same.
14
15 2008-06-24 Rodrigo Kumpera  <rkumpera@novell.com>
16
17         * reflection.c: Added mono_image_get_methodref_token_for_methodbuilder.
18         It does the same as mono_image_get_methodref_token but works on
19         MethodBuilder.
20
21         * reflection.c: Use mono_image_get_methodspec_token_for_generic_method_definition
22         and always generate a methodspec. This follows the old behavior and fixes
23         the regressions in System.Core. 
24
25 2008-06-24  Zoltan Varga  <vargaz@gmail.com>
26
27         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Collect exceptions for classes where 
28         don't event mono_class_get () succeeds. Fixes #402182.
29
30 2008-06-20 Rodrigo Kumpera  <rkumpera@novell.com>
31
32         * metadata-internals.h: Added MonoDynamicImage::methodspec
33         hashtable to store methodspec tokens created for MethodBuilders.
34
35         * reflection.c (mono_image_get_methodbuilder_token): Encode generic
36         MethodBuilders as open instantiations if a methodspec was requested.
37
38         * reflection.c (fixup_method): Skip MethodBuilder with methodspec tokens.
39
40         * reflection.c (create_dynamic_mono_image): Create the methodspec hashtable.
41
42         * reflection.c (mono_dynamic_image_free): Release the methodspec hashtable.
43
44         Fixes bug #349190.
45
46 2008-06-20 Rodrigo Kumpera  <rkumpera@novell.com>
47
48         * loader.c (method_from_methodspec): Avoid crashing if the
49         method lookup fails.
50
51 2008-06-20  Dick Porter  <dick@ximian.com>
52
53         * socket-io.c (get_socket_assembly): Cope with Moonlight network
54         classes being in a different assembly.  Fixes bug 399184.
55
56 2008-06-20  Zoltan Varga  <vargaz@gmail.com>
57
58         * loader.c (mono_loader_init): Make this callable multiple times.
59         (mono_dllmap_insert): Call mono_loader_init () so this works even before
60         the runtime is initialized. Fixes #401755.
61
62 2008-06-19  Dick Porter  <dick@ximian.com>
63
64         * socket-io.c (convert_socketflags): Ignore SocketFlags.Partial.
65         Fixes bug 349688.
66
67 2008-06-19  Dick Porter  <dick@ximian.com>
68
69         * socket-io.c:
70         * icall-def.h: Implement Socket generic Send() and Receive()
71         methods.  Fixes bug 395168.
72
73 2008-06-19  Kornél Pál  <kornelpal@gmail.com>
74
75         * icall-def.h, icall.c: Add ves_icall_System_Reflection_Module_GetHINSTANCE.
76
77         Contributed under MIT/X11 license.
78
79 2008-06-18  Martin Baulig  <martin@ximian.com>
80
81         * mono-debug.h (MONO_DEBUGGER_VERSION): Split into
82         `MONO_DEBUGGER_MAJOR_VERSION' and `MONO_DEBUGGER_MINOR_VERSION';
83         set to 80.0.  The debugger <-> runtime interface is now frozen as
84         well.   
85
86         * mono-debug.c
87         (mono_debug_debugger_version): Bump to 4.
88
89 2008-06-18  Martin Baulig  <martin@ximian.com>
90
91         * debug-mono-symfile.c
92         (load_symfile): Don't check the minor version.
93
94         * debug-mono-symfile.h: Bump the version number to 50.0.
95
96 2008-06-18  Martin Baulig  <martin@ximian.com>
97
98         * debug-mono-symfile.c
99         (load_symfile): Treat `MONO_SYMBOL_FILE_MINOR_VERSION' as a
100         minimum required version.
101
102 2008-06-17 Rodrigo Kumpera  <rkumpera@novell.com>
103
104         * reflection.c (mono_custom_attrs_from_property): Fix support for
105         retriveving cattrs of dynamic inflated generic types.
106
107         * reflection.c (mono_custom_attrs_from_event): Same.
108
109         * reflection.c (mono_custom_attrs_from_field): Same;
110
111         * reflection.c (typebuilder_setup_events): Same cattrs of events.
112
113         * loader.c (-mono_metadata_get_corresponding_field_from_generic_type_definition):
114         Moved to metadata.c.
115
116         * metadata.c: New functions to retrive the equivalent field, event
117         of property from the generic type definition.
118
119         * metadata-internals.h: Added new functions from metadata.c.
120
121 2008-06-17 Rodrigo Kumpera  <rkumpera@novell.com>
122
123         * reflection.c (mono_custom_attrs_from_builders): Mark MonoCustomAttrInfo
124         to cached in a mempool is used.
125
126         * metadata.c (free_generic_class): In some situations field generic_info type
127         is not properly dup'ed and leads to double free'ing.
128
129         Fixes #400643.
130
131 2008-06-17  Mark Probst  <mark.probst@gmail.com>
132
133         * marshal.c (mono_marshal_get_static_rgctx_invoke): Also handle
134         this arguments (will be needed later for generic methods).
135         Collect stats.
136
137 2008-06-17  Mark Probst  <mark.probst@gmail.com>
138
139         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal):
140         Create a static RGCTX invoke wrapper for methods which require it.
141
142 2008-06-17  Mark Probst  <mark.probst@gmail.com>
143
144         * object.c, class-internals.h: New function for checking whether
145         an individual field is special static.
146
147 2008-06-15  Zoltan Varga  <vargaz@gmail.com>
148
149         * metadata.c (mono_metadata_get_generic_param_row): Use bsearch instead of
150         linear search since the table is sorted.
151
152         * gc.c (mono_gc_cleanup): Abort the finalizer thread more gracefully.
153         Fixes #324180.
154
155 2008-06-14  Zoltan Varga  <vargaz@gmail.com>
156
157         * appdomain.c (unload_thread_main): Applied patch from Tim Howard 
158         (timh@ict.om.org). Remove the timeouts when waiting for appdomains to unload.
159
160         * gc.c (mono_domain_finalize): Allow an infinite timeout.
161
162         * threads.c (mono_threads_abort_appdomain_threads): Ditto.
163         
164         * threads.c (mono_thread_request_interruption): Get rid of locking, use
165         InterlockedCompareExchange to query and modify 
166         thread->interruption_requested.
167
168         * object-internals.h (struct _MonoThread): Change interruption_requested
169         to a gint32 so it can be modified by atomic operations. Add 
170         'critical_region_level' from the managed side, change small_id to a guint32,
171         add new set of 'unused' fields.
172
173         * appdomain.c: Bump corlib version.
174
175 2008-06-13  Zoltan Varga  <vargaz@gmail.com>
176
177         * class.c (mono_class_from_name): Search modules as well. Fixes
178         #322332.
179
180 2008-06-13  Mark Probst  <mark.probst@gmail.com>
181
182         * generic-sharing.c: Code for maintaining the MRGCTX and MRGCTX
183         templates.  Templates are generalized with an additional type_argc
184         argument.  RGCTX templates have type_argc==0, MRGCTX templates
185         have type_argc>0.
186
187         * domain-internals.h, domain.c: New hash table for looking up
188         MRGCTXs.
189
190         * metadata.c, metadata-internals.h: Rename hash and equal
191         functions for MonoGenericInst's and make them public.
192
193         * class-internals.h: New data structures for the MRGCTX.  Macros
194         for distinguishing slots in the RGCTX and the MRGCTX.
195
196 2008-06-13  Mark Probst  <mark.probst@gmail.com>
197
198         * object.c (mono_method_get_imt_slot): Put the same methods of
199         different instantiations of the same generic interface in the same
200         IMT slots, to make generic sharing simpler.
201
202 2008-06-12 Rodrigo Kumpera  <rkumpera@novell.com>
203
204         * metadata-internals.h: Added mono_metadata_field_info_with_mempool.
205
206         * metadata.c (mono_metadata_field_info_with_mempool): Added.
207         This function works just like mono_metadata_field_info, but
208         accept a mempool as argument to be used allocating memory.
209
210         * marshal.c (mono_marshal_load_type_info): Use new function
211         to load marshal data into image mempool.
212
213 2008-06-12 Rodrigo Kumpera  <rkumpera@novell.com>
214
215         * class.c (mono_class_inflate_generic_type_with_mempool):
216         This function allows to inflate a generic type using
217         a mempool.
218
219         * class.c (inflate_generic_type): Take a mempool as argument
220         and use it to do type dup'ing.
221
222         * class.c (mono_class_setup_fields): Field type for generic
223         generic classes are allocated from the image mempool.
224
225         * metadata.c (free_generic_class): Inflated field type is
226         now allocated in the image mempool.
227
228 2008-06-12 Rodrigo Kumpera  <rkumpera@novell.com>
229
230         * threads.c (thread_cleanup): Free MonoThread::name.
231
232 2008-06-12  Marek Habersack  <mhabersack@novell.com>
233
234         * appdomain.c (ensure_directory_exists): avoid unnecessary
235         mkdir(2) calls when the shadow directory already exists.
236         (mono_make_shadow_copy): copy also satellite assemblies from the
237         private bin directories.
238
239 2008-06-11  Zoltan Varga  <vargaz@gmail.com>
240
241         * threads.c (mono_thread_get_stack_bounds): Align the stack in all cases.
242         
243         * threads.c (mono_thread_get_stack_bounds): Align the stack address to
244         a page boundary. Fixes #396219.
245
246 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
247
248         * marshal.c (mono_marshal_load_type_info): Add a memory barrier
249         due to double-checked locking.
250
251 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
252
253         * assembly.c (build_assembly_name): Release memory on failure.
254
255         * assembly.c (mono_assembly_name_parse_full): Release memory on failure.
256
257 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
258
259         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Release
260         memory on failure.
261
262 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
263
264         * icall.c (ves_icall_System_Reflection_AssemblyName_ParseName): Release
265         memory on failure.
266
267 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
268
269         * loader.c (field_from_memberref): Check if field signature type is equal
270         to the non-inflated type of the field. Fixes #398980.
271
272 2008-06-11  Zoltan Varga  <vargaz@gmail.com>
273
274         * assembly.c (mono_assembly_load_from_full): Call 
275         mono_assembly_load_friends () outside the assemblies lock, since it can
276         acquire the loader lock. Fixes #323696.
277
278         * reflection.c (resolve_object): Inflate the inst with the context for
279         FieldOnTypeBuilderInst. Fixes #399010.
280
281 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
282
283         * reflection.c (mono_image_get_field_on_inst_token): Don't
284         inflate the field to encode it's signature. If it's a
285         VAR or MVAR it should stay that way in the signature.
286         Fixes #399047.
287
288 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
289
290         * reflection.c (resolve_object): Release memory of inflated types.
291
292 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
293
294         * loader.c (mono_method_get_signature_full): Remove assert about
295         loading a methodspec to a generic method. We have such methods, such as
296         System.Threading.Interlocked::CompareExchange<T>.
297         This assert was removed since it crashes the verifier when it checks
298         methods calling CompareExchange<T>.
299
300 2008-06-10  Marek Safar  <marek.safar@gmail.com>
301
302         * icall.c (ves_icall_MonoMethod_GetGenericArguments): Creates an instance
303         of Type array and not MonoType.
304
305 2008-06-10  Marek Habersack  <mhabersack@novell.com>
306
307         * profiler.c: fix a segfault on shutdown. Patch from Paolo Molaro
308         <lupus@ximian.com>
309
310 2008-06-10  Martin Baulig  <martin@ximian.com>
311
312         * debug-mono-symfile.h
313         (MONO_SYMBOL_FILE_MINOR_VERSION): Bump to 6.  There were no
314         changes to the file format, but we were generating incorrect
315         source file indices in the line number table due to a bug, which
316         made backtraces report an incorrect source file.
317
318 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
319
320         * mono-debug.c: Moved mono_debug_free_method_jit_info from
321         mini/debug-mini.c to here.
322
323         * mono-debug.c (il_offset_from_address): Free memory from find_method.
324
325         * mono-debug.h: Export mono_debug_free_method_jit_info, users should
326         use it to release structs returned by mono_debug_find_method.
327
328 2008-06-10  Zoltan Varga  <vargaz@gmail.com>
329
330         * class.c (mono_class_setup_vtable): Call setup_methods even for interfaces
331         since it needs to set method->slot for all interface methods.
332
333 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
334
335         * class-internals.h: Forgot to add.
336
337 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
338
339         * class-internals.h: Added MONO_PROP_DYNAMIC_CATTR.
340
341         * reflection.c (lookup_custom_attr): Added a MonoImage argument.
342         Lookup the custom attributes from property_hash.
343
344         * reflection.c (mono_save_custom_attrs): Save the custom attributes
345         in property_hash. Allocate all data using the image mempool.
346
347         * reflection.c: Removed dynamic_custom_attrs. Changed all checks
348         for dynamic_custom_attrs to checks if the image is dynamic.
349
350 2008-06-09  Zoltan Varga  <vargaz@gmail.com>
351
352         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Free the
353         assemblies array.
354         
355         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Avoid calling
356         runtime functions while holding the domain assemblies lock.
357
358 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
359
360         * verify.c: Reapplied the last bit of the reverted changes.
361
362 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
363
364         * verify.c: Reapplied more of the reverted changes.
365
366 2008-06-09  Martin Baulig  <martin@ximian.com>
367
368         * debug-mono-symfile.c (load_symfile): Check the major version
369         first; if it's wrong, don't print the minor version in the error message.
370
371 2008-06-09  Zoltan Varga  <vargaz@gmail.com>
372
373         * appdomain.c (set_domain_search_path): Make this use the domain assemblies
374         lock instead of the domain lock to avoid deadlocks, since the thread might
375         already hold the loader lock.
376
377         * threads.c (start_wrapper): Call mono_monitor_init_tls ().
378         (mono_thread_attach): Ditto.
379
380         * monitor.c: Use a TLS variable for holding the current thread id instead
381         of calling pthread_self ().
382         (mono_monitor_init_tls): New internal function to initialize the TLS
383         variable.
384         (mono_monitor_try_enter_internal): Put the owner == id check after the
385         owner == 0 check.
386
387         * object-internals.h (_G_BOOLEAN_EXPR): Redefine this glib macro to avoid
388         missed optimizations when using gcc-4.3.
389
390 2008-06-08 Rodrigo Kumpera  <rkumpera@novell.com>
391
392         * reflection.c (mono_dynamic_image_free): Free the memory
393         used by MonoGenericParam in MonoDynamicImage::gen_param.
394
395         * reflection.c (mono_reflection_setup_generic_class): Allocate
396         container from mempool.
397
398         * reflection.c (mono_reflection_initialize_generic_parameter): Allocate
399         container from mempool.
400
401 2008-06-07  Zoltan Varga  <vargaz@gmail.com>
402
403         * threads.c (mono_set_pending_exception): New internal function to set the
404         pending exception of the current thread.
405         (mono_thread_get_and_clear_pending_exception): Check for 
406         thread->pending_exception as well.
407
408         * object-internals.h (struct _MonoThread): Add 'pending_exception' field.
409
410         * boehm-gc.c (mono_gc_base_init): Set GC_no_dls before calling GC_init () since
411         it can trigger a collection.
412
413 2008-06-06  Martin Baulig  <martin@ximian.com>
414
415         Merged the `debugger-kahalo' branch.
416
417         * mono-debug.h
418         (MONO_DEBUGGER_VERSION): Bumped to 72.
419
420         * debug-mono-symfile.h
421         (MonoSymbolFileMethodIndexEntry): Removed.
422         (MonoSymbolFileMethodEntry): New public typedef.
423         (MonoSymbolFileOffsetTable): Added `_is_aspx_source'.
424         (MonoSymbolFileSourceEntry): Remove everything except `index' and
425         `data_offset'.
426         (MonoSymbolFileMethodEntry): Removed.
427         (MonoSymbolFileLexicalBlockEntry): Removed.
428         (MonoSymbolFileLineNumberEntry): Removed.
429         (MonoDebugLexicalBlockEntry): Removed.
430         (MonoDebugMethodInfo): Replaced `entry' by `guint32 entry_offset';
431         removed `num_il_offsets' and `il_offsets'.
432         (MonoSymbolFile): Replace `version' with `major_version' and
433         `minor_version'.
434         (MONO_SYMBOL_FILE_VERSION): Replace with
435         `MONO_SYMBOL_FILE_MAJOR_VERSION' and
436         `MONO_SYMBOL_FILE_MINOR_VERSION'.
437
438         * debug-mono-symfile.c
439         (mono_debug_symfile_lookup_location): Add support for the new line
440         number table format.
441
442 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
443
444         * metadata.c (free_generic_class): Release the inflated
445         MonoClass of dynamic generic classes if it's not a generic
446         type definition.
447
448 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
449
450         * verify.c: Reapplied more of the reverted changes.
451
452 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
453
454         * reflection.c (lookup_custom_attr): Clean the cached flag or
455         nobody will free it. Fixes a memleak in MonoCustomAttrs::IsDefinedInternal
456         for SRE types.
457
458 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
459
460         * verify.c: Reapplied a small part of the reverted changes.
461
462 2008-06-07  Zoltan Varga  <vargaz@gmail.com>
463
464         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
465
466         * monitor.c (mono_monitor_try_enter_internal): Add NULL check which was 
467         previously in managed code.
468         (mono_monitor_exit): Ditto.
469         (ves_icall_System_Threading_Monitor_Monitor_exit): Removed, not needed anymore.
470
471         * icall-def.h: Rename the Enter/Exit icalls to simply Enter/Exit to match
472         the managed definition.
473
474 2008-06-06 Rodrigo Kumpera  <rkumpera@novell.com>
475
476         * verify.c: Revert changes to see if it helps with weird buildbot crashes.
477
478 2008-06-06  Zoltan Varga  <vargaz@gmail.com>
479
480         * monitor.c: Redefine GetCurrentThreadId () with a macro on !win32.
481         
482         * monitor.c: Add some micro optimizations.
483
484         * icall.c (type_from_typename): Handle 'bool'.
485
486 2008-06-06 Rodrigo Kumpera  <rkumpera@novell.com>
487
488         * verify.c: Implement constructor verification per P III 1.8.1.4.
489         Fixes #396716.
490
491 2008-06-06  Zoltan Varga  <vargaz@gmail.com>
492
493         * assembly.c (mono_assembly_loaded_full): Avoid calling the search hooks while
494         holding the assemblies lock here too.
495
496 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
497
498         * verify.c: Kill stack_top function.
499
500 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
501
502         * verify.c: Kill stack_get function.
503
504 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
505
506         * verify.c (mono_method_verify): Last change broke the build. Fixed.
507
508 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
509
510         * verify.c (verify_type_compatibility_full): Make SZARRAY checks
511         more reliable.
512
513         * verify.c (mono_method_verify): Inflate params and locals to avoid
514         mismatch when checking for compatibility.
515
516 2008-06-05  Jonathan Chambers  <joncham@gmail.com>
517
518         * metadata.c (mono_string_from_bstr): Fix BSTR marshalling.
519         Length prefix should be size in bytes. Fix bug #339530.
520         
521         * metadata.c (mono_string_to_bstr): Fix BSTR marshalling.
522         Length prefix should be size in bytes. Fix bug #339530.
523
524         Code is contributed under MIT/X11 license.
525
526 2008-06-05  Bill Holmes <billholmes54@gmail.com>
527
528         * decimal.c:  Adding MSVC implementation to my_g_bit_nth_msf.
529
530         Contributed under MIT/X11 license.
531
532 2008-06-05  Martin Baulig  <martin@ximian.com>
533
534         * mono-debug-debugger.c
535         (mono_debugger_check_breakpoints): Reflect latest runtime changes.
536
537 2008-06-05  Zoltan Varga  <vargaz@gmail.com>
538
539         * assembly.c (mono_assembly_load_from_full): Avoid calling the search hooks
540         while holding the assemblies lock to prevent deadlocks. Handle the case
541         where the search hook returns NULL but the assembly was still loaded.
542         Fixes #323696.
543
544         * appdomain.c (set_domain_search_path): Acquire the domain lock since we
545         modify domain state.
546
547 2008-06-05  Andreas Färber  <andreas.faerber@web.de>
548
549         * boehm-gc.c: Add DTrace probes gc-{begin,end}.
550         * Makefile.am (pedump_LDADD): Post-process object files and
551         add dtrace-generated object file, if necessary.
552
553         Code is contributed under MIT/X11 license.
554
555 2008-06-04 Rodrigo Kumpera  <rkumpera@novell.com>
556
557         * reflection.c (mono_dynamic_image_free): Free MonoDynamicImage::public_key.
558
559 2008-06-04 Rodrigo Kumpera  <rkumpera@novell.com>
560
561         * class.c (mono_type_get_full): Add a work-around for generic type definitions.
562
563 2008-06-04  Mark Probst  <mark.probst@gmail.com>
564
565         * threads.c: Try to free everything from the delayed free table
566         when shutting down threads, and set the variable to NULL after the
567         table is freed so that calling
568         mono_thread_hazardous_try_free_all() when shutting down the root
569         domain doesn't crash.
570
571 2008-06-04 Rodrigo Kumpera  <rkumpera@novell.com>
572
573         * class.c (mono_type_retrieve_from_typespec): Add an argument to inform
574         the caller if resulting type was inflated.
575
576         * class.c (mono_class_create_from_typespec): Free the MonoType if it
577         was inflated.
578
579         * class.c (mono_type_get_full): Free the MonoType if it was inflated.
580
581
582 2008-06-04  Zoltan Varga  <vargaz@gmail.com>
583
584         * decimal.c (rescale128): Rework the code a bit so it no longer crashes the
585         class library tests.
586
587         * icall.c (ves_icall_InternalInvoke): Applied patch from Andy Hume 
588         (andyhume32@yahoo.co.uk). Add more useful exception messages. Fixes
589         #396989.
590
591 2008-06-04  Mark Probst  <mark.probst@gmail.com>
592
593         * domain.c, domain-internals.h: The JIT infos are now freed by the
594         JIT info table code.  They are freed immediately if there only a
595         single JIT info table in circulation.  If there is more, the free
596         is delayed via a queue.
597
598         * threads.c, threads-types.h: New hazard pointer function for
599         freeing all freeable delayed items in one sitting.
600
601 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
602
603         * reflection.c (typebuilder_setup_fields): Use mempool for allocations.
604
605         * reflection.c (typebuilder_setup_properties): Same.
606
607         * reflection.c (typebuilder_setup_events): Same.
608
609 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
610
611         * reflection.c (mono_custom_attrs_from_builders): Receive a MonoMemPool
612         and use it for allocating memory.
613
614         * reflection.c (mono_marshal_spec_from_builder): Same.
615
616         * reflection.c: Change code to use new signatures.
617
618         * metadata.c (mono_metadata_type_dup): Add a FIXME note.
619
620 2008-06-03  Zoltan Varga  <vargaz@gmail.com>
621
622         * decimal.c (rescale128): Put back one line which was accidently commented
623         out.
624         
625         * decimal.c (rescale128): Disable the code added by the last patch, as it seems
626         to cause crashes.
627
628 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
629
630         * reflection.c (mono_reflection_generic_class_initialize): Name must
631         be always malloc'ed so we can free it later on. Do this for field, property
632         and event.
633
634         * metadata.c (free_generic_class): Free field, property and event names.
635
636 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
637
638         * reflection.c (fieldbuilder_to_mono_class_field): Use mono_metadata_type_dup
639         instead of g_memdup.
640
641         * reflection.c (typebuilder_setup_fields): Same.
642
643 2008-06-03  Zoltan Varga  <vargaz@gmail.com>
644
645         * decimal.c (rescale128): Optimize this function a bit more.
646
647 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
648
649         * metadata.c (free_generic_class): Release some memory from
650         SRE generic classes.
651
652 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
653
654         * reflection.c (mono_image_get_generic_field_token): No reference
655         to name is kept, free it.
656
657         * reflection.c (mono_reflection_generic_class_initialize): Free
658         more memory of the inflated field.
659
660 2008-06-03  Zoltan Varga  <vargaz@gmail.com>
661
662         * decimal.c (mono_decimalDiv): Moved equality checks here from managed
663         code.
664
665 2008-06-02 Rodrigo Kumpera  <rkumpera@novell.com>
666
667         * reflection.c (mono_dynamic_image_free): Release memory used by
668         MonoDynamicImage::array_methods elements.
669
670         * reflection.c (assembly_add_win32_resources): Release memory after
671         encoding.
672
673 2008-06-02  Zoltan Varga  <vargaz@gmail.com>
674
675         * decimal.c (log2_32): Use an optimized version for this function too.
676         
677         * decimal.c (log2_64): Fix this on 32 bit machines.
678
679 2008-06-02 Rodrigo Kumpera  <rkumpera@novell.com>
680
681         * class.c (mono_dup_array_type): Implement allocation using a mempool.
682
683         * class.c (mono_metadata_signature_deep_dup): Same.
684
685         * metadata.c (mono_metadata_signature_dup_full): Added, allow dup'ng with
686         a mempool.
687
688         * metadata.c (mono_metadata_signature_dup): Delegate to the _full version.
689
690         * metadata.c (mono_metadata_type_dup): Remove asserts and FIXME.
691
692         * metadata-internals.h: Added mono_metadata_signature_dup_full.
693
694         * class-internals.h: Update signatures to take a MonoMemPool.
695
696 2008-06-02  Dick Porter  <dick@ximian.com>
697
698         * icall.c (ves_icall_System_ComponentModel_Win32Exception_W32ErrorMessage): 
699         * icall-def.h: Add
700         System.ComponentModel.Win32Exception.W32ErrorMessage, using the
701         FormatMessage API to get the error text.  Fixes bug 321827.
702
703 2008-06-02  Zoltan Varga  <vargaz@gmail.com>
704
705         * decimal.c: Add some micro optimizations to make decimal operations faster.
706
707 2008-06-01 Rodrigo Kumpera  <rkumpera@novell.com>
708
709         * reflection.c (method_encode_clauses): Take a mempool
710         as parameter and use it to allocate the clause array.
711
712         * reflection.c (mono_image_get_field_on_inst_token): Free
713         the inflated type after encoding it.
714
715         * reflection.c (mono_dynamic_image_free): Free each element
716         of MonoDynamicImage::gen_params.
717
718         * reflection.c (reflection_methodbuilder_to_mono_method):
719         Allocate the generic param array from the mempool.
720         Allocate signature params from the mempool.
721
722         * reflection.c (mono_reflection_generic_class_initialize):
723         Free inflated fields after been used.
724
725 2008-05-30 Rodrigo Kumpera  <rkumpera@novell.com>
726
727         * icall.c: Reapply the memory leak fixes as they no
728         longer make mono crash.
729
730 2008-05-30 Rodrigo Kumpera  <rkumpera@novell.com>
731
732         * reflection.c (mono_type_get_object): Don't store the suplied
733         MonoType with type_hash. A caller which pass a type that
734         was mono_metadata_type_dup'ed cannot free it reliably, as type_hash
735         might end with a pointer to freed memory.
736         The solution is to use byval_arg or this_arg from the associated
737         MonoClass of the supplied type.
738
739 2008-05-29  Zoltan Varga  <vargaz@gmail.com>
740
741         * icall.c: Revert the rest of the last change as it breaks the build too.
742
743 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
744
745         * icall.c: Revert a leak fix as it's breaking the build.
746
747 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
748
749         * appdomain.c (mono_make_shadow_copy): Fix another leak of dir_name.
750
751 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
752
753         * appdomain.c (mono_make_shadow_copy): We leaked dir_name.
754
755 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
756
757         * icall.c: Fix some memory leaks.
758
759 2008-05-29  Dick Porter  <dick@ximian.com>
760
761         * threadpool.c (mono_thread_pool_remove_socket): Always remove the
762         async socket operations from the pending list when a socket
763         closes.  Leaving it until the threadpool services the event
764         exposes a race condition when a socket descriptor is reused.
765         Fixes bug 377589.
766
767 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
768
769         * object.c: Fix negative index check for array alocation.
770
771 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
772
773         * icall.c, marshal.c: Delegate wrappers should skip visibility.
774         This check is performed by the verifier for IL created delegates
775         and by Delegate::CreateDelegate for programatically created ones.
776         Fixes #372406.
777
778 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
779
780         * sockey-io.c (ves_icall_System_Net_Sockets_Socket_Select_internal):
781         Fix code to use mono_array_size_t instead of int.
782
783         Based on patch by Luis F. Ortiz.
784         Contributed under X11 license.
785         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
786
787 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
788
789         * icall.c: Added ves_icall_System_Array_GetLongLength and
790         ves_icall_System_Array_CreateInstanceImpl64. Both allow handling big
791         arrays.
792
793         * icall.h: Export both new functions.
794
795         Based on patch by Luis F. Ortiz.
796         Contributed under X11 license.
797         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
798
799 2008-05-28  Martin Baulig  <martin@ximian.com>
800
801         The debugger now requires exactly r103463.
802
803         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 71.
804         This version is not supported by the debugger, wait for 72.
805
806 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
807
808         * object.h: Changed array related functions to use
809         mono_array_size_t instead of guint32. Forgot to commit this file.
810
811         Patch by Luis F. Ortiz.
812         Contributed under X11 license.
813         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
814
815
816 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
817
818         * object.h: Don't use G_MAXINT32 or G_MAXUINT32 as old glibs
819         don't define it. Use the number literal instead.
820
821 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
822
823         * icall.c: Changed array related functions to use
824         mono_array_size_t instead of guint32.
825
826         * icall.c (ves_icall_System_Array_GetLength): Check for length
827         overflow under MONO_BIG_ARRAYS.
828
829         Based on patch by Luis F. Ortiz.
830         Contributed under X11 license.
831         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
832
833 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
834
835         * object.c: Add 64bits bounds check for arrays under MONO_BIG_ARRAYS.
836
837         Based on patch by Luis F. Ortiz.
838         Contributed under X11 license.
839         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
840
841 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
842
843         * object.c, object.h: Changed array related functions to use
844         mono_array_size_t instead of guint32.
845
846         Patch by Luis F. Ortiz.
847         Contributed under X11 license.
848         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
849
850 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
851
852         * object.h: Introduced mono_array_size_t typedef. This must be used
853         in all places an array length is expected. This is 64bits wide if
854         MONO_BIG_ARRAYS is enabled.
855
856         Patch by Luis F. Ortiz.
857         Contributed under X11 license.
858         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
859
860 2008-05-27  Zoltan Varga  <vargaz@gmail.com>
861
862         * security-manager.c class.c: Set the class exception info by calling
863         mono_class_set_failure ().
864
865         * class.c (mono_class_get_exception_data): New accessor function.
866         (mono_class_set_failure): Store exception_data in the property hash.
867
868         * class-internals.h (struct _MonoClass): Store 'exception_data' outside
869         the struct as a property.
870
871         * loader.c (mono_get_method_full): Store the lookup result for method
872         tokens in method_cache, the others in methodref_cache to decrease the memory
873         usage of hash tables.
874
875         * image.c (mono_image_close): Destroy method_cache and methodref_cache.
876         (mono_image_init): method_cache is lazy inited now.
877
878         * metadata-internals.h (struct _MonoImage): Change method_cache to
879         a MonoValueHashTable, add a separate methodref_cache.
880
881 2008-05-27  Eyal Alaluf <eyala@mainsoft.com>
882
883         * number-formatter.h: Fix tables to avoid arithemtic overflow in
884           Double.ToString as exposed by Bug #383531.
885
886 2008-05-26  Zoltan Varga  <vargaz@gmail.com>
887
888         * number-formatter.h: Make some tables static.
889
890         * class.c (mono_method_set_generic_container): New accessor function.
891         (mono_method_get_generic_container): Ditto.
892
893         * class-internals.h (struct _MonoMethod): Remove rarely used 
894         'generic_container' field, store it in the property hash instead. Add 
895         'is_generic' boolean field instead.
896
897         * image.c (mono_image_init): Initialize property_hash.
898         (mono_image_close): Destroy property_hash.
899
900         * metadata-internals.h (struct _MonoImage): Add 'property_hash' hash table to
901         hold rarely used fields of runtime structures belonging to this image.
902
903         * class.c loader.c verify.c icall.c reflection.c: Use the new accessor functions
904         to get/set method->generic_container.
905
906         * loader.c (mono_get_method_from_token): Avoid loading the method header for
907         generic methods.
908
909 2008-05-25  Zoltan Varga  <vargaz@gmail.com>
910
911         * class.c (mono_class_inflate_generic_method_full): Don't increase
912         mono_stats.inflated_method_count for methods found in the cache.
913
914         * threads.c (mono_thread_request_interruption): Add a comment about 
915         QueueUserAPC ().
916
917 2008-05-24  Zoltan Varga  <vargaz@gmail.com>
918
919         * class.c (setup_interface_offsets): Use sizeof (guint16) when allocating the
920         interface_offsets_packed table.
921         
922         * class.c (mono_class_init): Remove some dead code.
923
924         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Call
925         mono_class_setup_vtable () when CAS is active to detect security problems.
926
927 2008-05-23 Rodrigo Kumpera  <rkumpera@novell.com>
928
929         * verify.c (mono_delegate_type_equal): Handle VAR, MVAR and GENERICINST.
930
931         * verify.c (mono_delegate_signature_equal): Don't compar number of generic
932         parameters as it's irrelevant for delegate checking.
933
934 2008-05-23  Zoltan Varga  <vargaz@gmail.com>
935
936         * class-internals.h class.c: Correct the name of the 'mono_no_setup_vtable_in_class_init' variable.
937
938         * class.c (mono_class_init): Control the creation of a generic vtable using
939         a global which is true by default, but set to false by the runtime startup code.
940         
941         * class.c (mono_class_init): Avoid constructing a generic vtable in most cases.
942         Disabled for now since it breaks the embedding API.
943         Move the setup of class->methods for arrays to mono_class_setup_methods ().
944         (mono_class_setup_methods): Add a memory barrier.
945
946         * object.c (mono_class_create_runtime_vtable): Add code to handle the case
947         when mono_class_init () doesn't compute the generic vtable.
948         
949 2008-05-23  Massimiliano Mantione  <massi@ximian.com>
950         * profiler.c: Added mono_profiler_install_statistical_call_chain,
951         mono_profiler_stat_get_call_chain_depth and mono_profiler_stat_call_chain
952         to support call chains (backtrace) in the stat profiler.
953         * profiler.c, profiler-private.h: Likewise.
954
955 2008-05-22  Mark Probst  <mark.probst@gmail.com>
956
957         * generic-sharing.c: Init generic class when a method of it is
958         requested via a runtime generic context.
959
960 2008-05-22  Zoltan Varga  <vargaz@gmail.com>
961
962         * class.c (mono_class_init): Add a comment about trying to avoid calling this.
963
964         * reflection.c (mono_type_get_object): Add a FIXME.
965
966         * loader.c (find_method_in_class): Use mono_class_get_method_by_index ().
967
968         * class.c (mono_class_get_method_by_index): New helper function, returning an
969         entry in the class->methods array.
970
971 2008-05-21  Zoltan Varga  <vargaz@gmail.com>
972
973         * class.c (mono_class_init): Only do the array optimization for szarrays. 
974         Avoid creating a generic vtable for generic instances as well.
975         (mono_class_get_method_from_name_flags): Don't search in the metadata for
976         generic instances.
977
978 2008-05-21 Rodrigo Kumpera  <rkumpera@novell.com>
979
980         * loader.c (mono_get_method_constrained): Inflate the signature
981         with class context. Fix #325283.
982
983 2008-05-21  Zoltan Varga  <vargaz@gmail.com>
984
985         * object.c (mono_class_create_runtime_vtable): Add a comment.
986
987         * class.c (get_implicit_generic_array_interfaces): Call mono_class_init ()
988         where needed.
989         (setup_interface_offsets): Handle the case when this is called twice for arrays.
990         (mono_class_setup_vtable_general): Add an assert.
991         (mono_class_init): Avoid creating a generic vtable for arrays.
992
993         * class.c (mono_generic_class_get_class): Don't call setup_interface_offsets ()
994         here, let mono_class_init () do that.
995
996         * class.c (mono_class_init): Avoid calling mono_class_setup_methods () for
997         interfaces in mscorlib.
998
999         * class.c (mono_class_setup_vtable): Avoid calling setup_methods () for
1000         interfaces. Add some comments.
1001         (mono_class_init): Call mono_class_setup_methods () here since it is no
1002         longer called by mono_class_setup_vtable ().
1003
1004         * object.c (mono_class_proxy_vtable): Null out entries in pvt->vtable which are
1005         not set in class->vtable.
1006         (mono_class_create_runtime_vtable): Reenable the disabled code.
1007
1008         * object.c (mono_class_create_runtime_vtable): Disable the last change for
1009         now as it causes some test failures.
1010
1011         * object.c (mono_class_create_runtime_vtable): Avoid creating a generic vtable
1012         if using the vtable trampoline. Also remove some strange code which put the
1013         generic methods themselves into the vtable slots. Remove the AOT init_vtable
1014         stuff as it is no longer needed.
1015
1016 2008-05-19 Rodrigo Kumpera  <rkumpera@novell.com>
1017
1018         * pedump.c: Give make --verify all option check code as well.
1019         Using --verify code won't check for metadata now.
1020
1021 2008-05-19  Martin Baulig  <martin@ximian.com>
1022
1023         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 70.
1024
1025         * mono-debug.c
1026         (_mono_debug_using_mono_debugger): New global variable; it's set
1027         directly by the debugger, so mono_debug_using_mono_debugger() also
1028         works after attaching.
1029
1030 2008-05-18 Rodrigo Kumpera  <rkumpera@novell.com>
1031
1032         * object.c (mono_class_create_runtime_vtable): Use memory barriers
1033         as we do double checked locking on MonoClass::runtime_info and
1034         MonoClassRuntimeInfo::domain_vtables.
1035
1036 2008-05-18  Zoltan Varga  <vargaz@gmail.com>
1037
1038         * debug-helpers.c (print_field_value): Fix a warning.
1039
1040 2008-05-16  Zoltan Varga  <vargaz@gmail.com>
1041
1042         * object.c (mono_object_get_virtual_method): Fix a crash if method->slot is not
1043         set in the AOT case.
1044
1045 2008-05-16 Rodrigo Kumpera  <rkumpera@novell.com>
1046
1047         * class.c (mono_class_setup_vtable_general): Use memory barriers
1048         as we do double checked locking on MonoClass::vtable.
1049
1050 2008-05-16 Rodrigo Kumpera  <rkumpera@novell.com>
1051
1052         * reflection.c (resolve_object): Inflate only if the generic context
1053         is not null. Fixes #389886.
1054
1055 2008-05-15  Jonathan Chambers  <joncham@gmail.com>
1056
1057         * metadata.c (emit_marshal_string): Free return strings using mono_marshal_free
1058         instead of g_free.
1059
1060         Code is contributed under MIT/X11 license.
1061
1062 2008-05-14 Rodrigo Kumpera  <rkumpera@novell.com>
1063
1064         * class.c: Revert unrelated change.
1065
1066 2008-05-14 Rodrigo Kumpera  <rkumpera@novell.com>
1067
1068         * verify.c (check_is_valid_type_for_field_ops): Type on stack can be
1069         a generic instantiation, use mono_class_from_mono_type instead of playing
1070         with MonoType directly.
1071
1072 2008-05-14 Rodrigo Kumpera  <rkumpera@novell.com>
1073
1074         * class.c: Added mono_class_has_parent_and_ignore_generics. Visibility
1075         checks must ignore generic instantiations, so mono_class_has_parent is not
1076         suitable. Fixes #390128.
1077
1078 2008-05-14  Zoltan Varga  <vargaz@gmail.com>
1079
1080         * reflection.c (mono_image_create_token): Add a 'register_token' argument, and use
1081         it to avoid registering tokens during metadata generation. Fixes #390023.
1082
1083 2008-05-14  Kornél Pál  <kornelpal@gmail.com>
1084
1085         * coree.c: Rename dwOldProtect to OldProtect that makes naming convention
1086         consistent.
1087
1088         Contributed under MIT/X11 license.
1089
1090 2008-05-14  Kornél Pál  <kornelpal@gmail.com>
1091
1092         * domain.c (mono_init_internal): Enable LoadLibrary support. Load EXE image
1093         even when get_runtimes_from_exe didn't load it that allows mono_fixup_exe_image
1094         to fixup the EXE image.
1095         (mono_cleanup): Use mono_close_exe_image.
1096         (mono_close_exe_image): New function.
1097         * image.c: Include "marshal.h".
1098         (mono_image_open_from_module_handle): Add ref_count argument. Return the image.
1099         (mono_image_open_full, mono_image_close): Fix LoadLibrary/FreeLibrary reference
1100         counting when the image is loaded outside of mono_image_open_full. Set status
1101         based on GetLastError.
1102         * coree.c: Include required headers. Add init_from_coree.
1103         (_CorDllMain): Support fix in mono_image_open_full, mono_image_close. Call
1104         mono_assembly_open only when the image has vtfixups. Set init_from_coree.
1105         (_CorExeMain): Set init_from_coree.
1106         (CorExitProcess): Only call ExitProcess for now.
1107         (CorBindToRuntimeEx): New stub implementation.
1108         (CorBindToRuntime): New function.
1109         (MonoFixupCorEE): Fixup CorBindToRuntime and CorBindToRuntimeEx.
1110         (MonoFixupExe): ILONLY executables require no fixups.
1111         (mono_set_act_ctx): New function to set activation context.
1112         (mono_load_coree): Use init_from_coree. Call mono_set_act_ctx.  
1113         * coree.h: Move STATUS_SUCCESS and STATUS_INVALID_IMAGE_FORMAT to header.
1114         Declare mono_module_handle, coree_module_handle, mono_get_module_file_name,
1115         mono_load_coree, mono_fixup_exe_image and mono_image_open_from_module_handle
1116         as MONO_INTERNAL.
1117         * domain-internals.h: Add mono_close_exe_image.
1118
1119         Contributed under MIT/X11 license.
1120
1121 2008-05-13 Rodrigo Kumpera  <rkumpera@novell.com>
1122
1123         * metadata.c (mono_metadata_compute_size): Correctly calculate field
1124         size for generic param and event tables. Fixes #388977.
1125
1126 2008-05-13  Zoltan Varga  <vargaz@gmail.com>
1127
1128         * loader.c (mono_method_signature): Use memory barriers because of the double
1129         checked locking pattern.
1130
1131         * threads.c (remove_and_abort_threads): Stop and wait for threads which are
1132         aborting or aborted as well. Fixes #376391.
1133         
1134         * threads.c (mono_thread_execute_interruption): Avoid depending on no longer
1135         existing runtime state in the Suspend handler during shutdown.
1136
1137 2008-05-12  Zoltan Varga  <vargaz@gmail.com>
1138
1139         * threads.c (mono_thread_request_interruption): Add some FIXMEs.
1140
1141         * threads.c (mono_thread_suspend_all_other_threads): Add support for threads 
1142         which are starting up or shutting down.
1143
1144         * threads.c (mono_threads_set_shutting_down): Don't return a value since
1145         this function never returns if the runtime is already shutting down.
1146
1147         * icall.c (ves_icall_System_Environment_Exit): Update after 
1148         mono_threads_set_shutting_down () signature change.
1149         
1150 2008-05-09 Rodrigo Kumpera  <rkumpera@novell.com>
1151
1152         * class.c: Added can_access_instantiation to verify if the instantiation
1153         is visible. Fix access check for nested types as they returned TRUE
1154         before doing type and generic instantiation visibility checks.
1155
1156 2008-05-08 Rodrigo Kumpera  <rkumpera@novell.com>
1157
1158         * reflection.c (mono_reflection_create_generic_class): The created type
1159         must have a different container from its TypeBuilder. Otherwise they
1160         will end sharing generic arguments, which is wrong.
1161
1162         Due to the sharing, making a generic instance of the created type using
1163         the TypeBuider generic arguments resulted in the generic type definition
1164         been returned, which is wrong as well.
1165
1166         As a bonus the code was leaking the type_params array. This memory should
1167         be allocated from the image mempool.
1168
1169         This fixes bug #354047.
1170
1171 2008-05-08 Rodrigo Kumpera  <rkumpera@novell.com>
1172
1173         * metadata-internals.h: Move MONO_SECMAN_FLAG macros from mini/declsec.h
1174         to here         as they are now used in assembly.c new code.
1175         Added a skipverification flag to MonoAssembly.
1176         New internal function mono_assembly_has_skip_verification.
1177
1178         * assembly.c: New function mono_assembly_has_skip_verification. It checks
1179         if an assembly has a version 2.0 SkipVerification security attribute. Fixes
1180         part of #387274.
1181
1182 2008-05-07  Zoltan Varga  <vargaz@gmail.com>
1183
1184         * object.c (mono_object_get_virtual_method): Inflate the resulting method if
1185         needed. Fixes #387034.
1186
1187         * class.c (mono_class_inflate_generic_type): Avoid a crash if context is NULL.
1188
1189 2008-05-06  Miguel de Icaza  <miguel@novell.com>
1190
1191         * assembly.c (mono_assembly_load_reference): Prevent crash while
1192         disassembling Silverlight 2.0 executables while we still do not
1193         have GACed libraries.
1194
1195 2008-05-07  Zoltan Varga  <vargaz@gmail.com>
1196
1197         * reflection.c: Special case generic type definitions as well. Fixes #383444.
1198
1199 2008-05-06  Zoltan Varga  <vargaz@gmail.com>
1200
1201         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Fix handling
1202         of the dynamic case. Fixes #387404.
1203
1204 2008-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
1205
1206         *verify.c (mono_verifier_is_class_full_trust): If under
1207         verify_all and the verifier mode was not set, only
1208         gac and corlib types are fulltrust. This makes --verify-all
1209         usable to detect unverifiable code, which is the expected
1210         use case.
1211
1212 2008-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
1213
1214         * verify.h: Ops, commited the header with debug
1215         enabled.
1216
1217 2008-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
1218
1219         * verify.c (merge_stack): Use the new value on unverifiable
1220         stack merges.
1221
1222         * verify.c (verify_type_compatibility_full): Comparison
1223         of nullable types can't use mono_class_is_assignable_from.
1224
1225         * verify.c, verify.h: Added MONO_VERIFY_REPORT_ALL_ERRORS
1226         that makes all verification errors be reported.
1227
1228         * pedump.c: Pass MONO_VERIFY_REPORT_ALL_ERRORS to
1229         mono_method_verify.
1230
1231 2008-05-05  Robert Jordan  <robertj@gmx.net>
1232
1233         * marshal.c (mono_marshal_get_thunk_invoke_wrapper):
1234         support for value types. See #386415.
1235
1236         * object.c: comments.
1237
1238         Code is contributed under MIT/X11 license.
1239
1240 2008-05-05  Martin Baulig  <martin@ximian.com>
1241
1242         * debug-mono-symfile.h
1243         (MONO_SYMBOL_FILE_COMPATIBILITY_VERSION): Removed; dropped support
1244         for old pre-terrania symbol files.
1245
1246 2008-05-05  Andreas Färber  <andreas.faerber@web.de>
1247
1248         * mono-config.c: Add ppc64 architecture.
1249
1250         Code is contributed under MIT/X11 license.
1251
1252 2008-05-05  Andreas Färber  <andreas.faerber@web.de>
1253
1254         * object.c (mono_create_ftnptr, mono_get_addr_from_ftnptr):
1255           PPC64 uses function descriptors as well.
1256
1257         Code is contributed under MIT/X11 license.
1258
1259 2008-05-04  Zoltan Varga  <vargaz@gmail.com>
1260
1261         * object.c (compute_class_bitmap): Ignore literal static fields.
1262
1263         * sgen-gc.c (mono_gc_base_init): Print some help when the MONO_GC_DEBUG env
1264         var has an invalid format.
1265         (describe_ptr): Add some sanity checks for the vtable.
1266         (add_nursery_frag): Clear unused nursery fragments.
1267         (major_collection): Clear all remaining nursery fragments.
1268
1269 2008-05-03  Robert Jordan  <robertj@gmx.net>
1270
1271         * image.c, metadata-internals.h: add thunk_invoke_cache.
1272
1273         * marshal.c, marshal.h: implement
1274         mono_marshal_get_thunk_invoke_wrapper ().
1275
1276         * object.c, object.h: implement mono_method_get_unmanaged_thunk ().
1277
1278         Code is contributed under MIT/X11 license.
1279
1280 2008-05-02 Rodrigo Kumpera  <rkumpera@novell.com>
1281
1282         * verify.c (do_leave): Empty the stack.
1283
1284 2008-05-02 Rodrigo Kumpera  <rkumpera@novell.com>
1285
1286         * class.c (mono_class_is_assignable_from): Variance
1287         doesn't work between reference and value types. For example,
1288         given type C<T+>, C<int32> is not assignable to C<object>.
1289         Break the argument checking loop on first error. 
1290
1291 2008-05-02  Atsushi Enomoto  <atsushi@ximian.com>
1292
1293         * icall.c : base64_to_byte_array() needs some more strict
1294           check for sequence of '=' characters. Patch by Santa
1295           Marta (http://deee.g.hatena.ne.jp/santamarta).
1296
1297           Contributed under MIT/X11 license.
1298           (see http://www.lingr.com/room/mono-jp/archives/2008/04/20)
1299
1300 2008-05-02  Jonathan Chambers  <joncham@gmail.com>
1301
1302         * domain.c: Disable LoadLibrary support to fix Win32 build.
1303
1304         Code is contributed under MIT/X11 license.
1305
1306 2008-05-02  Zoltan Varga  <vargaz@gmail.com>
1307
1308         * sgen-gc.c: Add support for clearing nursery memory when a tlab is allocated,
1309         to help with cache behaviour.
1310
1311 2008-05-01  Miguel de Icaza  <miguel@novell.com>
1312
1313         * appdomain.c (mono_domain_from_appdomain): Add new accessor
1314         method. 
1315
1316 2008-05-01  Zoltan Varga  <vargaz@gmail.com>
1317
1318         * sgen-gc.c: Implement thread-local allocation and a managed allocation routine.
1319
1320 2008-05-01  Dick Porter  <dick@ximian.com>
1321
1322         * process.c (process_get_fileversion): Only pass 16 bits of
1323         language ID to VerLanguageName.  Fixes bug 381204.
1324
1325 2008-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
1326
1327         * verify.c (mono_method_verify): Fix the comparison
1328         operator for code bounds check.
1329
1330 2008-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
1331
1332         * verify.c (mono_method_verify): Check the bounds of
1333         all access of the code array.
1334
1335 2008-04-29  Kornél Pál  <kornelpal@gmail.com>
1336
1337         * appdomain.c: Use HAVE_SYS_UTIME_H that fixes MSVC build.
1338
1339 2008-04-28  Zoltan Varga  <vargaz@gmail.com>
1340
1341         * image.c (mono_image_strong_name_position): Fix return value when the rva is
1342         not valid.
1343
1344 2008-04-28  Kornél Pál  <kornelpal@gmail.com>
1345
1346         * loader.c (mono_get_method_from_token, mono_method_signature): Add
1347         support for METHOD_IMPL_ATTRIBUTE_NATIVE.
1348         * domain.c (mono_init_internal): Load and fixup mscoree.dll on startup and
1349         fixup main EXE images when using mono.exe for mixed-mode assembly support.
1350         * domain-internals.h: Add MonoLoadFunc, mono_install_runtime_load and
1351         mono_runtime_load.
1352         * appdomain.c: Add mono_install_runtime_load, mono_runtime_load to support
1353         runtime initialization from metadata.
1354         * assembly.c: Remove obsolete ceGetModuleFileNameA.
1355         (mono_set_rootdir): Use mono_get_module_file_name.
1356         (mono_assembly_load_from_full): Call mono_image_fixup_vtable for module
1357         handles.
1358         * cil-coff.h: Add MonoVTableFixup. Update mono_cli_rva_image_map signature.
1359         * metadata-internals.h: Add is_module_handle to _MonoImage on Windows.
1360         * image.c (mono_cli_rva_image_map): Use MonoImage instead of
1361         MonoCLIImageInfo. Add support for module handles.
1362         (load_cli_header): Update mono_cli_rva_image_map signature.
1363         (load_metadata_ptrs): Update mono_cli_rva_image_map signature.
1364         (mono_image_strong_name_position): Use mono_cli_rva_image_map.
1365         (mono_image_rva_map): Add support for module handles.
1366         (mono_image_ensure_section_idx): Add support for module handles.
1367         (mono_image_close): Add support for module handles.
1368         (do_load_header): Add support for module handles.
1369         (mono_image_open_from_module_handle): New function for internal use.
1370         (mono_image_open_full): Load normal images using LoadLibrary on Windows.
1371         (mono_image_load_module): Call mono_image_fixup_vtable for module handles.
1372         (mono_image_load_file_for_image): Call mono_image_fixup_vtable for module
1373         handles.
1374         (mono_image_fixup_vtable): New function for mixed-mode assembly support.
1375         * image.h: Add mono_image_fixup_vtable.
1376         * coree.c: New file for mscoree.dll functions and mixed-mode assembly
1377         support.
1378         * coree.h: New file.
1379         * marshal.c (mono_marshal_get_native_wrapper): Throw exception for
1380         unsupported native code.
1381         (mono_marshal_set_callconv_from_modopt): New function splitted from
1382         mono_marshal_get_managed_wrapper.
1383         (mono_marshal_get_managed_wrapper): Use
1384         mono_marshal_set_callconv_from_modopt.
1385         (mono_marshal_get_vtfixup_ftnptr): New function for mixed-mode assembly support.
1386         * marshal.h: Add mono_marshal_get_vtfixup_ftnptr.
1387         * gc.c (mono_gc_init): Don't wait for the finalizer thread on Windows because
1388         that results in a deadlock when the runtime is loaded in _CorDllMain.
1389         * Makefile.am: Add coree.c and coree.h.
1390
1391         Contributed under MIT/X11 license.
1392
1393 2008-04-28  Mark Probst  <mark.probst@gmail.com>
1394
1395         * generic-sharing.c: Search for type arguments in array element
1396         types as well.
1397
1398 2008-04-28  Mark Probst  <mark.probst@gmail.com>
1399
1400         * class-internals.h, generic-sharing.c: New, small runtime generic context.
1401
1402         * metadata-internals.h, domain.c, image.c: Less bookkeeping is required for the new RGCTX.
1403
1404         * object.c: Don't setup the RGCTX when the vtable is created,
1405         because we're setting it up lazily now.
1406
1407 2008-04-26  Zoltan Varga  <vargaz@gmail.com>
1408
1409         * sgen-gc.c: Make the 'desc' variables an mword instead of a guint32 to fix 
1410         64 bit support.
1411
1412 2008-04-24 Rodrigo Kumpera  <rkumpera@novell.com>
1413
1414         * verify.c (verify_class_for_overlapping_reference_fields): 
1415         If class is under fulltrust allow reference types to overllap
1416         if they have the same RVA.
1417
1418 2008-04-24 Rodrigo Kumpera  <rkumpera@novell.com>
1419
1420         * pedump.c: Added new flag valid-only, that makes the verifier
1421         behaves just like --security=validil. It won't fail type load
1422         due to unverifiable restrictions.
1423
1424 2008-04-23 Rodrigo Kumpera  <rkumpera@novell.com>
1425
1426         * class-internals.h (struct MonoMethod): Added a verification_success
1427         field to cache verifier executions. Reduced MonoMethod:slot size by
1428         one bit.
1429
1430 2008-04-23  Zoltan Varga  <vargaz@gmail.com>
1431
1432         * sgen-gc.c (OBJ_RUN_LEN_SIZE): Make this and other macros take a 'desc' argument
1433         instead of a 'vt' argument to save an indirection and to allow these to be used
1434         for valuetypes.
1435         (scan_vtype): New helper function to scan an area using a gc descriptor.
1436         (mono_gc_wbarrier_value_copy): Implement this.
1437         (handle_remset): Add support for REMSET_VTYPE.
1438         (find_in_remset_loc): Ditto.
1439         (mono_gc_base_init): Allow some debugging options to be controlled through the
1440         use of the MONO_GC_DEBUG env variable.
1441         (mono_gc_alloc_obj): Add support the 'collect-before-allocs' debug option.
1442         (collect_nursery): Add support for the 'check-at-minor-collection' debug option.
1443
1444 2008-04-23  Martin Baulig  <martin@ximian.com>
1445
1446         * domain.c (mono_domain_create): Move the call to
1447         mono_debug_domain_create() down, after allocating the domain id.
1448
1449 2008-04-23 Rodrigo Kumpera  <rkumpera@novell.com>
1450
1451         verify.c (verify_class_for_overlapping_reference_fields): Skip
1452         static fields while verifying for overlapping fields as they
1453         don't matter at all.
1454
1455 2008-04-23  Marek Habersack  <mhabersack@novell.com>
1456
1457         * domain-internals.h: added a declaration of
1458         mono_make_shadow_copy.
1459
1460         * assembly.c (mono_assembly_open_full): shadow copying of
1461         assemblies moved to here, so that all the assemblies within the
1462         application domain's private binary directories can be
1463         processed. Fixes bug #380546
1464
1465         * appdomain.c (mono_make_shadow_copy): make_shadow_copy renamed to
1466         mono_make_shadow_copy and made non-static. The decision whether
1467         to shadow-copy an assembly is made based on its location - it's
1468         copied if it's in one of the private application domain binary
1469         directories and its different to the target file in the shadow
1470         directory. Fixes bug #380546
1471
1472 2008-04-22  Zoltan Varga  <vargaz@gmail.com>
1473
1474         * reflection.c (fixup_method): Handle {Method|Constructor}OnTypeBuilderInst.
1475
1476         * object-internals.h: Add MonoReflection{Method|Constructor}OnTypeBuilderInst
1477         types.
1478
1479         * reflection.c (mono_image_create_token): Handle 
1480         Method/ConstructorOnTypeBuilderInst.
1481         (resolve_object): Ditto.
1482         (inflate_mono_method): Receive the inflated class instead of a MonoGenericClass
1483         so it can be called from resolve_object. Also handle the case when the inflated
1484         class already has its methods setup.
1485
1486 2008-04-21  Martin Baulig  <martin@ximian.com>
1487
1488         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 69.
1489
1490 2008-04-20  Geoff Norton  <gnorton@novell.com>
1491
1492         * icall.c: Fix the _NSGetEnviron define to prevent an impropoer
1493         pointer dereference.
1494
1495 2008-04-15  Marek Habersack  <mhabersack@novell.com>
1496
1497         * appdomain.c (try_load_from): if IOMAP is in effect, call the
1498         portability API to look up the assembly file. Fixes behavior in
1499         situations when the application has a bin/ directory, but the
1500         assembly search patch refers to Bin/ (and thus the requested file
1501         name is Bin/SomeLibrary.dll). Fixes bug #379888
1502
1503 2008-04-15 Rodrigo Kumpera  <rkumpera@novell.com>
1504
1505         verify.c (mono_type_is_generic_argument): Extracted this check
1506         from a dozen places to here.
1507
1508         verify.c: Fixed all issues related to boxing generic arguments
1509         and their constraints.
1510
1511 2008-04-14 Rodrigo Kumpera  <rkumpera@novell.com>
1512
1513         verify.c (mono_class_interface_implements_interface): Fix win32 build.
1514
1515 2008-04-14  Zoltan Varga  <vargaz@gmail.com>
1516
1517         * reflection.c (mono_custom_attrs_construct): Fix crash when the cattr type
1518         isn't finished yet. Fixes #363447.
1519
1520 2008-04-13  Zoltan Varga  <vargaz@gmail.com>
1521
1522         * class.c (mono_bounded_array_class_get): Fix the name of bounded array types.
1523         Fixes #346419.
1524
1525 2008-04-13  Jb Evain  <jbevain@novell.com>
1526
1527         * domain.c: update the 2.1 profile versions.
1528         Merged from the Moonlight 2 branch.
1529
1530 2008-04-12  Zoltan Varga  <vargaz@gmail.com>
1531
1532         * assembly.c (mono_assembly_load_from_full): Do the check for loading other
1533         mscorlibs for the non-refonly case as well.
1534
1535         * image.c (do_mono_image_load): Remove the mscorlib check, it is already done
1536         in mono_assembly_load_from_full (). Fixes #378924.
1537
1538 2008-04-11  Geoff Norton  <gnorton@novell.com>
1539
1540         * icall.c: The global extern environ doesn't exist on Mac.  We
1541         need to call NSGetEnviron instead.
1542
1543 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
1544
1545         verify.c: Add generic method constraint verification.
1546
1547 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
1548
1549         class.c (mono_class_inflate_generic_method_full): Add a long
1550         explanation to the is_mb_open hack. Remove the FIXME.
1551
1552 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
1553
1554         * verify.c (mono_method_verify): Mark all unknown opcodes
1555         as invalid. Mark jmp as unverifiable.
1556
1557 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
1558
1559         * verify.c: Add code to do type constraint verification on class instances.
1560
1561         * verify.c (mono_verifier_verify_class): Use the type constraint 
1562         verification code.
1563
1564 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
1565
1566         * class.c (mono_class_get_field_default_value): Don't pass cindex
1567         as hint to mono_metadata_get_constant_index. The local is not initialized
1568         and should contain garbage most of the time. This could only work
1569         with a lot of luck.
1570
1571 2008-04-09 Rodrigo Kumpera  <rkumpera@novell.com>
1572
1573         * tokentype.h: Add MONO_TOKEN_GENERIC_PARAM.
1574
1575 2008-04-09 Rodrigo Kumpera  <rkumpera@novell.com>
1576
1577         * class-internals.h: Add generic_param_token to MonoClass::sizes union.
1578
1579         * class.c (mono_class_from_generic_parameter): Save the token of the
1580         generic param in MonoClass::sizes.generic_param_token.
1581
1582         * reflection.c (mono_custom_attrs_from_class): If the class type is
1583         VAR or MVAR retrieve the attributes of the generic param.
1584
1585 2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
1586
1587         * class.c (mono_class_init): Do class verification if the verifier
1588         is enabled.
1589
1590 2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
1591
1592         * verify-internal.h: Added mono_verifier_verify_class.
1593
1594         * verify.c: Added mono_verifier_verify_class. It checks for
1595         classes with explicit layout that have overlapping reference fields.
1596
1597         * pedump.c: Init the verifier state prior to verification. Fixed
1598         command line arguments.
1599
1600 2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
1601
1602         * Makefile.am: Added verify-internals.h, hopefully fix the build.
1603
1604 2008-04-08  Zoltan Varga  <vargaz@gmail.com>
1605
1606         * verify-internals.h: Fix a warning.
1607
1608 2008-04-07 Rodrigo Kumpera  <rkumpera@novell.com>
1609
1610         * verify-internals.h: New header with the verifier configuration
1611         extracted from mini.c.
1612
1613         * verify.c: Implemented the new functions exported by verify-internals.h.
1614
1615 2008-04-07 Rodrigo Kumpera  <rkumpera@novell.com>
1616
1617         * verify.c: Add proper verification of ckfinite.
1618
1619 2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
1620
1621         * verify.c (do_conversion): Improved error message to something
1622         more meanfull.
1623
1624         * verify.c (check_is_valid_type_for_field_ops): Fix to work
1625         with primitive types.
1626
1627 2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
1628
1629         * verify.c: Added tail prefix checking. Marked icall
1630         as unverifible.
1631
1632 2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
1633
1634         * verify.c: Fix the detection of branches to the middle
1635         of an instruction.
1636
1637 2008-04-03 Rodrigo Kumpera  <rkumpera@novell.com>
1638
1639         * verify.c: Implemented verification of volatile. and
1640         unaligned. prefix. Check if a type is valid after retrieving it.
1641
1642 2008-04-01  Dick Porter  <dick@ximian.com>
1643
1644         * process.c (process_get_fileversion): If there's no string block,
1645         set the file language to en_US.  Fixes the other new part of bug
1646         374600.
1647
1648 2008-03-29 Rodrigo Kumpera  <rkumpera@novell.com>
1649
1650         * class.c: New functions mono_method_can_access_field_full and
1651         mono_method_can_access_method_full. They perform type visibility
1652         and type site check.
1653
1654         * class-internal.h: Added exported functions.
1655
1656         * verify.c: Use new functions to implement proper visibility checks.
1657
1658 2008-03-29  Zoltan Varga  <vargaz@gmail.com>
1659
1660         * mono-config.h: Add missing G_BEGIN_DECLS/G_END_DECLS. Fixes #375188.
1661
1662 2008-03-28  Dick Porter  <dick@ximian.com>
1663
1664         * process.c (process_get_fileversion): Use the first language ID
1665         we see, rather than insisting on an invariant language.  Fixes bug
1666         374600.
1667
1668 2008-03-28  Zoltan Varga  <vargaz@gmail.com>
1669
1670         * reflection.c (calc_section_size): Use add_stream_zero to align the size of
1671         the streams to fix reading of invalid memory later.
1672
1673         * metadata.h (MonoType): Use 'MonoTypeEnum' instead of int for the 'type' field
1674         to ease debugging.
1675
1676 2008-03-26  Zoltan Varga  <vargaz@gmail.com>
1677
1678         * marshal.c (signature_dup): Use mono_metadata_signature_alloc ().
1679         (cominterop_method_signature): Ditto. Fix the size passed to memcpy.
1680
1681 2008-03-26  Massimiliano Mantione  <massi@ximian.com>
1682         * threads.h: Added MonoThreadManageCallback type and
1683         mono_thread_set_manage_callback prototype
1684         * object-internals.h: In _MonoThread, renamed unused6 to manage_callback
1685         (used to store the mono_thread_manage callback).
1686         * threads.c: Added mono_thread_set_manage_callback, and handle
1687         "MonoThread->manage_callback" in build_wait_tids.
1688
1689 2008-03-26  Dick Porter  <dick@ximian.com>
1690
1691         * process.c (process_get_fileversion): Set FileVersionInfo strings
1692         to Empty when the resource doesn't have the particular info.
1693         Fixes bug 355717.
1694
1695 2008-03-25 Rodrigo Kumpera  <rkumpera@novell.com>
1696
1697         * verify.c (mono_method_verify): Proper prefix validation.
1698
1699 2008-03-25  Zoltan Varga  <vargaz@gmail.com>
1700
1701         * icall.c (ves_icall_InternalInvoke): Return exceptions thrown by the icall
1702         itself in a separate argument instead of throwing them. Fixes #373448.
1703
1704         * appdomain.c: Bump corlib version.
1705
1706 2008-03-24 Rodrigo Kumpera  <rkumpera@novell.com>
1707
1708         * verify.c: Implemented readonly prefix and verify controled mutability pointers.
1709
1710 2008-03-20  Kornél Pál  <kornelpal@gmail.com>
1711
1712         * file-io.c, filewatcher.c, threadpool.c, threads.c: Removed Windows
1713         version macros.
1714
1715 2008-03-20  Mark Probst  <mark.probst@gmail.com>
1716
1717         * generic-sharing.c, class-internals.h: Code for putting
1718         reflection types into the runtime generic context.
1719
1720 2008-03-19 Rodrigo Kumpera  <rkumpera@novell.com>
1721
1722         * icall.c (ves_icall_get_method_info): Return correct values for the call convention.
1723         Fixes #340662. 
1724
1725
1726 2008-03-17 Rodrigo Kumpera  <rkumpera@novell.com>
1727
1728         * verify.c (VerifyContext): Added instruction prefix data to the struct.
1729
1730         * verify.c (is_compatible_boxed_valuetype): Don't check if the type is a valuetype, been boxed is enough.
1731
1732         * verify.c (do_invoke): Support constrained callvirt form. Grouped similar checks together.
1733
1734         * verify.c (do_cast): Let the result value keep the boxed status.
1735
1736         * verify.c (mono_method_verify): Add proper support for prefixed and implement contrained.
1737
1738 2008-03-17  Jb Evain  <jbevain@novell.com>
1739
1740         * reflection.c: when running on a 2.0 runtime, emit
1741         unconditionally the #~ header version as 2.0, and the
1742         CLI header version as 2.5, for symmetry's sake with csc.
1743
1744 2008-03-16  Zoltan Varga  <vargaz@gmail.com>
1745
1746         * class.c: Remove the unused cache_interface_offsets stuff.
1747
1748         * class.c loader.c domain.c verify.c metadata.c debug-helpers.c threadpool.c
1749         profiler.c: Fix warnings.
1750
1751 2008-03-16  Mark Probst  <mark.probst@gmail.com>
1752
1753         * generic-sharing.c, class-internals.h: Support for putting
1754         methods into the runtime generic context.
1755
1756 2008-03-16  Zoltan Varga  <vargaz@gmail.com>
1757
1758         * class.c (mono_class_setup_fields): Ignore calls made to this function for
1759         classes which are generic instances of not-yet finished typebuilders. Fixes
1760         #351172.
1761
1762         * reflection.c (fixup_method): Add support for FieldOnTypeBuilderInst.
1763
1764 2008-03-15  Zoltan Varga  <vargaz@gmail.com>
1765
1766         * metadata-internals.h (MonoDynamicImage): Add 'generic_def_objects' hash table.
1767
1768         * class-internals.h (MonoMethodInflated): Remove the rarely used reflection_info
1769         field, replace it with a hash table in MonoDynamicImage.
1770
1771         * reflection.c (inflate_mono_method): Access the generic definition object from
1772         image->generic_def_objects instead of imethod->reflection_info.
1773
1774         * reflection.c (mono_reflection_bind_generic_method_parameters): Ditto. 
1775
1776         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition): Ditto.
1777         
1778         * image.c (mono_image_close): Move the dynamic image freeing code to a separate
1779         function in reflection.c so it is easier to keep in sync with the dynamic image
1780         creation code.
1781
1782         * reflection.c (mono_dynamic_image_free): New internal function, extracted from
1783         mono_image_close ().
1784
1785 2008-03-15  Mark Probst  <mark.probst@gmail.com>
1786
1787         * class.c (mono_class_generic_sharing_enabled): Disable generic
1788         sharing for all architectures except AMD64 and x86 to fix build.
1789
1790 2008-03-14 Rodrigo Kumpera  <rkumpera@novell.com>
1791
1792         * verify.c: Use the generic definition MonoGenericContext when available.
1793         Remove code for checking generics instance compatibility in favor of
1794         mono_class_is_assignable_from.
1795
1796 2008-03-14  Mark Probst  <mark.probst@gmail.com>
1797
1798         * marshal.c, marshal.h, metadata-internals.h, image.c,
1799         wrapper-types.h: New wrapper for invoking a shared static method
1800         without having to pass the runtime generic context argument.
1801
1802 2008-03-14 Rodrigo Kumpera  <rkumpera@novell.com>
1803
1804         * icall-def.h: Add missing function PerformanceCounterCategory::GetInstanceNames.
1805
1806 2008-03-14  Zoltan Varga  <vargaz@gmail.com>
1807
1808         * reflection.c (mono_image_get_field_on_inst_token): Add caching.
1809         
1810         * reflection.c (mono_image_get_field_on_inst_token): New helper function to
1811         create a token from a FieldOnTypeBuilderInst.
1812         (mono_image_create_token): Handle FieldOnTypeBuilderInst.
1813         (resolve_object): Ditto.
1814
1815         * object-internals.h (MonoReflectionFieldOnTypeBuilderInst): New structure
1816         mirroring System.Reflection.Emit.FieldOnTypeBuilderInst.
1817
1818 2008-03-14  Martin Baulig  <martin@ximian.com>
1819
1820         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 68.
1821
1822         * debug-mono-symfile.h
1823         (MONO_SYMBOL_FILE_VERSION): Bump to 41.
1824         (MONO_SYMBOL_FILE_COMPATIBILITY_VERSION): New #define.
1825
1826 2008-03-10  Martin Baulig  <martin@ximian.com>
1827
1828         * debug-mono-symfile.h
1829         (MonoSymbolFileMethodAddress): Removed `num_lexical_blocks' and
1830         `lexical_block_table_offset'.
1831         (MonoDebugMethodInfo): Removed `num_lexical_blocks' and
1832         `lexical_blocks'.
1833         (MonoSymbolFile): Added `version'.
1834
1835         * mono-debug.h
1836         (MonoDebugLexicalBlockEntry): Removed.
1837         (MonoDebugMethodJitInfo): Removed `num_lexical_blocks' and
1838         `lexical_blocks'.
1839
1840         * mono-debug.c (mono_debug_add_method): Don't compute lexical
1841         blocks here; the debugger now does this internally.
1842
1843 2008-02-27  Martin Baulig  <martin@ximian.com>
1844
1845         * object.c (mono_runtime_exec_main): Call
1846         `mono_debugger_event (MONO_DEBUGGER_EVENT_REACHED_MAIN)' and
1847         `mono_debugger_event (MONO_DEBUGGER_EVENT_MAIN_EXITED)' here.
1848
1849 2008-03-12 Rodrigo Kumpera  <rkumpera@novell.com>
1850
1851         * verify.c (verify_type_compatibility_full): Allow native int to be converted
1852         to native pointer in non-strict mode. Required to "(IntPtr)null" work.
1853
1854 2008-03-12 Rodrigo Kumpera  <rkumpera@novell.com>
1855
1856         * verify.c (verify_ldftn_delegate): Accept a sealed type when using
1857         ldftn with a virtual method.
1858
1859 2008-03-13  Geoff Norton  <gnorton@novell.com>
1860
1861         * decimal.c:  Only include memory.h if the platform has it.
1862
1863 Wed Mar 12 12:11:06 CET 2008 Paolo Molaro <lupus@ximian.com>
1864
1865         * assembly.c, class.c, metadata-internals.h: make sure public key
1866         tokesns are compared in a case-insensitive way. Also, all
1867         the lookups in the GAC use a lowercase public key token
1868         (gaacutil already does the lowercasing on install). Fixes
1869         bug #369541.
1870
1871 2008-03-11 Rodrigo Kumpera  <rkumpera@novell.com>
1872
1873         * verify.c (mono_delegate_signature_equal): Do proper variance check on arguments
1874         and return value.
1875
1876 Tue Mar 11 17:41:38 CET 2008 Paolo Molaro <lupus@ximian.com>
1877
1878         * image.c: when someone loads a mscorlib from a file, return the
1879         currently loaded mscorlib (fixes bug #369253).
1880
1881 Tue Mar 11 16:47:32 CET 2008 Paolo Molaro <lupus@ximian.com>
1882
1883         * class.c: handle types with no parents by forcing them to have
1884         System.Object as a parent and marking them as broken (this currently
1885         allows the first part of bug #369173 to work as well, likely because
1886         we don't check for typeload exceptions everywhere yet).
1887
1888 Tue Mar 11 15:23:54 CET 2008 Paolo Molaro <lupus@ximian.com>
1889
1890         * class.c: more complete check that types belong to corlib
1891         (fixes second part of bug #369173).
1892
1893 2007-03-10  Bill Holmes  <billholmes54@gmail.com>
1894
1895         * generic-sharing.c:  Including glib.h for the MSVC builds to define
1896           "inline" to "__inline" before including mono-membar.h.
1897           
1898         * mono-perfcounters.c:  Adding HAVE_SYS_TIME_H check for MSVC builds.
1899           Rename "Unknown" to "CatTypeUnknown" to avoid name collisions for 
1900           MSVC builds.
1901
1902         Contributed under MIT/X11 license.
1903
1904 2008-03-10 Rodrigo Kumpera  <rkumpera@novell.com>
1905
1906         * verify.c (do_invoke_method): Remove return type validation.
1907
1908         * verify.c (do_ret): Do return type validation at return site instead of
1909         call site.
1910
1911 2008-03-10 Rodrigo Kumpera  <rkumpera@novell.com>
1912
1913         * verify.c (do_invoke_method): Mark callvirt to static methods unverifiable.
1914
1915         * verify.c: Some todos cleaned and improved a few error messages.
1916
1917 2008-03-08  Zoltan Varga  <vargaz@gmail.com>
1918
1919         * class.c (mono_class_setup_mono_type): Improve the test for corlib.
1920
1921 2008-03-07  Zoltan Varga  <vargaz@gmail.com>
1922
1923         * class.c (mono_class_setup_mono_type): Handle types whose name clashes with
1924         system types correctly.
1925
1926         * exception.h exception.c (mono_exception_from_token_two_strings): New helper
1927         function.
1928
1929 2008-03-06  Zoltan Varga  <vargaz@gmail.com>
1930
1931         * assembly.c (build_assembly_name): Fix a warning.
1932
1933 Thu Mar 6 19:43:41 CET 2008 Paolo Molaro <lupus@ximian.com>
1934
1935         * marshal.c: ldfld_remote and stfld_remote needs just one wrapper as
1936         the called function takes an object type argument. Fixes storing or
1937         valuetypes across remoting as well as reducing memory usage.
1938         * image.c, metadata-internals.h: remove now unused ldfld_remote and
1939         stfld_remote wrapper caches.
1940
1941 2008-03-06  Zoltan Varga  <vargaz@gmail.com>
1942
1943         * icall.c (mono_lookup_internal_call): Update the exception message when an icall
1944         is not found.
1945
1946         * reflection.c (mono_image_register_token): New helper function to save
1947         a token->object mapping.        
1948
1949         * icall.c (ves_icall_ModuleBuilder_RegisterToken): New icall to access it from
1950         managed code.
1951
1952         * reflection.c (_mono_reflection_parse_type): Distinguish between vectors and
1953         one dimension arrays. Fixes #367670.
1954         (mono_reflection_get_type_internal): Ditto.
1955
1956 Tue Mar 4 19:04:02 CET 2008 Paolo Molaro <lupus@ximian.com>
1957
1958         * marshal.c: mono_load_remote_field_new() always returns object.
1959         so use the proper signature (fixes bug #366445).
1960
1961 2008-03-04  Zoltan Varga  <vargaz@gmail.com>
1962         
1963         * class-internals.h (MonoMethod): Remove unused uses_this flag, 
1964         add an 'inline_failure' flag instead.
1965
1966 2008-03-04  Mark Probst  <mark.probst@gmail.com>
1967
1968         * domain-internals.h, domain.c: Replaced MonoGenericSharingContext
1969         with a new structure, MonoGenericJitInfo, in the MonoJitInfo.  It
1970         contains the location of "this", used for exception handling.
1971
1972 2008-03-04  Zoltan Varga  <vargaz@gmail.com>
1973
1974         * class.c (mono_class_layout_fields): Set the min alignment of small structs to
1975         their size on all platforms for perf reasons.
1976
1977 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
1978
1979         * reflection.h: Move mono_reflection_is_valid_dynamic_token to
1980         object-internal.h
1981
1982         * object-internal.h: Same.
1983
1984 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
1985
1986         * reflection.h: Fix the build I just broke.
1987
1988 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
1989
1990         * reflection.c (mono_reflection_is_valid_dynamic_token): New function,
1991         Test if a token is valid, this remove explicit usage of 
1992         MonoDynamicImage::tokens from the verifier code.
1993
1994         * reflection.h: Added mono_reflection_is_valid_dynamic_token.
1995
1996         * verify.c (token_bounds_check): Use mono_reflection_is_valid_dynamic_token
1997         instead of direct access to MonoDynamicImage::tokens.
1998
1999 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
2000
2001         * verify.c (token_bounds_check): Fix the build I just broke.
2002
2003 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
2004
2005         * verify.c (token_bounds_check): Fix bounds check for dynamic images.
2006
2007         * verify.c (verifier_load_method): Fixed the errors message.
2008
2009         * verify.c (mono_method_verify): Fixed a debug message.
2010
2011 Thu Feb 28 19:49:45 CET 2008 Paolo Molaro <lupus@ximian.com>
2012
2013         * icall-def.h, domain.c, mono-perfcounters-def.h, mono-perfcounters.c,
2014         mono-perfcounters.h, class-internals.h: support for predefined
2015         writable counters, query of categories and counters, bugfixes.
2016
2017 2008-02-28 Rodrigo Kumpera  <rkumpera@novell.com>
2018
2019         * verify.c (do_refanytype): Verify the refanytype opcode.
2020
2021         * verify.c (mono_method_verify): Use do_refanytype.
2022
2023 2008-02-28 Rodrigo Kumpera  <rkumpera@novell.com>
2024
2025         * verify.c (do_mkrefany): Verify the mkrefany opcode.
2026
2027         * verify.c (mono_method_verify): Use do_mkrefany.
2028
2029 Wed Feb 27 19:49:16 CET 2008 Paolo Molaro <lupus@ximian.com>
2030
2031         * Makefile.am, icall-def.h, icall.c, mono-perfcounters-def.h,
2032         mono-perfcounters.c, mono-perfcounters.h: basic performance counter
2033         implementation.
2034
2035 2008-02-27  Zoltan Varga  <vargaz@gmail.com>
2036
2037         * marshal.c (mono_marshal_get_synchronized_wrapper): Fix the code which throws
2038         the type load exception.
2039
2040 2008-02-27 Rodrigo Kumpera  <rkumpera@novell.com>
2041
2042         * verify.c: Added a few FIXME for method signatures
2043
2044         * verify.c (do_invoke_method): Use mono_method_get_signature_full instead
2045         of mono_method_get_signature and get vararg call working. Removed unused
2046         checks for return value.
2047
2048         * verify.c (do_refanyval): Verify the refanyval opcode.
2049
2050         * verify.c (mono_method_verify): Implemented verification of arglist and
2051         use do_refanyval.
2052
2053 2008-02-27  Zoltan Varga  <vargaz@gmail.com>
2054
2055         * class.c (mono_class_setup_methods): Move the check for synchronized methods on
2056         vtypes to marshal.c.
2057
2058         * marshal.c (mono_marshal_get_synchronized_wrapper): Do the vtype check here so
2059         it works for AOT as well.
2060
2061 Tue Feb 26 17:46:32 CET 2008 Paolo Molaro <lupus@ximian.com>
2062
2063         * monitor.c, threads.c, threadpool.c: replace the use of GetTickCount ()
2064         with mono_msec_ticks () which is monotonic and doesn't cause bugs when
2065         the system time is adjusted.
2066
2067 Tue Feb 26 17:40:10 CET 2008 Paolo Molaro <lupus@ximian.com>
2068
2069         * icall.c, icall-def.h: use the new time functions (fixes the
2070         non-monotonic behaviour of TickCount).
2071
2072 2008-02-26  Zoltan Varga  <vargaz@gmail.com>
2073
2074         * reflection.c (mono_custom_attrs_from_builders): Revert the last change as
2075         it breaks the build.
2076         
2077         * reflection.c (mono_custom_attrs_from_builders): Assert instead of a crash if the
2078         cattr is not finished yet.
2079
2080 2008-02-25 Rodrigo Kumpera  <rkumpera@novell.com>
2081
2082         * verify.c: Proper token validation for field, method and type.
2083
2084 2008-02-25 Rodrigo Kumpera  <rkumpera@novell.com>
2085
2086         * loader.c (field_from_memberref): Generate a loader error if the type is not found.
2087
2088         * loader.c (method_from_memberref): Generate type load error instead of method missing
2089         if the type is not found.
2090
2091 2008-02-23  Zoltan Varga  <vargaz@gmail.com>
2092
2093         * marshal.c (mono_marshal_emit_managed_wrapper): Avoid generating invalid IL if
2094         some of the conversions caused the generation of a marshal directive exception.
2095
2096 2008-02-21 Rodrigo Kumpera  <rkumpera@novell.com>
2097
2098         verify.c: Report which exception should be thrown by the JIT.
2099         Added a lot of FIXME notes.
2100
2101 2008-02-22  Mark Probst  <mark.probst@gmail.com>
2102
2103         * generic-sharing.c: Runtime generic context slots are not
2104         instantiated on init anymore.  Instead, provide function to do the
2105         instantiating on demand.
2106
2107         * class-internals.h: Added vtable to runtime generic context.
2108         Macros for encoding direct and indirect slot offsets in one
2109         guint32.
2110
2111 2008-02-21  Mark Probst  <mark.probst@gmail.com>
2112
2113         * object.c, generic-sharing.c: Moved some generic sharing code
2114         from object.c to generic-sharing.c.
2115
2116         * generic-sharing.c: Added support for extensible runtime generic
2117         context.
2118
2119         * metadata-internals.h: Two new hash tables in MonoImage for
2120         extensible runtime generic context support.
2121
2122         * domain.c: Unregister generic vtables upon domain unloading.
2123
2124         * image.c: Destroy new hash tables upon image unloading.
2125
2126         * metadata.c: Unregister generic subclasses upon image unloading.
2127
2128         * class-internals.h: New data structure for runtime generic
2129         context template.  New fields in the runtime generic context for
2130         extensible part.
2131
2132         * Makefile.am: Added generic-sharing.c.
2133
2134 2008-02-21 Rodrigo Kumpera  <rkumpera@novell.com>
2135
2136         icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): If
2137         there is a pending loader exception, raise it.
2138
2139         icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
2140         same.
2141
2142         icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken): 
2143         same.
2144
2145         Fixes #363450.
2146
2147 2008-02-20  Zoltan Varga  <vargaz@gmail.com>
2148
2149         * icall.c (ves_icall_Type_GetPacking): Handle dynamic types.
2150
2151         * assembly.c (mono_assembly_load_from_full): Fix a leak in the previous patch.
2152         
2153         * assembly.c (mono_assembly_load_from_full): Return the non-refonly corlib for
2154         ref-only requests for compatibility with MS.
2155
2156 2008-02-20  Raja R Harinath  <harinath@hurrynot.org>
2157
2158         * reflection.c (mono_custom_attrs_from_method): Don't silently
2159         return an empty list for generic method instances.
2160         (mono_custom_attrs_from_param): Likewise.
2161
2162 2008-02-20  Rodrigo Kumpera  <rkumpera@novell.com>
2163             Raja R Harinath  <harinath@hurrynot.org>
2164
2165         Fix #354757
2166         * class-internals.h (struct _MonoMethodInflated.is_mb_open): Add.
2167         * class.c (mono_class_inflate_generic_method_full): Initialize it
2168         when a fully-open method is instantiated.
2169         * metadata.c (inflated_method_equal, inflated_method_hash): Update
2170         to new field.
2171         * reflection.c (inflate_mono_method): Don't create a temporary context.
2172
2173 2008-02-20  Raja R Harinath  <harinath@hurrynot.org>
2174
2175         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
2176         Compute correct value, to prepare for imethod->reflection_info going away.
2177
2178 2008-02-19  Zoltan Varga  <vargaz@gmail.com>
2179
2180         * class.c (mono_class_setup_vtable_general): Ignore static methods in interfaces.
2181
2182 2008-02-18 Rodrigo Kumpera  <rkumpera@novell.com>
2183
2184         * verify.c: Implement skip visibility flag.
2185
2186 2008-02-18 Rodrigo Kumpera  <rkumpera@novell.com>
2187
2188         * verify.h: Added MONO_VERIFY_SKIP_VISIBILITY and struct MonoVerifyInfoExtended
2189         which contains an extra field to tell the kind of exception that should be thrown.
2190
2191         * verify.c: Use MonoVerifyInfoExtended instead of MonoVerifyInfo.
2192
2193 2008-02-17  Raja R Harinath  <harinath@hurrynot.org>
2194
2195         * loader.c (mono_method_get_param_names): Initialize 'klass' after
2196         'method' is updated.
2197
2198 2008-02-11  Zoltan Varga  <vargaz@gmail.com>
2199
2200         * class.c (mono_class_layout_fields): Set class->min_align for classes using
2201         explicit layout as well. Fixes #360375.
2202
2203 2008-02-11  Geoff Norton  <gnorton@novell.com>
2204
2205         * loader.c: Guard and dereference against inflated generic methods
2206
2207 2008-02-10  Gert Driesen  <drieseng@users.sourceforge.net>
2208
2209         * class.c: Include Retargetable spec in assembly name.
2210         * assembly.c: Always include PublicKeyToken spec in assembly name
2211         (with value "null" if assembly is not signed), and include
2212         Retargetable spec.
2213         * icall-def.h: Added icall for Assembly.get_fullname.
2214         * icall.c: Added icall returning the fullname of an assembly.
2215
2216 2008-02-09  Zoltan Varga  <vargaz@gmail.com>
2217
2218         * class.c (mono_class_setup_vtable_general): Add a missing call to
2219         mono_class_setup_methods () which is needed in the AOT case.
2220
2221 2008-02-08 Rodrigo Kumpera  <rkumpera@novell.com>
2222
2223         * verify.c (mono_type_get_stack_name): Added. Return the name for the
2224         stack type of the given MonoType.
2225
2226         * verify.c (verify_type_compatibility_full): Handle the void type.
2227
2228         * verify.c (is_compatible_boxed_valuetype): Changed to fit the
2229         way stack merging works.
2230
2231         * verify.c (store_local): Improved verification message.
2232
2233         * verify.c (do_branch_op): If the merging is invalid, the method
2234         is unverifiable and not invalid. Improved error message.
2235
2236         * verify.c (merge_stacks): Properly merge a boxed valuetype and
2237         a reference type diferent than System.Object. Improved error
2238         message.
2239
2240 2008-02-07 Rodrigo Kumpera  <rkumpera@novell.com>
2241
2242         * verify.c (mono_type_is_enum_type): Added. Test if a type is an enum.
2243
2244         * verify.c (mono_type_get_underlying_type_any): Added. Return the underlying
2245         type of an enum even if the argument is byref.
2246
2247         * verify.c: Replace all explicit uses of enumtype and enum_basetype
2248         to calls to mono_type_is_enum_type and mono_type_get_underlying_type_any.
2249
2250         * verify.c: Check for an enum in all cases of MONO_TYPE_GENERICINST.
2251
2252         *verify.c (verify_type_compatibility_full): Make enum types
2253         compatible with their base types.
2254
2255         * verify.c (is_compatible_boxed_valuetype): Added. Check if both
2256         types are compatible for the special case of a boxed valuetype and
2257         System.Object.
2258
2259         * verify.c (verify_stack_type_compatibility): The function
2260         is_compatible_boxed_valuetype was extracted from here.
2261
2262         * verify.c (push_arg): Only set ctx->has_this_store if the method
2263         is not static.
2264
2265         * verify.c (do_ldelem): Fixed a typo in an error message and added
2266         strict check for mixing int32 and native int as the array type
2267         and ldelem type.
2268
2269         * verify.c (merge_stacks): Consider boxed valuetypes in the
2270         compatibility checks.
2271
2272 2008-02-07  Massimiliano Mantione  <massi@ximian.com>
2273         * profiler.h: (MonoGCEvent): Added start-stop the world events.
2274
2275 2008-02-06  Massimiliano Mantione  <massi@ximian.com>
2276         *class.c: use_new_interface_vtable_code: renamed the env var to have
2277         a "MONO_" prefix, and fix the logic to enable it by default.
2278
2279 2008-02-06  Massimiliano Mantione  <massi@ximian.com>
2280         *class.c:
2281         mono_class_setup_vtable_general: rewrote the way in which interface
2282         methods are added to vtables. Makes bug-77127.exe pass, and hopefully
2283         makes the code more maintainable.
2284         For now the old code is still there, and can be activated setting
2285         the env var "USE_NEW_INTERFACE_VTABLE_CODE".
2286
2287 2008-02-06 Rodrigo Kumpera  <rkumpera@novell.com>
2288
2289         * verify.c: guarded some debug functions around and #ifdef.
2290
2291         * verify.c (merge_stacks): implement proper PIII 1.8.1.3 stack state merging.
2292
2293 2008-02-06  Zoltan Varga  <vargaz@gmail.com>
2294
2295         * marshal.c (mono_marshal_get_runtime_invoke): Revert the direct_wrapper
2296         changes for now since they seem to break too many things.
2297
2298 2008-02-05  Mark Probst  <mark.probst@gmail.com>
2299
2300         * marshal.c, marshal.h (mono_marshal_find_bitfield_offset,
2301         mono_marshal_find_nonzero_bit_offset): Added macro and function
2302         for finding the byte- and bit-offset of a bitfield within a
2303         struct.
2304
2305 2008-02-05  Zoltan Varga  <vargaz@gmail.com>
2306
2307         * marshal.c (mono_marshal_get_ptr_to_struct): Make the signature non-pinvoke.
2308         (mono_marshal_get_struct_to_ptr): Ditto.
2309
2310         * marshal.c (mono_marshal_get_runtime_invoke): Fix the signature of 
2311         cctor_signature.
2312
2313 2008-02-03  Zoltan Varga  <vargaz@gmail.com>
2314
2315         * marshal.c (mono_marshal_get_runtime_invoke): Fix sharing of runtime wrappers
2316         between methods for non-corlib types.
2317
2318 2008-02-02  Geoff Norton  <gnorton@novell.com>
2319
2320         * loader.c (mono_method_get_param_names): Populate the parameter name for 
2321         generic parameters as well. (Fixes #342536)
2322
2323 2008-01-31 Rodrigo Kumpera  <rkumpera@novell.com>
2324
2325         * verify.c (is_valid_bool_arg): Allow boxed values and null literals as well.
2326
2327         * verify.c (do_invoke_method): Fix for calling with byref structs.
2328
2329         * verify.c (do_cast): push a boxed value type based on the type token and not
2330         the type of stack.
2331
2332 2008-01-31  William Holmes  <billholmes54@gmail.com>
2333
2334         * process.c (process_module_string_read): Check the size returned form 
2335           VerQueryValue to avoid out of memory exception. 
2336
2337 2008-01-30  Zoltan Varga  <vargaz@gmail.com>
2338
2339         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
2340         Handle properly modules which are not in the moduleref table. Fixes
2341         #356938.
2342
2343 2008-01-29  Zoltan Varga  <vargaz@gmail.com>
2344
2345         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Remove
2346         the dynamic case which is now in managed code.
2347         (ves_icall_System_Reflection_Assembly_GetTypes): Ditto.
2348
2349         * marshal.c (mono_string_to_bstr): Fix a warning.
2350         (init_com_provider_ms): Ditto.
2351
2352         * appdomain.c (ves_icall_System_AppDomain_createDomain): Add some FIXMEs.
2353
2354         * exception.c (mono_get_exception_out_of_memory): New helper function.
2355
2356 2008-01-28  Jonathan Chambers  <joncham@gmail.com>
2357
2358         * marshal.c: Add support for BSTR marshalling
2359         using other COM systems.
2360
2361         Code is contributed under MIT/X11 license.
2362
2363 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
2364
2365         * object.c (mono_runtime_invoke_array): reverted previous
2366         commit as it breaks the build.
2367
2368 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
2369
2370         * object.c (mono_runtime_invoke_array): Verify arguments for
2371         invalid types. Fixes #348522.
2372
2373 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
2374
2375         * verify.c: added IL_CODE_CALL_NONFINAL_VIRTUAL to track calls to
2376         non-final virtual calls using call. 
2377
2378         * verify.c (do_invoke): fixed some TODOs.
2379
2380         * verify.c (push_arg): set has_this_store for "ldarga 0".
2381
2382 2008-01-27  Zoltan Varga  <vargaz@gmail.com>
2383
2384         * reflection.c (reflection_methodbuilder_to_mono_method): Allow DynamicMethods
2385         which belong to an inflated class. Fixes #356531.
2386
2387 2008-01-26  Robert Jordan  <robertj@gmx.net>
2388
2389         * file-io.c: Implement and use wrappers for GetFileAttribute|Ex ()
2390         which resort to FindFirstFile when a certain error condition
2391         (ERROR_SHARING_VIOLATION) occured. Fixes bug #325212.
2392         Code is contributed under MIT/X11 license.
2393
2394 2008-01-24  Jonathan Chambers  <joncham@gmail.com>
2395
2396         * marshal.c (emit_marshal_string): Fix out string marshalling
2397         to use specified encoding. Fixes #323900.
2398
2399         Code is contributed under MIT/X11 license.
2400
2401 2008-01-24  Raja R Harinath  <harinath@hurrynot.org>
2402
2403         * class.c (mono_class_inflate_generic_method_full): Don't modify
2404         iresult->context after cache check.
2405
2406 2008-01-23  Zoltan Varga  <vargaz@gmail.com>
2407
2408         * class.c (mono_class_inflate_generic_method_full): Change the
2409         struct assignments to memcpy for better visibility and add some comments.
2410
2411 2008-01-23  Dick Porter  <dick@ximian.com>
2412
2413         * threads.c (mono_threads_set_shutting_down): Simplify shutdown
2414         procedure, and make it work on windows.
2415
2416 2008-01-22  Zoltan Varga  <vargaz@gmail.com>
2417
2418         * object-internals.h (MonoReflectionGenericClass): Make the 'generic_type' field
2419         a MonoReflectionTypeBuilder since it is always of that type.
2420
2421         * reflection.c (mono_type_get_object): Remove an unneccesary check.     
2422
2423         * reflection.c (mono_generic_class_get_object): Simplify this a bit.
2424
2425         * reflection.c (mono_reflection_bind_generic_parameters): Ditto.
2426         
2427         * icall.c (ves_icall_MonoGenericClass_GetParentType): Ditto.
2428
2429         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Ditto.
2430
2431         * reflection.c (mono_reflection_create_runtime_class): Remove already created
2432         instantiations from the type cache.
2433
2434 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
2435
2436         * verify.c (do_ldstr): fixed token verification. previous code was 100% broken.
2437
2438         * verify.c (do_unbox_value): push a controled mutability managed pointer.
2439
2440 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
2441
2442         * verify.c (do_ldstr): added, verifies if the #US token is valid.
2443
2444         * verify.c (mono_method_verify): removed old TODO
2445
2446 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
2447
2448         * verify.c (do_newobj): add visibility check.
2449
2450 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
2451
2452         * verify.c (do_load_function_ptr): add visibility check.
2453
2454 2008-01-21  Massimiliano Mantione  <massi@ximian.com>
2455         *class.c:
2456         mono_generic_class_get_class: hook profiler events.
2457         mono_field_get_offset: added to support heap-shot in the new profiler.
2458         *class.h: exported mono_field_get_offset.
2459         * reflection.c:
2460         mono_reflection_setup_internal_class: hook profiler events.
2461
2462 2008-01-20  Zoltan Varga  <vargaz@gmail.com>
2463
2464         * marshal.c (mono_marshal_emit_native_wrapper): Add a 'check_exceptions' 
2465         argument here too and use it to avoid checking for pending exceptions if 
2466         possible.
2467
2468 2008-01-20  Gert Driesen  <drieseng@users.sourceforge.net>
2469
2470         * assembly.c (build_assembly_name): add arg for passing the assembly
2471         flags. Do not consider a PublicKey with value "null" valid.
2472         (mono_assembly_name_parse_full): added boolean argument that will be
2473         set if the assembly name contains a PublicKeyToken spec. Added support
2474         for the Retargetable spec for which only Yes or No are allowed as valid
2475         value. Consider assembly name invalid if Retargetable spec is set, but
2476         either version, culture or public key (token) are not specified.
2477         * metadata-internals.h: sync signature of mono_assembly_name_parse_full
2478         with implementation in assembly.c.
2479         * icall.c (fill_reflection_assembly_name): also copy assembly flags
2480         from MonoAssemblyName.
2481         (ves_icall_System_Reflection_AssemblyName_ParseName): use newly
2482         introduced argument for mono_assembly_name_parse_full to know if the
2483         assembly name has a PublicKeyToken spec, and if it has instruct
2484         fill_reflection_assembly_name to use default value for keyToken (if
2485         PublicKeyToken is null).
2486
2487 2008-01-18  Rodrigo Kumpera  <rkumpera@novell.com>
2488
2489         * verify.c (mono_method_verify): fixed ovf ops with
2490         float values. They are unverifiable now.
2491
2492 2008-01-18  Rodrigo Kumpera  <rkumpera@novell.com>
2493
2494         * class.c (set_failure_from_loader_error): add BadImageException to the
2495         list of exceptions that can cause a type to fail to load.
2496
2497         * class.c (mono_class_get_exception_for_failure): same.
2498
2499 2008-01-17  Rodrigo Kumpera  <rkumpera@novell.com>
2500
2501         * verify.c (in_any_exception_block): added, check if offset
2502         is part of any exception handling clause.
2503
2504         * verify.c (get_stack_type): added VAR and MVAR types.
2505
2506         * verify.c (do_stobj): better error messages.
2507
2508         * verify.c (do_cpobj): added, check cpobj.
2509
2510         * verify.c (do_initobj): added, check initobj.
2511
2512         * verify.c (do_sizeof): added, check sizeof.
2513
2514         * verify.c (do_localloc): added, check localloc.
2515
2516         * verify.c: adde proper verification for cpobj, initobj, sizeof and localloc.
2517
2518 2008-01-17  Zoltan Varga  <vargaz@gmail.com>
2519
2520         * method-builder.c (mono_mb_emit_native_call): Get rid of the unused
2521         save_lmf/restore_lmf opcodes.
2522
2523         * threads.c (mono_threads_install_notify_pending_exc): New function to
2524         install a callback notifying the JIT there is a pending exception on a thread.
2525         (mono_thread_request_interruption): Call the new callback.
2526         (mono_thread_get_and_clear_pending_exception): New function to return the
2527         exception pending on a thread.
2528
2529         * marshal.c (mono_marshal_get_icall_wrapper): Add a check_exceptions argument
2530         to turn off checking for pending exceptions.
2531         (mono_marshal_get_native_wrapper): Ditto.
2532
2533 2008-01-16  Zoltan Varga  <vargaz@gmail.com>
2534
2535         * threads-types.h: Get rid of the unnecessary extern declarations.
2536
2537 2008-01-16  Gert Driesen  <drieseng@users.sourceforge.net>
2538
2539         * icall.c (ves_icall_Type_GetField): if NonPublic flag is set, only
2540         return field from parent class if not private.
2541         (ves_icall_Type_GetFields_internal): if NonPublic flag is set, only
2542         returns fields from parent class if they are not private.
2543         (method_nonpublic): added function to determine if a given method
2544         should be considered non-public. Returns false for private methods
2545         on parent class, and internal methods from parent on the 1.0 profile.
2546         (ves_icall_Type_GetMethodsByName): if NonPublic flag is set, then
2547         use method_nonpublic function to determine whether method should be
2548         returned.
2549         (property_accessor_public): use newly introduced method_nonpublic
2550         function to determine whether accessor is non-public. 
2551         (ves_icall_MonoType_GetEvent): If NonPublic flag is set, only return
2552         event from parent class if not private. Only return static event if
2553         Static flag is set, and only return static event from parent class if
2554         FlattenHierarchy flag is set.
2555         (ves_icall_Type_GetEvents_internal): If NonPublic flag is set, only
2556         include non-private events from parent class.
2557
2558 2008-01-16  Zoltan Varga  <vargaz@gmail.com>
2559
2560         * icall.c (ves_icall_System_NumberFormatter_GetFormatterTables): Fix a
2561         warning.
2562
2563 2008-01-16  Wade Berrier <wberrier@novell.com>
2564
2565         * security.c: Add assembly.h header to appease some warnings
2566
2567 2008-01-16  Dick Porter  <dick@ximian.com>
2568
2569         * process.c (process_module_string_read): Remove trailing null
2570         when saving string.
2571
2572 2008-01-16  Mark Probst  <mark.probst@gmail.com>
2573
2574         * class-internals.h: A new data structure describing the layout of
2575         a runtime generic context (MonoRuntimeGenericContextTemplate).
2576
2577         * metadata-internals.h: Added a hash table to MonoDomain that maps
2578         from open generic classes to their runtime generic context
2579         templates.
2580
2581         * object.c: Building of the runtime generic context, including
2582         proper handling of generic type arguments of superclasses.
2583         Building of the runtime generic context according to the template.
2584
2585 2008-01-15  Zoltan Varga  <vargaz@gmail.com>
2586
2587         * class.c (mono_class_setup_fields): Set field.count for generic instances.
2588         Fixes #350856.
2589
2590         * image.c (do_mono_image_open): Pass TRUE as last_exists to 
2591         mono_portability_find_file (). Fixes #325466.
2592         (mono_image_get_public_key): Fix a warning.
2593
2594 2008-01-14  Zoltan Varga  <vargaz@gmail.com>
2595
2596         * class.c (mono_class_from_name): Fix comments for NULL-ness of image parameter.
2597         Fixes #353550.
2598         (mono_class_from_name_case): Ditto.
2599
2600 2008-01-13  Eyal Alaluf <eyala@mainsoft.com>
2601
2602         * icall-def.h number-formatter.h icall.c: Implemented a cross app-domain
2603           common storage for the tables used in the System/NumberFormatter class.
2604
2605 2008-01-13  Zoltan Varga  <vargaz@gmail.com>
2606
2607         * marshal.c (mono_marshal_get_runtime_invoke): Fix a typo.
2608
2609 2008-01-11  Rodrigo Kumpera  <rkumpera@novell.com>
2610
2611         * verify.c (get_boxable_mono_type): check if the token is valid.
2612
2613         * verify.c (set_stack_value): changed to add an error if an
2614         invalid type is set on stack. Changed all callers due to signature change.
2615
2616         * verify.c (do_stobj): implement stobj validation.
2617
2618 2008-01-11  Zoltan Varga  <vargaz@gmail.com>
2619
2620         * reflection.c (reflection_methodbuilder_to_mono_method): No need to
2621         set container->is_method, it was set earlier.
2622
2623         * metadata.c (type_in_image): Handle MVARs which belong to not finished
2624         generic methods.
2625
2626         * reflection.c (mono_reflection_initialize_generic_parameter): Set
2627         is_method of the generic container to TRUE for methods.
2628
2629 2008-01-10  Zoltan Varga  <vargaz@gmail.com>
2630
2631         * metadata.c (type_in_image): Handle type parameters properly.
2632
2633         * class-internals.h (MonoGenericParam): Add an 'image' argument to track
2634         memory ownership of this structure.
2635
2636 2008-01-10  Rodrigo Kumpera  <rkumpera@novell.com>
2637
2638         * verify.c (get_boxable_mono_type): make typedref types been just
2639         unverifiable. check for void type.
2640
2641         * verify.c (do_unbox_any): added, verify opcode unbox.any.
2642
2643         * verify.c (do_load_function_ptr): accept method spec tokens.
2644
2645 2008-01-10  Zoltan Varga  <vargaz@gmail.com>
2646
2647         * marshal.c (mono_class_native_size): Always set *align even if this is called
2648         recursively.
2649
2650 2008-01-09  Zoltan Varga  <vargaz@gmail.com>
2651
2652         * verify.c (mono_verify_corlib): Remove this as it was not used and was 
2653         out-of-date.
2654
2655 2008-01-09  Rodrigo Kumpera  <rkumpera@novell.com>
2656
2657         * verify.c: removed some old unused tables. A huge bunch of small fixes
2658         to things found while testing the verifier with mono basic.
2659
2660         * verify.c (dump_stack_value): dump null literal flag to.
2661
2662         * verify.c (verify_type_compatibility_full): fix comparison
2663         for types that have a generic super type.
2664
2665         * verify.c (verify_stack_type_compatibility): fix compatibility
2666         between null literals and reference types. fix compatibility between
2667         boxed valuetypes and object. fix corner case test for enums.
2668
2669         * verify.c (do_cmp_op): proper verification of cgt.un in case
2670         of reference types.
2671
2672         * verify.c (do_invoke_method): fix error message.
2673
2674         * verify.c (do_store_indirect
2675
2676         * verify.c (check_is_valid_type_for_field_ops): proper verification
2677         of managed pointers to valuetypes and boxed valuetypes. proper verification
2678         of null literals.
2679
2680         * verify.c (do_unbox_value): expect valuetypes to be always boxed. don't
2681         allow token to be a reference type.
2682
2683         * verify.c (do_cast): proper handling of boxes valuetypes.
2684
2685         * verify.c (do_stelem): proper handling of storing a boxed valuetype
2686         in object[].
2687
2688         * verify.c (mono_method_verify): pass the opcode to do_cmp_op
2689         to handle cgt.un properly. Implement add/mul/sub ovf opcodes.
2690         fixed the decoding of unbox_any
2691
2692 2008-01-08  Zoltan Varga  <vargaz@gmail.com>
2693
2694         * boehm-gc.c (mono_gc_deregister_root): Fix the size passed to libgc.
2695
2696 2008-01-08  Rodrigo Kumpera  <rkumpera@novell.com>
2697
2698         * verify.c (do_newobj): do delegate verification.
2699
2700         * verify.c (verify_delegate_compatibility): perform delegate
2701         verification.
2702
2703         * verify.c (verify_ldftn_delegate): perform tests related to
2704         ldftn delegates.
2705
2706         * verify.c (mono_delegate_signature_equal): perform the
2707         slightly diferent signature comparison required by delegates.
2708
2709         * metadata.c (mono_metadata_type_equal_full): added and exported
2710         as MONO_INTERNAL. This is a version of mono_metadata_type_equal that
2711         allows signature only comparison.
2712
2713         * metadata-internal.h (mono_metadata_type_equal_full): added and exported
2714         as MONO_INTERNAL.
2715
2716 2008-01-07  Rodrigo Kumpera  <rkumpera@novell.com>
2717
2718         * verify.c: added a bunch of stack_slot_* functions to
2719         make access to stack slot type easier. This is required to
2720         allow optional flags, like null literal, boxed value and
2721         this pointer.
2722         All access paths to IlStackDesc::stype have been changed 
2723         to use these new funcions.
2724         Removed a bunch of unused functions and cleared all warnings.
2725         This patch introduces the usage of the this pointer and 
2726         boxed value flags.
2727
2728 2008-01-07  Zoltan Varga  <vargaz@gmail.com>
2729
2730         * boehm-gc.c (mono_gc_deregister_root): Fix win32 build.
2731
2732 2008-01-06  Zoltan Varga  <vargaz@gmail.com>
2733
2734         * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Change signature to
2735         match managed version.
2736
2737         * appdomain.c: Bump corlib version.
2738         
2739         * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Check for a null
2740         argument.
2741
2742 2008-01-06  Gert Driesen  <drieseng@users.sourceforge.net>
2743
2744         * icall.c (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies)
2745         Set public key token to zero-length byte array if assembly is not
2746         strongnamed.
2747
2748 2008-01-05  Zoltan Varga  <vargaz@gmail.com>
2749
2750         * icall.c (ves_icall_System_Array_SetValueImpl): Use a write barrier when
2751         writing a vtype array elem.
2752
2753 2007-01-05  Gert Driesen  <drieseng@users.sourceforge.net>
2754
2755         * assembly.c (build_assembly_name): return FALSE if length of token is
2756         not 16 (if not "null").
2757         (mono_assembly_name_parse_full): return FALSE if value of version,
2758         culture, token or key is 0.
2759         * icall.c (fill_reflection_assembly_name): add boolean arguments to
2760         specify whether public key and public key token must be set to default
2761         value (zero-length byte array) if not available. Set versioncompat to
2762         SameMachine. If public key is available or the default is set, then
2763         set PublicKey flag.
2764         (ves_icall_System_Reflection_Assembly_FillName): if no public key
2765         is available, use empty byte array as default value. On the 2.0
2766         profile, use default value for public key token if not set.
2767         (ves_icall_System_Reflection_InternalGetAssemblyName): on the 1.0
2768         profile, use default value for public key if not set. On the 2.0
2769         profile, use default value for public key token if not set.
2770         (ves_icall_System_Reflection_AssemblyName_ParseName): do not set
2771         default values for public key and public key token.
2772
2773 2008-01-05  Zoltan Varga  <vargaz@gmail.com>
2774
2775         * object-internals.h (MonoReflectionAssemblyName): Add 'processor_architecture'
2776         field to keep it in synch with the managed object.
2777
2778         * marshal.c (emit_marshal_object): Add support for byref marshalling of
2779         delegates. Fixes #351520.
2780
2781         * sgen-gc.c (conservatively_pin_objects_from): Tell valgrind that the pin queue
2782         contains defined memory.
2783         
2784         * sgen-gc.c: Fix 64 bit warnings. Fix some typos. Update GC stats in mono_stats.
2785
2786         * sgen-gc.c (build_nursery_fragments): Handle half-constructed objects correctly.
2787         
2788         * sgen-gc.c (check_consistency): New helper function to do a consistency check
2789         of the GC data structures.
2790
2791         * gc-internal.h: Moved the REGISTER/UNREGISTER macros here from os/gc_wrapper.h.
2792
2793         * *.c: Include metadata/gc-internal.h instead of os/gc_wrapper.h.
2794         
2795         * object.c (mono_array_full_copy): Fix detection of whenever to use a write
2796         barrier.
2797         (mono_array_clone_in_domain): Ditto.
2798         (mono_array_clone_in_domain): Ditto.
2799
2800         * threads.c (start_wrapper): Register the thread start argument as a GC root.
2801         (cache_culture): Use a write barrier.
2802
2803         * icall.c (ves_icall_System_Array_SetValueImpl): Call a write barrier.
2804         (ves_icall_get_property_info): Ditto.
2805
2806         * object.h (MONO_STRUCT_SETREF): New macro.
2807
2808         * class-internals.h (MonoStats): Add some GC statistics.
2809
2810         * boehm-gc.c null-gc.c: Define mono_gc_deregister_root ().
2811
2812 2008-01-04  Andreas Faerber  <andreas.faerber@web.de>
2813
2814         * exception.c (mono_exception_from_name_two_strings):
2815         Break from loop after method is found.
2816
2817 2008-01-04  Dick Porter  <dick@ximian.com>
2818
2819         * process.c (process_module_string_read): Rename variable to
2820         reflect correct usage, after fixing bug 345972.
2821
2822 2008-01-03  Rodrigo Kumpera  <rkumpera@novell.com>
2823
2824         * verify.c (mono_type_create_fnptr_from_mono_method): 
2825         created a MonoType function pointer instance to be used during
2826         verification. The verifier releases this memory at end.
2827
2828         * verify.c (mono_method_is_constructor): extracted repeated
2829         checks for constructor into a single class.
2830
2831         * verify.c (do_push_field): use new extracted method
2832         for constructor check.
2833
2834         * verify.c (do_newobj): same.
2835
2836         * verify.c (do_ldftn): renamed to do_load_function_ptr
2837         and make it verify ldvirtftn too.
2838
2839         * verify.c (mono_method_verify: proper verification
2840         of ldvirtftn. release created MonoMethod instances.
2841
2842 2007-12-31  Rodrigo Kumpera  <rkumpera@novell.com>
2843
2844         * verify.c (token_bounds_check): added.
2845
2846         * verify.c (do_ldftn): added.
2847
2848         * verify.c (mono_method_verify): proper verificartion of ldftn.
2849
2850 2007-12-31  Rodrigo Kumpera  <rkumpera@novell.com>
2851
2852         * metadata.c (mono_metadata_decode_row): Assert if index is bigger
2853         than the table row count. It's the resposibility of the caller to
2854         make the bounds check and raise the correct error.
2855
2856         * metadata.c (mono_metadata_decode_row_col): Same.
2857
2858         * loader.c (mono_get_method_from_token): perform bounds check
2859         on token for methoddef table.
2860
2861 2007-12-29  Miguel de Icaza  <miguel@novell.com>
2862
2863         * icall.c
2864         (ves_icall_System_CurrentSystemTimeZone_GetTimeZoneData): Turn the
2865         assert into a negative result, the managed code already coped with
2866         that.
2867
2868         Some folks on Windows reported this error. 
2869
2870 2007-12-28  Gert Driesen  <drieseng@users.sourceforge.net>
2871
2872         * appdomain.c: Bump corlib version.
2873         * icall.c:
2874         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies): Use
2875         CultureInfo.CreateCulture to create CultureInfo for name.
2876         (fill_reflection_assembly_name): Use CultureInfo.CreateCulture to
2877         create CultureInfo for name. Fixes bug #347174.
2878
2879 2007-12-27  Rodrigo Kumpera  <rkumpera@novell.com>
2880
2881         * verify.c: added IL_CODE_FLAG_STACK_INITED and IL_CODE_STACK_MERGED
2882         flags.
2883
2884         * verify.c (is_valid_branch_instruction): allow branching to the
2885         first instruction of the protected block.
2886
2887         * verify.c (is_valid_cmp_branch_instruction): same.
2888
2889         * verify.c (stack_init): use IL_CODE_FLAG_STACK_INITED flag to
2890         avoid double initialization.
2891
2892         * verify.c (merge_stacks): use IL_CODE_STACK_MERGED to
2893         detect which cases the eval stack should just be copied.
2894
2895         * verify.c (mono_method_verify): check if the eval stack
2896         is empty when entering a protected block.
2897
2898 2007-12-27  Rodrigo Kumpera  <rkumpera@novell.com>
2899
2900         * verify.c: added is_clause_in_range, is_clause_inside_range,
2901         is_clause_nested and verify_clause_relationship. They perform
2902         the verifications stated in P1 12.4.2.7.
2903
2904         * verify.c (mono_method_verify): remove some unused variables,
2905         add the new exception clause checks, add instruction border
2906         checks for protected block start/end, improved some error 
2907         messages and fixed a bug in the way invalid instruction access
2908         is detected.
2909
2910 2007-12-26  Zoltan Varga  <vargaz@gmail.com>
2911
2912         * boehm-gc.c (mono_gc_register_thread): Use the new GC_register_my_thread () routine
2913         from GC 7.0 if available.
2914
2915         * object.c: Remove an unused define.
2916         
2917         * object.c (mono_class_compute_gc_descriptor): Fix a warning.
2918
2919         * boehm-gc.c (mono_gc_make_descr_for_array): Implement.
2920
2921         * null-gc.c (mono_gc_make_descr_for_array): Implement.
2922
2923         * object.c (mono_class_compute_gc_descriptor): Remove an #ifdef SGEN_GC.
2924
2925         * gc-internal.h: Change the signature of mono_gc_make_descr_for_string ()
2926         to take the same arguments as the other make_descr functions.
2927
2928         * boehm-gc.c null-gc.c: Add implementation for make_descr functions.
2929
2930         * objects.c: Get rid of the MAKE_DESCRIPTOR macros, call make_descr functions
2931         directly.
2932
2933         * boehm-gc.c (mono_gc_base_init): Moved the setting of GC_stackbottom here from
2934         mini.c.
2935
2936         * object.c (mono_class_compute_gc_descriptor): Move the GC_init_gcj_malloc () 
2937         call to boehm-gc.c.
2938
2939         * boehm-gc.c (mono_gc_register_root): Fix a warning.
2940
2941         * null-gc.c (mono_gc_register_root): Fix a warning.
2942
2943         * reflection.c (ALLOC_REFENTRY): Use mono_gc_alloc_fixed for boehm as well.
2944
2945         * boehm-gc.c (mono_gc_register_root): Moved definition here from gc_wrapper.h.
2946         (mono_gc_base_init): Call GC_init ().
2947
2948         * null-gc.c: Define mono_gc_register_root () as a no-op.
2949
2950         * domain.c appdomain.c: Call mono_gc_base_init () instead of MONO_GC_PRE_INIT ().
2951
2952 2007-12-24  Rodrigo Kumpera  <rkumpera@novell.com>
2953
2954         * verify.c: add prototype for merge_stacks at top
2955
2956         * verify.c (do_switch): added.
2957
2958         * verify.c (merge_stacks): on some cases the stack merging
2959         was not happening properly. Unequal stack sizes at merge
2960         points should be invalid.
2961
2962         * verify.c (mono_method_verify): added more debug info on stack state.
2963         verify switch properly.
2964
2965 2007-12-24  Zoltan Varga  <vargaz@gmail.com>
2966
2967         * method-builder.h: New file, moved the mono_mb_ declarations here from 
2968         marshal.h.
2969
2970         * boehm-gc.c marshal.c: Include method-builder.h.
2971
2972         * marshal.c: Use mono_mb_emit_branch_label () in a few places.
2973
2974         * marshal.c: Remove some code which is now in method-builder.c.
2975
2976 2007-12-23  Zoltan Varga  <vargaz@gmail.com>
2977
2978         * method-builder.c: New file, extraction of the method builder functionality 
2979         from marshal.c.
2980
2981         * marshal.c: Move the mb functions into method-builder.c.
2982
2983         * marshal.h marshal.c: Export some mono_mb_... functions.
2984
2985         * marshal.c: Use mono_mb_get_label () and mono_mb_patch_branch () in all places.
2986
2987         * loader.c (field_from_memberref): Remove the dynamic case, it is handled in
2988         the caller.
2989
2990         * class.c (mono_class_get_full): Check the token type in the dynamic case.
2991
2992         * loader.c (mono_field_from_token): Ditto.      
2993
2994         * loader.c (mono_get_method_from_token): Change the check so it checks memberref
2995         type as well.
2996         
2997         * loader.c (mono_get_method_from_token): Check the token type in the dynamic case.
2998         Fixes #342565.
2999
3000         * class-internals.h: Add new loader error type MONO_EXCEPTION_BAD_IMAGE plus
3001         a helper function for setting it.
3002
3003         * loader.c (mono_loader_error_prepare_exception): Handle MONO_EXCEPTION_BAD_IMAGE.
3004
3005         
3006         * assembly.c: Significally simplify code now that referenced assemblies are 
3007         loaded lazily. Get rid of the 'loading' hashtables. Hopefully fixes #347629.
3008
3009         * threads.h: Don't include  the internal threads-types.h header file. Fixes
3010         #349952.
3011
3012 2007-12-21  Rodrigo Kumpera  <rkumpera@novell.com>
3013
3014         * verify.c: added enum value IL_CODE_FLAG_WAS_TARGET, to represent
3015         instructions that were target of branches or are at protected block boundaries.
3016
3017         * verify.c (in_same_block): handle filter clauses.
3018
3019         * verify.c (is_valid_branch_instruction): added. checks the target of
3020         instructions br or brtrue/false.
3021
3022         * verify.c (is_valid_cmp_branch_instruction): added. checks the target of
3023         binary branch instructions such as beq and bge.
3024
3025         * verify.c (init_stack_with_value): renamed to init_stack_with_value_at_exception_boundary
3026         and made it pin the instruction as been part of the exception block.
3027
3028         * verify.c (do_boolean_branch_op): use is_valid_branch_instruction instead
3029         of in_same_block.
3030
3031         * verify.c (do_branch_op): use is_valid_cmp_branch_instruction instead
3032         of in_same_block.
3033
3034         * verify.c (do_ret): ret from a protected block is unverifiable and
3035         not invalid.
3036
3037         * verify.c (do_static_branch): verify br and br.s instructions.
3038
3039         * verify.c (merge_stacks): add extra param to support detection
3040         of branches in the middle of instructions.
3041         
3042         * verify.c (mono_method_verify): verify branches and exception blocks
3043         that target the middle of instructions. Proper verification of br and br.s.
3044
3045 2007-12-21  Zoltan Varga  <vargaz@gmail.com>
3046
3047         * reflection.c (reflection_methodbuilder_from_ctor_builder): Initialize
3048         skip_visibility field.
3049         (reflection_methodbuilder_from_dynamic_method): Ditto.
3050
3051         * object.c (mono_class_compute_gc_descriptor): Remove more unused icall
3052         registrations. Fixes #348193.
3053
3054         * threads.h: Move the internal mono_thread_get_pending_exception () to
3055         threads-types.h and rename it to mono_thread_get_undeniable_exception ().
3056
3057 2007-12-20  Zoltan Varga  <vargaz@gmail.com>
3058
3059         * object.c (mono_class_compute_gc_descriptor): Remove unused GC_gcj_fast_malloc
3060         icall registration. Fixes #348193.
3061
3062         * marshal.c (mono_marshal_get_runtime_invoke): Put all runtime invoke wrappers
3063         for corlib classes into object. Fixes #349621.
3064
3065 2007-12-20  Gert Driesen  <drieseng@users.sourceforge.net>
3066
3067         * icall.c (property_accessor_nonpublic): new function to determine
3068         whether an accessor allows a property to be considered non-public.
3069         Returns false for private accessor(s) from parent class, and internal
3070         accessor(s) from parent on 2.0 profile (and higher).
3071         (ves_icall_Type_GetPropertiesByName): Use newly introduced function
3072         to determine whether property should be included if NonPublic flag
3073         is set. Fixes bug #349078.
3074
3075 2007-12-20  Rodrigo Kumpera  <rkumpera@novell.com>
3076
3077         * verify.c (init_stack_with_value): added.
3078
3079         * verify.c (mono_method_verify): extracted common
3080         code for exception initialization into init_stack_with_value.
3081
3082         * verify.c (mono_method_verify): initialize the exception
3083         for handler clauses as well.
3084
3085         * verify.c (mono_method_verify): fix the exception clause
3086         ordering rules, it should use handler end offset and not
3087         start offset.
3088
3089 Thu Dec 20 12:27:24 CET 2007 Paolo Molaro <lupus@ximian.com>
3090
3091         * rawbuffer.c: remove useless warning.
3092
3093 Thu Dec 20 12:10:38 CET 2007 Paolo Molaro <lupus@ximian.com>
3094
3095         * threads.h, threads-types.h: move functions to the correct header
3096         (fixes bug#349952).
3097
3098 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
3099
3100         * verify.c (mono_method_verify): proper verification
3101         of exception handling clauses ranges and fallthru in
3102         and out of protected blocks.
3103
3104 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
3105
3106         * verify.c (mono_method_verify): fixed compilation issue.
3107
3108 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
3109
3110         * verify.c (mono_method_verify): a printf slipped in, changed
3111         to use verifier debug macro.
3112
3113 2007-12-18  Rodrigo Kumpera  <rkumpera@novell.com>
3114
3115         * verify.c (is_correct_leave): check for filter clauses.
3116
3117         * verify.c (do_filter): added.
3118
3119         * verify.c (mono_method_verify): property verification of leave.
3120
3121
3122 2007-12-18  Mark Probst  <mark.probst@gmail.com>
3123
3124         * threads.c: Disable calls to _wapi_thread_signal_self() to fix
3125         Win32 build, until we figure out how to do the proper thing on
3126         Win32.
3127
3128 2007-12-17  Zoltan Varga  <vargaz@gmail.com>
3129
3130         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Fix a crash introduced
3131         by the previous patch.
3132         
3133         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Avoid calling
3134         the assembly resolve handler for refonly assemblies.
3135
3136 2007-12-17  Mark Probst  <mark.probst@gmail.com>
3137
3138         * threads.c, thread-types.h, icall.c: New shutdown safeguards.
3139         Make sure only one thread is allowed to commence shutdown, and
3140         don't allow new threads to be started once shutdown is in
3141         progress.
3142
3143 2007-12-14  Rodrigo Kumpera  <rkumpera@novell.com>
3144
3145         * verify.c (is_correct_endfilter): added.
3146
3147         * verify.c (is_unverifiable_endfilter): added.
3148
3149         * verify.c (do_endfilter): added.
3150
3151         * verify.c (mono_method_verify): property verification of endfilter
3152         and fixed a corner case or endfinally.
3153
3154 2007-12-13  Rodrigo Kumpera  <rkumpera@novell.com>
3155
3156         * verify.h: new flags to support fail fast of unverifiable code and
3157         do non-strict verification. Non-strict verification is required to
3158         have MS runtime compatibility. There are a huge amount of unverifiable
3159         code that it accepts as verifiable. The strict mode verifies the code
3160         as the specs says.
3161         Non-strict mode will be required in cases where code needs to be
3162         accepted as verifiable but fails under strict mode.
3163
3164         * pedump.c: added support to fail fast and non-strict verification.
3165
3166         * verify.c: added support for both fail fast and non-strict verification.
3167
3168 2007-12-12  Rodrigo Kumpera  <rkumpera@novell.com>
3169
3170         * verify.c (is_correct_endfinally): added.
3171
3172         * verify.c (mono_method_verify): property verification of endfinally.
3173
3174 2007-12-11  Rodrigo Kumpera  <rkumpera@novell.com>
3175
3176         * verify.c (in_any_block): check for filter clauses.
3177
3178         * verify.c (is_correct_rethrow): added.
3179
3180         * verify.c (mono_method_verify): property verification of rethrow.
3181
3182         * metadata.h: added MONO_OFFSET_IN_FILTER macro.
3183
3184 2007-12-11  Rodrigo Kumpera  <rkumpera@novell.com>
3185
3186         * verify.c (do_throw): added.
3187
3188         * verify.c (mono_method_verify): property verification of throw
3189
3190 2007-12-11  Zoltan Varga  <vargaz@gmail.com>
3191
3192         * assembly.c (mono_assembly_load_reference): Try an assembly resolve for ref-only
3193         assemblies. Fixes #346425.
3194
3195 2007-12-10  Zoltan Varga  <vargaz@gmail.com>
3196
3197         * reflection.c (mono_reflection_get_token): Call mono_image_create_token () for
3198         FieldBuilders.
3199
3200         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Fix a warning.
3201
3202         * class.c (mono_lookup_dynamic_token_class): Add a 'valid token' argument to
3203         prevent asserts when this is called with a token which might not be valid.
3204
3205         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Call
3206         lookup_dynamic_token_class with valid_token == FALSE.
3207
3208         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.       
3209
3210         * icall.c (ves_icall_System_Reflection_Module_ResolveStringToken): Ditto.
3211
3212         * icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
3213         
3214 2007-12-10  Mark Probst  <mark.probst@gmail.com>
3215
3216         * gc.c: Don't delay threadpool thread finalization unless Mono is
3217         shutting down.
3218
3219 Mon Dec 10 11:06:23 CET 2007 Paolo Molaro <lupus@ximian.com>
3220
3221         * threads.c: turn an assert into a non-fatal warning.
3222
3223 2007-12-09  Robert Jordan  <robertj@gmx.net>
3224
3225         * icall.c (GetVirtualMethod): Add missing argument validation.
3226
3227 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
3228
3229         * verify.c (do_cast): added.
3230
3231         * verify.c (mono_method_verify): property verification of castclass and isinst.
3232
3233
3234 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
3235
3236         * verify.c (mono_type_from_opcode): added opcodes for stelem.X.
3237
3238         * verify.c (do_stelem): added.
3239
3240         * verify.c (mono_method_verify): property verification of stelem.X.
3241
3242 2007-12-07  Mark Probst  <mark.probst@gmail.com>
3243
3244         * class.c, class-internals.h: Introduce an environment variable
3245         (MONO_GENERIC_SHARING) through which the extent of generic code
3246         sharing can be controlled (share all classes, share only corlib
3247         classes, or share nothing).
3248
3249         * object.c: Only create runtime generic context for classes for
3250         which sharing is enabled.
3251
3252 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
3253
3254         * verify.c (do_ldelem): refactor it to work with ldelem.any.
3255
3256         * verify.c (mono_method_verify): property verification of ldelem.any.
3257
3258 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
3259
3260         * verify.c (get_indirect_op_mono_type): renamed to mono_type_from_opcode,
3261         added ldelem.X opcodes.
3262
3263         * verify.c (do_ldelema): fixed possible invalid usage of MonoType.
3264
3265         * verify.c: proper verification of ldelem.X 
3266
3267 2007-12-06  Zoltan Varga  <vargaz@gmail.com>
3268
3269         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Allow interface cctors to be called too.
3270
3271 2007-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
3272
3273         * verify.c (mono_method_verify): null literal requires special handling,
3274         the value pushed on stack need to be flagged as so.
3275
3276         * verify.c (do_ldelema): Verify ldelema properly.
3277
3278 2007-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
3279
3280         * verify.c: Verify ldlen properly.
3281
3282 2007-12-05  Zoltan Varga  <vargaz@gmail.com>
3283
3284         * icall.c (ves_icall_MonoField_GetValueInternal): Check that the field belongs
3285         to the target object's type. Fixes #346160.
3286
3287 2007-12-05  Dick Porter  <dick@ximian.com>
3288
3289         * threadpool.c (socket_io_add_poll): Asynchronous connect() on
3290         Solaris needs the same workaround as BSD-derived systems.  Fixes
3291         bug 323524, patch by Burkhard Linke
3292         <burkhard.linke@CeBiTec.Uni-Bielefeld.DE>
3293
3294 2007-12-04  Gert Driesen  <drieseng@users.sourceforge.net>
3295
3296         * process.c: When ProcessStartInfo.ErrorDialog is true, pass window
3297         handle to use when error dialog is shown; otherwise, update mask
3298         to show no error dialog when an error occurs.
3299
3300 2007-12-03  Zoltan Varga  <vargaz@gmail.com>
3301
3302         * icall.c (ves_icall_MonoField_GetRawConstantValue): New icall.
3303
3304         * class.c (mono_class_get_field_default_value): New helper function to initialize
3305         field->def_type and field->data.
3306
3307 2007-11-30  Zoltan Varga  <vargaz@gmail.com>
3308
3309         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Use the delegate trampoline instead of
3310         the general one.
3311
3312         * object.c (mono_runtime_create_delegate_trampoline): New helper function.
3313
3314         * marshal.c: Avoid depending on delegate->method_info being set.
3315
3316         * object.c (mono_delegate_ctor): Avoid initializing delegate->method_info.
3317         
3318         * object.c (mono_delegate_ctor): Set delegate->method.
3319
3320         * object-internals.h (struct _MonoDelegate): Add 'method' field.
3321
3322         * appdomain.c: Bump corlib version.
3323
3324 2007-11-27  Raja R Harinath  <harinath@gmail.com>
3325
3326         * metadata.c (mono_generic_inst_equal_full): Short-circuit
3327         equality check if we're comparing canonicalized MonoGenericInsts.
3328
3329 2007-11-23  Zoltan Varga  <vargaz@gmail.com>
3330
3331         * class.c (generic_array_methods): Call mono_class_setup_methods () before
3332         accessing class->methods.
3333
3334 2007-11-22  Dick Porter  <dick@ximian.com>
3335
3336         * threads.c: Ensure that the synch_cs is set before trying to use
3337         it.
3338
3339 Thu Nov 22 12:34:04 CET 2007 Paolo Molaro <lupus@ximian.com>
3340
3341         * profiler.c: r89126 broke the statistial profiler, unbreak.
3342
3343 2007-11-22  Martin Baulig  <martin@ximian.com>
3344
3345         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 66.
3346
3347         * mono-debug.c
3348         (mono_debug_debugger_version): Bump to 3.
3349         (mono_debug_init): Hook `mono_debugger_class_loaded_methods_func'
3350         -> mono_debugger_class_initialized().
3351
3352         * mono-debug-debugger.c
3353         (mono_debugger_add_type): Renamed into mono_debugger_class_initialized().
3354
3355         * class.c
3356         (mono_debugger_start_class_init_func): Removed.
3357         (mono_debugger_class_loaded_methods_func): Added.
3358         (mono_class_setup_methods): Call it here.
3359
3360 2007-11-22  Martin Baulig  <martin@ximian.com>
3361
3362         * mono-debug.c
3363         (mono_debug_add_delegate_trampoline): New public method.
3364         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_DELEGATE_TRAMPOLINE'.
3365
3366         * mono-debug.h
3367         (MonoSymbolTable): Added `global_data_table'.
3368         (MonoDebuggerTypeKind): Removed.
3369
3370 2007-11-21  Zoltan Varga  <vargaz@gmail.com>
3371
3372         * marshal.c (mono_marshal_get_generic_array_helper): Skip visibility checks for
3373         these methods.
3374
3375         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3376         
3377 Tue Nov 20 23:10:41 CET 2007 Paolo Molaro <lupus@ximian.com>
3378
3379         * object.c: some fields don't have a valid rva: ignore them (bug #343083).
3380
3381 2007-11-20  Martin Baulig  <martin@ximian.com>
3382
3383         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 65.
3384
3385         * mono-debug-debugger.c
3386         (mono_debugger_insert_method_breakpoint): Moved here from debug-mini.c
3387         (mono_debugger_remove_breakpoint): Likewise.
3388         (mono_debugger_check_breakpoints): Likewise.
3389         (mono_debugger_register_class_init_callback): New public method.
3390         (mono_debugger_remove_class_init_callback): Likewise.
3391         (mono_debugger_add_type): Likewise.
3392
3393         * mono-debug-debugger.h
3394         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_CLASS_INITIALIZED'.
3395
3396 Tue Nov 20 20:54:12 CET 2007 Paolo Molaro <lupus@ximian.com>
3397
3398         * class.c: more interface implementations needed for the
3399         array enumerator (fixes bug #341112).
3400
3401 2007-11-18  Gert Driesen  <drieseng@users.sourceforge.net>
3402
3403         * icall.c: Renamed arguments for ves_icall_System_Enum_ToObject to
3404         fix ParamName of ArgumentNullExceptions.
3405
3406 2007-11-17  Miguel de Icaza  <miguel@novell.com>
3407
3408         * reflection.c (mono_reflection_encode_sighelper): Generate the
3409         modopts and modreqs.   I have a useless test that crashes monodis,
3410         but that shows the code working.
3411
3412 2007-11-17  Zoltan Varga  <vargaz@gmail.com>
3413
3414         * boehm-gc.c (create_allocator): Fix size calculation for the string allocator.
3415         (mono_gc_get_managed_allocator): Enable the string allocator on amd64.
3416
3417 2007-11-15  Dick Porter  <dick@ximian.com>
3418
3419         * threads.c (ves_icall_System_Threading_Thread_Join_internal):
3420         When joining a thread, it's the thread that's calling Join that
3421         gets WaitSleepJoin state not the target.  Fixes the standalone
3422         test case in bug 334740, and hopefully the whole bug too.
3423
3424 2007-11-15  Dick Porter  <dick@ximian.com>
3425
3426         * process.c: Read file version info from the files pointed at by
3427         process modules, not the current process.  Fixes bug 315969.
3428
3429         Use windows typedef names in some places to fix warnings on the
3430         windows build.
3431
3432 2007-11-15  Mark Probst  <mark.probst@gmail.com>
3433
3434         * image.c, metadata-internals.h: Added a generic_class_cache hash
3435         to MonoImage for looking up generic classes when sharing generics.
3436
3437 Thu Nov 15 16:11:30 CET 2007 Paolo Molaro <lupus@ximian.com>
3438
3439         * sgen-gc.c: warning cleanups.
3440
3441 2007-11-15  Zoltan Varga  <vargaz@gmail.com>
3442
3443         * icall.c (ves_icall_Type_GetPropertiesByName): Implement proper hiding of
3444         inherited properties.
3445
3446 2007-11-14  Mark Probst  <mark.probst@gmail.com>
3447
3448         * object.c, class-internals.h: Added more information to the
3449         runtime generic context.
3450
3451 2007-11-13  Zoltan Varga  <vargaz@gmail.com>
3452
3453         * marshal.c (mono_marshal_get_delegate_invoke): Take a delegate as argument
3454         instead of just the target method. Generalize the abstract method handling to
3455         handle any non-static method.
3456
3457         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
3458         mono_marshal_get_delegate_invoke () signature change.
3459
3460 2007-11-13  Mark Probst  <mark.probst@gmail.com>
3461
3462         * class.c, class-internals.h: Made
3463         mono_type_get_basic_type_from_generic () public.  Fixed member
3464         access check for shared generics.
3465
3466         * loader.c: Don't insert field into field cache if it's part of a
3467         non-inflated generic class.
3468
3469         * domain.c, domain-internals.h: The generic sharing context is now
3470         part of the jit info data structure.  Added two accessor
3471         functions.
3472
3473 2007-11-12  Zoltan Varga  <vargaz@gmail.com>
3474
3475         * marshal.c (mono_marshal_get_runtime_invoke): Create a non-shared wrapper for
3476         the array Get/Set/Address methods, since the JIT inlines them.
3477
3478         * metadata-internals.h (MonoImage): Add 'runtime_invoke_direct_cache'.
3479
3480         * image.c (mono_image_close): Free runtime_invoke_direct_cache.
3481         (mono_image_init): Initialize runtime_invoke_direct_cache.      
3482
3483         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
3484         mono_marshal_get_delegate_invoke signature change.
3485
3486         * marshal.c (mono_marshal_get_delegate_invoke): Receive the target_method as
3487         an additional argument. Add support for invoking abstract methods.
3488
3489         * metadata-internals.h (MonoImage): Add 'delegate_abstract_invoke_cache'.
3490
3491         * image.c (mono_image_close): Free delegate_abstract_invoke_cache.      
3492
3493 2007-11-09  Mark Probst  <mark.probst@gmail.com>
3494
3495         * class.c: Do field layout for open generic classes as well.
3496
3497 2007-11-09  Mark Probst  <mark.probst@gmail.com>
3498
3499         * gc.c, gc-internal.h: Don't finalize threadpool threads with
3500         other objects, because the threadpool is still around.  Put them
3501         in a list instead and after finalizing all other objects in the
3502         root domain shut down the thread pool and then finalize the
3503         threads.  Fixes bug #337383.
3504
3505         * threads.c, thread-types.h: New mono_thread_create_internal()
3506         function for marking a thread with the threadpool flag before it
3507         started.  Set synch_cs to NULL after freeing it.
3508
3509         * threadpool.c: Mark threadpool threads before they start.
3510
3511 Thu Nov 8 15:31:21 CET 2007 Paolo Molaro <lupus@ximian.com>
3512
3513         * reflection.h, reflection.c: don't export random functions
3514         and lazy load dbnull and missing objects.
3515
3516 2007-11-07  Jonathan Chambers <joncham@gmail.com>
3517
3518         * class.c: Initialize COM types if COM interfaces
3519         are present (not just COM classes).
3520         
3521         Code is contributed under MIT/X11 license.
3522
3523 2007-11-07  Massimiliano Mantione  <massi@ximian.com>
3524         * reflection.c:
3525         create_dynamic_mono_image: hook module profiler events (dynamic case).
3526         mono_image_basic_init: hook assembly profiler events (dynamic case).
3527
3528 2007-11-07  Massimiliano Mantione  <massi@ximian.com>
3529         * profiler.c:
3530         simple_appdomain_unload: completely terminate the profiler
3531         instead of only processing the statistical samples.
3532         simple_shutdown: make sure this is really called exactly once,
3533         even in multithreaded applications, and always listen to
3534         appdomain events.
3535         * gc.c (mono_domain_finalize): don't call mono_profiler_appdomain_event
3536         here, the "[un]load" functions will do it.
3537         Fixes bugs #333791 and #325261.
3538
3539 2007-11-07  Geoff Norton  <gnorton@novell.com>
3540
3541         * socket-io.c:  Use the configure defines for HAVE_SOCKADDR_IN(6)_SIN_LEN
3542         rather than depend on __APPLE__.
3543
3544 2007-11-07  Mark Probst  <mark.probst@gmail.com>
3545
3546         * icall.c: Safety checks in InitializeArray.  Fixes bug #324535.
3547
3548 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com> 
3549
3550         * object.c: Fix mono_string_to_utf8 to handle NULL values inside the
3551         UTF16 MonoString. Fix the crash from bug #335488
3552
3553 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com>
3554
3555         * marshal.c: Correct (for non-Win32 OS) length != size in 
3556         mono_string_from_bstr. Fix #339530.
3557
3558 2007-11-06  Geoff Norton  <gnorton@novell.com>
3559
3560         * socket-io.c: Apple requires sin(6)_len to be set for getnameinfo
3561         to succeed
3562
3563 2007-11-05  Kornél Pál  <kornelpal@gmail.com>
3564
3565         * process.c: Added run-time GetProcessId API detection for Windows.
3566
3567 2007-11-04  Miguel de Icaza  <miguel@novell.com>
3568
3569         * reflection.c  (mono_param_get_objects): If a parameter has the
3570         attribute [System.Runtime.InteropServices.Optional] we should
3571         set the DefaultValue of the ParameterInfo to be
3572         System.Reflection.Missing instead of DBNull.
3573
3574         See bug #339013.
3575
3576         (mono_get_reflection_missing_object): New method,
3577         returns the System.Reflection.Missing.Value singleton instance.
3578
3579 2007-11-03  Atsushi Enomoto  <atsushi@ximian.com>
3580
3581         * culture-info-table.h : regenerated.
3582
3583 2007-11-02  Jonathan Chambers <joncham@gmail.com>
3584
3585         * icall.c: Use GetEnvironmentStrings on windows
3586         so we are using the same environment block as 
3587         GetEnvironmentVariable/SetEnvironmentVariable. Fixes
3588         #333740.
3589         
3590         Code is contributed under MIT/X11 license.
3591
3592 2007-10-31  Martin Baulig  <martin@ximian.com>
3593
3594         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 64.
3595
3596         * mono-debug-debugger.h
3597         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_TRAMPOLINE'.
3598
3599 2007-10-30  Zoltan Varga  <vargaz@gmail.com>
3600
3601         * reflection.c (mono_custom_attrs_from_class): Add support for dynamic inflated 
3602         classes.
3603
3604 2007-10-30  Atsushi Enomoto  <atsushi@ximian.com>
3605
3606         * culture-info-table.h : regenerated.
3607
3608 2007-10-30  Robert Jordan  <robertj@gmx.net>
3609
3610         * icall-def.h, icall.c:
3611         Add ves_icall_Remoting_RemotingServices_GetVirtualMethod ().
3612
3613         Code is contributed under MIT/X11 license.
3614
3615 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
3616
3617         * class.c (mono_class_setup_vtable): Find the inflated methods in the
3618         inflated class instead of inflating them again.
3619         
3620         * class.c (mono_class_setup_vtable): Inflate the override methods in the 
3621         dynamic case.
3622
3623         * class.c (mono_generic_class_get_class): Set klass->property.count as well.
3624         Call setup_supertypes () after klass->parent is set.
3625         (mono_class_setup_properties): Enable this to work on dynamic generic classes.
3626
3627         * reflection.c (mono_type_get_object): Only return a MonoGenericClass object
3628         for inflated instances of not yet created dynamic generic classes.
3629         (ctorbuilder_to_mono_method): Handle the case when this is called multiple
3630         times from inflated_method.
3631         (methodbuilder_to_mono_method): Ditto.
3632
3633 Mon Oct 29 21:02:53 CET 2007 Paolo Molaro <lupus@ximian.com>
3634
3635         * gc.c: code cleanup and removed old untested option of not creating the
3636         finalizer thread.
3637
3638 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
3639
3640         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Avoid
3641         creating a jump trampoline for dynamic methods.
3642
3643 2007-10-29 Rodrigo Kumpera <rkumpera@novell.com>
3644
3645         * reflection.c (mono_image_create_token): Correctly encode methods and constructors of
3646         generic TypeBuilders when called from another method of the same type (bug #335131).
3647
3648
3649 2007-10-27  Zoltan Varga  <vargaz@gmail.com>
3650
3651         * reflection.c (methodbuilder_to_mono_method): Revert the last change as it
3652         doesn't seem to work perfectly.
3653         
3654         * reflection.c (ctorbuilder_to_mono_method): Handle the case when this is
3655         called multiple times.
3656         (methodbuilder_to_mono_method): Ditto.
3657         (resolve_object): Inflate FieldBuilder's.
3658
3659 Fri Oct 26 19:38:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
3660
3661         * string-icalls.c, string-icalls.h, appdomain.c: patch from
3662         Tyler Larson <mono-devel@tlarson.com> to fix the handling of
3663         RemoveEmptyEntries in the string.Split implementation (bug #322375).
3664
3665 2007-10-26  Dick Porter  <dick@ximian.com>
3666
3667         * appdomain.c (MONO_CORLIB_VERSION): Bump version because of
3668         Thread initialisation changes
3669
3670 2007-10-26 Rodrigo Kumpera <rkumpera@novell.com>
3671
3672         * verify.c: fix compatibility check between arrays and System.Array
3673
3674 2007-10-26  Zoltan Varga  <vargaz@gmail.com>
3675
3676         * reflection.c (mono_reflection_get_custom_attrs_info): Handle MonoGenericClass
3677         too. Fixes #336999.
3678
3679 2007-10-25  Zoltan Varga  <vargaz@gmail.com>
3680
3681         * object.c (mono_value_box): Use typed allocation here.
3682
3683 2007-10-23  Zoltan Varga  <vargaz@gmail.com>
3684
3685         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Create a jump
3686         trampoline instead of compiling the method right away.
3687
3688         * class-internals.h object.c: Add a JIT callback to create a jump trampoline.
3689
3690 2007-10-21  Zoltan Varga  <vargaz@gmail.com>
3691
3692         * class.c (mono_generic_class_get_class): Avoid setting klass->size_inited and
3693         related fields for dynamic classes. Fixes #334493.
3694
3695 2007-10-20  Zoltan Varga  <vargaz@gmail.com>
3696
3697         * class.c (mono_generic_class_get_class): Set klass->field.count as well.
3698         
3699         * class.c (mono_class_layout_fields): Use 1 instead of TRUE for consistency.
3700
3701         * class.c (mono_class_layout_fields): Set size_inited for generic classes as well.
3702         (mono_class_setup_vtable): Obtain overrides for dynamic generic classes correctly.
3703
3704         * class.c (mono_class_setup_methods): Handle dynamic inflated classes correctly.
3705
3706         * reflection.c (create_generic_typespec): Initialize klass->generic_container
3707         if needed.
3708         (reflection_methodbuilder_to_mono_method): Set container->is_method to TRUE.
3709
3710 2007-10-18  Jonathan Chambers <joncham@gmail.com>
3711
3712         * marshal.c: Use correct key when removing item
3713         from ccw_hash.
3714         
3715         Code is contributed under MIT/X11 license.
3716
3717 2007-10-17  William Holmes  <billholmes54@gmail.com>
3718
3719         *marshal.c: Adding a case to marshal booleans to U1
3720
3721         Code is contributed under MIT/X11 license.
3722
3723 2007-10-18  Zoltan Varga  <vargaz@gmail.com>
3724
3725         * class.c (mono_class_from_name): Search the modules compromising dynamic
3726         assemblies. Fixes #331601.
3727
3728 2007-10-16  Zoltan Varga  <vargaz@gmail.com>
3729
3730         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Throw an
3731         exception if the type name contains an assembly component. Fixes #334203.
3732
3733         * reflection.c (mono_reflection_get_type_with_rootimage): Search all the
3734         modules inside dynamic assemblies. Fixes #334200.
3735         
3736         * reflection.c: Set image->public_key and image->public_key_length;
3737
3738         * metadata-internals.h (MonoDynamicImage): Add public_key and public_key_len
3739         fields.
3740
3741         * image.c (mono_image_get_public_key): Handle dynamic assemblies. Fixes #334173.        
3742         
3743 2007-10-16  Mark Probst  <mark.probst@gmail.com>
3744
3745         * metadata.c: Implemented correct comparing of generic classes.
3746         An inflated generic class can be equal to a non-inflated one if it
3747         is inflated with generic type variables as type arguments.  Fixes
3748         bug #333798.
3749
3750 2007-10-15  Dick Porter  <dick@ximian.com>
3751
3752         * monitor.c (mono_monitor_try_enter_internal): Set thread state to
3753         WaitSleepJoin while it is waiting to acquire a lock.  Fixes bug
3754         81646.
3755
3756         * threads.c: Turn the thread synch_lock into a CRITICAL_SECTION,
3757         instead of a monitor lock.  This means that monitor_try_enter and
3758         co can set the thread state safely.
3759         (ves_icall_System_Threading_Thread_Interrupt_internal): Always set
3760         thread_interrupt_requested, so interrupt actually works.
3761
3762         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal,
3763         ves_icall_System_Net_Sockets_Socket_Select_internal): Use thread
3764         state accessor function
3765
3766 2007-10-15  Martin Baulig  <martin@ximian.com>
3767
3768         * mono-debug.h
3769         (MONO_DEBUGGER_VERSION): Bump to 63 to make it impossible to use
3770         the debugger with the current runtime.
3771
3772 Mon Oct 15 10:20:56 CEST 2007 Paolo Molaro <lupus@ximian.com>
3773
3774         * object.c, object-internals.h: added the ability to set a single
3775         trampoline for all the slots in a vtable.
3776
3777 Fri Oct 12 17:50:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
3778
3779         * marshal.c: deal with a possible race condition during multicast
3780         delegate invocation.
3781
3782 Fri Oct 12 13:31:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
3783
3784         * class.c: ensure value type methods don't have the synchronized
3785         flag set.
3786
3787 Fri Oct 12 08:10:59 CEST 2007 Paolo Molaro <lupus@ximian.com>
3788
3789         * string-icalls.c, string-icalls.h: reverted unapproved patch that
3790         breaks the build.
3791
3792 2007-10-11  Joel Reed  <joelwreed@comcast.com>
3793
3794         * string-icalls.c, string-icalls.h: modify System_String_InternalSplit
3795         to take an options parameter so that empty entries can be removed during
3796         the split procedure. Patch from: Tyler Larson <mono-devel@tlarson.com>
3797
3798 Thu Oct 11 20:16:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
3799
3800         * marshal.c: make sure we don't store the signature from a dynamic
3801         method into the runtime invoke cache (bug #327189).
3802
3803 Thu Oct 11 18:22:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
3804
3805         * marshal.c: make sure the wrapper methods are properly initialized.
3806
3807 2007-10-11  Mark Probst  <mark.probst@gmail.com>
3808
3809         * metadata.c, metadata-internals.h: Generalized
3810         mono_type_stack_size() to mono_type_stack_size_internal() which
3811         takes an additional argument specifying whether it allows open
3812         types.
3813
3814 2007-10-10  Rodrigo Kumpera  <rkumpera@novell.com>
3815
3816         * verify.c (do_invoke_method): handle typedbyref params
3817         correctly and check for unverifiable return values.
3818
3819         * verify.c (do_newobj): fix a warning.
3820
3821 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
3822
3823         * verify.c: don't tread typedbyref as allways unverifable,
3824         so uses, like (ld/st)loc.0 are valid. verify for the cases
3825         that it matters, like boxing related operations.
3826
3827 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
3828
3829         * verify.c: add verification of the newobj opcode. verification
3830         of delegate instantation still missing due ldftn and virldftn not
3831         pushing the function type on stack
3832
3833 2007-10-08  Mark Probst  <mark.probst@gmail.com>
3834
3835         * class-internals.h: Runtime generic context data structure
3836         definition.
3837
3838         * object.c: Initialization of runtime generic context at runtime
3839         vtable creation time.
3840
3841 2007-10-08  Massimiliano Mantione  <massi@ximian.com>
3842         * class.c (mono_class_create_from_typedef,
3843         mono_class_from_generic_parameter, mono_ptr_class_get,
3844         mono_fnptr_class_get, mono_bounded_array_class_get)
3845         * domain.c (mono_domain_create, mono_domain_free)
3846         * assembly.c (mono_assembly_load_from_full, mono_assembly_close)
3847         * image.c (do_mono_image_load, mono_image_close):
3848         Hooked up load-unload profiler events.
3849
3850 Mon Oct 8 11:38:04 CEST 2007 Paolo Molaro <lupus@ximian.com>
3851
3852         * domain.c: track statistics about the actual amount of native code
3853         allocated.
3854
3855 Sat Oct 6 10:01:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
3856
3857         * class.c: the valuetype enumerators don't have the additional
3858         supertypes interfaces.
3859
3860 Fri Oct 5 20:33:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
3861
3862         * class.c: need more interfaces setup for the IEnumerator<T>
3863         object created for arrays (tests/ienumerator-interfaces.2.cs).
3864
3865 2007-10-05  Zoltan Varga  <vargaz@gmail.com>
3866
3867         * class.c (mono_ldtoken): Handle methodspec tokens as well. Fixes #331097.
3868
3869 2007-10-05  Alp Toker  <alp@atoker.com>
3870
3871         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
3872         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
3873         #315863.
3874
3875 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
3876
3877         * verify.c (verify_type_compatibility_full): verification of
3878         compatibility improved, validates correctly non-strict checks between
3879         native int and I4 types different than (unsigned)int32.
3880
3881         * verify.c (do_store_indirect): added, do all verification of
3882         ldind.X opcodes. 
3883
3884         * verify.c (get_load_indirect_mono_type): renamed to
3885         get_indirect_op_mono_type, as it now returns the MonoType for 
3886         ldind.X and stind.X opcodes.
3887
3888 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
3889
3890         * reflection.c: Fix the encoding of generic type definition for
3891         TypeBuilders.
3892
3893         * reflection.c (mono_image_typedef_or_ref_full: do the same thing as
3894         mono_image_typedef_or_ref but allows to specify if typespec lookups should
3895         be made. Typespec check is done prior to typeref cache lookup.
3896
3897         * reflection.c (mono_image_typedef_or_ref): now just delegate to
3898         mono_image_typedef_or_ref_full.
3899
3900         * reflection.c (encode_generic_class): encode the generic class
3901         directly instead of calling encode_type.
3902
3903         * reflection.c (encode_type): encode the generic type definition
3904         MonoClass as a generic instantiation.
3905
3906         * reflection.c (create_typespec): cache typespec tokens in
3907         the assembly->typespec cache. Don't create typespec for a generic
3908         instance MonoClass. Create typespec for the generic type defintion.
3909
3910         * reflection.c (create_generic_typespec): encode the generic
3911         class directly instead of calling encode_type.
3912
3913         * reflection.c (mono_image_create_token): encode the generic
3914         type definition not using a typespec for MonoType instances.
3915
3916
3917 2007-10-04  Raja R Harinath  <rharinath@novell.com>
3918
3919         Fix #328812
3920         * class.c (mono_image_init_name_cache): Don't return nested
3921         'protected internal' classes.
3922         (mono_class_from_name_case): Likewise.
3923
3924 2007-10-04  Atsushi Enomoto  <atsushi@ximian.com>
3925
3926         * icall-def.h, icall.c : get_bundled_machine_config() is now the
3927           common function used by both DefaultConfig in System.dll and
3928           InternalConfigurationHost in System.Configuration.dll.
3929
3930 Wed Oct 3 17:26:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
3931
3932         * class.c: automatically add to vectors only a few essential explicit
3933         generic interfaces. The rest of the interfaces that arrays should
3934         provide are currently implicitly added (but still not lazily, see the
3935         design in the discussion of bug#325495 for the details of what is
3936         needed for that). Additionally, implicit interfaces are assigned the
3937         same vtable slot as the explicit interfaces (as they are compatible):
3938         this enables huge memory savings since we don't need to instantiate
3939         as many memthods and as large vtables anymore. Also, Since
3940         GetEnumerator<T> returns an instance of a type that is required to
3941         support a similarly large set of interfaces as arrays, we add
3942         implicit interfaces and interface offset sharing support to those
3943         types, too. This change adds all the required interfaces so that
3944         the anonarray.cs test case in the bug report works (we don't add
3945         all the interfaces to arrays of arrays 3-level deep and more because
3946         of the memory requirements explained in the bug and since they are much
3947         less common: the lazy-loading support will enabled them to work, too).
3948
3949 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
3950
3951         * verify.c (merge_stacks): major clean up, all type compatibility
3952         checks are done by verify_type_compatibility. This fix my earlier lack
3953         of understanding of the CLR type system and merge_stacks no longer looks
3954         scary.
3955
3956         * verify.c: fixed some bad spelling.
3957
3958 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
3959
3960         * verify.c (mono_type_from_stack_slot): added. returns the MonoType for
3961         a given stack slock.
3962         
3963         * verify.c: killed verify_type_compat in favor of verify_type_compatibility and
3964         verify_type_compatibility_full. This removed a near indentical function and fixed
3965         handling of Int32 and IntPtr across all opcodes.
3966
3967 Tue Oct 2 15:24:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
3968
3969         * class.c: only vectors have the additional generic interfaces.
3970
3971 2007-10-01  Jonathan Chambers <joncham@gmail.com>
3972
3973         * mono-config.c: Use g_strcasecmp instead of
3974         strcasecmp like everywhere else to fix
3975         compilation with MSVC.
3976         
3977         Code is contributed under MIT/X11 license.
3978
3979 Mon Oct 1 14:39:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
3980
3981         * object.c, object-internals.h: refactored the IMT code to enable
3982         building a single slot at a time and lazily creating the IMT trampolines
3983         and thunks.
3984
3985 2007-09-29  Zoltan Varga  <vargaz@gmail.com>
3986
3987         * loader.c (inflate_generic_signature): Allocate inflated signatures from the heap.
3988
3989         * metadata.c (mono_metadata_free_inflated_signature): Free the signature itself too.
3990         Fixes #328501.
3991         
3992 2007-09-29  Raja R Harinath  <harinath@gmail.com>
3993
3994         * loader.c (method_from_methodspec): Rearrange to avoid
3995         un-necessary exposition.  Don't assert out if the method's
3996         declaring type is a generic type definition.
3997
3998 2007-09-28  Martin Baulig  <martin@ximian.com>
3999
4000         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 61.
4001
4002 Fri Sep 28 20:15:47 CEST 2007 Paolo Molaro <lupus@ximian.com>
4003
4004         * class-internals.h: optimize field layout of MonoClass to
4005         requires less cachelines at runtime and save a few bytes on 64 bit
4006         systems.
4007
4008 2007-09-28  Jb Evain  <jbevain@novell.com>
4009
4010         * reflection.c: when encoding type names in custom attributes,
4011         if the type is a closed generic type, its generic arguments
4012         have to be serialized as AssemblyQualifiedName, so that when
4013         they are deserialized, it's possible to re-create them properly.
4014         Fixes #329450.
4015
4016
4017 Fri Sep 28 19:19:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
4018
4019         * object.c, class-internals.h: added delegate-creation counter.
4020
4021 Fri Sep 28 18:07:53 CEST 2007 Paolo Molaro <lupus@ximian.com>
4022
4023         * class.c: cleanup of the code that synthetizes interfaces for
4024         arrays in 2.0: saves quit a bit of corlib mempool memory.
4025         Code to fix bug #325495 ifdeffed out for now until the issues
4026         with memory usage and O(n^2) behaviour are fixed.
4027
4028 Fri Sep 28 17:19:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
4029
4030         * marshal.c: when possible, do not duplicate the name of the methods
4031         in the method builder and in the generated MonoMethod.
4032
4033 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
4034         * verify.c: added support for type checking ldind_* opcodes.
4035
4036 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
4037
4038         * class-internals.h (struct _MonoGenericClass): new field is_tb_open
4039         which is used to distinguish the fully open instantiation of a TypeBuilder
4040         with the rest. This temporary hack is required to restore the property that
4041         the fully open instantiation is the same type of the generic type definition.
4042
4043         * class-internals.h (mono_generic_class_is_generic_type_definition):
4044         new function as part of the internal API.
4045
4046         * class.c (inflate_generic_type): return NULL when the generic inst is
4047         fully open. The fully open generic type is now the same as the generic type
4048         definition for non TypeBuilder types.
4049
4050         * class.c (mono_generic_class_get_class): removed assert since it is
4051         no longer valid, gklass->cached_class can point to the generic type definition.
4052
4053         * class.c (mono_generic_class_is_generic_type_definition): new.
4054
4055         * metadata.c (mono_generic_class_hash): added is_tb_open field
4056         to the hash calculation.
4057
4058         * metadata.c (free_generic_class): if the generic class is associated
4059         with the generic type definition, its field will come from the mempool and
4060         must not be freed.
4061
4062         * metadata.c (mono_metadata_is_type_builder_generic_type_definition):
4063         new, this function identifies the corner case of a TypeBuilder fully open
4064         instantiation.
4065
4066         * metadata.c (mono_metadata_lookup_generic_class): use is_tb_open
4067         for lookup. Set gclass->cached_class to be the container class in case of
4068         the fully open instantiation of non TypeBuilder types.
4069
4070         * metadata.c (_mono_metadata_generic_class_equal): use is_tb_open
4071         to compare generic classes.
4072
4073         * reflection.c (method_encode_methodspec): remove assert that
4074         no longer is valid.
4075
4076         * reflection.c (mono_reflection_generic_class_initialize): add
4077         an aditional assert to ensure the proper type is used.
4078
4079 2007-09-26  Rodrigo Kumpera  <rkumpera@novell.com>
4080
4081         * verify.c: disabled all debug spew by default, define MONO_VERIFIER_DEBUG
4082         to enjoy it.
4083
4084 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
4085
4086         * verify.c (push_arg): Fixed support for ldarga
4087         * verify.c (set_stack_value): Removed superfluous parameter, fixed the
4088         MonoType used as first arg in case of instance calls.
4089
4090 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
4091
4092         * verify.c: Support for verifying VAR and MVAR types, 
4093
4094 2007-09-25  Zoltan Varga  <vargaz@gmail.com>
4095
4096         * icall.c (ves_icall_get_property_info): Set the reflected type of the
4097         accessors correctly.
4098
4099 Tue Sep 25 14:56:03 CEST 2007 Paolo Molaro <lupus@ximian.com>
4100
4101         * threads.c: support OSX and other systems in
4102         mono_thread_get_stack_bounds (bug #328026).
4103
4104 2007-09-25  Martin Baulig  <martin@ximian.com>
4105
4106         * mono-debug.h
4107         (MonoDebugVarInfo): Replace `MonoClass *klass' with `MonoType *type'.
4108
4109 2007-09-24  Martin Baulig  <martin@ximian.com>
4110
4111         * mono-debug.h
4112         (MonoDebugClassEntry): Moved the definition of this struct into
4113         mono-debug.c to make it private.
4114
4115         * mono-debug.c
4116         (MonoDebugClassEntry): Removed `symfile_id'; since we now use one
4117         type table per symbol file, we don't need to store the symfile id
4118         any longer.
4119
4120 2007-09-24  Martin Baulig  <martin@ximian.com>
4121
4122         Create one type table per symbol file, since a `MonoClass *' gets
4123         invalid when its image is unloaded.
4124
4125         * mono-debug.h (MonoSymbolTable): Removed `type_table'.
4126         (MonoDebugHandle): Added `type_table'.
4127
4128 Mon Sep 24 17:25:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
4129
4130         * mempool.c, mempool.h: added mono_mempool_new_size () API
4131         to be able to specify a smaller initial size for the pool.
4132         Adjusted the code to slowly increase pool size before using
4133         the previous default size.
4134         * image.c: use a small initial size for image mempools.
4135
4136 2007-09-23  Zoltan Varga  <vargaz@gmail.com>
4137
4138         * marshal.c (emit_marshal_array): Generate valid IL for byref array case.
4139         Fixes ##320990.
4140
4141         * icall.c (ves_icall_System_Reflection_Assembly_get_ManifestModuleInternal): 
4142         Rename this to ves_icall_System_Reflection_Assembly_GetManifestModuleInternal.
4143
4144 2007-09-22  Zoltan Varga  <vargaz@gmail.com>
4145
4146         * metadata.c (mono_type_create_from_typespec): Remove an invalid
4147         free. Fixes #327438.
4148
4149 2007-09-21  Raja R Harinath  <harinath@gmail.com>
4150
4151         * metadata.c (type_in_image) <MONO_TYPE_SZARRAY>: Handle arrays of
4152         generic instantiations, etc.
4153         <MONO_TYPE_ARRAY>: Likewise.
4154
4155 2007-09-21  Martin Baulig  <martin@ximian.com>
4156
4157         * mono-debug.h (MonoSymbolFilePriv, MonoDebugHandlePriv): Removed;
4158         these structs were never defined.
4159         (MonoDebugHandle): Removed the `_priv' field, it was never used.
4160
4161 2007-09-21  Martin Baulig  <martin@ximian.com>
4162
4163         * mono-debug.h (MonoDebugVarInfo): Add `MonoClass *klass'.
4164
4165 Fri Sep 21 14:39:45 CEST 2007 Paolo Molaro <lupus@ximian.com>
4166
4167         * image.c: removed the guid hash tables: we can get the same info
4168         without the additional memory usage hit (partially fixes also bug #327052).
4169
4170 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
4171
4172         * profiler.h, profiler-private.h, profiler.c: add a new profiler
4173         event to handle unloading methods. After the event is called, the
4174         corresponding MonoMethod* must be considered invalid.
4175         * loader.c (mono_free_method): call the new mono_profiler_method_free
4176         event.
4177
4178 2007-09-20  Mark Probst  <mark.probst@gmail.com>
4179
4180         * domain-internals.h: New flag in MonoJitInfo which marks shared
4181         generic methods.  New hash table (shared_generics_hash) in
4182         MonoDomain to keep track of shared generic methods.  Prototypes
4183         for functions to register and lookup shared generic methods.
4184
4185         * domain.c: Support for registering and looking up shared generic
4186         methods via a hash table (shared_generics_hash) in MonoDomain.
4187
4188         * class-internals.h: New exception to signal failure of shared
4189         compilation of a generic method.  New counters for generics
4190         sharing in MonoStats.
4191
4192 Thu Sep 20 16:59:36 CEST 2007 Paolo Molaro <lupus@ximian.com>
4193
4194         * image.c, metadata-internals.h: don't keep a file descriptor open
4195         for loaded assemblies (bug#325988).
4196
4197 2007-09-19  Raja R Harinath  <rharinath@novell.com>
4198
4199         * metadata.c (signature_in_image): New.  Carve out of type_in_image.
4200         (ginst_in_image, gclass_in_image): Simplify.  Change signature to
4201         use the corresponding datatypes.
4202         (type_in_image): Update to changes.
4203         (CleanForImageUserData): Simplify.
4204         (steal_gclass_in_image): Carved out of old 'gclass_in_image'.
4205         Avoid quadratic behaviour in handling the "stolen" list by
4206         separating the filter predicate out, and by prepending the stolen
4207         items rather than appending them.
4208         (steal_ginst_in_image): Likewise.
4209         (mono_metadata_clean_for_image): Update to changes.
4210
4211 2007-09-19  Martin Baulig  <martin@ximian.com>
4212
4213         * domain.c (mono_cleanup): Call mono_debug_cleanup() here.
4214
4215 2007-09-19  Martin Baulig  <martin@ximian.com>
4216
4217         * mono-debug.c (mono_debug_cleanup): Don't call
4218         mono_debugger_cleanup(); this is now called earlier from mini_cleanup().
4219
4220 2007-09-19  Raja R Harinath  <harinath@gmail.com>
4221
4222         Fix crash on 'make run-test' in mcs/errors
4223         * metadata.c (type_in_image): New.  Carve out of ginst_in_image.
4224         Avoid more potential allocations in mono_class_from_mono_type.
4225         (ginst_in_image): Update to changes.
4226         (gclass_in_image): Rearrange slightly.
4227
4228 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
4229
4230         * class.c (mono_class_init): Move the code that sets up class->methods to 
4231         mono_class_setup_methods () for inflated generic classes too. Ditto for properties.
4232
4233         * metadata.c (mono_metadata_get_inflated_signature): New function to return a
4234         canonical instance of an inflated generic signature.
4235         (mono_type_create_from_typespec): Remove an invalid free.
4236
4237         * loader.c (mono_method_get_signature_full): Use mono_metadata_get_inflated_signature.  
4238
4239 2007-09-18  Marek Habersack  <mhabersack@novell.com>
4240
4241         * domain-internals.h: added a declaration of the
4242         mono_assembly_load_full_nosearch internal function.
4243
4244         * assembly.c (mono_assembly_load_with_partial_name): use
4245         mono_try_assembly_resolve return value properly.
4246         (mono_assembly_load_full_nosearch): copied the function body from
4247         mono_assembly_load_full, without the code to invoke assembly
4248         search hooks.
4249         (mono_assembly_load_full): calls the above new function and if the
4250         assembly is not resolved, invokes the search hooks.
4251
4252         * appdomain.c (mono_runtime_init): restore the global postload
4253         assembly search handlers.
4254
4255 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
4256
4257         * class.c (mono_class_init): Make sure class->methods and class->properties
4258         are never NULL in the generics case.
4259
4260         * metadata.c (free_generic_class): Enable this again, skip the dynamic case.
4261
4262 2007-09-17  Zoltan Varga  <vargaz@gmail.com>
4263
4264         * metadata.c (free_generic_class): Disable some code to fix the build.
4265
4266         * domain.c (mono_cleanup): Fix a crash introduced by a previous patch.
4267
4268         * marshal.c (mono_marshal_get_xappdomain_dispatch): Allocate a piece of data
4269         from the image mempool.
4270
4271         * metadata.c (free_generic_class): Free more data from the inflated class.
4272
4273         * class.c (mono_class_from_generic_parameter): Allocate memory from the mempool.
4274
4275         * metadata.c (mono_metadata_parse_generic_param): Allocate memory from the image
4276         mempool.
4277         (mono_type_create_from_typespec): Ditto.
4278
4279         * domain.c (get_runtimes_from_exe): Add an out parameter to return the opened
4280         MonoImage to the caller.
4281         (mono_init_internal): Save the opened image in a global variable.
4282         (mono_cleanup): Close the image opened in get_runtimes_from_exe.
4283
4284         * reflection.c (resolve_object): Fix a leak.
4285
4286         * metadata.c: Fix the freeing of data in the generics caches.
4287         
4288         * metadata.c (free_generic_inst): Comment this out to fix the build.
4289         (free_generic_class): Ditto.
4290
4291         * metadata.c: Free cached generic methods, instantinations and classes when
4292         they are removed from the caches.
4293         (mono_metadata_free_type): Free the type itself.
4294
4295         * class.c: Free the result of mono_class_inflate_generic_type () in a few
4296         places.
4297
4298 Mon Sep 17 16:14:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
4299
4300         * boehm-gc.c: restrict managed allocs to __thread supporting
4301         architectures.
4302
4303 2007-09-16  Zoltan Varga  <vargaz@gmail.com>
4304
4305         * class.c (mono_class_inflate_generic_type): Add a comment describing memory ownership.
4306         (mono_generic_class_get_class): Fix a leak.
4307
4308         * metadata.c (do_mono_metadata_parse_type): Remove an unneccesary call to
4309         mono_metadata_free_type ().
4310         (mono_metadata_inflate_generic_inst): Fix a leak.
4311
4312 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
4313
4314         * mono-debug.c (free_header_data): Fix a leak missed earlier.
4315
4316         * metadata.c (mono_metadata_parse_array_full): Allocate memory from the image
4317         mempool.
4318
4319         * mono-debug.c (mono_debug_close_image): Fix call to 
4320         g_hash_table_remove ().
4321
4322 Fri Sep 14 19:36:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
4323
4324         * icall-def.h: redirect all the string ctor to the managed
4325         CreateString () methods.
4326         * string-icalls.c, string-icalls.h: removed dead code for string
4327         ctors and icalls.
4328
4329 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
4330
4331         * mono-debug.c: Fix memory leaks.
4332
4333 2007-09-14  Jonathan Chambers <joncham@gmail.com>
4334
4335         * threads-types.h: Implement mono_hazard_pointer_set and 
4336         mono_hazard_pointer_clear macros using do/while(0) to fix
4337         compilation with MSVC.
4338         
4339         Code is contributed under MIT/X11 license.
4340
4341 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
4342
4343         * gc.c (ves_icall_System_GCHandle_GetAddrOfPinnedObject): Use a return value of
4344         -2 to communicate to managed code that the handle is not pinned. Fixes #82848.
4345
4346 Fri Sep 14 14:04:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
4347
4348         * icall-def.h, string-icalls.c: get rid of old, no longer used, string
4349         icalls.
4350
4351 Fri Sep 14 11:41:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
4352
4353         * boehm-gc.c, gc-internal.h, object.c: allow strings to be
4354         managed-code allocated as well.
4355
4356 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
4357
4358         * class.c (mono_class_is_assignable_from): Add support for generic variance.
4359
4360 Thu Sep 13 11:55:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
4361
4362         * boehm-gc.c: fixed the build after the AOT changes.
4363
4364 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
4365
4366         * wrapper-types.h: Add an ALLOC wrapper type.
4367
4368         * gc-internals.h boehm-gc.c null-gc.c sgen-gc.c: Add functions needed by AOT to
4369         reference managed allocator methods.
4370
4371 2007-09-12  Marek Safar  <marek.safar@gmail.com>
4372
4373         * icall.c (ves_icall_MonoType_GetGenericArguments): Create an instance
4374         of Type array and not MonoType, a fix suggested by Hari.
4375         
4376 2007-09-12  Jonathan Chambers <joncham@gmail.com>
4377
4378         * domain-internals.h, domain.c : Remove delegate_invoke_impl_with_target_hash
4379         and delegate_invoke_impl_no_target_hash from _MonoDomain struct.
4380         
4381         Code is contributed under MIT/X11 license.
4382
4383 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
4384
4385         * domain.c, object.c, mono-config.c, object-internals.h: Fixed  #82416.
4386
4387 2007-09-12  Marek Habersack  <mhabersack@novell.com>
4388
4389         * image.c (do_mono_image_open): if assembly file fails to open and
4390         MONO_IOMAP is in effect, try to find the path in a
4391         case-insensitive way.
4392
4393         * appdomain.c (mono_runtime_init): do not install postload hooks -
4394         tests show that MS.NET doesn't use anything of that sort to
4395         trigger the AppDomain.AssemblyResolve event.
4396         (mono_try_assembly_resolve): renamed from try_assembly_resolve and
4397         made non-static.
4398         (mono_runtime_init): init portability helpers here.
4399
4400         * assembly.c (mono_assembly_load_with_partial_name): if other   
4401         attempts fail, trigger the AppDomain.AssemblyResolve event handler
4402         to resolve the assembly.
4403
4404         * domain-internals.h: added mono_try_assembly_resolve and marked
4405         it as internal.
4406
4407 2007-09-11  Jb Evain  <jbevain@novell.com>
4408
4409         * object-internals.h (MonoReflectionDynamicMethod): add
4410         a `MonoReflectionType *owner` field. The owner is used
4411         * reflection.c:
4412         (mono_reflection_create_dynamic_method): use the owner of the dynamic
4413         method as the class declaring the dynamic method.
4414         (reflection_methodbuilder_from_dynamic_method): copy the owner of the
4415         dynamic method to the declaring type of the methodbuilder.
4416
4417 2007-09-11  Mark Probst  <mark.probst@gmail.com>
4418
4419         * icall.c (ves_icall_InternalInvoke): Enforce CoreCLR security
4420         rules for calling methods via reflection.
4421
4422 2007-09-11  Zoltan Varga  <vargaz@gmail.com>
4423
4424         * reflection.c (resolve_object): Add support for MonoGenericClass. 
4425         Inflate MonoType's.
4426
4427 Tue Sep 11 16:08:08 CEST 2007 Paolo Molaro <lupus@ximian.com>
4428
4429         * gc-internal.h, boehm-gc.c, null-gc.c, sgen-gc.c: allow the GC to
4430         provide a managed method that does fast allocations without needing
4431         a managed->unmanaged transition. Boehm GC implementation currently
4432         enabled for ptrfree objects on sane architectures.
4433
4434 Tue Sep 11 16:00:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
4435
4436         * marshal.c, marshal.h: exported a couple of useful functions and
4437         added mono_mb_get_label () to easily handle backward branches.
4438
4439 2007-09-10  Zoltan Varga  <vargaz@gmail.com>
4440
4441         * reflection.c (resolve_object): Inflate generic methods. Fixes #82782.
4442
4443 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
4444
4445         * loader.c (find_method): Fixed the regression introduced while
4446         fixing bug #81466.
4447
4448 2007-09-09  Zoltan Varga  <vargaz@gmail.com>
4449
4450         * class.c (mono_lookup_dynamic_token_class): Pass along the context here as
4451         well.
4452         
4453         * class.c loader.c metadata.c object.c class-internals.h object-internals.h
4454         icall.c reflection.c: Pass a MonoGenericContext argument to 
4455         mono_lookup_dynamic_token ().
4456
4457         * reflection.c (resolve_object): Handle GenericTypeParameterBuilder. Fixes
4458         #82744.
4459         
4460 2007-09-09  Robert Jordan  <robertj@gmx.net>
4461
4462         * object.c (mono_class_proxy_vtable): Don't create remoting trampolines
4463         for generic methods.
4464
4465         * object.c (mono_object_get_virtual_method): Handle generic methods.
4466         Fixes bug #78882.
4467
4468         Code is contributed under MIT/X11 license.
4469
4470 Sat Sep 8 18:16:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
4471
4472         * image.c: fix locking in mono_image_load_file_for_image ().
4473
4474 Thu Sep 6 19:48:00 CEST 2007 Paolo Molaro <lupus@ximian.com>
4475
4476         * reflection.c, icall.c, icall-def.h: the methodinfos name field is
4477         used only as a cache: added an icall to fill it.
4478
4479 2007-09-16  Rodrigo Kumpera  <rkumpera@novell.com>
4480
4481         * reflection.h: exposed mono_reflection_free_type_info
4482         * reflection.c (mono_reflection_get_type_internal): type_args is always freed
4483         since mono_reflection_bind_generic_parameters makes a copy of it.
4484         * reflection.c (free_type_info): subinfos should be freed.
4485         * reflection.c (free_type_info): renamed to mono_reflection_free_type_info and 
4486         made non static.
4487         * icall.c (type_from_name and ves_icall_System_Reflection_Assembly_InternalGetType):
4488         replaced explicit cleanup of MonoTypeNameParse struct with a call to mono_reflection_free_type_info,
4489         this fixes #82695 and #81726.
4490    
4491
4492 2007-09-03  Atsushi Enomoto  <atsushi@ximian.com>
4493
4494         * process.h, process.c:  added support for user profile/info in
4495           ProcessStartInfo. For now only Windows works.
4496
4497 Fri Aug 31 17:30:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
4498
4499         * metadata.c: consider the generic arguments when comparing
4500         signatures (bug #82614).
4501
4502 Thu Aug 30 18:34:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
4503
4504         * cil-coff.h, image.c: updated assembly loader to cope with the
4505         PE32+ 64 bit file format.
4506
4507 Thu Aug 30 16:47:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
4508
4509         * assembly.c, class.c, domain.c, loader.c: remove useless
4510         inclusion of cil-coff.h.
4511
4512 2007-08-29  Jonathan Chambers  <joncham@gmail.com>
4513
4514         * marshal.c (cominterop_get_ccw): Walk up interface hierarchy
4515         if interface is marked with CoClassAttribute. 
4516    
4517         Code is contributed under MIT/X11 license.
4518
4519 Wed Aug 29 19:27:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
4520
4521         * sgen-gc.c: ensure no object from the to space is copied again or finalized
4522         if it's seen twice in major collections.
4523
4524 Wed Aug 29 18:46:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
4525
4526         * sgen-gc.c: big objects are not copied to the gray area, but they
4527         need to be considered for scanning, too, if they are brought alive
4528         by an object ready for finalizations or a survived one.
4529
4530 Wed Aug 29 18:43:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
4531
4532         * sgen-gc.c: properly account the number of disappearing links when
4533         they are nullified.
4534
4535 Wed Aug 29 18:37:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
4536
4537         * sgen-gc.c: share the code to scan the registered roots between the
4538         different types of collections.
4539
4540 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
4541
4542         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunModuleConstructor): New icall.
4543
4544 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
4545
4546         * object.c (mono_class_proxy_vtable): Use max_interface_id instead of
4547         class->max_interface_id in a one place. Fixes transparentproxy.exe test on ia64.
4548
4549 2007-08-28  Mark Probst  <mark.probst@gmail.com>
4550
4551         * security-manager.c (mono_security_manager_get_methods):
4552         LinkDemandSecurityException now has 2 arguments instead of 3.
4553
4554 2007-08-27  Zoltan Varga  <vargaz@gmail.com>
4555
4556         * class.c (mono_class_layout_fields): Only do the struct alignment hack on
4557         platforms which need it.
4558
4559 Mon Aug 27 18:29:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
4560
4561         * sgen-gc.c: unregister thread data structures with a pthread_key_t
4562         dtor.
4563
4564 Mon Aug 27 18:27:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
4565
4566         * threads.c: free the thread static data on thread exit.
4567
4568 Mon Aug 27 10:55:54 CEST 2007 Paolo Molaro <lupus@ximian.com>
4569
4570         * class.c: walk the hierarchy to find the generic definition for
4571         a class (fixes runtime part of bug #82498).
4572
4573 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
4574
4575         * assembly.c (mono_assembly_close): Move the closing of the referenced assemblies to
4576         ...
4577
4578         * image.c (mono_image_close): Here. Hopefully fixes #82510.
4579
4580 2007-08-24  Mark Probst  <mark.probst@gmail.com>
4581
4582         * monodiet.c (handle_cattrs): Fixed a custom attr leak.
4583
4584 2007-08-24  Robert Jordan  <robertj@gmx.net>
4585
4586         * appdomain.c: don't perform the ':'->';' substitution on Win32.
4587
4588 2007-08-24  Jb Evain  <jbevain@novell.com>
4589
4590         * class.c (mono_type_get_name_recurse): fix AssemblyQualifiedName
4591         for byref types.
4592
4593 2007-08-24  Mark Probst  <mark.probst@gmail.com>
4594
4595         * threads.c: Make sure a thread gets cleaned up only once.  Fixes
4596         #82286.
4597
4598 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
4599
4600         * assembly.c: Fix a warning.
4601         
4602 2007-08-23  Marek Habersack  <mhabersack@novell.com>
4603
4604         * appdomain.c: parse the <runtime> section looking for the probing
4605         element with the 'privatePath' attribute, which sets additional
4606         directories in which the runtime should look for assemblies.
4607
4608 2007-08-23  Robert Jordan  <robertj@gmx.net>
4609
4610         * marshal.c (Marshal_ReAllocHGlobal) : Fix GlobalReAlloc's flags.
4611         Fixes #82499.
4612
4613 2007-08-23  Martin Baulig  <martin@ximian.com>
4614
4615         * mono-debug.[ch]: Rename mono_debug_init_corlib() into
4616         _mono_debug_init_corlib() and remove it from the header file.
4617
4618 2007-08-23  Martin Baulig  <martin@ximian.com>
4619
4620         * mono-debug-debugger.c
4621         (mono_debugger_unhandled_exception): Ignore `ThreadAbortException';
4622         don't notify the debugger about it.
4623
4624         * mono-debug-debugger.h
4625         (MonoDebuggerEvent): Removed `THREAD_ABORT'.
4626
4627 2007-08-23  Robert Jordan  <robertj@gmx.net>
4628
4629         * icall-def.h, process.*: implemented Get|SetPriorityClass icalls.
4630         Code is contributed under MIT/X11 license.
4631
4632 Wed Aug 22 18:35:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
4633
4634         * sgen-gc.h, sgen-gc.c: abstracted most of the OS-specific code.
4635
4636 2007-08-22  Martin Baulig  <martin@ximian.com>
4637
4638         * mono-debug.c: Store debugging info on a per-domain basis and
4639         free it on domain unload.  Add support for unloading symbol files.
4640
4641         * mono-debug.h
4642         (MonoDebugList): New typedef.
4643         (MonoSymbolTable):
4644         - add `data_tables and `type_table'.
4645         - replace 'symbol_files' and `num_symbol_files' with a
4646           `MonoDebugList *'.
4647         (mono_debug_data_table): Removed.
4648         (mono_debug_list_add): New public function.
4649         (mono_debug_list_remove): New public function.
4650         (mono_debug_init_1): Renamed into mono_debug_init_corlib().
4651         (mono_debug_init_2_memory): Renamed into
4652         mono_debug_open_image_from_memory().
4653         (mono_debug_close_image): New public function.
4654         (mono_debug_domain_create): Likewise.
4655         (mono_debug_domain_unload): Likewise.
4656         (MONO_DEBUGGER_VERSION): Bump to 60.
4657
4658         * mono-debug-debugger.h
4659         (MonoDebuggerEvent):
4660         - remove `RELOAD_SYMTABS' and `METHOD_COMPILED'.
4661         - rename `ADD_MODULE' into `LOAD_MODULE'; add `UNLOAD_MODULE'.
4662         - add `DOMAIN_CREATE' and `DOMAIN_UNLOAD'.
4663         - rename `THREAD_CREATED' and `THREAD_EXITED' into
4664           `GC_THREAD_CREATED' and `GC_THREAD_EXITED'.
4665         - re-add `THREAD_CREATED' and `THREAD_EXITED'; with different
4666           meaning.
4667         (mono_debugger_add_symbol_file): Removed.
4668         (mono_debugger_add_type): Removed.
4669         (mono_debugger_lookup_type): Removed.
4670         (mono_debugger_lookup_assembly): Removed.
4671
4672         * domain.c
4673         (mono_domain_create): Call mono_debug_domain_create().
4674         (mono_init_internal): Call mono_debug_init_corlib().
4675
4676         * assembly.c
4677         (mono_assembly_close): Call mono_debug_close_image().
4678
4679 Wed Aug 22 17:26:02 CEST 2007 Paolo Molaro <lupus@ximian.com>
4680
4681         * sgen-gc.c: use the mono-mmap facilitites instead of hard-coding the
4682         mmap call.
4683
4684 Wed Aug 22 17:17:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
4685
4686         * sgen-gc.c: ensure section->pin_queue_end is initialized
4687         correctly when non pinning objects in the section have been found.
4688
4689 2007-08-22  Marek Habersack  <mhabersack@novell.com>
4690
4691         * appdomain.c (set_domain_search_path): cope with PrivateBinPath
4692         containing a list of directories separated by ':'. MSDN docs say
4693         the directories should be separated with ';'. Part of a bugfix for
4694         bug #81446
4695
4696 2007-08-21  Rodrigo Kumpera  <rkumpera@novell.com>
4697
4698         * class.c (mono_type_retrieve_from_typespec) : fixed the return type
4699         it should MonoType and not MonoClass.
4700
4701 2007-08-21  Atsushi Enomoto  <atsushi@ximian.com>
4702
4703         * culture-info-table.h : regenerated.
4704
4705 2007-08-20  William Holmes  <billholmes54@gmail.com>
4706
4707         *file-io.c: Added ves_icall_System_IO_MonoIO_ReplaceFile
4708          to call ReplaceFile Kernel32 on windows or in io-layer.
4709         *file-io.h: Added deceleration for ves_icall_System_IO_MonoIO_ReplaceFile
4710         *icall-def.h: Register ves_icall_System_IO_MonoIO_ReplaceFile
4711          as an internal call.
4712
4713         Code is contributed under MIT/X11 license.
4714
4715 2007-08-20  Jb Evain  <jbevain@novell.com>
4716
4717         * class-internals: add definitions for MONO_EXCEPTION_METHOD_ACCESS
4718         and MONO_EXCEPTION_FIELD_ACCESS.
4719
4720         * debug-helpers.[c|h]: new mono_field_full_name function.
4721
4722 2007-08-20  Mark Probst  <mark.probst@gmail.com>
4723
4724         * class.c: Removed class_security_level() and moved it to
4725         security-core-clr.c.
4726
4727         * security-core-clr.c, security-core-clr.h: class_security_level()
4728         is now public and renamed to mono_security_core_clr_class_level().
4729         It also looks for security attributes in the classes a class is
4730         nested in.
4731
4732 2007-08-20  Mark Probst  <mark.probst@gmail.com>
4733
4734         * security-core-clr.c, security-core-clr.h: CoreCLR security
4735         utility functions.
4736
4737         * Makefile.am: Added security-core-clr.[ch].
4738
4739         * security-manager.c, security-manager.h: Functions and enum for
4740         setting and getting the security mode.
4741
4742         * class.c: CoreCLR security checks.
4743
4744 Mon Aug 20 12:38:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
4745
4746         * icall-def.h, process.c, process.h: implemented icall to get
4747         user/system processor times.
4748
4749 2007-08-17  Mark Probst  <mark.probst@gmail.com>
4750
4751         * domain.c, threads.c, class-internals.h, domain-internals.h: New
4752         reader-lock-free jit_info_table.
4753
4754 2007-08-17  Zoltan Varga  <vargaz@gmail.com>
4755
4756         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_CUSTOM.
4757
4758         * marshal.c (mono_marshal_type_size): Ditto. Fixes #82465 and #82466.   
4759
4760         * object-internals.h (MonoException): Add missing _data member.
4761
4762 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
4763
4764         * loader.c (find_method, find_method_in_class): Fixed bug #81466,
4765         checking that only methods with matching qname or fqname are picked
4766         from implemented interfaces.
4767
4768 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
4769
4770         * verify.c (do_newarr):added, do type verification of
4771         newarr ops, push the right value on the eval stack.
4772         * verify.c (mono_method_verify): use do_newarr
4773
4774
4775 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
4776
4777         * verify.c (do_ldobj_value, do_unbox_value and do_box_value):
4778         factored the common code into get_boxable_mono_type, which
4779         is now using mono_type_get_full, this fixed byref related tests.
4780
4781 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
4782
4783         * class.c: added mono_type_get_full, this function has the same
4784         behavior of mono_class_get_full but the returned MonoType has
4785         all metadata of the associated token in case of a typespec token.
4786         * class.c: added mono_type_retrieve_from_typespec, used by 
4787         mono_type_get_full to retrieve the token type.
4788         * class.c (mono_class_create_from_typespec): changed to use
4789         mono_type_retrieve_from_typespec.
4790         * class.c (mono_ldtoken): changed to use mono_type_get_full
4791         for MONO_TOKEN_TYPE_(DEF|REF|SPEC).
4792         * class-internals.h: exported mono_type_get_full for internal use.
4793
4794 2007-08-16  Jb Evain  <jbevain@novell.com>
4795
4796         * domain.c (supported_runtimes): add entry for
4797         the 'moonlight' runtime version.
4798
4799 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
4800
4801         * verify.c (mono_method_verify): small typo sliped in.  
4802
4803 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
4804
4805         * verify.c (do_unbox_value): added, do type verification of
4806         unboxing ops
4807         * verify.c (mono_method_verify): use do_unbox_value
4808
4809
4810 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
4811
4812         * verify.c (dump_stack_value): fixed typo, was printing string
4813         instead of object on stack.
4814         * verify.c (do_box_value): moved the byref check up as it leads
4815         to invalid code and should be done earlier.
4816         * verify.c: improved error messages for and ldobj
4817
4818 2007-08-15  William Holmes  <billholmes54@gmail.com>
4819
4820         * marshal.c (emit_marshal_custom): Omit the call to 
4821           marshal_native_to_managed when calling native to managed 
4822           and the argument is specified as an out argument.
4823
4824         Code is contributed under MIT/X11 license.
4825
4826 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
4827
4828         * verify.c: fixed the type checks for generics, function pointers and vectors.
4829         Added type verification for ldobj and ldtoken. The verifier
4830         would segfault if header or signature of a method contained references
4831         to non-existant types.
4832
4833 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
4834
4835         * marshal.c (cominterop_get_ccw): Patch from
4836         Bill Holmes to no walk up interface hierarchy. 
4837         All parent methods should be present in the interface for COM.
4838    
4839         Code is contributed under MIT/X11 license.
4840
4841 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
4842
4843         * marshal.c (emit_marshal_com_interface): Patch from
4844         Bill Holmes to handle COM Interfaces as return values
4845         for native->managed calls.
4846    
4847         Code is contributed under MIT/X11 license.
4848
4849 2007-08-14  Jonathan Chambers  <joncham@gmail.com>
4850
4851         * marshal.c (cominterop_get_idispatch_for_object): Implement
4852         for runtime callable wrappers.
4853    
4854         Code is contributed under MIT/X11 license.
4855
4856 2007-08-13  Rodrigo Kumpera  <rkumpera@novell.com>
4857
4858         * pedump.c (main): changed from mono_init to mono_init_from_assembly
4859         so 2.0 types are accessible
4860
4861
4862 2007-08-13  Miguel de Icaza  <miguel@novell.com>
4863
4864         * domain.c (mono_init_internal): Call mono_assembly_load_friends
4865         once we load mscorlib.   Due to the order in which we initialize,
4866         the mono_assembly_load_full routine that loads mscorlib did not
4867         load friends.   We now load it once we load the
4868         mono_defaults.internals_visible_class class. 
4869
4870         * assembly.c: Expose the mono_load_friend_assemblies method.
4871
4872 2007-08-11  Rodrigo Kumpera  <rkumpera@novell.com>
4873
4874         * verify.c: improved the handling of boxing, better
4875         type checking for unary ops and conversion. Fix bug
4876         regarding managed pointer compatibility checking
4877
4878 2007-08-11  Zoltan Varga  <vargaz@gmail.com>
4879
4880         * icall.c (ves_icall_System_Array_SetGenericValueImpl): New icall.
4881
4882         * threads.c threads-types.h: Export mono_thread_get_stack_bounds.
4883
4884 2007-08-09  Raja R Harinath  <rharinath@novell.com>
4885
4886         * reflection.c (dup_type): Remove.
4887         * class.c (dup_type): Remove.
4888         (mono_metadata_signature_deep_dup): Use 'mono_metadata_type_dup'
4889         instead of the dodgy 'dup_type'.
4890         (inflate_generic_type): Likewise.  Fix the VAR/MVAR cases to
4891         handle the case where 'dup_type' needed the second argument.
4892
4893 2007-08-08  Zoltan Varga  <vargaz@gmail.com>
4894
4895         * domain.c: Fix a warning.
4896
4897 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
4898
4899         * class.c (mono_class_setup_vtable_general): Fixed bug #77127,
4900         checking that methods with the same fqname are not overridden
4901         with a method from an ancestor.
4902
4903 2007-08-07  Zoltan Varga  <vargaz@gmail.com>
4904
4905         * threads.c (free_thread_static_data_helper): Avoid a crash if
4906         thread->static_data is not yet set.
4907
4908 2007-08-07  Jonathan Chambers  <joncham@gmail.com>
4909
4910         * marshal.c: Use correct image when emitting
4911         native wrapper for COM calls.
4912    
4913         Code is contributed under MIT/X11 license.
4914
4915 2007-08-07  Atsushi Enomoto  <atsushi@ximian.com>
4916
4917         * icall-def.h, security.c, security.h :
4918           added icall wrapper to ProtectedMemory.[Unprotect|Protect]Data().
4919
4920 2007-08-07  Martin Baulig  <martin@ximian.com>
4921
4922         * mono-debug-debugger.h
4923         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD'.
4924
4925         * domain.c (mono_domain_free): Call
4926         `mono_debugger_event (MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD)'.
4927
4928 2007-08-06  Rodrigo Kumpera  <rkumpera@novell.com>
4929
4930         * verify.c (check_underflow, check_overflow): error message now returns IL offset
4931         * verify.c (in_same_block): code should test if either offset is inside the clauses
4932         * verify.c (mono_method_verify): push the exception into the eval stack of exception
4933         and filter blocks
4934
4935 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
4936
4937         * image.c (mono_image_close): Fix a leak.
4938
4939         * object.c (mono_runtime_invoke_array): Avoid using alloca.
4940
4941         * icall.c (ves_icall_FieldInfo_SetValueInternal): Ditto.        
4942
4943 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
4944
4945         * domain.c, threads.c, threads-types.h: fix memory retention issue
4946         with thread static variables not being cleared on domain unload.
4947         Reuse thread static slots after domain unload.
4948
4949 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
4950
4951         * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
4952         nullable type.
4953
4954         * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
4955         now done in mono_runtime_invoke_array.
4956
4957         * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the 
4958         receiver is a nullable type.
4959
4960         * class.c (mono_class_is_assignable_from): Handle the case when klass is a 
4961         generic parameter.
4962
4963 2007-08-03  Jonathan Chambers  <joncham@gmail.com>
4964
4965         * marshal.c: Implement COM Objects as return type for 
4966         managed->unmanaged calls. Added Release calls for COM Object
4967         out/return values in managed->unmanaged calls.
4968
4969         Code is contributed under MIT/X11 license.
4970
4971 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
4972
4973         * threads.h, threads-type.h: move the hazard pointer declarations
4974         to the private header.
4975
4976 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
4977
4978         * file-io.c, appdomain.c: memory leak fixes.
4979
4980 2007-08-02  Dick Porter  <dick@ximian.com>
4981
4982         * socket-io.c
4983         (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
4984         SO_REUSEADDR setting into io-layer/sockets.c.
4985
4986 2007-08-01  Zoltan Varga  <vargaz@gmail.com>
4987
4988         * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
4989         from Object when called on a generic parameter. Fixes #82211.
4990
4991 2007-08-01  Dick Porter  <dick@ximian.com>
4992
4993         * file-io.c (convert_share): Test FileShare values bit-by-bit.
4994         Fixes bug 79250 yet again.
4995
4996 2007-07-30  Martin Baulig  <martin@ximian.com>
4997
4998         Merged the `debugger-dublin' branch.
4999
5000         * mono-debug.h
5001         (MonoDebugDataTable): New typedef.
5002         (MonoDebugMethodAddressList): New typedef.
5003         (MonoDebugWrapperData): Removed.
5004         (MonoDebugSymbolTable): Removed `current_data_table',
5005         `current_data_table_size', `current_data_table_offset'.
5006         (MonoDebugDataItemType): Moved into mono-debug.c.
5007         (MonoDebugMethodJitInfo): Remove `address'.
5008         (mono_debug_data_table): New global variable.
5009         (mono_debug_lookup_method_addresses): New public function.
5010         (mono_debug_find_method): Take a `MonoMethod *', not a
5011         `MonoDebugMethodInfo *'.
5012
5013         * mono-debug.c: Drop support for the old symbol tables.
5014
5015 2007-06-28  Martin Baulig  <martin@ximian.com>
5016
5017         * mono-debug.c (mono_debug_debugger_version): New public variable.
5018
5019 2007-07-31  William Holmes  <billholmes54@gmail.com>
5020
5021         * metadata.c Changed mono_type_create_from_typespec to not insert
5022           the type into the hash map until after
5023           do_mono_metadata_parse_type has completed.
5024         Fixes Bug #82194
5025         Code is contributed under MIT/X11 license.
5026
5027 2007-07-31  Zoltan Varga  <vargaz@gmail.com>
5028
5029         * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
5030         generic parameter. Fixes #82211.
5031
5032 2007-07-27  Jb Evain  <jbevain@novell.com>
5033
5034         * pedump.c (dump_metadata, dump_metadata_header): dump
5035         versions contained in the metadata header.
5036
5037 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
5038
5039         * threads.c: register small_id_table with the GC.
5040
5041 2007-07-27  Mark Probst  <mark.probst@gmail.com>
5042
5043         * threads.c, threads.h, class-internals.h, object-internals.h:
5044         Hazard pointers, to be used by lock-free parallel algorithms.
5045
5046 2007-07-26  Dick Porter  <dick@ximian.com>
5047
5048         * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
5049         routine on non-windows platforms, as I've not managed to think of
5050         a non-kludgy way of doing this.  Finishes off bug 78739.
5051
5052 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
5053
5054         * object.c: properly setup interface_bitmap in proxy vtables.
5055
5056 2007-07-25  Marek Habersack  <mhabersack@novell.com>
5057
5058         * appdomain.c (get_shadow_assembly_location): do not use TickCount
5059         to create unique shadow copy target directories, use the domain's
5060         serial number instead. Each domain gets a unique target directory
5061         that way.
5062
5063         * domain.c (mono_domain_create): added code to increment domain
5064         shadow copy serial number and cache the value in the current
5065         domain structure.
5066
5067         * domain-internals.h (struct _MonoDomain): added a new field -
5068         shadow_serial to hold the serial number used in generation of
5069         shadow-copy directories. This is to make sure that the directory
5070         name is unique for each and every domain created. We avoid a race
5071         condition with overriding assemblies already in use by other app
5072         domains.
5073
5074 2007-07-24  Rodrigo Kumpera  <rkumpera@novell.com>
5075
5076         * class.c (mono_bounded_array_class_get): fixed memory leak when 
5077         binding generic parameters.
5078
5079 2007-07-24  Raja R Harinath  <rharinath@novell.com>
5080
5081         * metadata.c (do_mono_metadata_parse_generic_class): Use
5082         mono_metadata_lookup_generic_class.  Don't g_assert on a metadata
5083         error.
5084
5085 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
5086
5087         * loader.c, class-internals.h, reflection.c: removed the per-method
5088         generics hashtable: we use the global one through the call of
5089         mono_class_inflate_generic_method ().
5090
5091 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
5092
5093         * class.c, metadata.c, class-internals.h: introduce yet another
5094         generics global cache for inflated methods (fixes 98% of the perf
5095         issue in bug #81806).
5096
5097 2007-07-23  Raja R Harinath  <rharinath@novell.com>
5098
5099         Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
5100         * metadata.c (mono_metadata_lookup_generic_inst): Kill.
5101         (mono_metadata_get_generic_inst): New.  Given a list of MonoType*,
5102         return a MonoGenericInst containing (a copy) of those types.
5103         (mono_metadata_inflate_generic_inst): Update to changes.
5104         (mono_metadata_parse_generic_inst): Likewise.
5105         (mono_get_shared_generic_inst): Likewise.
5106         * reflection.c (mono_class_bind_generic_parameters): Likewise.
5107         (mono_reflection_bind_generic_method_parameters): Likewise.
5108         * metadata-internals.h: Likewise.
5109         * icall.c (free_generic_context): Kill.
5110         (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
5111
5112         * reflection.c (reflection_methodbuilder_to_mono_method): Use
5113         mono_metadata_type_dup.
5114         * marshal.c (mono_mb_create_method): Likewise.
5115
5116         * metadata.c (mono_metadata_type_dup): Rename from
5117         mono_metadata_type_dup_mp.  Take an optional mempool instead of a
5118         MonoImage.  Handle a few more cases, esp. when no mempool is given.
5119         * marshal.c, metadata-internals.h: Update to changes.
5120
5121 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
5122
5123         * class.c: fixed a small leak for array classes and removed warning.
5124
5125 2007-07-22  Zoltan Varga  <vargaz@gmail.com>
5126
5127         * loader.c (mono_method_get_param_token): Make this work on generic methods.
5128         Return 0x8000000 for return parameters. Fixes #82161.
5129
5130 2007-07-21  Marek Habersack  <grendello@gmail.com>
5131
5132         * appdomain.c (get_shadow_assembly_location): append the current
5133         ticks value to the path. Avoids overwriting the same assemblies by
5134         several threads at the same time.
5135
5136 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
5137         and Raja R Harinath  <rharinath@novell.com>
5138
5139         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
5140         Simplify slightly.
5141         (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
5142         property for testing if a method is a generic method definition.
5143
5144 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
5145
5146         * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
5147
5148 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
5149
5150         * verify.c: used function from private branch, reverted to the one in class.h 
5151
5152 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
5153
5154         * verify.c: a typo slipped in and the code wont compile
5155
5156 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
5157
5158         * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
5159         disabled box instruction as it is doing the wrong thing
5160         improved stack dump messages, now it is easier to debug type related issues
5161
5162
5163 2007-07-19  Juraj Skripsky  <js@hotfeet.ch>
5164
5165         * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak. 
5166
5167 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
5168
5169         * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from 
5170         TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
5171         grouped with class and valuetype. This change will simply 
5172         the code as it should be handled just like unmanaged pointers.
5173
5174 2007-07-19  Mark Probst  <mark.probst@gmail.com>
5175
5176         * class.c (concat_two_strings_with_zero): Fixed a silly bug.
5177
5178 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
5179
5180         * verify.c: several stack merge issues fixed, reference comparisons now
5181         check the type size. strict type check now works correctly.
5182         added more uses of IS_MANAGED_POINTER macro.
5183         fixed issues pointed by running the test suite against .net.
5184         
5185
5186 2007-07-19  Mark Probst  <mark.probst@gmail.com>
5187
5188         * class.c, loader.c, class-internals.h: Removed the
5189         MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
5190         defines.
5191
5192         * icall.c: Better error checking in some internal reflection
5193         methods.
5194
5195 2007-07-18  William Holmes  <billholmes54@gmail.com>
5196
5197         * filewatcher.c : removed unused variable 'filename' in 
5198           ves_icall_System_IO_FSW_SupportsFSW
5199
5200 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
5201
5202         * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
5203         obsolete, removed.
5204
5205 2007-07-15  Zoltan Varga  <vargaz@gmail.com>
5206
5207         * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
5208         
5209         * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
5210
5211 2007-07-14  Zoltan Varga  <vargaz@gmail.com>
5212
5213         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
5214         Implement generics support.
5215         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
5216
5217         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
5218         type_args and method_args arguments.
5219         (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
5220         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
5221         (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
5222
5223 2007-07-13  Rodrigo Kumpera  <rkumpera@novell.com>
5224
5225         * reflection.c: patch from Thong Nguyen to fix atribute resolution.
5226           It adds a rootimage parameter to mono_reflection_get_type_internal,
5227           adds new function mono_reflection_get_type_with_rootimage and use
5228           the rootimage to resolve the types instead of the current image
5229
5230 2007-07-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5231
5232         * culture-info-table.h: Forgot to update after r78304.
5233
5234 2007-07-13  Raja R Harinath  <rharinath@novell.com>
5235
5236         * class.c (mono_class_is_open_constructed_type)
5237         <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
5238
5239 2007-07-12  Rodrigo Kumpera  <rkumpera@novell.com>
5240
5241         * class.c (mono_bounded_array_class_get):  method fails if used with
5242         an incomplete TypeBuilder enum (no basetype field), fixed it by 
5243         avoiding calculating the size for such array as it cannot be instantiated.
5244         Fix bug #82015
5245
5246 2007-07-12  Raja R Harinath  <rharinath@novell.com>
5247
5248         * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
5249         field.
5250         * metadata.c, reflection.c: Update to changes.
5251
5252 2007-07-11  Rodrigo Kumpera  <rkumpera@novell.com>
5253
5254         * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
5255         mono_class_is_valid_enum, they are used to valide a enum when loading.
5256         * reflection.c: used new functions to throw TypeLoadException when and
5257         invalid enum is build with TypeBuilder. Fixes #82018
5258   
5259 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
5260
5261         * object.c: forgot commit of mono_class_setup_methods () to access
5262         iface->methods.
5263         * object-internals.h: added a few more handy fields to
5264         MonoIMTCheckItem.
5265
5266 2007-07-11  Zoltan Varga  <vargaz@gmail.com>
5267
5268         * object.c (build_imt): Call mono_class_setup_methods () before accessing 
5269         iface->methods.
5270
5271 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
5272
5273         * class-internals.h, object-internals.h, object.c: IMT-based
5274         interface invocation core from Massimiliano Mantione
5275         (massi@ximian.com) with a reworked arch-specific interface,
5276         bsearch implementation and a few bugfixes and memory savings by me.
5277
5278 2007-07-10  Rodrigo Kumpera  <rkumpera@novell.com>
5279
5280         * class.c (mono_class_create_from_typedef): mono would segfault if 
5281         an enum did not have a __value field. It now throws a TypeLoadException
5282         for such cases. Fix bug #82022
5283
5284 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
5285
5286         * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
5287
5288 2007-07-09  Mark Probst  <mark.probst@gmail.com>
5289
5290         * class.c (mono_class_init): If a class is already inited but has
5291         an exception_type set, return FALSE, not TRUE.  Fixes: 82050.
5292
5293 2007-07-09  Mark Probst  <mark.probst@gmail.com>
5294
5295         * class.c: Properly handle the case of an unimplemented interface
5296         method.  Fixes: 81673.
5297
5298 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
5299
5300         * class-internals.h, object.c: cleanup patch from massi: use
5301         MonoVTable->interface_bitmap since the vtable interfaces offset array
5302         is going away.
5303
5304 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
5305
5306         * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
5307         GetMDStreamVersion icall instead.
5308
5309 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
5310
5311         * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
5312         not use mono_dl_build_path() with a full library name: makes
5313         fallbacks to libgaim and libfam work.
5314
5315 2007-07-06  William Holmes  <billholmes54@gmail.com>
5316
5317         * assembly.c: Added a continue statement in probe_for_partial_name when
5318          parse_assembly_directory_name fails.  Fixes : 82002
5319
5320 2007-07-06  Rodrigo Kumpera  <rkumpera@novell.com>
5321
5322         * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
5323         and added a verification  for TYPEDBYREF.
5324         * verify.c (verify_stack_type_compatibility): fix handling of byref types,
5325         make native int interchangeable with int32 and some small cleanup and formating.
5326         * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
5327         handle byref of byref.
5328         * verify.c (push_local): handle byref of byref.
5329         * verify.c (do_binop): invalid mix of values is unverifiable
5330         * verify.c (do_invoke_method): fixed the handling of bad params on stack and
5331         added visibility checks
5332         * verify.c (field related method): added visibility checks
5333         * verify.c (do_push_field): cannot take the address of a temporary valuetype field
5334
5335 2007-07-06  Zoltan Varga  <vargaz@gmail.com>
5336
5337         * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
5338         string.
5339
5340 2007-07-05  Zoltan Varga  <vargaz@gmail.com>
5341
5342         * profiler.c (mono_profiler_load): Fix an off-by-one error.
5343
5344         * marshal.c (emit_marshal_string): When returning a string from managed code,
5345         allways make a copy even for unicode strings. Fixes #81990.
5346
5347 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
5348
5349         * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
5350         of byref generic inst types (bug #81997).
5351
5352 2007-07-03  Rodrigo Kumpera  <rkumpera@novell.com>
5353
5354         * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
5355         * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
5356
5357 2007-07-02  Zoltan Varga  <vargaz@gmail.com>
5358
5359         * marshal.c (emit_marshal_string): Add support for unicode strings in
5360         MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
5361
5362 2007-07-02 Rodrigo Kumpera  <rkumpera@novell.com>
5363
5364         * verify.c: field load/store are now verified, missing only access checks now
5365
5366 2007-06-28  Martin Baulig  <martin@ximian.com>
5367
5368         * mono-debug.c (mono_debug_debugger_version): New public variable.
5369
5370 2007-06-24  Gert Driesen  <drieseng@users.sourceforge.net>
5371
5372         * locales.c: When constructing DateTimeFormat or NumberFormat for
5373         MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
5374         MonoCultureInfo contructed from the current locale is always
5375         read-only and has UseUserOverride set to true. All MonoCultureInfo
5376         instances returned for GetCultures have both IsReadOnly and
5377         UseUserOverride set to true. Fixes part of bug #81930.
5378
5379 2007-06-22  Jonathan Chambers  <joncham@gmail.com>
5380
5381        * icall-def.h: Update System.__ComObject icalls
5382        * marshal.c: Avoid managed transition (and object creation)
5383        when looking up COM interface in RCW.
5384        * marshal.h: Ditto.
5385        
5386        Code is contributed under MIT/X11 license.
5387
5388 2007-06-22  Zoltan Varga  <vargaz@gmail.com>
5389
5390         * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
5391         to avoid crashes during assembly unloading.
5392
5393 2007-06-22  Raja R Harinath  <rharinath@novell.com>
5394
5395         Fix MethodInfo.IsGenericMethodDefinition
5396         * reflection.c (mono_reflection_bind_generic_method_parameters):
5397         Rearrange code to ensure we always uses a generic method definition.
5398         * class.c (mono_class_inflate_generic_method_full): Set
5399         'generic_container' field only for generic method definitions.
5400         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
5401         Use presense of 'generic_container' field as indication of being a
5402         generic method definition.
5403
5404 2007-06-21  Zoltan Varga  <vargaz@gmail.com>
5405
5406         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5407
5408         * object-internals.h: Reflect changes in the layout of the managed Delegate
5409         class.
5410         
5411         * object-internals.h reflection.c icall-def.h: Applied patch from Robert
5412         Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
5413         runtime memory used by the dynamic method. Fixes #77146.
5414
5415 2007-06-21  Dick Porter  <dick@ximian.com>
5416
5417         * file-io.h: 
5418         * file-io.c (convert_share): Cope with FileShare.Delete.  Patch
5419         from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
5420         81767.
5421
5422 2007-06-21  Raja R Harinath  <rharinath@novell.com>
5423
5424         * reflection.c (method_encode_methodspec): Add a tripwire.
5425         * class.c (inflate_generic_type): The fully open generic type is
5426         not the same as the generic type definition.
5427
5428 2007-06-21  Martin Baulig  <martin@ximian.com>
5429
5430         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
5431
5432         * mono-debug-debugger.h
5433         (MonoDebuggerBreakpointInfo): Removed.
5434         (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
5435         (mono_debugger_remove_breakpoint): Likewise.
5436         (mono_debugger_breakpoint_callback): Likewise.
5437         (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
5438
5439 2007-06-21  Raja R Harinath  <rharinath@novell.com>
5440
5441         * metadata.c (mono_metadata_lookup_generic_class): The fully open
5442         generic type is not the same as the generic type definition.
5443         * class.c (mono_generic_class_get_class): Likewise.
5444
5445 2007-06-20  Geoff Norton  <gnorton@customerdna.com>
5446
5447         * icall.c: The second argument to 
5448         System.Reflection.MethodBase.GetMethodFromHandleInternalType
5449         is a MonoType not a MonoClass.
5450
5451 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
5452
5453         * verify.c: support for function pointers in the verifier
5454
5455 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
5456
5457         * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
5458
5459 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
5460
5461         * assembly.c: removed Mono.Data.SqliteClient from the list of
5462         forward-compatible assemblies as it breaks the ABI (bug #81899).
5463
5464 2007-06-19  Raja R Harinath  <rharinath@novell.com>
5465
5466         * metadata.c (mono_metadata_lookup_generic_class): Protect cache
5467         lookup/update with the loader lock.
5468         * reflection.c (mono_class_bind_generic_parameters): No need to
5469         protect mono_metadata_lookup_* with the loader lock.
5470         * class.c (inflate_generic_type): Likewise.
5471         
5472         * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
5473         on a generic instantiated type.
5474
5475 2007-06-18  Rodrigo Kumpera <kumpera@gmail.com>
5476
5477         *verify.c: produce meanfull error messages on verification error
5478         *verify.c: fixed some cases of verification errors reported as validation errors
5479         *pedump.c: fixed the error name array, now it shows validation errors properly
5480         *verify.h: fixed the contant that should be used for verification errors
5481
5482 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
5483
5484         * metadata.c, image.c, metadata-internals.h: part of the fixes needed
5485         for bug #77596, 81858 and 80743 (generics data structures on domain
5486         unload).
5487
5488 2007-06-15  Raja R Harinath  <rharinath@novell.com>
5489
5490         Avoid allocating 'MonoGenericContext' on the heap.
5491         * class-internals (_MonoMethodInflated::context): Make field
5492         inline, not a pointer.
5493         * loader.c (method_from_methodspec): Allocate 'new_context' on the
5494         stack.  Use the context embedded within the inflated method as the
5495         hash key, rather than 'new_context'.
5496         * class.c (inflate_generic_context): Simplify.  Return a struct
5497         rather than allocating on the heap.
5498         (mono_class_inflate_generic_method_full): Update to changes.  Now,
5499         doesn't salt away a copy of the context -- simplifying the
5500         lifetime rules of a 'MonoGenericContext *'.
5501         (mono_method_get_context): Return pointer to embedded context.
5502         (setup_generic_array_ifaces): Allocate temporary context on stack.
5503         * reflection.c (inflate_mono_method): Likewise.
5504         (mono_reflection_bind_generic_method_parameters): Likewise.
5505         Use the context embedded within the inflated method as the hash key.
5506
5507         Avoid a source of allocation of 'MonoGenericContext'.
5508         * class-internals.h (_MonoGenericClass::context): Combine 'inst'
5509         and 'cached_context' fields into embedded 'MonoGenericContext' field.
5510         * class.c: Update to changes.
5511         (mono_generic_class_get_context): Simplify drastically.  Now just
5512         returns a pointer to the field.
5513         * metadata-internals.h (mono_metadata_generic_context_hash): Mark
5514         argument as a const pointer.
5515         (mono_metadata_generic_context_equal): Likewise.
5516         * metadata.c, loader.c, icall.c, reflection.c, verify.c:
5517         Update to changes.
5518
5519 2007-06-14  Rodrigo Kumpera  <kumpera@gmail.com>
5520
5521         * verify.c improved the handling of brtrue/brfalse, factored out common code
5522
5523 2007-06-14  Raja R Harinath  <rharinath@novell.com>
5524
5525         Kill MonoGenericMethod.
5526         * class-internals.h (MonoGenericContext::method_inst): Rename from
5527         'gmethod' and convert to a MonoGenericInst.
5528         (MonoGenericMethod): Remove.
5529         * metadata.h (MonoGenericMethod): Note that the name is obsolete.
5530         * loader.c (method_from_methodspec): Update to changes.  Use a
5531         MonoGenericContext as the key to the hashtable.
5532         * metadata.c (mono_metadata_generic_context_equal): Rename from 
5533         'mono_metadata_generic_method_equal' and take MonoGenericContext.
5534         (mono_metadata_generic_context_hash): Likewise from
5535         'mono_metadata_generic_method_hash'.  Change hash function.
5536         (mono_metadata_load_generic_params): Update to changes.
5537         (mono_get_shared_generic_method): Remove.
5538         * metadata-internals.h (mono_get_shared_generic_method): Remove.
5539         * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
5540         (inflate_generic_context): Likewise.
5541         (mono_class_inflate_generic_method_full): Likewise.
5542         (setup_generic_array_ifaces): Likewise.
5543         (mono_class_create_from_typespec): Likewise.
5544         * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
5545         (method_encode_methodspec): Update callsite.
5546         (reflection_methodbuilder_to_mono_method): Update to changes.
5547         (mono_reflection_bind_generic_method_parameters): Likewise.  Use a
5548         MonoGenericContext as the key to the hashtable.
5549         (inflate_mono_method): Update to changes.
5550
5551         * class-internals.h (MonoGenericMethod::container): Remove.
5552         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
5553
5554 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
5555
5556         * profiler-private.h, profiler.c, profiler.h: added API to profile
5557         exception events.
5558
5559 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
5560
5561         * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments 
5562
5563 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
5564
5565         * verify.c: method invocation is now validated, now we verify parameter types on stack.
5566         Fixed overflow and underflow not aborting the verification process.
5567
5568 2007-06-13  Mark Probst  <mark.probst@gmail.com>
5569
5570         * class-internals.h (MonoStats): Added stats entries for dynamic
5571         code allocations.
5572
5573 2007-06-12  Zoltan Varga  <vargaz@gmail.com>
5574
5575         * loader.c (mono_free_method): Free header->locals and header->clauses.
5576
5577         * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
5578         dynamic case.
5579
5580         * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
5581
5582         * class.c (setup_interface_offsets): Allocate memory from the image mempool.
5583
5584 2007-06-12  Raja R Harinath  <rharinath@novell.com>
5585
5586         * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
5587         the tables.
5588
5589 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
5590
5591         *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
5592
5593 2007-06-11  Raja R Harinath  <harinath@gmail.com>
5594
5595         MonoGenericMethod on a diet
5596         * class-internals.h (_MonoMethodInflated::reflection_info): Move
5597         here ...
5598         (_MonoGenericMethod::reflection_info): ... from here.
5599         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
5600         Update to changes.
5601         * reflection.c (inflate_mono_method): Likewise.
5602         (mono_reflection_bind_generic_method_parameters): Likewise.
5603
5604 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
5605
5606         *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
5607         *verify.c: factored long ldarg forms to share code with short forms
5608
5609 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
5610
5611         *verify.c: fixed code formating factored some duplicate code
5612         into a new function
5613
5614         *verify.h: fixed binary incompatibility introduced earlier
5615
5616         *pedump.c: fixed formating
5617
5618 2007-06-11  Raja R Harinath  <harinath@gmail.com>
5619
5620         Fix assertion when disassembling Mono.C5.dll
5621         * loader.c (method_from_methodspec): Avoid inflating a method
5622         twice with the same context.  If the methodref is inflated, use
5623         the declaring method instead.
5624
5625         * class.c (mono_class_from_generic_parameter): Fix case similar to
5626         bug #81830 handled below, but for method containers.
5627
5628 2007-06-10  Raja R Harinath  <harinath@gmail.com>
5629
5630         * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
5631         get_shared_generic_class.  Directly inflate the instance.
5632         [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
5633         (inflate_generic_class): Delete.
5634         (get_shared_generic_class): Delete.  Move setting of
5635         'cached_class' and 'cached_context' ...
5636         * metadata.c (mono_metadata_lookup_generic_class): ... here.
5637
5638         * metadata.c (mono_metadata_lookup_generic_class): Change
5639         signature to take the components of a MonoGenericClass rather than
5640         an allocated MonoGenericClass.  Change semantics to be intern-like.
5641         * reflection.c (mono_class_bind_generic_parameters): Update to
5642         changes.  Make locking region tighter.
5643         * class.c (inflate_generic_class): Update to changes.
5644         (get_shared_generic_class): Likewise.
5645         * metadata-internals.h: Likewise.
5646
5647         * reflection.c (mono_class_bind_generic_parameters): Take and
5648         return a MonoClass*, not a MonoType*.  Add 'is_dynamic' parameter.
5649         (mono_reflection_bind_generic_parameters): Use
5650         'mono_class_bind_generic_parameters' rather than duplicate the code.
5651         * class.c (mono_bounded_array_class_get): Update to changes.
5652         * object-internals.h: Likewise.
5653
5654         * reflection.c (mono_class_bind_generic_parameters): Only support
5655         parameterizing generic type definitions.  Remove support for other
5656         open types.
5657
5658 2007-06-08  Zoltan Varga  <vargaz@gmail.com>
5659
5660         * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
5661
5662         * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
5663         in the dynamic case.
5664
5665 2007-06-08  Gert Driesen  <drieseng@users.sourceforge.net>
5666
5667         * threads.c: When cleaning up thread, reset the Background bit.
5668         Fixes bug #81720.
5669
5670 2007-06-08  Jonathan Chambers  <joncham@gmail.com>
5671
5672        * metadata.c: Move variable declarations to top of scope.
5673        * verify.c: Move variable declarations to top of scope.
5674
5675        Code is contributed under MIT/X11 license.
5676
5677 2007-06-08  Raja R Harinath  <rharinath@novell.com>
5678
5679         * reflection.c (mono_class_bind_generic_parameters): Replace
5680         open-coded loop with mono_metadata_inflate_generic_inst.
5681
5682         * class.c (get_shared_generic_class): Don't call
5683         mono_get_shared_generic_inst.  Use the container's own
5684         'class_inst'.
5685
5686         * metadata.c (mono_metadata_load_generic_params): Move
5687         initialization of 'context' field here from ...
5688         * class.c (mono_class_create_from_typedef): ... here, and ...
5689         * loader.c (mono_get_method_from_token): ... here.
5690
5691         * class.c (get_shared_generic_class): Rename from
5692         mono_get_shared_generic_class and make static.
5693         (mono_get_shared_generic_inst): Move to metadata.c.
5694         * loader.c (mono_get_shared_generic_method): Likewise.
5695         * class-internals.h, metadata-internals.h: Update to changes.
5696
5697         Fix #81830
5698         * class.c (mono_class_from_generic_parameter): Don't assume a
5699         generic container owner exists.  Generic containers from monodis
5700         don't have any.
5701
5702 2007-06-06  Rodrigo Kumpera  <kumpera@gmail.com>
5703
5704         * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
5705         * verify.h: new typedefs to returns the non-verifiable status
5706         * verify.c: initial implementation of generics, stack merging and object compatibility check
5707
5708 2007-06-06  Mark Probst  <mark.probst@gmail.com>
5709
5710         * class.c, image.c, class-internals.h (MonoImage): class_cache is
5711         a MonoInternalHashTable again (fixed bug in internal hash table
5712         code).
5713
5714 2007-06-06  Mark Probst  <mark.probst@gmail.com>
5715
5716         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
5717         MonoInternalHashTable again (fixed bug in internal hash table
5718         code).
5719
5720 2007-06-06  Mark Probst  <mark.probst@gmail.com>
5721
5722         * class.c, image.c, class-internals.h, domain.c,
5723         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
5724         changes.  Have to figure out what makes them break the SWF
5725         regression.
5726
5727 2007-06-04  Mark Probst  <mark.probst@gmail.com>
5728
5729         * class.c, image.c, class-internals.h (MonoImage): class_cache is
5730         a MonoInternalHashTable now.
5731
5732 2007-06-04  Mark Probst  <mark.probst@gmail.com>
5733
5734         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
5735         MonoInternalHashTable now.
5736
5737 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
5738
5739         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
5740         invoke_impl code.
5741
5742         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
5743
5744         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
5745         dependent trampoline.
5746
5747         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5748
5749         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
5750
5751 2007-05-29  Robert Jordan  <robertj@gmx.net>
5752
5753         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
5754
5755 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
5756
5757         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
5758
5759 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
5760
5761        * marshal.c: Fix interface lookup loops for
5762        cominterop_get_com_slot_for_method and 
5763        cominterop_get_method_interface. Only need to lookup
5764        if type is a class, else use interface type method is on.
5765
5766        Code is contributed under MIT/X11 license.
5767
5768 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
5769
5770         * reflection.c: HasSecurity can be present even if no specially 
5771         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
5772         SecurityAttribute). Fix CAS regression tests on buildbot.
5773
5774 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
5775
5776        * appdomain.c: Add configure checks for header files.
5777        * image.c: Add configure checks for header files.
5778        * file-io.c: Add configure checks for header files.
5779        * debug-mono-symfile.c: Add configure checks for header files.
5780        * threadpool.c: Add configure checks for header files.
5781        * console-io.c: Add configure checks for header files.
5782        * profiler.c: Add configure checks for header files.
5783        * rawbuffer.c: Add configure checks for header files.
5784        * icall.c: Add configure checks for header files.
5785        * rand.c: Add configure checks for header files.
5786        * socket-io.c: Add configure checks for header files.
5787
5788        Code is contributed under MIT/X11 license.
5789
5790 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
5791
5792         * reflection.c (mono_custom_attrs_from_builders): Remove the 
5793         assertion as it breaks the build.
5794         
5795         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
5796
5797         * reflection.c (lookup_custom_attr): Make a copy here too.
5798
5799         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
5800         dynamic images.
5801
5802         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
5803         images.
5804
5805         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
5806         info.
5807
5808 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
5809
5810         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
5811         (load_cattr_value): Ditto.
5812
5813 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
5814
5815         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
5816
5817 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
5818
5819         * threads.c: In "start_wrapper", set apartment_state to MTA if
5820         apartment_state is Unknown and we're running on 2.0 profile or
5821         higher.
5822         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
5823         to main method, then set apartment_state to Unknown on 1.0 profile,
5824         and MTA on 2.0 profile.
5825
5826 2007-05-16  Jb Evain  <jb@nurv.fr>
5827
5828         * class-internals.h (MonoDefaults): Add an attribute_class and
5829           customattribute_data_class.
5830         * domain.c (mono_init_internal): Populate them.
5831         * reflection.c: Use them to remove duplicates. Make a vew
5832         MonoClass variables `static'.
5833
5834 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
5835
5836         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
5837         step in implementing IMT, so that all isinst checks now can go
5838         through the bitmap.
5839         This was needed because vtables for TransparentProxy need to look
5840         like the vtable of the "target" class, so they need to point to
5841         its interface bitmap directly.
5842
5843         * object.c: inside "mono_class_create_runtime_vtable" and
5844         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
5845
5846 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
5847
5848         * object-internals.h
5849           culture-info.h : added territory field in MonoCulture and
5850           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
5851         * locales.c : fill territory field above too.
5852         * culture-info-table.h : regenerated.
5853
5854 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
5855
5856         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
5857         Fixes #81599.
5858
5859 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
5860
5861         * object.c: Always initialize apartment, even if 
5862         there is no custom attributes on entry point.
5863         
5864         Code is contributed under MIT/X11 license.
5865
5866 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
5867
5868         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
5869         * metadata.c: If no encoding is set, check for unicode
5870         on class.
5871         
5872         Code is contributed under MIT/X11 license.
5873
5874 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
5875
5876         * threads.c: Handle if mono_thread_current returns NULL 
5877         
5878         Code is contributed under MIT/X11 license.
5879
5880 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
5881
5882         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
5883         in start_wrapper. Added mono_thread_init_apartment_state and
5884         mono_thread_cleanup_apartment_state.
5885         * object.c: Initialize thread apartment state on main thread
5886         by checking for STAThreadAttribute on entry point.
5887         * object-internals.h: Add apartment_state field to MonoThread.
5888         * threads-types.h: Add unmanaged definition of 
5889         System.Threading.ApartmentState, MonoThreadApartmentState.
5890         
5891         Code is contributed under MIT/X11 license.
5892         
5893 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
5894
5895         * class.c: Fix windows build.
5896         * class-internals.h: Fix windows build.
5897         
5898         Code is contributed under MIT/X11 license.
5899
5900 2007-05-08  Robert Jordan  <robertj@gmx.net>
5901
5902         * process.c (CreateProcess_internal):
5903         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
5904         .CreateNoWindow was specified. Fixes #81496.
5905
5906 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
5907
5908         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
5909         step in implementing IMT, replaced it with two compact arrays
5910         (interfaces_packed and interface_offsets_packed) and a bitmap that
5911         is used for isinst checks (interface_bitmap).
5912
5913         * class.c: (compare_interface_ids): compare function to pass to
5914         bsearch when looking for an interface with a given id.
5915         (mono_class_interface_offset): reimplemented using bsearch on
5916         interfaces_packed, getting the offset from interface_offsets_packed.
5917         (print_implemented_interfaces): utility debugging function.
5918         (setup_interface_offsets): reworked to initialize interfaces_packed,
5919         interface_offsets_packed and interface_bitmap.
5920
5921         * object.c: replaced all accesses to "MonoClass.interface_offsets"
5922         with uses of interfaces_packed and interface_offsets_packed.
5923
5924 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
5925
5926         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
5927         mono_class_interface_offset prototype to wrap all accesses to
5928         "MonoClass.interface_offsets".
5929
5930         * class.c: Implemented mono_class_interface_offset, and wrapped all
5931         accesses to "MonoClass.interface_offsets".
5932
5933         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
5934         "MonoClass.interface_offsets".
5935
5936 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
5937
5938         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
5939         GetMethodFromHandle overloads (bug #78637).
5940
5941 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
5942
5943         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
5944         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
5945
5946 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
5947
5948         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
5949         #81498.
5950
5951         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
5952         gracefully.
5953         (mono_custom_attrs_from_index): Ditto.
5954
5955         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
5956         Fixes #81501.
5957
5958 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
5959
5960         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
5961         is now allocated from a mempool.
5962
5963 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
5964
5965         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
5966         caller holds threads_lock, leading to deadlocks. Fixes #81476.
5967
5968 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
5969
5970         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
5971         mono_loader_clear_error () too late. Fixes #81463.
5972
5973 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
5974
5975         * culture-info-table.h : regenerated.
5976
5977 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
5978
5979         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
5980         is missing.
5981
5982 2007-04-25  Dick Porter  <dick@ximian.com>
5983
5984         * Makefile.am: Put the mingw enforced-optimisation back into the
5985         PLATFORM_WIN32 section.
5986
5987 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
5988
5989         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
5990         patch.
5991
5992         * image.c (mono_image_load_module): New API function to load a module reference.
5993
5994         * image.c (load_modules): Load modules lazily. Fixes #80812.
5995
5996         * class.c (mono_class_from_typeref): Use mono_image_load_module.
5997         
5998         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
5999
6000         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
6001         to mono_image_load_module_dynamic.
6002
6003 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
6004
6005         * marshal.c: Fix calling convention for CCW on non-windows
6006         platforms. STDCALL on windows, CDECL everywhere else to work 
6007         with XPCOM and MainWin COM.
6008         
6009         Code is contributed under MIT/X11 license.
6010
6011 2007-04-23  Martin Baulig  <martin@ximian.com>
6012
6013         Fix #80969.
6014
6015         * loader.c
6016         (method_from_memberref): Added `gboolean *used_context' argument.
6017         (mono_get_method_from_token): Likewise.
6018         (mono_get_method_full): Don't insert the method in the cache when
6019         `used_context' is true.
6020
6021 2007-04-23  Raja R Harinath  <rharinath@novell.com>
6022
6023         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
6024
6025         * reflection.c (mono_reflection_bind_generic_parameters): Don't
6026         create new MonoTypes for returned types.
6027         * class.c (mono_generic_class_get_class): Export mono-internal.
6028         * class-internals.h: Update to changes.
6029
6030 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
6031
6032         * threadpool.c, threadpool.h, icall-def.h: patch from
6033         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
6034
6035 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
6036
6037         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
6038         
6039         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
6040
6041         * threads.c (mono_thread_get_stack_bounds): New helper function.
6042
6043         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
6044         Correctly compute stack bounds when attaching. Fixes #81394.
6045
6046 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
6047
6048         * reflection.c: fix handling of doubles in custom attributes
6049         for the arm-fpa format (bug #81368).
6050
6051 2007-04-18  Raja R Harinath  <rharinath@novell.com>
6052
6053         * reflection.c (assembly_add_win32_resources): Mildly relax an
6054         bounds check to let the end pointer point just past the end of the
6055         allocated buffer.  (may fix #81384)
6056
6057 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
6058
6059         * culture-info-table.h : regenerated.
6060
6061 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
6062
6063         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
6064         the thread is aborted early.
6065
6066 2007-04-05  Dick Porter  <dick@ximian.com>
6067
6068         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
6069         FindFirstFile()/FindNextFile() to find entries.  This lets the
6070         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
6071         81038.
6072
6073         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
6074         the parameters of
6075         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
6076
6077 2007-04-04  Martin Baulig  <martin@ximian.com>
6078
6079         * debug-helpers.c
6080         (mono_method_desc_full_match): Add support for nested classes.
6081
6082 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
6083
6084         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
6085
6086 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
6087
6088         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
6089         waiting for too many threads.
6090
6091 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
6092
6093         * environment.c: Fix return value check on uname so we can get the 
6094         executing version on Solaris operating systems.
6095
6096 2007-03-28  Jb Evain  <jbevain@gmail.com>
6097
6098         * class.c (mono_type_get_name_recurse): Complete the
6099         fix for the creation of assembly qualified names for
6100         pointer types. Fixes #81208.
6101
6102 2007-03-27  Dick Porter  <dick@ximian.com>
6103
6104         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
6105         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
6106         changed.
6107
6108         * threads.c
6109         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
6110         the value of ReleaseMutex().
6111
6112 2007-03-27  Dick Porter  <dick@ximian.com>
6113
6114         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
6115         in little-endian order, not network endian, so must be converted
6116         to host endian here.  Fixes bug 80593.
6117
6118 2007-03-22  Jb Evain  <jbevain@gmail.com>
6119
6120         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
6121         qualified names for pointer types. Fixes #81208.
6122
6123 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
6124
6125         * marshal.c: Add support for PreserveSigAttribute. 
6126         
6127         Code is contributed under MIT/X11 license.
6128
6129 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
6130
6131         * process.c: Fix endianness issues. Fixes #81126.
6132
6133         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
6134         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
6135
6136         * image.c (mono_image_lookup_resource): Make this work on big-endian
6137         machines.Change API contract so the caller needs to free the return value.
6138         
6139         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
6140         API change.
6141         
6142 2007-03-14  Martin Baulig  <martin@ximian.com>
6143
6144         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
6145         mono_type_get_desc() as well.
6146
6147 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
6148
6149         * icall.c:  Fix environ access in VS.  
6150         
6151 2007-03-13  Alp Toker  <alp@atoker.com>
6152
6153         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
6154         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
6155         #63841.
6156
6157 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
6158
6159         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
6160         circular references among dynamic methods. Fixes #81091.
6161
6162         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
6163
6164 2007-03-09  Martin Baulig  <martin@ximian.com>
6165
6166         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
6167
6168 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
6169
6170         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
6171         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
6172         
6173         Code is contributed under MIT/X11 license.
6174         
6175 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
6176
6177         * loader.c: Reapply patch for bug #79424.
6178
6179 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
6180
6181         * metadata.c (mono_type_to_unmanaged): Only convert object to
6182         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
6183
6184 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
6185
6186         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
6187         (and incorrectly set) is_reference field from MonoGenericInst.
6188
6189 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
6190
6191         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
6192         a little earlier.
6193
6194         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
6195
6196         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
6197
6198 2007-03-05  Miguel de Icaza  <miguel@novell.com>
6199
6200         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
6201         FileOptions.1 value to mean "temporary", map that to
6202         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
6203
6204         Fixes 80688
6205
6206 2007-03-03  Marek Habersack  <mhabersack@novell.com>
6207
6208         * appdomain.c: implement MS .Net style shadow copying. Copies of
6209         the assemblies are made in a subdirectory of the dynamic base
6210         directory, the assembly names are preserved.
6211         Copy .mdb and .config files along with the assemblies being shadowed.
6212
6213 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
6214
6215         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
6216         (emit_marshal_handleref): Ditto.
6217
6218         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
6219         on Visual C++. Fixes #80671.
6220
6221 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
6222
6223         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
6224         for clone operations.
6225
6226 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
6227
6228         * marshal.c: Fix warnings.
6229
6230 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
6231
6232         * loader.c: allow case-insensitive matching of the dll name
6233         in dllmap handling when prefixed with "i:".
6234
6235 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
6236
6237         * threads.c: Fix #ifdef for dummy_apc function for VS.
6238
6239 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
6240
6241         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
6242
6243 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
6244         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
6245         giving precedence to the methods with a fully qualified name
6246         (InterfaceName.MethodName) when building the interface sections
6247         of the vtable.
6248
6249 2007-02-16  Dick Porter  <dick@ximian.com>
6250
6251         * threadpool.c (append_job): Fix fast-path array handling, so it's
6252         less likely the array will grow exponentially when the load is
6253         heavy.
6254
6255 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
6256
6257         * metadata-internals.h, loader.c: fix dllmap lookup order
6258         for non-function maps, too, and prepare for fallback code.
6259
6260 2007-02-12  Robert Jordan  <robertj@gmx.net>
6261
6262         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
6263         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
6264         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
6265         GlobalFree. Fixes a part of bug #77075.
6266
6267 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
6268
6269         * loader.c: implemented typedef parent in field memberref.
6270
6271 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
6272
6273         * marshal.c: Fix warnings and remember to call Release on
6274         IUnknown of RCW.
6275         
6276         Code is contributed under MIT/X11 license.
6277
6278 2007-02-10  Miguel de Icaza  <miguel@novell.com>
6279
6280         * class-internals.h: Add MonoHandleRef definition, and
6281         handleref_class to mono_defaults. 
6282
6283         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
6284         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
6285
6286         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
6287         (do nothing on this stage)
6288         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
6289         (emit_marshal_handleref): New method, used for argument handling
6290         of HandleRefs. 
6291
6292 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
6293
6294         * class.c (mono_class_setup_parent): Lazily init com types.
6295         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
6296         init com types.
6297         * object.c (mono_remote_class_vtable): Lazily init com types.
6298         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
6299         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
6300         * domain-internals.h: Expose mono_init_com_types.
6301         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
6302         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
6303         Add support for COM Callable Wrapper marshalling.
6304         * marshal.h: Add icall definitions.
6305         * gc.c: Handle freeing of CCWs in finalizer code.
6306         
6307         Code is contributed under MIT/X11 license.
6308
6309 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
6310
6311         * reflection.c: changed all the signature encoding code to use
6312         a variable-sized buffer.
6313
6314 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
6315
6316         * marshal.c: locking fixes: never take the loader lock
6317         or other runtime locks when holding the marshal lock
6318         (fixes bug#80664).
6319
6320 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
6321
6322         * marshal.c: make the delegate function pointer mapping
6323         work for the moving GC.
6324
6325 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
6326
6327         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
6328         for bug #80618.
6329
6330 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
6331
6332         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
6333         gmodule.
6334
6335 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
6336
6337         * threadpool.c: made the code moving-GC safe.
6338
6339 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
6340
6341         * assembly.c, boehm-gc.c, class-internals.h, class.c,
6342         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
6343         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
6344         warning cleanup.
6345         * reflection.c: warning cleanup, some threading and moving GC fixes.
6346
6347 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
6348
6349         * class.c, loader.c: create the needed Set/Get/Address array methods
6350         as well as the .ctors in mono_class_init (), fixes bug #80567.
6351
6352 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
6353
6354         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
6355         we doesn't decrease its alignment. Should fix the sparc build.
6356
6357 2007-01-24  Dick Porter  <dick@ximian.com>
6358
6359         * socket-io.c
6360         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
6361         Create the returned object if we need to ignore an unsupported
6362         socket option.  Fixes a segfault reported by Atsushi.
6363
6364 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
6365
6366         * class.c, object.c: restrict GC-tracked fields to
6367         UIntPtr fields used inside corlib, so we provide better
6368         type info to the GC and also allow broken packing as in
6369         bug #80580.
6370
6371 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
6372
6373         * sgen-gc.c: removed duplicated function.
6374
6375 2007-01-19  Miguel de Icaza  <miguel@novell.com>
6376
6377         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
6378         value that means that the value is not supported, but that we
6379         should not return a failure, but instead report this as a
6380         successful operation.
6381
6382 2007-01-19  Raja R Harinath  <rharinath@novell.com>
6383
6384         Fix tests/bug79956.2.il
6385         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
6386         (mono_generic_class_get_class): If the generic definition in an
6387         enum, copy over other fields related to it.
6388
6389 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
6390
6391         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
6392         genericinst enums (bug #79215).
6393
6394 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
6395         * class.c: Fix bug 80307.
6396
6397 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
6398
6399         * image.c: if the file table is not present, try to load
6400         all the modules, since we don't have info about them
6401         having or not metadata (bug #80517).
6402         * assembly.c: allow mono_assembly_load_references () to
6403         work for netmodules.
6404
6405 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
6406
6407         * image.c, metadata-internals.h, object.c: execute module
6408         cctors when running on the 2 runtime if present (bug #80487).
6409
6410 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
6411
6412         * icall.c: optimized InitializeArray() on bigendian.
6413
6414 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
6415
6416         * icall.c: fix for the broken ARM FPA double format.
6417
6418 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
6419
6420         * icall.c: handle endian issues for r4 and r8 types, too, in
6421         the InitializeArray() icall.
6422
6423 2007-01-15  Miguel de Icaza  <miguel@novell.com>
6424
6425         * loader.c (mono_loader_error_prepare_exception): Clear the error
6426         once we have extracted the information from it, do this before we
6427         call into the JIT's class loading mechanisms.
6428
6429         * object.c (mono_class_create_runtime_vtable): Do not clear the
6430         loader error before calling mono_class_get_exception_for_failure
6431         as the loader error is needed inside
6432         mono_class_get_exception_for_failure to throw the error (thinko).
6433
6434         Fixes #80521
6435         
6436 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
6437
6438         * reflection.c: align fields rva data so it's faster to load at
6439         runtime.
6440
6441 2007-01-12  Raja R Harinath  <rharinath@novell.com>
6442
6443         Prepare to simplify GenericMethod handling.
6444         * class-internals.h (mono_method_get_context): New accessor function.
6445         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
6446         rather than directly accessing '->context' field.
6447
6448         * class-internals.h (_MonoGenericParam.method): Move ...
6449         (_MonoGenericContainer): ... here.  Add into union with klass field.
6450         * class.c, icall.c, loader.c, metadata.c, reflection.c:
6451         Update to changes.
6452
6453 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
6454
6455         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
6456         the wrapper type enum and reduce relocations.
6457
6458 2007-01-12  Raja R Harinath  <rharinath@novell.com>
6459
6460         * reflection.c (inflate_mono_method): Reuse method instantiation
6461         from the generic method, if available.
6462
6463 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
6464
6465         * marshal.c (emit_marshal_variant): Fix conv_arg
6466         type in last commit, based on whether parameter is byref.
6467         
6468 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
6469
6470         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
6471         marshalling.
6472         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
6473         MONO_TYPE_OBJECT back for VARIANT support.
6474
6475 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
6476
6477         * marshal.c, marshal.h, icall-def.h: Implement 
6478         Marshal.ReAllocCoTaskMem.
6479
6480 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
6481
6482         * marshal.c: memory retention fixes: use the proper
6483         image cache for runtime_invoke method lookups.
6484
6485 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
6486
6487         * mempool.c: added code to help debug mempool allocations.
6488
6489 2007-01-11  Dick Porter  <dick@ximian.com>
6490
6491         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
6492         support (experimenting with faking it with IP_MTU_DISCOVER for
6493         systems that don't have IP_DONTFRAGMENT.)
6494         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
6495         icall.
6496
6497         * icall-def.h: new System.Net.Sockets.Disconnect icall.
6498
6499         * socket-io.h: Add new fields to MonoSocketAsyncResult
6500         corresponding to the new ones in Socket.cs.
6501
6502 2007-01-11  Raja R Harinath  <rharinath@novell.com>
6503
6504         Fix IronPython regression mentioned in #80249
6505         * metadata.c (do_mono_metadata_parse_generic_class): Clear
6506         'cached_context' field, since it may have been initialized as a
6507         side-effect of metadata parsing.
6508
6509         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
6510         (_MonoGenericClass.cached_class): Move here and rename from lone
6511         remaining field of ...
6512         (_MonoInflatedGenericClass): ... this.  Remove.
6513         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
6514         to changes.
6515
6516         Fix mcs/tests/test-128.cs regression.
6517         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
6518         2007-01-10 change below.
6519         [MONO_TYPE_OBJECT]: Recurse into array case.
6520
6521 2007-01-11  Raja R Harinath  <harinath@gmail.com>
6522
6523         * class-internals.h (mono_get_inflated_generic_class): Remove.
6524         * class.c (mono_get_inflated_generic_class): Remove.
6525         (mono_generic_class_get_class): Rename from
6526         mono_class_create_generic.
6527         (mono_class_from_mono_type) [GENERICINST]: Use it.
6528         * reflection.c, metadata.c: Update to changes.  Use
6529         'mono_class_from_mono_type'.
6530
6531 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
6532
6533         * reflection.c: use passed type when encoding an array element
6534         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
6535
6536 2007-01-09  Robert Jordan  <robertj@gmx.net>
6537
6538         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
6539         result arguments (someDelegate.EndInvoke (unrelatedAres)).
6540         Fixes bug #80392.
6541
6542 2007-01-09  Raja R Harinath  <rharinath@novell.com>
6543
6544         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
6545
6546         * object.c (set_value): Avoid aliasing between type->data.klass
6547         and type->data.generic_class.
6548
6549         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
6550
6551 2007-01-08  Raja R Harinath  <rharinath@novell.com>
6552
6553         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
6554         between type->data.klass and type->data.generic_class.
6555
6556 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
6557
6558         * marshal.c: In MS.NET, StringBuilder objects are not copied by
6559         value in out parameters.
6560
6561 2007-01-08  Raja R Harinath  <rharinath@novell.com>
6562
6563         Simplify invariant for MonoGenericClass::klass field.
6564         * class.c (mono_class_create_generic): Verify 'klass' is null.
6565         * metadata.c (do_mono_metadata_parse_generic_class): Don't
6566         initialize 'klass' field.
6567
6568 2007-01-05  Raja R Harinath  <rharinath@novell.com>
6569
6570         Ongoing work to avoid redundant data and simplify invariants.
6571         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
6572         'generic_class', and change type to a GenericInst.
6573         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
6574         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
6575
6576 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
6577
6578         * class.c : skip io-layer under PLATFORM_WIN32.
6579
6580 2007-01-03  Tor Lillqvist  <tml@novell.com>
6581
6582         Fix #80305: In a bundled executable, look in the bundled exe
6583         assembly to determine the runtime version. Add the possibility to
6584         bundle also the machine.config file.
6585         
6586         * assembly.c (mono_assembly_open_from_bundle): Make
6587         non-static. Allow being called even if we have no bundled
6588         assemblies, and return NULL right away in that case.
6589
6590         * domain-internals.h: Declare mono_assembly_open_from_bundle()
6591         here.
6592
6593         * domain.c (app_config_parse): Take an assembly exe file name as
6594         parameter instead of a config file name. Check for a bundled
6595         config file for that assembly by calling
6596         mono_config_string_for_assembly_file() (see below) before looking
6597         for one in the file system.
6598         (get_runtimes_from_exe): Corrsponding change to call of
6599         app_config_parse().
6600         (get_runtimes_from_exe): Check for bundled assembly exe file first
6601         by calling mono_assembly_open_from_bundle(). If no bundled
6602         assembly exe file is found, call mono_image_open() as before to
6603         look it up in the file system.
6604
6605         * mono-config.c: Add variable bundled_machinec_onfig.
6606         (mono_config_string_for_assembly_file): New function.
6607         (mono_config_for_assembly): Move code snippet that looks for a
6608         bundled assembly .config file into the above new function. Call
6609         it.
6610         (mono_register_machine_config, mono_get_machine_config): New
6611         functions to set and retrieve
6612
6613         * assembly.h: Declare mono_register_machine_config().
6614
6615         * mono-config.h: Declare mono_get_machine_config() and
6616         mono_config_string_for_assembly_file().
6617
6618         * icall.c: No declaration of environ necessary on Win32. It is
6619         declared (as a macro expanding to a function call) in stdlib.h.
6620         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
6621         New internal mono function. Returns the value of
6622         mono_get_machine_config() as a Mono string.
6623
6624         * icall-def.h: Add get_bundled_machine_config().
6625
6626 2007-01-04  Raja R Harinath  <rharinath@novell.com>
6627
6628         Remove redundant field
6629         * class-internals.h (_MonoGenericContext.container): Remove field.
6630         * loader.c (mono_method_get_signature_full): Don't parse a
6631         "container" for a signature parse when the signature is inflated
6632         immediately.
6633         (method_from_methodspec): Likewise, for a generic_inst.
6634         * class.c, metadata.c, reflection.c: Update to changes.
6635
6636 2006-01-04  Raja R Harinath  <rharinath@novell.com>
6637
6638         * class-internals.h (_MonoGenericClass): Rename 'context' field to
6639         'cached_context', and change semantics -- it starts off NULL, and
6640         is initialized on demand.
6641         * class.c (mono_generic_class_get_context): New accessor to
6642         replace 'context' field accesses.
6643         (mono_class_get_context): New helper.
6644         (*): Update to changes.
6645         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
6646
6647 2007-01-03  Miguel de Icaza  <miguel@novell.com>
6648
6649         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
6650         before the memcpy.   Fixes Marshal2 regression.
6651
6652 2007-01-02  Jb Evain  <jbevain@gmail.com>
6653
6654         * blob.h: add a MONO_TYPE_ENUM definition
6655         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
6656         fix the encoding of arrays of enums in custom attributes.
6657
6658         Fixes #79666.
6659
6660 2007-01-01  Miguel de Icaza  <miguel@novell.com>
6661
6662         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
6663         string is null terminated, but only cut the string short if it
6664         overflows the buffer.   
6665         
6666         (mono_string_to_byvalstr): Also fix this routine.   The code here
6667         was not properly terminating a string (it was only terminated
6668         because of the previous catch-all memset). 
6669
6670         I left the memset, because I do not know if applications expect
6671         the runtime to clear this region. 
6672
6673         Fixes #79944.
6674
6675         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
6676         Clear the error before returning to unmanaged code to prevent the
6677         runtime from being confused later on (fixes  80420).
6678         (ves_icall_type_from_name): Always call mono_loader_clear_error
6679         after parsing a type that could have failed.
6680         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
6681
6682         * loader.c (mono_loader_clear_error): Fix indentation.
6683
6684 2006-12-28  Martin Baulig  <martin@ximian.com>
6685
6686         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
6687
6688 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
6689
6690         * reflection.c: patch from Rolf Bjarne Kvinge to fix
6691         getting a token for an EnumBuilder.
6692
6693 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
6694
6695         * reflection.c: be more careful in case resource generation
6696         fails to create the data array.
6697
6698 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
6699
6700         * sgen-gc.c: write barrier for clone and fix unregister handles.
6701
6702 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
6703
6704         * reflection.c: some fixes needed in the generics code for the moving GC.
6705
6706 2006-12-22  Robert Jordan  <robertj@gmx.net>
6707
6708         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
6709         account. Fixes bug #80299.
6710
6711 2006-12-21  Raja R Harinath  <rharinath@novell.com>
6712
6713         Fix WaitHandle usage in delegates.
6714         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
6715         * object.c (mono_wait_handle_new): Use the property set method to
6716         initialize the handle.
6717         (mono_wait_handle_get_handle): New.
6718         * threadpool.c (mono_async_invoke): Use it.
6719         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
6720         Likewise.
6721         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
6722
6723 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
6724
6725         * marshal.c (emit_marshal): Call emit_marshal_variant and
6726         emit_marshal_com_interface when applicable.
6727         (emit_marshal_variant, emit_marshal_com_interface): Add
6728         methods for this case and remove if's from emit_marshal_object.
6729         
6730 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
6731
6732         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
6733
6734 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
6735
6736         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
6737         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
6738         and GlobalFree on Windows. Remove FIXME.
6739
6740 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
6741
6742         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
6743         implementation for managed objects.
6744
6745 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
6746
6747         * object.c: implemented code to be used for checking
6748         that no reference field overlaps with non-references.
6749
6750 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
6751
6752         * threadpool.c: fix queue code to be compatible with the
6753         moving GC.
6754
6755 2006-12-18  Miguel de Icaza  <miguel@novell.com>
6756
6757         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
6758         in structures by throwing ArgumentNullException.
6759
6760         (emit_marshal_safehandle): Also when they are null parameters.
6761
6762         (emit_marshal_safehandle): Add support for ref
6763         SafeHandles parameters
6764
6765 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
6766
6767         * profiler.c: updated to use the mono-dl API instead of
6768         gmodule.
6769
6770 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
6771
6772         * profiler.c: updated to use the mono-dl dynamic loading
6773         API instead of gmodule.
6774
6775 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
6776
6777         * profiler.c: use readlink, older versions of glib don't have
6778         g_file_read_link ().
6779
6780 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
6781
6782         * profiler.c: try to detect the path to mono if libc fails to provide
6783         a useful name (bug #80286).
6784
6785 2006-12-16  Raja R Harinath  <rharinath@novell.com>
6786
6787         Fix #80242
6788         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
6789         instance, use the generic type definition instead.
6790         (ves_icall_Type_GetNestedTypes): Likewise.
6791         * class.c (mono_class_create_generic): Always set the
6792         nested_classes of a generic instance to NULL, even if the generic
6793         type definition has nested types.
6794
6795 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
6796
6797         * marshal.c (mono_string_from_bstr): Revert previous Windows change
6798         and fix on Linux.
6799         
6800 2006-12-15  Miguel de Icaza  <miguel@novell.com>
6801
6802         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
6803         my arguments were in the wrong order.   I also fixed the Windows
6804         version which seems to have had the same issue.
6805
6806         (mono_free_bstr): On Unix, this is g_free.
6807         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
6808         conversions (for the tests in corlib to pass).
6809
6810 2006-12-14  Miguel de Icaza  <miguel@novell.com>
6811
6812         * marshal.c (emit_ptr_to_object_conv): For now, ignore
6813         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
6814         exception if a ref SafeHandle in a struct has changed).
6815         
6816         (emit_struct_conv): Do not perform layout checks for classes
6817         derived from SafeHandle, as those are specially handled. 
6818
6819         (emit_object_to_ptr_conv): Add support for
6820         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
6821
6822         (emit_marshal_safehandle): Implement conversion of return values
6823         of safehandles (MARSHAL_ACTION_CONV_RESULT).
6824         
6825         * threads.c: WaitHandle now is compiled with two different handles
6826         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
6827         for 2.0.
6828         
6829         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
6830         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
6831         these routines to cope with both kinds of fields.
6832
6833 2006-12-12  Miguel de Icaza  <miguel@novell.com>
6834
6835         * metadata.c (mono_type_to_unmanaged): Handle the case where
6836         type->data.klass is a SafeHandle, and in that case, return the
6837         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
6838         MONO_MARSHAL_CONV_SAFEHANDLE. 
6839
6840 2006-12-11  Miguel de Icaza  <miguel@novell.com>
6841
6842         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
6843         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
6844         calling emit_marshal_object.
6845
6846         (emit_marshal_safehandle): Implement marshalling of
6847         SafeHandle parameters (no ref support yet).
6848
6849         (MarshalAction): Document the defines as I implement
6850         them for SafeHandle.
6851
6852         (emit_marshal_object): indentation police.
6853
6854         * class-internals.h: Define MonoSafeHandle.
6855         Add safehandle_class to MonoDefaults type.
6856
6857         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
6858         list of classes to check for fields. 
6859
6860         * domain.c (mono_init_internal): Add SafeHandle to the list of
6861         mono_defaults loaded.
6862
6863 2006-12-15  Raja R Harinath  <rharinath@novell.com>
6864
6865         Fix #80253
6866         * reflection.c (mono_reflection_bind_generic_parameters): If the
6867         generic type definition is a type builder, ensure that it is fully
6868         initialized before instantiating it.  Kill some dead code.
6869
6870 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
6871
6872         * object.c: clear the loader_error () before loading
6873         more metadata stuff (bug #80258).
6874
6875 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
6876
6877         * icall.c, icall-defs.h: type modifiers icalls for
6878         parameters and properties.
6879
6880 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
6881
6882         * object.c, icall.c: fixed warnings.
6883
6884 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
6885
6886         * marshal.c: fixed a couple of leaks and coding style in a few places.
6887
6888 2006-12-08  Dick Porter  <dick@ximian.com>
6889
6890         * process.c: Cope with NULL ProcessStartInfo arguments on windows
6891         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
6892         80173.
6893
6894 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
6895
6896         * process.c: ProcessStartInfo may have only filename set and
6897         arguments can be NULL.
6898
6899 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
6900
6901         * icall.c: fix leak found by Robert Jordan.
6902
6903 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
6904
6905         * marshal.c, marshal.h: generate managed method to access an element
6906         of a multi-dimensional array.
6907
6908 2006-11-30  Paolo Molaro (lupus@ximian.com)
6909
6910         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
6911
6912 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
6913
6914         * icall.c: back out GetFields () fix until the serialization code is
6915         fixed to not depend on the incorrect behaviour.
6916
6917 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
6918
6919         * profiler.c: provide defaults if none are set.
6920
6921 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
6922
6923         * Makefile.am, attrdefs.h: new public header file with
6924         constants for attributes for use by embedders.
6925
6926 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
6927
6928         * icall.c: GetFields () fix for bug #80064.
6929
6930 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
6931
6932         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
6933         removed long unused icalls.
6934
6935 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
6936   
6937         * marshal.c: 
6938                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
6939                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
6940                 can be generated without a delegate class.
6941                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
6942         
6943         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
6944
6945 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6946
6947         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
6948         #80069.
6949
6950 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
6951
6952         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
6953         icall-def.h: added icalls needed by System.GC.
6954
6955 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
6956
6957         * loader.c: ensure the class in catch clauses is handled
6958         correctly for generics methods (fixes bug#79980).
6959
6960 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
6961
6962         * monitor.h, monitor.c: added mono_locks_dump () function
6963         to help debug deadlocks involving managed locks.
6964
6965 2006-11-13  Dick Porter  <dick@ximian.com>
6966
6967         * file-io.c (get_file_attributes): If the file is a symlink try
6968         and get the stat data for the target, but also add the
6969         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
6970         the specs for the windows symlink support, but will probably have
6971         to be reworked when I have test data from a vista machine.  Fixes
6972         bug 79887.
6973
6974 2006-11-13  Dick Porter  <dick@ximian.com>
6975
6976         * gc.c (mono_domain_finalize): 
6977         * marshal.c (mono_delegate_begin_invoke): 
6978         * threadpool.c (socket_io_init, mono_thread_pool_init)
6979         (mono_thread_pool_finish): 
6980         * monitor.c (mono_monitor_try_enter_internal): 
6981         * threads.c (mono_thread_resume, mono_thread_init)
6982         (mono_thread_suspend_all_other_threads)
6983         (mono_thread_execute_interruption): 
6984         * appdomain.c (mono_domain_unload): Check for NULL error returns
6985         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
6986         75733.
6987
6988 2006-11-11  Miguel de Icaza  <miguel@novell.com>
6989
6990         * process.c
6991         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
6992         Only close the handle if the value of the handle is not
6993         INVALID_HANDLE_VALUE.  This just makes the process a bit more
6994         robust.
6995
6996         Improvement for #75733, so that we do not run into this problem. 
6997
6998         
6999         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
7000         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
7001         internal variables.  Fixes #79462 
7002         
7003
7004 2006-11-09  Dick Porter  <dick@ximian.com>
7005
7006         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
7007         Use poll() not select().  Fixes bug 79397.
7008
7009 2006-11-09  Raja R Harinath  <rharinath@novell.com>
7010
7011         Fix #79872
7012         * assembly.c (mono_assembly_load_from_full): Check that the given
7013         image has an assembly manifest.
7014
7015 2006-11-09  Ankit Jain  <jankit@novell.com>
7016
7017         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
7018         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
7019         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
7020
7021 2006-11-07  Dick Porter  <dick@ximian.com>
7022
7023         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
7024         Put the old resolver behaviour back for pre-2.0 profiles.
7025
7026 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
7027
7028         * threadpool.c: precise GC and locking fixes.
7029
7030 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
7031
7032         * class.c: don't load types that have an explicit unaligned
7033         managed reference. Provide better info in the TypeLoad exception.
7034         Part of the fix for bug #79744.
7035         * object.c: use the correct check for class type load issues.
7036
7037 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
7038
7039         * class.c: enforce alignment of fields with managed references
7040         even when Pack=1 is forced by the user (bug #77788).
7041
7042 2006-11-03  Dick Porter  <dick@ximian.com>
7043
7044         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
7045         If the address reverse lookup fails, return it as the hostname
7046         anyway.  Fixes bug 79721.
7047
7048 2006-11-03  Dick Porter  <dick@ximian.com>
7049
7050         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
7051         Fix build on Windows.
7052
7053 2006-11-02  Dick Porter  <dick@ximian.com>
7054
7055         * icall-def.h: 
7056         * object-internals.h: 
7057         * exception.c (mono_get_exception_thread_interrupted): 
7058         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
7059         Fixes bug 74525.
7060
7061         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
7062         Check for pending Thread.Interrupt.
7063
7064 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
7065         * loader.c: Fixed bug 79684.
7066
7067 2006-10-27  Dick Porter  <dick@ximian.com>
7068
7069         * file-io.c (get_file_attributes): Force symlinks to directories
7070         to be returned as a regular file.  Fixes bug 79733.
7071 2006-10-26  Dick Porter  <dick@ximian.com>
7072
7073         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
7074         CreateFile to open a directory then we need to set the
7075         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
7076
7077 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
7078
7079         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
7080         friends.
7081
7082 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
7083
7084         * sgengc.c: small cleanup of timer code.
7085
7086 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
7087
7088         * sgen-gc.c: fix some warnings and start adding support for
7089         complete object removal on domain unload.
7090
7091 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
7092
7093         * assembly.c: build_assembly_name should not consider a version
7094         number without build or revision number invalid. Fixes bug #79715.
7095
7096 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
7097
7098         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
7099         call kernel32 function OutputDebugString directly.
7100         
7101         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
7102         
7103 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
7104
7105         * reflection.c: small cleanup, using a function to insert a MonoString
7106         in the string heap.
7107
7108 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
7109
7110         * reflection.c: moving GC fixes.
7111
7112 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
7113
7114         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
7115         all the objects with finalizers belonging to an unloading appdomain.
7116
7117 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
7118
7119         * sgen-gc.c: added ability to allocate even when the nursery is fully
7120         pinned and fixed a couple of bugs.
7121
7122 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
7123
7124         * threads.h: Revert the last change for now.
7125
7126         * threads.h (mono_thread_get_pending_exception): Rename this to
7127         mono_thread_get_undeniable_exception ().
7128
7129 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
7130
7131         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
7132         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
7133         when fname does not refer to valid assembly. This result in a more
7134         meaningful error message.
7135         * exception.c: added mono_get_exception_bad_image_format2 which 
7136         constructs a BadImageFormatException using the ctor taking a custom
7137         message and the file name. Passing in a NULL msg results in a default
7138         message.
7139         * exception.h: define mono_get_exception_bad_image_format2 function.
7140         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
7141         when file name pointed to an invalid IL image. Use 
7142         mono_get_exception_file_not_found2 to construct FileNotFoundException,
7143         as this results in a more meaningful error message.
7144
7145 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
7146
7147         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
7148         #79465.
7149
7150 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
7151
7152         * metadata.c (mono_type_size): Change the align parameter to guint32 for
7153         consistency with the other _size functions.
7154         (mono_type_stack_size): Ditto.
7155
7156         * class.c object.c icall.c: Fix warnings caused by the above change.
7157
7158         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
7159
7160         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
7161
7162         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
7163
7164 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
7165
7166         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
7167         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
7168         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
7169         threadpool.h, threads-types.h: mark more internal functions.
7170
7171 2006-10-11  Dick Porter  <dick@ximian.com>
7172
7173         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
7174         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
7175         reproduce the bug even before applying the fix.)
7176
7177 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
7178
7179         * reflection.c: allow retrieving attributes for arguments in generic
7180         methods (bug #79241).
7181
7182 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
7183
7184         * debug-mono-symfile.c: properly check fopen () result (found by
7185         coverity).
7186
7187 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
7188
7189         * reflection.c: make error message clearer and fixed two
7190         issuelets found by Coverity.
7191
7192 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
7193
7194         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
7195
7196 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
7197
7198         * object-internals.h, gc-internal.h, profiler-private.h:
7199         mark internal functions.
7200
7201 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
7202
7203         * reflection.c: put data in the text section.
7204         * icall.c: recognize more types in type_from_typename ().
7205         * process.c, marshal.c: added some GC FIXMEs.
7206
7207 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
7208
7209         * loader.c: check for NULL before initializing.
7210
7211 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
7212
7213         * gc.c (finalizer_thread): Use a non-alertable wait here.
7214
7215         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
7216         until the correct solution is found.
7217
7218 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
7219
7220         * reflection.c (mono_module_get_object): Avoid an assert when operating on
7221         modules with no metadata. Fixes #79596.
7222
7223         * image.c (load_metadata_ptrs): Put back the error message when
7224         the #- heap is encountered since the support is not complete yet.
7225
7226 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
7227
7228         * gc.c: do not allow the user to SuppressFinalize () a
7229         delegate because it would leak the trampoline if present.
7230
7231 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
7232
7233         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
7234         PropertyPtr table.
7235
7236 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
7237
7238         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
7239
7240         * metadata.c (mono_metadata_get_param_attrs): Ditto.
7241
7242         * row-indexes.h: Add definitions for *Ptr tables.
7243
7244         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
7245
7246         * metadata.c (mono_metadata_translate_token_index): New helper function to
7247         translate table indexes used in uncompressed metadata.
7248         (mono_metadata_decode_table_row): Ditto.
7249         (mono_metadata_decode_table_row_col): Ditto.
7250
7251         * metadata.c: Add table schema for *Ptr tables.
7252
7253         * class.c loader.c: Use the new helper function to access the affected metadata
7254         tables.
7255         
7256         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
7257         #38532.
7258         
7259 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
7260
7261         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
7262         sequences which can be unbounded in size. Fixes #79583.
7263
7264 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
7265
7266         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
7267         static initialization.
7268
7269         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
7270
7271         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
7272
7273         * domain.c (mono_domain_free): Free up type_init_exception_hash.
7274
7275         * object.c (mono_runtime_class_init): Implement correct semantics when a static
7276         ctor fails, i.e. throw the same exception on subsequent accesses.
7277         
7278 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
7279
7280         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
7281         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
7282         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
7283         Handle marshalling of interfaces and VARIANTs contained in structs.
7284         
7285         Code is contributed under MIT/X11 license.
7286         
7287 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
7288
7289         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
7290         
7291         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
7292         mempool.
7293
7294 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7295
7296         * console-io.c: ignore previous SIGINT handler.
7297
7298 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
7299
7300         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
7301         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
7302         #79460, #79461, #79485.
7303
7304         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
7305
7306         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
7307         #79217.
7308
7309 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
7310
7311         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
7312         could be generated from it.
7313
7314 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
7315
7316         * rand.c: fix read loop to correctly handle EINTR.
7317
7318 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
7319
7320         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
7321         internal calls are defined to keep methods closer to the declaring
7322         type and allow a significant reduction in runtime relocations and
7323         memory usage.
7324
7325 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
7326
7327         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
7328         exception message to have FileNotFoundException use the default
7329         assembly load error message. Fixes bug #79426.
7330         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
7331
7332 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7333
7334         * threadpool.c: (start_thread_or_queue) use the root domain when
7335         creating the thread instead of the async object one.
7336
7337 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
7338
7339         * class.c, object.c, class-internals.h, reflection.c:
7340         for arrays, store element_size inside MonoClass (speedup
7341         for array object creation).
7342
7343 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
7344
7345         * icall.c: fixed CodeBase to use the file name and not the module
7346         name (bug #79365).
7347
7348 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
7349
7350         * mono-debug.c, mono-debug.h: export find_method as
7351         mono_debug_find_method ().
7352
7353 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
7354
7355         * debug-helpers.c, class-internals.h: added a few functions useful
7356         when debugging under gdb.
7357
7358 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7359
7360         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
7361         characters that need special handling.
7362
7363 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
7364
7365         * mono-config.c: make the os/cpu specification more flexible,
7366         allowing lists and negation.
7367
7368 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
7369
7370         * marshal.c: COM Interop fixes. Handle case where method->klass.
7371         is interface. Handle BSTR/MonoString when null. Use CDECL as 
7372         calling convention on non-windows platforms. This is for
7373         compatibility with XPCOM and MainWin COM.
7374         
7375         Code is contributed under MIT/X11 license.
7376         
7377
7378 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
7379
7380         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
7381         correctly. Fixes #79217.
7382
7383         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
7384
7385 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
7386
7387         * mono-config.c: allow both an os and cpu attribute for dllmap
7388         and dllentry elemnets to enable a single config file to be used
7389         for multiple architectures.
7390
7391 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
7392
7393         * loader.c: MonoLoaderError was cleared too soon on load failure.
7394         Fixes bug #79424.
7395
7396 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
7397
7398         * icall.c: use the defining class vtable when accessing a
7399         static field, not a pobblibly derived class.
7400
7401 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
7402
7403         * icall.c string-icalls.c: Remove references to unicode.h.
7404
7405         * unicode.h unicode.c Makefile.am: Remove these unused source files.
7406
7407         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
7408
7409         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
7410         indicating the image where custom marshaller types should be looked up.
7411         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
7412         custom marshallers, instead of corlib. Fixes #79425.
7413
7414 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
7415
7416         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
7417
7418 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
7419
7420         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
7421         Implement Environment.ProcessorCount.
7422         
7423         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
7424         Implement Environment.ProcessorCount.
7425         
7426         * icall.c: 
7427         Add Environment.ProcessorCount icall.
7428         
7429         Patch by Jason McFall.
7430
7431 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7432
7433         * assembly.c: don't append .exe/.dll when the filename already contains
7434         one of those extensions.
7435
7436 2006-09-12  Martin Baulig  <martin@ximian.com>
7437
7438         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
7439         to array interfaces.
7440
7441 2006-09-11  Martin Baulig  <martin@ximian.com>
7442
7443         * reflection.c (mono_image_build_metadata): Create the
7444         MethodImpl's after emitting all types and methods, so we don't
7445         need another fixup pass for them.
7446
7447 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
7448
7449         * class.c (mono_class_from_name_case): Fix regression introduced by the last
7450         change.
7451
7452 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
7453
7454         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
7455         unload.
7456
7457 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
7458
7459         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
7460         args is not set. Fixes #78926.
7461
7462 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
7463
7464         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
7465
7466         * image.c (load_class_names): Move this to class.c, and rename it to 
7467         'mono_image_init_name_cache'.
7468         (load_modules): Fix a warning.
7469
7470         * class.c icall.c image.c: Initialize image->name_cache lazily.
7471
7472         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
7473         on its name using information in the AOT file.
7474
7475         * class.c (mono_class_from_name): Use the new hook function.
7476
7477 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
7478
7479         * reflection.c (mono_param_get_objects): Handle enum default parameter values
7480         correctly.
7481
7482         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
7483         Fixes #79289.
7484         
7485 2006-09-06  Martin Baulig  <martin@ximian.com>
7486
7487         * icall.c (mono_lookup_internal_call): Small fix.
7488
7489 2006-09-05  Raja R Harinath  <rharinath@novell.com>
7490
7491         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
7492         double g_free.
7493
7494 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
7495
7496         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
7497         when --debug is specified.
7498
7499 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
7500
7501         * class.c (setup_generic_array_ifaces): Fix a warning.
7502
7503 2006-09-04  Miguel de Icaza  <miguel@novell.com>
7504
7505         * Temporarily remove the patch to assemly.c that checks the
7506         assembly versions as it breaks our gacutil.
7507
7508 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
7509
7510         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
7511
7512         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
7513         a net 1.0 runtime.
7514
7515         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
7516         created using the default ctor. Fixes #79152.
7517         (mono_string_builder_to_utf16): Ditto.
7518
7519 2006-09-01  Martin Baulig  <martin@ximian.com>
7520
7521         Fix handling of the generic array interfaces.
7522
7523         * class-internals.h
7524         (MonoDefaults): Removed `generic_array_class' and added
7525         `generic_ilist' class.
7526
7527         * class.c
7528         (mono_bounded_array_class_get): Add the new generic array interfaces.
7529         (setup_generic_array_ifaces): New static method; create vtable
7530         entries for each method in the generic array interfaces.
7531
7532         * metadata.c
7533         (select_container): Allow "parent-less" generic methods.
7534
7535         * marshal.c
7536         (mono_marshal_get_generic_array_helper): New public method.
7537
7538         * icall.c
7539         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
7540         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
7541         moved the interncall into System.Array.
7542
7543 2006-09-01  Raja R Harinath  <rharinath@novell.com>
7544
7545         A few more cases of avoiding work on types with ->byref set.
7546         Has the real fix for #79238
7547         * icall.c (is_generic_parameter): New helper.
7548         (ves_icall_Type_GetGenericParameterPosition): Use it.
7549         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
7550         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
7551         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
7552         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
7553         reference types.
7554         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
7555         reference types.
7556         (ves_icall_Type_get_IsGenericInstance): Likewise.
7557         (ves_icall_Type_get_IsGenericType): Likewise.
7558
7559 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
7560
7561         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
7562         class if possible.
7563
7564         * mempool.h (mono_mempool_get_allocated): New helper function.
7565
7566         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
7567         change.
7568
7569         * mempool.c: Fix warnings and the calculation of stats.
7570
7571         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
7572
7573         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
7574
7575         * loader.c (mono_get_method_from_token): Update method_count stat.
7576
7577         * class-internals.h (MonoStats): Add some stats.
7578
7579 2006-08-31 Robert Jordan  <robertj@gmx.net>
7580
7581         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
7582         with managed variants.
7583         All code is contributed under the MIT/X11 license.
7584         
7585 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
7586
7587         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
7588         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
7589
7590         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
7591
7592         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
7593         with cycles in classes.
7594
7595         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
7596
7597         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
7598         missing a [MarshalAs] directive. Fixes #79203.
7599
7600         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
7601         klass->marshal_info. Fixes #79217.
7602
7603 2006-08-30  Martin Baulig  <martin@ximian.com>
7604
7605         Committing a patch from Joachim Ante <joe@otee.dk>:
7606         Add support for binary data symbol stores.
7607
7608         * debug-mono-symfile.c
7609         (mono_debug_open_mono_symbol_file): Renamed into
7610         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
7611         arguments.
7612
7613         * mono-debug.c
7614         (mono_debug_open_image): Added `raw_contents' and `size' args.
7615         (mono_debug_init_2_memory): New public function.
7616
7617 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
7618
7619         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
7620
7621 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7622
7623         * appdomain.c: implement support for ShadowCopyFiles.
7624
7625 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
7626
7627         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
7628         when value is NULL (and should remove CID #51).
7629
7630 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7631
7632         * image.c: moved 2 functions to ../utils.
7633
7634 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
7635
7636         * gc.c: cope with the target object of a GC handle being NULL
7637         (bug #78877).
7638
7639 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
7640
7641         * class.c: recursively check parent's explicit implementations
7642         of interface methods (fixes bug #79125).
7643
7644 2006-08-19  Miguel de Icaza  <miguel@novell.com>
7645
7646         * filewatcher.c: Avoid warnings when building, do not redefine
7647         constants that are defined.
7648
7649         Remove warnings.
7650
7651 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7652
7653         * image.c: don't fail when the link points to an absolute path.
7654
7655 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
7656
7657         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
7658         Fix CID #3.
7659
7660 2006-08-17  Miguel de Icaza  <miguel@novell.com>
7661
7662         * image.c (full_path): A new method used to obtain the actual path
7663         of an assembly even in the presence of symbolic links.  
7664
7665         This is necessary for the case where we are running a binary that
7666         has been GACed, but we are using the "published" path name
7667         ($prefix/mono/1.0/blah.exe) which happens to point to the real
7668         file in the GAC.
7669
7670         This was the source of the failure for the `xsp' command with the
7671         recent AppDomain changes, as far as the runtime was concerned,
7672         there were two different assemblies: $prefix/mono/1.0/blah.exe and
7673         $prefix/mono/gac/blah/version/blah.exe.
7674
7675         (do_mono_image_open): use full path
7676
7677 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
7678
7679         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
7680
7681 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
7682
7683         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
7684         domain_id is supplied. Fix CID #241 and corlib's unit tests.
7685
7686 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
7687
7688         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
7689         small structures. Fixes #78990.
7690
7691 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
7692
7693         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
7694
7695         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
7696
7697 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7698
7699         * appdomain.c:
7700         * marshal.c: don't load all the assemblies from a domain into newly
7701         created ones. The new domains might have different rules and load
7702         assemblies from different locations. Fixes bug #76757.
7703
7704         Patch by Lluis. Conflicts resolved by Brian Crowell.
7705
7706 2006-08-16  Alp Toker  <alp@atoker.com>
7707
7708         * socket-io.c: First half of the fix for #79084.
7709         Set sa_size to the length of the content, not that of the struct.
7710         Don't add NULL suffix to the content, this should be done in
7711         managed code if needed.
7712
7713 2006-08-14  Raja R Harinath  <rharinath@novell.com>
7714
7715         Fix part of #79012
7716         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
7717         mono_metadata_parse_type returns NULL.
7718
7719 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
7720
7721         * normalization-tables.h : new file for string normalization data.
7722         * locales.c, locales.h, icall.c :
7723           added load_normalization_resource() for string normalization,
7724           and icall as well.
7725         * Makefile.am : added normalization-tables.h to the sources.
7726
7727 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
7728
7729         * marshal.c: Add more helper functions to reduce code duplication and use them
7730         everywhere.
7731
7732 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
7733
7734         * marshal.c: Fix non-x86 stdcall warnings.
7735         
7736         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
7737         them everywhere.
7738
7739 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
7740
7741         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
7742         type check on multi-dimensional arrays. Fixes #79000.
7743
7744 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
7745
7746         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
7747         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
7748         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
7749         * class-internals.h: add is_com_object to class structure.
7750         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
7751         null checks to COM object marshalling. Fix .ctor call on RCW.
7752         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
7753         
7754         All code is contributed under the MIT/X11 license.
7755
7756 2006-08-09  Dick Porter  <dick@ximian.com>
7757
7758         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
7759         racing mono_monitor_allocator_lock() somewhere, so don't delete
7760         the critical section for now.  Found by running and exiting
7761         monodevelop.
7762
7763 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
7764
7765         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
7766         (ves_icall_System_ComObject_FindInterface): Ditto.
7767         (ves_icall_System_ComObject_CacheInterface): Ditto.
7768
7769         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
7770         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
7771
7772 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7773
7774         * threadpool.c: treat pipes from process asynchronous reads as sockets
7775         when reading from them, so we get select/poll or epoll to wait for
7776         data.
7777
7778 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
7779
7780         * loader.c: Fix a typo (CID #233) in the null check.
7781
7782 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
7783
7784         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
7785         Hopefully fixes #78949.
7786         
7787         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
7788         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
7789         bytes. Fixes #78972.
7790
7791 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7792
7793         * filewatcher.c: we need to set errno here.
7794
7795 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7796
7797         * filewatcher.c: let Win32Exception get the error value.
7798
7799 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7800
7801         * filewatcher.c: translate errno into win32 errors for Win32Exception
7802         to know what happened.
7803
7804 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
7805
7806         * threadpool.c: Fix more warnings.
7807
7808         * assembly.c (search_loaded): Fix warnings.
7809
7810         * threadpool.c (mono_thread_pool_finish): Fix warnings.
7811         (mono_async_invoke): Ditto.
7812
7813 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
7814
7815         * object.c (mono_remote_class_vtable): Need to create proxy vtable
7816         entries for __ComObject type in addition to ComImport types.
7817         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
7818         about hash table.
7819         
7820         All code is contributed under the MIT/X11 license.
7821
7822 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
7823
7824         * image.c: avoid tentative loading of modulerefs that contain
7825         no metadata (P/Invoke library names).
7826
7827 2006-07-28  Dick Porter  <dick@ximian.com>
7828
7829         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
7830         mono_loader_lock() somewhere, so don't delete the critical section
7831         for now.  Found by running and exiting monodevelop.
7832
7833 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7834
7835         * filewatcher.c: define the inotify syscalls when we're building on
7836         linux and have sys/syscall.h. The build system might not have support
7837         for inotify but the target system might have it.
7838
7839 2006-07-26  Miguel de Icaza  <miguel@novell.com>
7840
7841         * domain.c: Documentation updates.
7842
7843         * loader.c (mono_free_method): Do not release the method
7844         information if we are being profiled, as profilers will use this
7845         information at shut down to present some data to the user.
7846
7847         This is needed so that the profiler does not crash, as the
7848         profiler tends to keep MonoMethods around, and they might become
7849         invalid if we free these.
7850
7851         (mono_get_method_constrained): Return the original CIL stream
7852         method as well, so verification can be performed against it.
7853
7854 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7855
7856         * filewatcher.[ch]: support for inotify file system watcher.
7857         * icall.c: add new internal calls for the inotify file system watcher.
7858
7859 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7860
7861         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
7862         #78888.
7863
7864 2006-07-20  Dick Porter  <dick@ximian.com>
7865
7866         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
7867         warning.
7868
7869 2006-07-20  Dick Porter  <dick@ximian.com>
7870
7871         * threads.c (start_wrapper): Do the thread cleanup while we still
7872         hold a reference to its object.  Fixes bug 78123.
7873
7874 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
7875
7876         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
7877         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
7878           "managed-to-managed".
7879         * icall.c: Redirect string constructors that take sbyte* to
7880           ves_icall_System_String_ctor_RedirectToCreateString.
7881         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
7882           to CreateString () methods with matching signature.
7883         * reflection.c: Use original security informations for
7884           MONO_WRAPPER_MANAGED_TO_MANAGED.
7885         * security-manager.c: Use original security informations for
7886           MONO_WRAPPER_MANAGED_TO_MANAGED.
7887         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
7888           that is a placeholder and only its address should be used.
7889         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
7890           that is a placeholder and only its address should be used.
7891
7892 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
7893
7894         Begin implementing COM Interop.
7895         * appdomain.c: Increment corlib version.
7896         * class.c: Set ComImport classes' parent to __ComObject.
7897         * loader.c: Mark cominterop methods as such.
7898         * domain.c: Add __ComObject class to MonoDefaults structure.
7899         * image.c: Add 2 hashtables to the image for COM Interop related methods
7900         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
7901         using the mempool allocator
7902         
7903         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
7904         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
7905         declaration for mono_metadata_type_dup_mp.
7906         
7907         * debug-helpers.c: Added strings for two additional wrapper types
7908         * object.c: Create proxy objects for ComImport classes
7909         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
7910         and added __ComObject class to MonoDefaults structure.
7911         
7912         * object-internals.h: Finish MonoRealProxy definition, and add definition of
7913         MonoComInteropProxy and MonoComObject.
7914         
7915         * marshal.c: Added support for COM Interop
7916         (signature_cominterop): Converts managed signature to corresponding
7917         unmanaged COM signature.
7918         (cominterop_get_function_pointer): gets unmanaged function pointer via
7919         COM object vtable
7920         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
7921         (cominterop_get_method_interface): returns interface type that method is defined on
7922         (mono_mb_emit_cominterop_call): emits native call to function pointer
7923         gotten from vtable
7924         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
7925         that matches signature of unmanaged function.
7926         (cominterop_get_native_wrapper): wrapper around adjusted method call.
7927         (cominterop_get_invoke): forwards call from proxy to __ComObject
7928         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
7929         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
7930         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
7931         
7932         * marshal.h: Added Marshal icall declarations.
7933         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
7934         so we can access them in finalizer
7935         
7936 2006-07-14  Dick Porter  <dick@ximian.com>
7937
7938         * object.c (mono_type_initialization_cleanup): Fix a race
7939         condition by temporarily commenting out the critical section
7940         deletion.
7941
7942 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
7943
7944         * reflection.c (create_custom_attr): Fix some warnings.
7945         (create_custom_attr_data): Ditto.
7946         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
7947         types. Fixes #78855.
7948
7949 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
7950
7951         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
7952
7953         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
7954
7955 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
7956
7957         * reflection.c (resolve_object): Add support for DynamicMethod.
7958
7959         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
7960         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
7961
7962 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
7963
7964         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
7965         don't leak GPtrArray's pdata has we have no use (nor free) for it.
7966
7967 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
7968
7969         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
7970         Fixes #77888.
7971
7972 2006-06-30  Raja R Harinath  <rharinath@novell.com>
7973
7974         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
7975         slightly: remove a shadow local variable.
7976
7977 2006-06-29  Raja R Harinath  <rharinath@novell.com>
7978
7979         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
7980         definition that introduces the virtual function slot.
7981         Also fix Coverity #105.
7982
7983 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
7984
7985         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
7986         for dynamic assemblies. Fixes #78724.
7987
7988 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
7989
7990         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
7991         Fixes #78722.
7992
7993 2006-06-21  Martin Baulig  <martin@ximian.com>
7994
7995         * reflection.c
7996         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
7997         fixes #76484.
7998
7999 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
8000
8001         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
8002
8003 2006-06-20  Raja R Harinath  <rharinath@novell.com>
8004
8005         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
8006         nor TYPEREFs.
8007         * class.c (mono_class_create_from_typespec): Add 'context' argument.
8008         Inflate result if necessary.
8009         (mono_class_get_full): Remove old version.  Rename from
8010         'mono_class_get' and add 'context' argument.  Pass it to
8011         ..._create_from_typespec.
8012         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
8013         (mono_ldtoken): Revert change below.
8014
8015 2006-06-20  Martin Baulig  <martin@ximian.com>
8016
8017         * class.c (mono_ldtoken): Don't pass the generic context to
8018         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
8019
8020 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
8021
8022         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
8023         and later freeing it. Fixes #78638.
8024
8025 2006-06-15  Miguel de Icaza  <miguel@novell.com>
8026
8027         * icall.c (mono_class_get_throw): Revert over-zealous error
8028         throwing, the caller for mono_class_get_throw will cope with
8029         errors when classes are not properly initialized already.
8030
8031         The code still copes with loader exceptions though.
8032
8033         Fixes the regression in reftype1 and reftype3 from the CAS tests.
8034         
8035 2006-06-14  Miguel de Icaza  <miguel@novell.com>
8036
8037         Fixes the `make run1' version of RuntimeAbort (to be commited,
8038         source is in Bugzilla).
8039         
8040         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
8041         FALSE on class loading failure instead of returning true.
8042
8043         * class.c (mono_class_create_from_typedef): It is possible for
8044         mono_metadata_interfaces_from_typedef_full to fail if a class is
8045         not found, cope with this.
8046         
8047
8048 2006-06-14  Dick Porter  <dick@ximian.com>
8049
8050         * socket-io.c: 
8051         * process.c: Fix a bunch of signed/unsigned warnings from gcc
8052         4.1.1
8053
8054 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
8055
8056         * culture-info-table.h : oops, forgot to make it nsync with r61548.
8057
8058 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
8059
8060         * icall.c: Another fix for building mono in Visual Studio.
8061
8062 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
8063
8064         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
8065         
8066 2006-06-09  Martin Baulig  <martin@ximian.com>
8067
8068         * debug-mono-symfile.c: Put this back and really fix it this
8069         time. Sorry for all the trouble.
8070
8071 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
8072
8073         * icall.c (mono_class_get_throw): Fix a warning.
8074         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
8075         ReflectionTypeLoadException if needed. Fixes #78606.
8076
8077         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
8078         (mono_class_init): Ditto.
8079
8080         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
8081         ref_only exceptions.
8082         (mono_loader_clear_error): Make this work even if there is no error.
8083
8084 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
8085
8086         * object-internals.h marshal.c marshal.h icall.c: Implement method 
8087         Marshal.GetComSlotForMethodInfo using internal call.
8088
8089 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
8090
8091         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
8092         a function for signalling it.
8093
8094         * class.c (mono_class_from_typeref): Use the new kind of loader error when
8095         a referenced assembly is not found.
8096
8097         * loader.c (mono_loader_error_prepare_exception): Add support for 
8098         LOADER_ERROR_ASSEMBLY. Fix formatting.
8099
8100 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
8101
8102         * domain.c appdomain.c class-internals.h marshal.c: Add support 
8103         for VARIANT marshalling on windows and increment corlib version
8104         since Variant struct was added.
8105
8106 2006-06-03  Miguel de Icaza  <miguel@novell.com>
8107
8108         * debug-mono-symfile.c: Revert Martin's previous patch which broke
8109         stack trace line information:
8110
8111         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
8112         (Martin) when looking up B which is between A and C, return A not C.
8113
8114         Bug is #78573.
8115
8116         Thanks to Alexander Olk for tracking this down.
8117
8118 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
8119
8120         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
8121         
8122         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
8123         avoid clobbering its value.
8124         (mono_string_to_lpstr): Fix a warning on windows.
8125
8126 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
8127
8128         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
8129
8130         * reflection.c loader.c: Removed references to 'dummy' flag.
8131
8132         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
8133
8134         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
8135         it gets GC tracking.
8136
8137         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
8138         GC tracking.
8139         
8140         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
8141
8142         * marshal.c threadpool.c: Update callers of mono_async_result_new.
8143
8144         * appdomain.c: Bump corlib version.
8145
8146 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
8147
8148         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
8149         CEE_STIND_REF when working with object references.
8150
8151 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
8152
8153         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
8154         Fixes #78539.
8155
8156 2006-05-30  Miguel de Icaza  <miguel@novell.com>
8157
8158         * loader.c (method_from_memberref): Fix argument value for
8159         mono_loader_set_error_method_load (I was passing the MonoClass
8160         instead of the class name char *).
8161
8162 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
8163
8164         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
8165         CEE_STIND_REF when working with object references.
8166
8167 2006-05-30  Martin Baulig  <martin@ximian.com>
8168
8169         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
8170         mono_method_full_name() change and replace the ':' with a '.'
8171         here.
8172
8173 2006-05-30  Martin Baulig  <martin@ximian.com>
8174
8175         * debug-mono-symfile.c
8176         (mono_debug_symfile_lookup_location): Fix the algorithm:
8177         when looking up B which is between A and C, return A not C.
8178
8179 2006-05-29  Martin Baulig  <martin@ximian.com>
8180
8181         * mono-debug.h
8182         (MonoDebugMethodInfo): Make the typedef public.
8183         (MonoDebugSourceLocation): New public struct.
8184
8185         * mono-debug.c
8186         (mono_debug_source_location_from_address): Removed.
8187         (mono_debug_source_location_from_il_offset): Removed.
8188         (mono_debug_il_offset_from_address): Removed.
8189         (mono_debug_address_from_il_offset): Removed.
8190         (mono_debug_lookup_method): New public function.
8191         (mono_debug_lookup_source_location): New public function; replaces
8192         the old mono_debug_source_location_from_*() functions; see the
8193         inline documentation.
8194         (mono_debug_free_source_location): New public function.
8195         (mono_debug_print_stack_frame): New public function; see the
8196         inline documentation.
8197
8198         * debug-mono-symfile.c
8199         (mono_debug_find_source_location): Renamed into
8200         mono_debug_symfile_lookup_location(); only take a
8201         `MonoDebugMethodInfo *' and an `offset' argument; added inline
8202         documentation.
8203         (mono_debug_find_method): Renamed into
8204         mono_debug_symfile_lookup_method().
8205
8206 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
8207
8208         * assembly.c (mono_assembly_open_full): Dont overwrite the status
8209         returned by mono_image_open_full ().
8210
8211         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
8212         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
8213         #78517.
8214
8215         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
8216         #78518.
8217
8218 2006-05-27  Miguel de Icaza  <miguel@novell.com>
8219
8220         * class.c (mono_class_from_typeref): handle missing images
8221         earlier, deals with bug #78418.   Refactor code; 
8222
8223         Fix a warning introduced in my previous commit (some stale code
8224         from before I revisited my patch).
8225
8226         * class.c (mono_class_create_from_typedef): On failure, remove the
8227         class from the MonoImage->class_cache as the class is not
8228         initialized;   Fixes the leak pointed out by Paolo.
8229
8230 2006-05-25  Dick Porter  <dick@ximian.com>
8231
8232         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
8233         DeleteCriticalSections until I figure out which one may still be
8234         sometimes locked when mono_thread_cleanup is called.
8235
8236 2006-05-24  Dick Porter  <dick@ximian.com>
8237
8238         * threads.c (mono_thread_cleanup): Move the threading cleanup out
8239         of mono_thread_manage and back into its own function, so it can be
8240         called after the finalizer thread has finished.
8241
8242         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
8243
8244 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
8245
8246         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
8247         Fixes #78495.
8248
8249         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
8250         with non-blittable elements.
8251         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
8252
8253 2006-05-24  Martin Baulig  <martin@ximian.com>
8254
8255         * mono-debug-debugger.h (MonoDebuggerEvent): Added
8256         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
8257
8258         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
8259         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
8260         `mono_debugger_event_handler' to NULL.
8261
8262 2006-05-24  Martin Baulig  <martin@ximian.com>
8263
8264         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
8265
8266 2006-05-24  Martin Baulig  <martin@ximian.com>
8267
8268         * mono-debug-debugger.h
8269         (mono_debugger_create_notification_function): Added
8270         `MonoCodeManager *' argument.
8271
8272 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
8273
8274         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
8275
8276 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
8277
8278         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
8279         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
8280         implementation.
8281
8282 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
8283
8284         * icall.c: precise GC support: objects can't be stored in unmanaged
8285         memory anymore, even if they are kept alive by other references: since
8286         they can move the GC needs to be able to always find them.
8287
8288 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
8289
8290         * object.c: precise GC support for static fields. Support
8291         for moving GCs: write barriers and pinned allocation for interned
8292         strings.
8293
8294 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
8295
8296         * domain.c, domain-internals.h: precise GC support for the MonoDomain
8297         structure.
8298
8299 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
8300
8301         * class.c, gc.c: sgen and precise GC updates.
8302
8303 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
8304
8305         * marshal.h, marshal.c: added write barrier wrapper and precise type
8306         fixes.
8307
8308 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
8309
8310         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
8311         support.
8312
8313 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
8314
8315         * reflection.c: precise and sgen GC updates.
8316
8317 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
8318
8319         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
8320
8321 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
8322
8323         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
8324
8325 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
8326
8327         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
8328         MONO_TYPE_OBJECT. Fixes #78462.
8329
8330 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
8331
8332         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
8333         and blittable types.
8334
8335 2006-05-17  Miguel de Icaza  <miguel@novell.com>
8336
8337         * class.c (mono_class_get_exception_for_failure): Implement parts
8338         of a TODO: if the loader error is set (instead of the class
8339         error), we return a Loader exception that can be properly thrown
8340         elsewhere.
8341
8342         This was exposed by some Winforms 2.0 code that I tried to run
8343         (Atsushi pointed me to it).
8344
8345 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
8346
8347         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
8348         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
8349         
8350         * marshal.c (emit_marshal_vtype): Add limited support for 
8351         UnmanagedType.LPStruct. Fixes #78427.
8352
8353         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
8354         Applied a patch from kangaroo to fix #77523.
8355
8356 2006-05-17  Martin Baulig  <martin@ximian.com>
8357
8358         * threads.c
8359         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
8360         (debugger_thread_created): Removed.
8361         (debugger_thread_exited): Removed.
8362
8363 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
8364
8365         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
8366
8367         * object-internals.h (MonoReflectionResource): Sync with managed version.
8368
8369 2006-05-12  Wade Berrier <wberrier@novell.com>
8370
8371         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
8372
8373 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
8374
8375         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
8376         functions try to allocate from the image mempool.
8377
8378 2006-05-12  Dick Porter  <dick@ximian.com>
8379
8380         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
8381
8382 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
8383
8384         * object.c: The FieldGetter and FieldSetter methods require the full
8385         name of the class, not only the name. Fixes bug #78277.
8386
8387 2006-05-11  Miguel de Icaza  <miguel@novell.com>
8388
8389         * loader.c (method_from_memberref): Do not pass the NULL klass to
8390         mono_loader_set_error_() methods.  Pass the non-NULL value
8391         (class). 
8392
8393 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
8394
8395         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
8396         (mono_assembly_close): Null out assembly->image->references after freeing it.
8397
8398         * image.c (mono_image_close): Free image->references.
8399         
8400         * reflection.c (mono_image_basic_init): Fix a small memory leak.
8401
8402 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
8403
8404         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
8405         before checking if it's NULL (g_assert).
8406
8407 2006-05-10  Martin Baulig  <martin@ximian.com>
8408
8409         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
8410         I thought I already killed that two months ago, but now it somehow reappeared.
8411
8412 2006-05-10  Martin Baulig  <martin@ximian.com>
8413
8414         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
8415
8416 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
8417
8418         * reflection.c: Allocate memory for dynamically created methods in the image
8419         mempools.
8420
8421 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
8422
8423         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
8424         don't use the ad pointer before checking if it's NULL (g_assert).
8425
8426 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
8427
8428         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
8429         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
8430
8431         * marshal.c: Allocate all signatures from mempools.
8432
8433         * marshal.c: Allocate some more signatures from mempools.
8434
8435 2006-05-09  Miguel de Icaza  <miguel@novell.com>
8436
8437         * object.c (mono_load_remote_field): The code used to provide a
8438         temporary variable for returning results if the user did not
8439         provide a result pointer.  But our temporary variable was allocted
8440         on the satck.
8441
8442         Fix calling code to always pass a result area.   Coverity ID 103.
8443
8444 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
8445
8446         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
8447         value, not the old. Fixes #78312.
8448         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
8449
8450         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
8451         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
8452         per-image cache.
8453
8454         * assembly.c (mono_assembly_close): Free image->references.
8455
8456         * assembly.c (mono_assembly_names_equal): Fix a warning.
8457         (mono_assemblies_cleanup): Cleanup more global data.
8458
8459         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
8460
8461         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
8462         ptr_cache and image->modules.
8463
8464         * image.c (mono_image_init): Allocate array_cache lazily.
8465         
8466 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8467
8468         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
8469         behavior was changed recently and has bad side effects.
8470
8471 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
8472
8473         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
8474         
8475         * assembly.c (mono_assembly_close): Remove a debug printf.
8476
8477         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
8478
8479         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
8480         to also allow for temporary references between mono_image_open ()/close ().
8481
8482         * domain.c (get_runtimes_from_exe): Add a FIXME.        
8483
8484 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
8485
8486         * marshal.c: Fix support for dynamic methods.
8487
8488         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
8489
8490         * marshal.c (mono_marshal_cleanup): New cleanup function.
8491
8492         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
8493         image mempools.
8494
8495         * class.c (mono_class_init): Fix leaking class->nested_classes.
8496
8497         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
8498
8499         * image.c (mono_image_init): Initialize the new cashes.
8500
8501         * image.c (mono_image_close): Destroy the new cashes.
8502
8503         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
8504
8505         * mempool.c (mono_mempool_strdup): New helper function.
8506
8507         * class-internals.h: Add prototype for mono_loader_unlock ().
8508
8509         * domain.c (mono_jit_info_table_find): Fix a warning.
8510         (mono_debugger_check_runtime_version): Ditto.
8511
8512         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
8513         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
8514         functions to these modules.
8515
8516         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
8517         metadata modules.
8518         
8519         * marshal.c (mono_free_bstr): Fix a warning.
8520
8521         * assembly.c (mono_assembly_open_full): Fix another small leak.
8522
8523         * object.c: Fix some unload leaks in the remoting code.
8524
8525         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
8526         function.
8527
8528         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
8529
8530         * reflection.c: Fix some unload leaks in dynamic assemblies.
8531
8532 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
8533
8534         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
8535         * marshal.h: Add BSTR support on Win32
8536         * icall.c: Add BSTR icalls
8537         * metadata.h: Add BSTR enums
8538
8539 2006-04-28  Miguel de Icaza  <miguel@novell.com>
8540
8541         Work to catch the crash from #76795 and turn it into an
8542         exception.   As I stubbed out pieces of the VisualBasic support,
8543         I found a number of places where the code was failing and I added
8544         checks to those places. 
8545         
8546         * metadata.c (do_mono_metadata_parse_generic_class): Make this
8547         function return a status code.  If we fail to parse the signature
8548         from mono_metadata_parse_generic_inst, return FALSE.
8549
8550         * loader.c (mono_get_method_from_token): If we fail to load the
8551         method (mono_class_get) return NULL.   
8552
8553         * (method_from_memberref): Return NULL if we are unable to parse
8554         the method signature
8555
8556         (mono_loader_error_prepare_exception): Since we now use the
8557         loader_error flag internally to stop processing, and obtaining
8558         exceptions that might be thrown will walk this code path the
8559         proper way of going from a MonoLoaderError into a
8560         MonoException was convoluted.   This new routine encapsulates the
8561         process of turning the error into an exception and *clearing* the
8562         error afterwards.
8563         
8564 2006-04-27  Miguel de Icaza  <miguel@novell.com>
8565
8566         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
8567         with missing assemblies), and to cope with:
8568
8569                 * Missing fieldref from a non-existing assembly.
8570                 * Missing methodref from a non-existing assembly.
8571
8572         The first batch of work to address *some* of the issues from 76661.
8573         
8574         * object.c (mono_class_create_runtime_vtable): If we fail to
8575         initialize the class raise the exception here. 
8576
8577         * metadata.c (mono_class_get_overrides_full): If any methods fail
8578         to load return the failure to the caller.
8579
8580         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
8581         flagging assemblies that failed to load.   
8582
8583         Do not crash if we are unable to load the assembly.
8584
8585         (mono_assembly_close): Do nothing with REFERENCE_MISSING
8586         assemblies. 
8587
8588         * loader.c (mono_loader_set_error_type_load): Change the
8589         convention to always pass unallocated strings, so we make our own
8590         copies (I know our own code had duplicated strings before, but
8591         this keeps the normal conventions).
8592         (method_from_memberref): Call mono_loader_set_error_method_load
8593         for all possible failures of loading the class. 
8594         Remove assert, turn into a loader error.
8595
8596         (mono_loader_error_to_exception): Move this routine from mini
8597         (mini_loader_error_to_exception) there was no need to have that in
8598         mini. 
8599
8600         * class.c (mono_class_from_typeref): If we were not able to load
8601         the assembly with mono_assembly_load_reference, call the
8602         mono_loader_set_error_type_load to register the problem.
8603
8604         (mono_class_setup_fields): If we fail to load the type from
8605         mono_metadata_parse_type_full, call mono_class_set_failure and
8606         break from the loop.
8607
8608         If class->exception_type is set, we do not layout the fields as
8609         that might crash the runtime, and instead return (from breaking
8610         from the previous loop).
8611
8612         (mono_class_setup_vtable): This now returns a boolean indicating
8613         whether the table was properly setup.   The decision is driven by
8614         mono_class_get_overrides_full which might run into non-existing
8615         methods. 
8616         
8617         (mono_class_init): Returns TRUE on success or FALSE if there was a
8618         problem in loading the type (incorrect assemblies, missing
8619         assemblies, methods, etc).
8620
8621         When we call mono_class_setup_fields we also check for a potential
8622         error inside this call (either a class exception or a general
8623         loader exception).
8624
8625         (mono_class_create_from_typedef): If the parent fails to load
8626         (calling mono_class_get_full) return NULL.
8627         
8628         ** Important **
8629
8630         calls to mono_metadata_parse_type_full should be checked
8631         everywhere and set the mono_class_set_failure
8632         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
8633
8634         The current patch checks the places where my manually constructed
8635         tests show the errors are showing up, but we should do it
8636         everywhere. 
8637
8638         ** Important2 **
8639
8640         mono_class_init return values should be tested everywhere, like
8641         the previous case this is something that we should audit
8642         everywhere and not only on the cases exposed by the tests I
8643         created. 
8644
8645 2006-04-26  Miguel de Icaza  <miguel@novell.com>
8646
8647         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
8648         boolean parameter and instead pass the information on `options'
8649         parameter (FileOptions).
8650
8651         * icall.c: Register the new signature for MonoIO.Open.
8652
8653         * debug-helpers.c (dis_one): Trying to understand how coverity
8654         works.  Fix Run 5, item 78.
8655
8656 2006-04-26  Dick Porter  <dick@ximian.com>
8657
8658         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
8659         dereference.
8660
8661 2006-04-25  Martin Baulig  <martin@ximian.com>
8662
8663         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
8664
8665         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
8666         debugger_thread_created().
8667         (debugger_gc_push_all_stacks): Don't handle the main thread in any
8668         special way.
8669         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
8670         (mono_debugger_finalize_threads): New function; undo the effects
8671         of mono_debugger_init_threads().
8672         (mono_debugger_create_all_threads): Removed.
8673
8674 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
8675
8676         * image.c (mono_image_close): Tidy up trace messages.
8677
8678         * assembly.c (mono_assembly_close): Ditto.
8679
8680         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
8681         no longer references an already freed assembly. Fixes #78168.
8682
8683 2006-04-21  Dick Porter  <dick@ximian.com>
8684
8685         * threads.c (mono_thread_detach): Fix reference counting when
8686         detaching threads.
8687
8688 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
8689
8690         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
8691         #78155.
8692
8693 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
8694
8695         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
8696         (mono_type_to_stind): Ditto.
8697
8698         * marshal.c: Use the new helper functions to simplify code.
8699
8700         * image.c (mono_image_close): Add some code for help debug assembly unloading
8701         problems.
8702
8703         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
8704         image mempool.
8705
8706         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
8707         assembly was already loaded in another appdomain. Fixes #78083.
8708
8709 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
8710
8711         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
8712         referenced assemblies.
8713         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
8714
8715         * domain.c (mono_domain_free): Add a trace message.
8716
8717         * appdomain.c (add_assemblies_to_domain): Ditto.        
8718
8719         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
8720         field.  
8721
8722 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
8723
8724         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
8725
8726 2006-04-12  Martin Baulig  <martin@ximian.com>
8727
8728         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
8729         `USE_INCLUDED_LIBGC'.   
8730
8731 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
8732
8733         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
8734         the patch contains ../ and a small directory name later. Hopefully fixes
8735         #78035.
8736
8737 2006-04-10  Martin Baulig  <martin@ximian.com>
8738
8739         Clean up the debugger's thread-handling code.
8740
8741         The debugger's thread-handling code has been moved from
8742         ../mini/debug-debugger.c to threads.c.  We now iterate directly
8743         over the `threads' hash, keep track of exiting threads and also
8744         use proper locking.
8745
8746         We can now debug XSP and XSP based applications with the debugger.
8747
8748         * object-internals.h (MonoThread): Added `gpointer end_stack'.
8749
8750         * threads.h
8751         (MonoThreadCallbacks): Removed; this was only used by the debugger.
8752         (mono_install_thread_callbacks): Likewise.      
8753
8754         * threads.c (mono_thread_callbacks): Removed.
8755         (debugger_thread_created, debugger_thread_exited): New static functions.
8756         (start_wrapper): Call debugger_thread_created().
8757         (thread_cleanup): Call debugger_thread_exited().
8758         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
8759         (mono_debugger_init_threads): New public function.
8760         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
8761         iterate directly over the `threads' hash and also use proper locking.
8762
8763         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
8764
8765         * mono-debug-debugger.h
8766         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
8767
8768 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
8769
8770         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
8771         argument type=array. Fixes #78057.
8772
8773 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
8774
8775         * culture-info-table.h : regenerated. Fixed bug #69652.
8776
8777 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
8778
8779         * loader.c metadata.c: Reapply a variant r59116.
8780         
8781         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
8782
8783         * class.c (mono_class_setup_interface_offsets): New internal function.
8784
8785         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
8786         interfaces too. Fixes #77398.
8787
8788         * reflection.c (encode_cattr_value): Add support for 
8789         parameter type=object, argument type=array.
8790         (load_cattr_value): Ditto. Fixes #77916.
8791
8792         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
8793         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
8794
8795         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
8796         a byval char array and CharSet is Ansi.
8797
8798         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
8799
8800 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
8801
8802         * metadata.c: Add some locking comments.
8803         
8804         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
8805         mempool.
8806         (mono_metadata_free_method_signature): Don't free the signature itself.
8807
8808         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
8809
8810         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
8811         reference the same MonoImage.
8812         (mono_assembly_load_from_full): Add an assert.
8813
8814 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
8815
8816         * image.c (mono_image_close): Don't put the image we are about to free into the
8817         loaded_images_guid_hash.
8818
8819         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
8820         to reduce code duplication.
8821
8822         * marshal.c: Register the native functions called by this module as icalls, to
8823         somewhat centralize the creation of MonoMethodSignature's.
8824
8825         * loader.c (mono_method_signature): Add a cache for method signatures.
8826
8827         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
8828         the parameter attributes of a method.
8829         (mono_metadata_parse_method_signature_full): Refactored the computation of
8830         parameter attributes into a separate function. Also avoid one allocation in
8831         most cases.
8832
8833         * assembly.c (mono_assembly_close): Ditto.
8834
8835         * image.c (mono_image_close): Log trace messages with INFO level.
8836
8837         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
8838
8839         * image.c reflection.c: Correct reference counting of image modules.
8840         
8841         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
8842         of this function from the image mempool.
8843         
8844         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
8845         to allow more cached types to be used.
8846
8847         * mono-debug.c (mono_debug_add_method): Appled patch from
8848         David S. Miller  <davem@sunset.davemloft.net>: Access 
8849         minfo->lexical_blocks[] entry elements using read32().
8850
8851 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
8852
8853         * loader.c (mono_free_method): No longer free the method header for non-dynamic
8854         methods as it is allocated from the mempool.
8855
8856         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
8857         image mempool.
8858
8859         * metadata-internals.h: Add comments describing the reference counting scheme
8860         used for MonoImage and MonoAssembly.
8861
8862         * image.c assembly.c reflection.c: Rework reference counting of images and 
8863         assemblies so they are freed when the runtime is shut down. Free some 
8864         additional memory structures when an image is unloaded.
8865         
8866 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
8867
8868         * class.c loader.c reflection.c: Allocate more data structures in
8869         the image mempool.
8870
8871 2006-03-31  Miguel de Icaza  <miguel@novell.com>
8872
8873         * icall.c
8874         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
8875         build on pre glib 2.4 systems.
8876
8877 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
8878
8879         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
8880
8881         * icall.c: Fix some warnings.
8882
8883 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
8884
8885         * culture-info-table.h : regenerated.
8886
8887 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
8888
8889         * threads.c, object-internals.h, verify.c: changed the culture caching
8890         code to use a normal MonoArray for storage so the GC can keep track of
8891         them easily. Fixed bits of the cache logic, too and simplified the
8892         code.
8893
8894 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
8895
8896         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
8897         thread for non-Boehm GCs.
8898
8899 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
8900
8901         * domain.c, object.c, domain-internals.h: reduce the amount of memory
8902         needed to keep track of the data for static fields.
8903
8904 2006-03-29  Raja R Harinath  <rharinath@novell.com>
8905
8906         Fix #75172
8907         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
8908         for interface classes.  Use 'num_methods' instead.
8909         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
8910         before using '->vtable_size' field.
8911
8912 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
8913
8914         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
8915         doesn't contain managed pointers, so use a normal hashtable.
8916
8917 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
8918
8919         * reflection.c, class-internals.h, domain.c: fixed handling of types
8920         used as values for objects in custom attributes (bug #77915):
8921
8922 2006-03-24  Martin Baulig  <martin@ximian.com>
8923
8924         * class.c (mono_class_setup_fields): Added support for generic
8925         instances; fixes #77580.
8926
8927 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8928
8929         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
8930
8931 2006-03-24  Dick Porter  <dick@ximian.com>
8932
8933         * file-io.c (get_file_attributes): More stat macro breakage.
8934         Fixes bug 77759.
8935
8936 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
8937
8938         * profiler.c: added the file=filename option in the default profiler
8939         to output the profile data to filename.
8940
8941 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8942
8943         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
8944         bug #77877.
8945
8946 2006-03-22  Martin Baulig  <martin@ximian.com>
8947
8948         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
8949         allocated `MonoClassField *' in `fb->handle'.
8950
8951 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
8952
8953         * class.c, image.c, metadata-internals.h: implemented new mechanism to
8954         allocate interface ID to save memory and allow better ID reuse on
8955         appdomain unload. setup_generic_vtable () removal from Martin.
8956
8957 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
8958
8959         * object.h, appdomain.c, domain.c, exception.c, icall.c,
8960         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
8961         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
8962         write barriers for reference stores with managed objects accessed with
8963         C structures in the runtime and in embedding programs.
8964
8965 2006-03-20  Raja R Harinath  <rharinath@novell.com>
8966
8967         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
8968         'interface_id' and 'max_interface_id' fields of MonoClasses
8969         representing open generic types.
8970
8971 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
8972
8973         * object.h, object.c, icall.c: added functions to deal with
8974         storing valuetypes that contain references in managed objects.
8975         * reflection.c, string-icalls.c, threads.c, marshal.c: small
8976         fixes and comments around uses of mono_array_addr ().
8977
8978 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
8979
8980         * object.h, icall.c, monitor.c: object.GetHashCode ()
8981         implementation that supports the moving garbage collector.
8982
8983 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
8984
8985         * icall.c, threads-types.h, threads.c: implemented finalizer for
8986         LocalDataStoreSlot.
8987
8988 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
8989
8990         * metadata.c (mono_type_size): Add a fixme.
8991         (mono_type_stack_size): Ditto.
8992
8993         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
8994         'type_forwarders' field.
8995
8996         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
8997         attribute from net 2.0.
8998
8999         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
9000         from class.c.
9001
9002         * class.c (mono_class_setup_fields): Fix a warning.
9003         
9004         * class.c (mono_class_from_name): Add support for assemblyref entries
9005         in the EXPORTEDTYPE table.
9006
9007         * reflection.c: Add support for handling type forwarders under net 2.0.
9008
9009         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
9010         
9011 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
9012
9013         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
9014         overwriting entries in ModuleBuild->types, also clean up the code
9015         a little. Fixes #77774.
9016
9017 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
9018
9019         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
9020         load friend assembly info when present.
9021
9022 2006-03-14  Raja R Harinath  <rharinath@novell.com>
9023
9024         Fix crasher on gtest-158.cs.
9025         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
9026         the return value if the MonoClass we want is yet in an
9027         inconsistent state.
9028         * class.c (mono_class_create_from_typedef): Add an comment
9029         explaining an order dependency between mono_class_setup_parent and
9030         mono_class_setup_mono_type.
9031
9032 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
9033
9034         * class.c: documentation updates and events bug fix.
9035
9036 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
9037
9038         * class.c: some cleanup, locking fixes.
9039
9040 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
9041
9042         * class.c: fix the generics code to setup nested
9043         type info to the instantiated type (bug #77770).
9044
9045 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
9046
9047         * marshal.c: fixed a few type correctness issues.
9048
9049 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
9050
9051         * loader.c: the Set/Get/Addrtess array methods should be public.
9052
9053 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
9054
9055         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
9056         
9057         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
9058         info->wrapper.
9059
9060 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
9061
9062         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
9063
9064         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
9065
9066         * mempool.c (mono_mempool_alloc): Speed this up a bit.
9067         (mono_mempool_alloc0): Ditto.
9068
9069 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9070
9071         * socket-io.c:
9072         (create_object_from_sockaddr): it was allocating 4 extra bytes
9073         for the AF_UNIX data. Fixes bug #77747.
9074
9075 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
9076
9077         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
9078
9079 2006-03-09  Dick Porter  <dick@ximian.com>
9080
9081         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
9082         Fixes bug 76966 again.
9083
9084 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
9085
9086         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
9087         names from r57532
9088         * appdomain.c: Bumped corlib version to 48 (due to r57532)
9089
9090 2006-03-07  Martin Baulig  <martin@ximian.com>
9091
9092         * object.c
9093         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
9094
9095 2006-03-07  Martin Baulig  <martin@ximian.com>
9096
9097         * class.c
9098         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
9099         regression introduced in r56970; see gtest-252.cs.
9100
9101         * loader.c (mono_get_method_constrained): Correctly handle generic
9102         methods; see gtest-253.cs.
9103
9104 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
9105
9106         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
9107
9108 2006-03-04  Martin Baulig  <martin@ximian.com>
9109
9110         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
9111         compute the parent type at runtime, just like we're already doing
9112         it for interfaces.
9113
9114         * reflection.c
9115         (mono_reflection_bind_generic_parameters): Don't compute the
9116         parent type anymore.
9117
9118         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
9119
9120 2006-03-04  Martin Baulig  <martin@ximian.com>
9121
9122         * mono-debug-debugger.h
9123         (mono_debugger_create_notification_function): Allocate memory at
9124         runtime and return a pointer to it.
9125
9126 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
9127
9128         * assembly.c: Fix windows build.
9129         
9130         * assembly.c: Fix build.
9131
9132         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
9133
9134         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
9135         
9136 2006-03-03  Dick Porter  <dick@ximian.com>
9137
9138         * process.c
9139         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
9140         Check parameters before dereferencing them.  Fixes Aaron's part of
9141         bug 77393.
9142
9143 2006-03-03  Raja R Harinath  <rharinath@novell.com>
9144
9145         Fix performance regression.
9146         * loader.c (find_method_in_class): Add 'from_class' argument.
9147         Rename 'klass' argument to 'in_class'.  The signature is compared
9148         against the method in 'in_class', and the corresponding method is
9149         returned from 'from_class'.
9150         (find_method): Walk both 'in_class' and 'from_class' in parallel.
9151         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
9152         type definition and generic instantiation in parallel.
9153         (mono_get_method_constrained): Update to changes.
9154
9155 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
9156
9157         * threads.c: make sure the domain is correct, too when doing
9158         mono_thread_attach ().
9159
9160 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
9161
9162         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
9163         windows. Fixes #77683.
9164
9165 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
9166
9167         * object.h, *: introduced specific way to set elements of an array
9168         of references to be used as write barrier. Still need to audit the
9169         uses of mono_array_addr.
9170
9171 2006-03-01  Miguel de Icaza  <miguel@novell.com>
9172
9173         * object-internals.h: New field to cache the assmebly name, patch
9174         from Tambet Ingo (tambet@ximian.com)
9175
9176 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
9177
9178         * decimal.h, class-internals.h, metadata-internals.h,
9179         file-io.h: mark a few function declarations as internal, to
9180         reduce the number of PLT entries.
9181
9182 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9183
9184         * file-io.c: fix typo in warning message.
9185
9186 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
9187
9188         * loader.c: on unix, lookup the "*A" version of a function
9189         if charset is auto as a second option before failing.
9190
9191 2006-02-28  Raja R Harinath  <rharinath@novell.com>
9192
9193         * class.h (mono_class_inflate_generic_method): Revert to two
9194         argument version.
9195         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
9196         (mono_class_inflate_generic_method_full): Add.
9197         * class.c (mono_class_inflate_generic_method_full): Rename from
9198         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
9199         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
9200         * loader.c, reflection.c: Update to changes.
9201
9202 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
9203
9204         * icall.c: const fixes and small improvements.
9205
9206 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9207
9208         * threadpool.c: for asynchronous connect(), enable the same workaround
9209         for BSD 6 as for the Mac. Fixes bug #77637.
9210
9211 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
9212
9213         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
9214         formatted classes. Fixes #77524.
9215
9216 2006-02-24  Raja R Harinath  <rharinath@novell.com>
9217
9218         * class.c (inflate_generic_type): Add a couple more
9219         micro-optimizations.
9220         (inflate_generic_context): Don't use the 'gmethod' from
9221         'inflate_with'.
9222         (mono_class_inflate_generic_method): If the method has generic
9223         parameters, but the passed-in context doesn't have a 'gmethod',
9224         create one.  Use the possibly simplified generic instantiation
9225         from the declaring class instead of the one passed in.
9226
9227 2006-02-24  Raja R Harinath  <harinath@gmail.com>
9228
9229         Make generic method signature and method header handling lazy.
9230         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
9231         (inflate_generic_header): Likewise.
9232         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
9233         parameter to avoid inflating types.
9234         (mono_get_inflated_method): Empty out.
9235         * class.h (mono_class_inflate_generic_method): Update to changes.
9236         * loader.c (mono_get_method_from_token): Don't parse signature for
9237         generic methods, nor methods of generic classes.
9238         (mono_method_signature): Rename from 'mono_method_signature'.
9239         Inflate signature on demand.
9240         (mono_method_get_header): Inflate method header on demand.
9241         * reflection.c: Update to changes.
9242
9243 2006-02-23  Raja R Harinath  <rharinath@novell.com>
9244
9245         * metadata.c (mono_metadata_inflate_generic_inst): If the
9246         instantiation is closed, don't bother expanding it in the new
9247         context.
9248         * class.c (inflate_generic_class): If the generic instantiation
9249         doesn't change after inflation, return the argument itself.
9250         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
9251         Add bounds checks.
9252         (inflate_generic_context): If neither the generic class nor the
9253         generic method instantiations change, return the original context.
9254         * reflection.c (mono_method_get_object): Do
9255         'mono_get_inflated_method' before accessing the ->klass field.
9256         (inflate_mono_method): Don't create a MonoGenericMethod unless
9257         necessary.
9258         (inflate_method): Don't pass a constructed type as the declaring
9259         type of a methodbuilder.
9260
9261 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
9262
9263         * object.c: fix memory overwrite.
9264
9265 2006-02-22  Dick Porter  <dick@ximian.com>
9266
9267         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
9268         it doesn't work any more.
9269         (mono_threads_request_thread_dump): Fix unused variable warnings.
9270
9271 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
9272
9273         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
9274         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
9275         the public header file.
9276
9277 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
9278
9279         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
9280
9281 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
9282
9283         * class-internals.h, object.c: reduce the size of MonoVTable
9284         and store the interface_offsets array at negative offsets.
9285
9286 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
9287
9288         * metadata.c: tweak table descriptors data structures to reduce
9289         size and runtime relocations.
9290
9291 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
9292
9293         * marshal.c: fix some types and opcodes to be type-safe
9294         in marshaling wrappers.
9295
9296 2006-02-21  Ankit Jain  <jankit@novell.com>
9297
9298         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
9299
9300 2006-02-21  Raja R Harinath  <rharinath@novell.com>
9301
9302         * metadata.c (get_constraints): Relax debugging checks for monodis.
9303
9304 2006-02-21  Ankit Jain  <jankit@novell.com>
9305
9306         * metadata.c (mono_metadata_load_generic_params): Move the code
9307         checking for ambiguous generic params from here to mono/dis/get.c
9308         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
9309
9310 2006-02-21  Raja R Harinath  <harinath@gmail.com>
9311
9312         Fix assertion triggered when compiling nemerle.
9313         * class.c (mono_get_shared_generic_inst): Rename from
9314         get_shared_inst and make non-static.
9315         * loader.c (mono_get_shared_generic_method): New.  Used to create
9316         the MonoGenericContext-equivalent of a MonoGenericContainer.
9317         (mono_get_method_from_token): Initialize the 'context' field of
9318         the created MonoGenericContainer.
9319         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
9320         * metadata.c (get_constraints): Add sanity check.
9321         * class-internals.h: Add new internal methods.
9322
9323         * reflection.c (verify_safe_for_managed_space): New sanity check.
9324         Currently checks that owner-less generic parameters aren't allowed
9325         in managed space.
9326         (mono_type_get_object): Use it.
9327         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
9328         that are now in mono_type_get_object.
9329         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
9330
9331 2006-02-19  Raja R Harinath  <harinath@gmail.com>
9332
9333         * metadata.c (mono_type_create_from_typespec): Rename from
9334         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
9335         argument and caching of types in the generic container.
9336         (unwrap_arrays, find_generic_param): Remove.
9337         * metadata-internals.h: Update.
9338         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
9339
9340 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
9341
9342         * class.c (mono_class_get_exception_for_failure): Fix a warning.
9343
9344         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
9345         return values. Fixes #77581.
9346
9347         * class.c (mono_fnptr_class_get): Switch name and name_space.
9348
9349         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
9350         classes and add support for [In, Out] attributes.
9351         (mono_marshal_free_asany): Ditto. Fixes #77524.
9352
9353 2006-02-18  Raja R Harinath  <harinath@gmail.com>
9354
9355         * class.c (mono_class_from_generic_parameter): Make more robust to
9356         incomplete MonoGenericContainers from monodis.
9357
9358 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
9359
9360         * class-internals.h: added some more exception types.
9361         * class.c, metadata.c: added a few checks to handle missing
9362         types.
9363
9364 2006-02-17  Raja R Harinath  <rharinath@novell.com>
9365
9366         Use owner-less generic-params some more.
9367         * class.c (my_mono_class_from_generic_parameter): Remove.
9368         (mono_class_from_generic_parameter): Handle null image,
9369         param->name and param->owner.
9370         (mono_class_from_mono_type): Update.
9371         (mono_class_create_from_typespec): Remove 'container' parameter.
9372         If that parameter is non-null, the result is always inflated by
9373         'mono_class_get_full' anyway.
9374         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
9375         parameter.
9376         (mono_class_get_full): Update.
9377
9378         * class.c (inflate_generic_type) [GENERICINST]: If the generic
9379         instance is not open, don't bother inflating.
9380         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
9381         parse metadata for inflated classes.
9382         (_mono_class_get): Change GenericContext* parameter to
9383         GenericContainer*.
9384         (mono_class_create_from_typespec): Likewise.  Simplify, and
9385         implement trivially.  All the cases are handled in
9386         mono_class_from_mono_type.  Don't inflate returned class.
9387         (mono_class_get_full): Delegate GENERICINST optimization to
9388         inflate_generic_type.
9389         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
9390
9391 2006-02-16  Dick Porter  <dick@ximian.com>
9392
9393         * socket-io.c (create_object_from_sockaddr): Fix typo.
9394         (create_sockaddr_from_object): Check array lengths before
9395         potentially accessing items off the end.
9396         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
9397         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
9398         (ves_icall_System_Net_Sockets_Socket_Send_internal)
9399         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
9400         length checks to avoid wraparound overflows.
9401         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
9402         contents of the array of sockets
9403         (hostent_to_IPHostEntry2)
9404         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
9405         Check return value of inet_ntop ().
9406         (addrinfo_to_IPHostEntry): Fix typo
9407
9408 2006-02-16  Raja R Harinath  <rharinath@novell.com>
9409
9410         Type metadata parsing doesn't use generic-instantiation information.
9411         * metadata.c (mono_metadata_parse_array_full): Change
9412         MonoGenericContext* parameter to MonoGenericContainer*.
9413         (mono_metadata_parse_type_full): Likewise.
9414         (mono_type_create_from_typespec_full): Likewise.
9415         (mono_metadata_parse_mh_full): Likewise.
9416         (mono_metadata_parse_generic_inst): Likewise.
9417         (do_mono_metadata_parse_generic_class): Likewise.
9418         (do_mono_metadata_parse_type): Likewise.
9419         * metadata-internals.h: Update to changes.
9420         * class.c (mono_class_find_enum_basetype): Likewise.
9421         (mono_class_setup_fields): Likewise.
9422         (mono_class_create_from_typespec): Likewise.
9423         * loader.c (method_from_methodspec): Likewise.
9424         (mono_get_method_from_token): Likewise.
9425         (mono_method_get_header): Likewise.
9426
9427 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
9428
9429         * marshal.c: handle additional GENERICINST case (patch from
9430         Thong Nguyen <tum@veridicus.com>).
9431         Fix a few cases where LDIND_I/STIND_I was used for references.
9432
9433 2006-02-16  Raja R Harinath  <rharinath@novell.com>
9434
9435         * reflection.c (mono_reflection_get_token): Remove unused variable.
9436
9437 2006-02-16  Martin Baulig  <martin@ximian.com>
9438
9439         * reflection.c (mono_reflection_get_token): Add support for fields
9440         in instantiated generic types.
9441
9442         * icall.c
9443         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
9444
9445 2006-02-15  Martin Baulig  <martin@ximian.com>
9446
9447         * icall.c
9448         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
9449         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
9450         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
9451         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
9452
9453 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
9454
9455         * class.c, metadata.c, metadata.h, object.c, icall.c,
9456         marshal.c: changed mono_type_get_underlying_type () to do
9457         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
9458         Fixed handling of instantiated generic valuetypes (bug #75479).
9459
9460 2006-02-15  Raja R Harinath  <rharinath@novell.com>
9461
9462         * metadata.c (mono_metadata_decode_signed_value): Simplify.
9463         Delegate to mono_metadata_decode_value, and work on the returned value.
9464
9465         * icall.c (ves_icall_MonoType_GetGenericArguments):
9466         Add consistency check here too.
9467         
9468 2006-02-15  Ankit Jain  <jankit@novell.com>
9469
9470         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
9471         char/short etc.
9472
9473 2006-02-15  Ankit Jain  <jankit@novell.com>
9474
9475         * metadata.c (mono_metadata_decode_signed_value): New function to decode
9476         signed values, used only for representing lower bounds of arrays.
9477         (mono_metadata_parse_array_full): Use new
9478         mono_metadata_decode_signed_value to decode lower bounds.
9479
9480 2006-02-14  Martin Baulig  <martin@ximian.com>
9481
9482         * reflection.c
9483         (mono_reflection_get_token): Support "MonoGenericMethod" and
9484         "MonoGenericCMethod" and allow generic instances / methods.
9485
9486 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
9487
9488         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
9489         to obtain the terminal size using an ioctl.
9490
9491         * object.c (mono_nullable_init): Revert this as nullable reference
9492         types are not valid.
9493         (mono_nullable_box): Ditto.
9494
9495 2006-02-09  Dick Porter  <dick@ximian.com>
9496
9497         * threads.c (mono_thread_detach): Drop a reference to the thread
9498         we're detaching.
9499
9500 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
9501
9502         * object.c (mono_nullable_init): Handle nullable reference types.
9503         (mono_nullable_box): Ditto. Fixes #77446.
9504
9505 2006-02-07  Martin Baulig  <martin@ximian.com>
9506
9507         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
9508
9509 2006-02-07  Ankit Jain  <jankit@novell.com>
9510
9511         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
9512         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
9513         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
9514         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
9515         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
9516         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
9517
9518 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
9519
9520         * class.c (mono_class_create_generic): Set type_token as well.
9521
9522         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
9523         compatible with MS.
9524
9525 2006-02-02  Martin Baulig  <martin@ximian.com>
9526
9527         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
9528         has never been used so far.
9529
9530 2006-02-02  Martin Baulig  <martin@ximian.com>
9531
9532         * mono-debug-debugger.h: Changed comment at the top of this file;
9533         the header is not installed, but it's safe to #include it from
9534         within the JIT.
9535
9536         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
9537         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
9538
9539 2006-02-02  Martin Baulig  <martin@ximian.com>
9540
9541         * mono-debug.h
9542         (MonoSymbolTable): Removed the `metadata_info' field.
9543
9544         * mono-debug.c
9545         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
9546
9547         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
9548         (mono_debugger_add_builtin_types): Removed.
9549         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
9550         (mono_debugger_create_notification_function): We now operate on a
9551         pre-allocated area; take a `gpointer' and return `void'.
9552
9553         * mono-debug-debugger.c
9554         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
9555         (mono_debugger_add_builtin_types): Removed.
9556
9557 2006-02-02  Martin Baulig  <martin@ximian.com>
9558
9559         * threads.c (mono_debugger_create_all_threads): New public method.
9560
9561 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
9562
9563         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
9564         breaks on several platforms.
9565
9566 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
9567
9568         * assembly.c: the VS.NET build doesn't supply default values for
9569         MONO_ASSEMBLIES and MONO_CFG_DIR.
9570
9571 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
9572
9573         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
9574         helper function.
9575
9576         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
9577
9578         * loader.c (method_from_memberref): Fix a warning.
9579
9580         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
9581
9582         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
9583         with explicit layout. Fixes #77433.
9584
9585 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
9586
9587         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
9588         max_interface_id is initialized before using it. Fixes #77398.
9589         (ves_icall_Type_GetInterfaces): Ditto.
9590
9591 2006-01-30  Raja R Harinath  <rharinath@novell.com>
9592
9593         * metadata.c (mono_metadata_parse_method_signature_full): Don't
9594         allocate memory for parameter attributes when parsing memberref
9595         signatures.
9596         * loader.c (mono_loader_set_error_method_load): Don't warn.
9597         (method_from_memberref): Ensure MissingMethodException gets thrown
9598         if method is not found.  Make warning more informative.
9599
9600 2006-01-29  Raja R Harinath  <harinath@gmail.com>
9601
9602         Fix #77397
9603         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
9604         return true if is byref.
9605         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
9606         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
9607         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
9608
9609 2006-01-27  Raja R Harinath  <rharinath@novell.com>
9610
9611         Fix tests/find-method.2.il
9612         * loader.c (find_method, find_method_in_class): Remove is_inflated
9613         argument.  Revert 2006-01-18 change.
9614         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
9615         is generic, search for method in its generic definition.
9616         * class.c (mono_class_setup_vtable_general): Print generic
9617         arguments of generic types in debugging printf.
9618
9619 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
9620
9621         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
9622
9623         * threads.c (mono_threads_request_thread_dump): New helper function.
9624
9625 2006-01-25  Raja R Harinath  <rharinath@novell.com>
9626
9627         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
9628
9629 2006-01-25  Ankit Jain  <jankit@novell.com>
9630
9631         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
9632         move definition to ..
9633         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
9634         
9635 2006-01-25  Ankit Jain  <jankit@novell.com>
9636             Raja R Harinath  <rharinath@novell.com>
9637
9638         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
9639         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
9640         as necessary.
9641
9642 2006-01-25  Martin Baulig  <martin@ximian.com>
9643
9644         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
9645         `MonoDebuggerThread' into debug-debugger.c.
9646
9647 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
9648
9649         * profiler.c: fix printing of data.
9650
9651 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
9652
9653         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
9654           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
9655
9656 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
9657
9658         * object.c: fix deadlock related to string interning.
9659
9660 2006-01-23  Martin Baulig  <martin@ximian.com>
9661
9662         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
9663
9664         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
9665
9666 2006-01-23  Martin Baulig  <martin@ximian.com>
9667
9668         * mono-debug.h: Moved the prototypes of some functions which are
9669         used by the JIT here from mono-debug-debugger.h.
9670
9671 2006-01-21  Martin Baulig  <martin@ximian.com>
9672
9673         * Makefile.am: Don't install mono-debug-debugger.h.
9674
9675 2006-01-21  Martin Baulig  <martin@ximian.com>
9676
9677         * mono-debug-debugger.h: Enforce the private status of this header
9678         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
9679         Moved some stuff from mono-debugger-jit-wrapper.h here.
9680
9681 2006-01-20  Raja R Harinath  <rharinath@novell.com>
9682
9683         * class.c (mono_class_from_typeref): Add a sanity test to help
9684         catch lack of assembly load/search hooks.
9685
9686 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
9687
9688         * marshal.c (emit_struct_conv): Relax the fields with same offset
9689         check even more. Fixes #77230.
9690
9691 2006-01-18  Martin Baulig  <martin@ximian.com>
9692
9693         * loader.c (find_method_in_class): Added `gboolean is_inflated'
9694         argument; if false, we compare the uninstantiated signatures.
9695         (method_from_memberref): Compare the uninstantiated signatures;
9696         fixes #76417.
9697
9698 2006-01-18  Robert Jordan  <robertj@gmx.net>
9699
9700         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
9701         Clear the weak link. Fixes bug #77170.
9702
9703         * gc.c (mono_gchandle_free):
9704         Reflect *-gc.c changes (tiny optimization).
9705
9706 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
9707
9708         * metadata.c (mono_metadata_signature_dup): Applied patch from
9709         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
9710         Fixes #77288.
9711
9712 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
9713
9714         * marshal.c (emit_struct_conv): Allow fields with the same offset when
9715         marshalling from native to managed code. Fixes #77230.
9716
9717 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9718
9719         * threadpool.c: fix problem (Mac only) when more than one asynchronous
9720         connect. Fixes bug #77020.
9721
9722 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
9723
9724         * class.c: fixed id assignement for nested interfaces (bug #77275).
9725         Added also better info for --print-vtable debugging.
9726
9727 2006-01-12  Martin Baulig  <martin@ximian.com>
9728
9729         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
9730         interfaces on-the-fly; fixes #76625.
9731
9732         * class-internals.h
9733         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
9734         don't need that anymore.
9735
9736 2006-01-12  Miguel de Icaza  <miguel@novell.com>
9737
9738         * socket-io.c
9739         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
9740         To avoid initing the nested_classes when not needed I turned the
9741         PeerCredData as a toplevel internal class, as it has to be shared
9742         anyways. 
9743
9744         Fixes the CASA issue.
9745
9746 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
9747
9748         * domain.c: Accessors for MonoJitInfo
9749
9750         * profiler-private.h: Add jitinfo to the end jit hook
9751
9752         * profiler.[ch]: Define new hooks, called after jitting which give
9753         the MonoJitInfo that was compiled
9754
9755 2006-01-10  Martin Baulig  <martin@ximian.com>
9756
9757         * class.c (mono_class_setup_events): Add support for generic
9758         classes; fixes #76440.
9759
9760 2006-01-06  Raja R Harinath  <rharinath@novell.com>
9761
9762         Fix #77160.
9763         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
9764         on passed-in method.
9765
9766 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
9767
9768         * object.c (mono_runtime_invoke_array): Add Nullable support.
9769
9770         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
9771
9772 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
9773
9774         * file-io.c: Don't consider sockets as directory and avoid an endless
9775         loop. Fix bug #76966.
9776
9777 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
9778
9779         * object.c (mono_nullable_init): New helper function.
9780         (mono_nullable_box): Ditto.
9781
9782         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
9783
9784         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
9785
9786         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
9787         
9788 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
9789
9790         * class.c (mono_class_is_assignable_from): Make T assignable to 
9791         Nullable<T>.
9792
9793 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
9794
9795         * appdomain.c: Bump corlib version to 46.
9796         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
9797         serialization purpose) and changed ves_icall_System_Reflection_
9798         Assembly_get_code_base signature to accept a boolean (to escape, or 
9799         not, the assembly code base).
9800
9801 2005-12-23  Dick Porter  <dick@ximian.com>
9802
9803         * icall.c: 
9804         * threads-types.h: 
9805         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
9806         CreateEvent icall now returns "created" boolean parameter.
9807
9808 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
9809
9810         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
9811         #76967.
9812
9813         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
9814         when attr_klass is an interface. Fixes #77045.
9815
9816 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
9817
9818         * marshal.c (emit_struct_conv): Fix previous patch.
9819         
9820         * marshal.c (emit_struct_conv): Add a check for fields with the same
9821         offset.
9822
9823 2005-12-20  Raja R Harinath  <rharinath@novell.com>
9824
9825         Fix regression in Mono.C5.
9826         * class.c (mono_class_create_generic): If 'klass' is an interface
9827         set up the interface offsets.
9828         (mono_class_is_assignable_from): Don't throw away generic arguments.
9829
9830 2005-12-19  Raja R Harinath  <rharinath@novell.com>
9831
9832         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
9833         type parameters.
9834
9835 2005-12-15  Raja R Harinath  <rharinath@novell.com>
9836
9837         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
9838         dead store.
9839         (do_mono_metadata_parse_generic_class): Don't pass the current
9840         generic context when parsing the type being instantiated: it
9841         cannot use it, anyway.
9842
9843         * loader.c (method_from_memberref): Don't inflate a signature if
9844         it doesn't contain any type parameters.
9845
9846 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
9847
9848         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
9849
9850 2005-12-14  Martin Baulig  <martin@ximian.com>
9851
9852         * class.c
9853         (mono_type_get_name_recurse): Don't return null for type
9854         parameters and open generic classes.
9855         (mono_class_setup_methods): Don't exclude generic instances.
9856         (mono_get_unique_iid): Use different IDs for different
9857         instantiations of the same generic type.
9858         (mono_class_setup_vtable): Only use setup_generic_vtable() for
9859         open generic instances; create a normal vtable for closed generic
9860         instances.
9861         (mono_class_setup_vtable_general): We're now also called for
9862         closed generic instances.
9863
9864         * reflection.c
9865         (mono_reflection_bind_generic_parameters): Correctly use
9866         mono_metadata_lookup_generic_inst() everywhere.
9867
9868 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
9869
9870         * object.c (mono_class_create_runtime_vtable): Call 
9871         mono_class_setup_vtable ().
9872
9873         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
9874         function.
9875         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
9876         #76959.
9877
9878         * loader.c (mono_loader_set_error_type_load): Print the type load
9879         warnings to the console so they are more visible to the user.
9880         (mono_loader_set_error_method_load): Ditto.
9881
9882         * reflection.c (ensure_runtime_vtable): Revert the last change as it
9883         is still broken.
9884         
9885         * reflection.c (ensure_runtime_vtable): Fix build.
9886
9887         * reflection.c (ensure_runtime_vtable): Disable an optimization which
9888         doesn't work in all cases.
9889
9890 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
9891
9892         * object.c (mono_array_new_full): Treat a single dimensional array
9893         with 0 lower bounds as an szarray. Fixes #76973.
9894
9895         * reflection.c (custom_attr_visible): Really fix this.
9896
9897 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
9898
9899         * reflection.c (custom_attr_visible): Allow nested public attributes
9900         as well.
9901
9902         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
9903         interface check.
9904
9905 2005-12-12  Raja R Harinath  <harinath@gmail.com>
9906
9907         * class.c (set_generic_param_owner): Delete.
9908         (mono_class_create_from_typedef): Don't set ->owner field of
9909         generic parameters to "param containers" of enclosing classes.
9910         * reflection.c (mono_reflection_initialize_generic_parameter):
9911         Likewise.
9912
9913 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
9914
9915         * reflection.c (custom_attr_visible): Fix build.
9916
9917 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
9918
9919         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
9920         private attributes.
9921         
9922         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
9923         handling of null parameter defaults.
9924
9925 2005-12-09  Raja R Harinath  <rharinath@novell.com>
9926
9927         * class.c (mono_class_from_generic_parameter): Don't set
9928         klass->generic_container.
9929         (my_mono_class_from_generic_parameter): Likewise.
9930
9931 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
9932
9933         * reflection.c (load_public_key): Fix a warning.
9934         (method_encode_code): Fix unaligned accesses.
9935
9936 2005-12-07  Martin Baulig  <martin@ximian.com>
9937
9938         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
9939
9940         * reflection.c
9941         (write_generic_param_entry): Encode our custom attrs.
9942
9943         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
9944
9945 2005-12-07  Martin Baulig  <martin@ximian.com>
9946
9947         * reflection.c (encode_new_constraint): Removed; we don't use the
9948         `NewConstraintAttribute' anymore.
9949
9950 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
9951
9952         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
9953         not fire a TypeResolve event when Assembly.GetType () is called.
9954
9955 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
9956
9957         Beginning of support for nullable types in the runtime. Parts of
9958         this patch are from Martin.
9959
9960         * appdomain.c (MONO_CORLIB_VERSION): Bump
9961
9962         * domain.c (mono_init_internal): get the nullable type
9963
9964         * class.c (mono_class_is_nullable): New method
9965         (mono_class_get_nullable_param): New mehod
9966         (mono_class_create_generic): In types T? set cast_class to T
9967
9968         * class-internals.h (MonoDefaults): new nullable default class
9969         (mono_class_get_nullable_param, mono_class_get_nullable_param):
9970         new methods.
9971
9972 2005-12-05  Raja R Harinath  <rharinath@novell.com>
9973
9974         * metadata.c (select_container): New.  Refactor code to select the
9975         appropriate GenericContainer given the type of generic parameter
9976         we are looking for.
9977         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
9978         not a MonoGenericContext.  Use select_container.  Update parameters.
9979         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
9980         and MONO_TYPE_MVAR.
9981         (unwrap_arrays): Remove duplicate tests.
9982         (find_generic_param): Rename from 'has_same_context'.  Now walks a
9983         generic instantiated class to find any arguments that are generic
9984         parameters.
9985         (mono_type_create_from_typespec_full): Use find_generic_param to
9986         avoid evicting some generic instantiations from the typespec
9987         cache.
9988
9989 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
9990
9991         * reflection.c: fixed writing of doubles on ARM FPA.
9992
9993 2005-12-02  Robert Jordan  <robertj@gmx.net>
9994
9995         * icall.c: Fixed EventInfo.ReflectedType (#76829).
9996
9997 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9998
9999         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
10000         least on SUSE 10 they are not the same (on debian, they are just the
10001         same thing).
10002
10003 2005-12-01  Raja R Harinath  <rharinath@novell.com>
10004
10005         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
10006         DeclaringType for VARs and MVARs.
10007         * class.c (set_generic_param_owner): Fix initialization of owner
10008         fields.
10009
10010 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
10011
10012         * icall.c: fixed Enum.ToObject() to correctly convert the values.
10013
10014 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10015
10016         * threadpool.c: workaround for a bug that shows up on the Mac:
10017         select()+connect() on a blocking socket is not like it should
10018         be, so we proceed to connect() in that case, wasting the I/O
10019         threadpool thread until connect succeedes. Fixes bug #75436.
10020
10021 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10022
10023         * threadpool.c: fix typo when setting file descriptor states.
10024
10025 2005-11-28  Raja R Harinath  <rharinath@novell.com>
10026
10027         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
10028         * metadata.c (mono_metadata_parse_method_signature_full): Don't
10029         create a temporary signature container.
10030         (mono_metadata_parse_generic_param): Update to changes.
10031         (mono_type_create_from_typespec_full): Update to changes.
10032         * loader.c (method_from_memberref): Don't use a
10033         MonoGenericContainer while parsing a memberref signature.
10034         (method_from_methodspec): Remove dead-store of the 'container'
10035         variable.  It's overwritten before use.
10036
10037         * metadata.c (mono_type_create_from_typespec_full): Make debugging
10038         checks tighter.
10039         (mono_metadata_parse_generic_param): Likewise.
10040         * loader.c (find_method_in_class): Does not need a
10041         MonoGenericContainer.  Use 'mono_method_signature' rather than
10042         'mono_method_signature_full'.
10043         (find_method, mono_get_method_constrained, method_from_memberref):
10044         Update to changes.
10045
10046         * metadata.c (mono_type_create_from_typespec_full): Ensure that
10047         owner-less generic-parameters are never evicted from the typespec
10048         cache.
10049
10050         * loader.c (method_from_memberref): Don't use the current context
10051         when parsing signatures.
10052         (method_from_methodspec, mono_get_method_from_token): Update to changes.
10053
10054         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
10055         side-effects in g_assert.
10056         * loader.c (mono_get_method_from_token): Resolve klass earlier so
10057         that we don't potentially lose information.
10058
10059 2005-11-26  Dick Porter  <dick@ximian.com>
10060
10061         * icall.c:
10062         * threads.c: icalls to implement basic (ie, not named)
10063         System.Threading.Semaphore.
10064
10065 2005-11-24  Dick Porter  <dick@ximian.com>
10066
10067         * process.c
10068         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
10069         Use GetProcessId() if it's available.
10070
10071 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
10072
10073         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
10074
10075 2005-11-23  Raja R Harinath  <rharinath@novell.com>
10076             Ankit Jain  <jankit@novell.com>
10077
10078         * loader.c (mono_get_method_from_token): Initialize 'method' field
10079         of all generic parameters before parsing the signature.  Remove
10080         code that "fixed"-up MVAR references.
10081
10082 2005-11-23  Ankit Jain  <jankit@novell.com>
10083
10084         * metadata.c (mono_metadata_has_generic_params):
10085         (mono_metadata_load_generic_param_constraints):
10086         (mono_metadata_load_generic_params): Move duplicate code ...
10087         (mono_metadata_get_generic_param_row): ... here. Returns the
10088         first row-id in GenericParam table for a given owner (token).
10089         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
10090         prototype.
10091
10092 2005-11-23  Raja R Harinath  <rharinath@novell.com>
10093             Ankit Jain  <jankit@novell.com>
10094
10095         * metadata.c (mono_metadata_class_equal): Pass signature_only when
10096         comparing VARs too.
10097         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
10098         type->data.generic_param only if the type is an MVAR.
10099         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
10100         leak owner-less VARs and MVARs into managed space.
10101
10102 2005-11-21  Martin Baulig  <martin@ximian.com>
10103
10104         * class-internals.h
10105         (MonoMethod): Moved the `generic_container' here from
10106         `MonoMethodNormal' since we now also need it for
10107         `MonoMethodPInvoke';
10108         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
10109         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
10110         an union containing both `MonoMethodNormal' and
10111         `MonoMethodPInvoke'.
10112
10113         * loader.c
10114         (mono_get_method_from_token): Allow implementing generic methods
10115         as interncalls.
10116
10117         * threads.c
10118         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
10119         icall.
10120
10121 2005-11-17  Dick Porter  <dick@ximian.com>
10122
10123         * icall.c: 
10124         * process.h: 
10125         * process.c: Split the Process Start_internal icall into
10126         ShellExecuteEx_internal and CreateProcess_internal, which are
10127         called depending on whether UseShellExecute is true.  Fixes bug
10128         76670.
10129
10130         * appdomain.c (MONO_CORLIB_VERSION): Incremented
10131
10132 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
10133
10134         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
10135         'msize' parameters, use the information in 'mspec' instead.
10136         (emit_object_to_ptr_conv): Ditto.
10137
10138         * marshal.c (emit_struct_conv): Handle explicit layout structs with
10139         fields out of order. Fixes #76733.
10140
10141 2005-11-17  Ankit Jain  <jankit@novell.com>
10142
10143         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
10144
10145 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
10146
10147         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
10148           bug #76575.
10149
10150 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
10151
10152         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
10153         for types with non-auto layout. Fixes #76717.
10154
10155 2005-11-16  Ankit Jain  <jankit@novell.com>
10156
10157         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
10158         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
10159         if generic_context is null.
10160           (mono_metadata_generic_param_equal): param->owner can be null.
10161           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
10162         null.
10163
10164 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
10165
10166         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
10167         the correct value.
10168
10169 2005-11-15  Martin Baulig  <martin@ximian.com>
10170
10171         * object.c (set_value): Use mono_class_from_mono_type() instead of
10172         the hack for generic instances; fixes #76136.
10173
10174 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
10175
10176         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
10177         fields.
10178
10179         * image.c (load_metadata_ptrs): Initialize the new fields.
10180
10181         * reflection.c (create_dynamic_mono_image): Ditto.
10182
10183         * reflection.c (build_compressed_metadata): Use the new fields.
10184
10185         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
10186         icall.
10187
10188         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
10189         icall.
10190         
10191 2005-11-15  Ankit Jain  <jankit@novell.com>
10192             Raja R Harinath  <harinath@gmail.com>
10193
10194         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
10195         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
10196         new per-generic_container cache if the cached MonoType's context matches
10197         the current context.
10198           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
10199         to the expected context.
10200           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
10201
10202 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10203
10204         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
10205         we changed the signature of an icall.
10206         * icall.c: Modify to mono_double_ParseImpl return true/false 
10207         depending on the success, instead of throwing the exception. This will
10208         help us in Double.TryParse methods.
10209         
10210 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
10211
10212         * marshal.c (emit_marshal_object): Throw an exception when
10213         marshalling 'object' instead of crashing. Fixes #76696.
10214
10215 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
10216
10217         * class-internals.h: Add prototype for mono_type_get_full_name ().
10218
10219 2005-11-11  Dick Porter  <dick@ximian.com>
10220
10221         * threads.c (mono_thread_manage): Make sure the main thread has
10222         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
10223
10224 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
10225
10226         * loader.c (mono_loader_set_error_type_load): Log a warning to the
10227         console about the missing type.
10228         (mono_loader_set_error_method_load): Ditto.
10229
10230 2005-11-09  Miguel de Icaza  <miguel@novell.com>
10231
10232         * mono-config.c (mono_get_config_dir): Set the system defaults if
10233         none is specified.
10234
10235         * assembly.c (mono_set_dirs): New API entry point to set the
10236         assembly and the config directory in one call
10237
10238 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
10239
10240         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
10241         the ftnptr was created from a delegate in a domain other than the
10242         current domain. Fixes #75377.
10243
10244         * exception.h exception.c: Add mono_get_exception_not_supported ().
10245
10246 2005-11-08  Martin Baulig  <martin@ximian.com>
10247
10248         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
10249
10250 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
10251
10252         * security-manager.h: Added definitions to deal with strongname key 
10253         pairs bigger (and smaller) than 1024 bits.
10254         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
10255         adjust wrt the public key length being used.
10256
10257 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
10258
10259         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
10260           Windows build (r51396-51397).
10261
10262 2005-11-03  Martin Baulig  <martin@ximian.com>
10263
10264         * class.c (mono_class_setup_vtable_general): Also add generic
10265         methods to the vtable; fixes #76581.
10266
10267 2005-11-01  Miguel de Icaza  <miguel@novell.com>
10268
10269         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
10270         sure that we lookup GetString method from the System.Text.Encoding
10271         class, not the derived class or we get an empty method.
10272
10273         Fixed class #76612.
10274
10275 2005-10-25  Miguel de Icaza  <miguel@novell.com>
10276
10277         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
10278         if it has been previously set (embedders). 
10279
10280         Make mono_set_rootdir available also on Unix.
10281
10282 005-10-24  Robert Jordan  <robertj@gmx.net>
10283
10284         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
10285
10286 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
10287
10288         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
10289         only calls which are made to native code use this flag.
10290
10291         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
10292
10293 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
10294
10295         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
10296         Add support for FieldBuilders.
10297
10298 2005-10-29  Martin Baulig  <martin@ximian.com>
10299
10300         * mono-debug.c
10301         (mono_debug_using_mono_debugger): New public method; returns
10302         whether we're running inside the debugger.
10303
10304 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
10305
10306         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
10307         for Method/Constructor/FieldBuilders.
10308
10309 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
10310
10311         * reflection.c (module_add_cattrs): Save custom attributes for global methods
10312         and fields as well.
10313
10314 2005-10-26  Martin Baulig  <martin@ximian.com>
10315
10316         * mono-debug-debugger.c
10317         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
10318
10319 2005-10-24  Raja R Harinath  <harinath@gmail.com>
10320
10321         * icall.c (base64_to_byte_array): Don't pass an out-of-range
10322         integer to isspace.
10323
10324 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
10325
10326         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
10327         when passing valuetypes byref. Fixes #76502.
10328
10329 2005-10-19  Jackson Harper  <jackson@ximian.com>
10330
10331         * profiler.c: Don't put a . in front of types that are not in a
10332         namespace.
10333
10334 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
10335
10336         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
10337
10338 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
10339
10340         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
10341         #76436.
10342         (mono_marshal_get_ldflda_wrapper): Fix a warning.
10343
10344 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10345
10346         * assembly.c metadata-internals.h icall.c: Define an additional
10347         parameter for mono_assembly_name_parse_full, so we can avoid creating
10348         S.R.AssemblyName.Version when no version info wasn't passed.
10349         
10350 2005-10-09  Miguel de Icaza  <miguel@novell.com>
10351
10352         * class.c (mono_type_get_full_name): Reimplement method that was
10353         removed. 
10354
10355         * image.c: Some docs
10356
10357 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
10358
10359         * profiler.c (output_newobj_profile): Fix printing of Total memory
10360         on x86.
10361
10362 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
10363
10364         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
10365
10366 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
10367
10368         * threads.c: remove debug output.
10369
10370 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
10371
10372         * threads.c (mono_thread_manage): Fix crashes if more than 64
10373         threads need to be aborted. Hopefully fixes #75899.
10374
10375         * assembly.c (mono_stringify_assembly_name): New helper function.
10376
10377         * class.c: Use mono_stringify_assembly_name instead of the similar
10378         static function.
10379
10380         * assembly.h assembly.c: Add support for calling a postload search 
10381         hook if an assembly cannot be loaded.
10382
10383         * appdomain.c: Register new search hooks which call the AssemblyResolve
10384         events in AppDomain. Fixes #75231
10385
10386 2005-10-07  Martin Baulig  <martin@ximian.com>
10387
10388         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
10389         methods without debug info.
10390
10391 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
10392
10393         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
10394         wrappers.
10395
10396 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10397
10398         * file-io.c: now that we return symlinks, use lstat and, when the file
10399         is a symbolic link, stat, to get the file attributes. Also avoid the
10400         conversion to/from utf16/external.
10401
10402 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
10403
10404         * class.c (mono_class_layout_fields): Compute klass->has_references
10405         correctly if an embedded valuetype is not yet initialized. Fixes
10406         #76331.
10407
10408 2005-10-04  Martin Baulig  <martin@ximian.com>
10409
10410         * metadata.c
10411         (mono_metadata_load_generic_param_constraints): New public
10412         function; splitted the constraints loading out from
10413         mono_metadata_load_generic_params().
10414
10415         * class.c (mono_class_create_from_typedef): Call
10416         mono_metadata_load_generic_param_constraints() after setting up
10417         the type and creating our parent; fixes #75329.
10418
10419 2005-10-04  Martin Baulig  <martin@ximian.com>
10420
10421         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
10422         non-dynamic parent classes.
10423
10424 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
10425
10426         * file-io.c : win32 build fix (ETXTBSY seems not found).
10427
10428 2005-10-04  Martin Baulig  <martin@ximian.com>
10429
10430         * reflection.c
10431         (mono_image_get_methodspec_token): Make the cache actually work;
10432         fixes #75974.
10433
10434 2005-10-04  Martin Baulig  <martin@ximian.com>
10435
10436         * class.c (mono_class_name_from_token): Removed the unneccessary
10437         `MonoGenericContext *' argument.
10438
10439 2005-10-04  Martin Baulig  <martin@ximian.com>
10440
10441         * loader.c
10442         (method_from_methodspec): Make the caching work again; fixes the
10443         performance regression from #76262.
10444
10445 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10446
10447         * file-io.c:
10448         * file-io.h:
10449         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
10450         GetFileSystemEntries that performs the same work but without going
10451         into io-layer, locking, etc.
10452
10453 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
10454
10455         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
10456         ThreadState_Stopped as well. Fixes #76047.
10457
10458 2005-09-29  Martin Baulig  <martin@ximian.com>
10459
10460         * class.c
10461         (inflate_generic_context): If the new context has a `gmethod', set
10462         its `container' that that gmethod's `container'.
10463
10464         * metadata.c
10465         (mono_metadata_parse_generic_param): Simplify things;
10466         `generic_container = generic_context->container;' is just fine.
10467
10468         * loader.c (method_from_methodspec): Code cleanups.
10469
10470 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
10471
10472         * decimal.c: fix warning (and let gcc generate correct
10473         code on ARM with optimizations).
10474
10475 2005-09-28  Martin Baulig  <martin@ximian.com>
10476
10477         * loader.c
10478         (method_from_memberref): Added `MonoGenericContext *class_context'
10479         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
10480         (method_from_methodspec): If we're a memberref, use the enclosing
10481         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
10482
10483 2005-09-28  Martin Baulig  <martin@ximian.com>
10484
10485         * object.c (mono_runtime_invoke_array): Added support for
10486         MONO_TYPE_GENERICINST; fixes #75917.
10487
10488 2005-09-27  Martin Baulig  <martin@ximian.com>
10489
10490         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
10491         `k->byval_arg.type' to determine the actual type.
10492
10493         * loader.c (method_from_methodspec): Removed some hacks.
10494
10495 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
10496
10497         * class-internals.h (mono_field_is_deleted): Do the test for
10498         rtspecialname before we check the actual name of the field. This
10499         prevents us from dereferencing a pointer into the string table,
10500         saving us from accessing a few pages
10501
10502         * *.c: Replace the use of {Enter,Leave}CriticalSection with
10503         macros. This will allow a deadlock debugger to easily be plugged
10504         in.
10505
10506 2005-09-27  Martin Baulig  <martin@ximian.com>
10507
10508         * loader.c (method_from_methodspec): Create a "signature"
10509         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
10510
10511 2005-09-27  Martin Baulig  <martin@ximian.com>
10512
10513         * class.c
10514         (inflate_generic_class): Correctly set the new context's
10515         container.
10516
10517         * loader.c
10518         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
10519         instead of a `MonoGenericContext *'.
10520         (mono_method_signature_full): Take a `MonoGenericContainer *'
10521         instead of a `MonoGenericContext *'.
10522
10523         * metadata.c
10524         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
10525         instead of a `MonoGenericContext *'.
10526         (mono_metadata_parse_method_signature_full): Likewise.
10527
10528 2005-09-26  Martin Baulig  <martin@ximian.com>
10529
10530         * class.c
10531         (mono_class_from_generic_parameter): Set `klass->generic_container'
10532         (mono_class_from_generic_parameter): Likewise.
10533         (mono_bounded_array_class_get): We inherit the generic container
10534         from the element class.
10535
10536         * loader.c
10537         (find_method, find_method_in_class): Take a `MonoGenericContext *'
10538         argument rather than computing it here.
10539         (method_from_memberref): Correctly set the generic context before
10540         parsing the signature.  Fixes #75681.
10541
10542 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
10543
10544         * object.c (mono_class_has_special_static_fields): Fix warnings.
10545
10546 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10547
10548         * assembly.c: Add parse_public_key function, to
10549         par the public keys. Also added mono_assembly_name_parse_full,
10550         to define it the parsed key should be freed or not.
10551         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
10552         to parse a long format assembly name.
10553         * metadata-internals.h: Keep mono_assembly_name_parse_full as
10554         private, since calling it to preserve the key requires
10555         freeing it manually.
10556         
10557 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
10558
10559         * locales.c : removed HAVE_ICU part.
10560
10561 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
10562
10563         * object.c (mono_class_create_runtime_vtable): Avoid calling 
10564         field_is_special_static if the klass has no special static fields.
10565
10566         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
10567         (MonoCachedClassInfo): Likewise.
10568
10569         * object.c (mono_class_has_special_static_fields): New helper function.
10570
10571 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
10572
10573         * class.c (mono_class_create_from_typedef): Don't call 
10574         interfaces_from_typedef_full for enums.
10575         (mono_class_create_from_typedef): Compute the base types of enums directly
10576         without calling mono_class_setup_fields ().
10577         (mono_class_find_enum_basetype): New helper function.
10578
10579         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
10580         one place inside the string heap.
10581         
10582 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
10583
10584         * class.c: locking fixes, code cleanups, some docs added.
10585         Allocate some data structures in the image mempool.
10586
10587 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
10588
10589         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
10590         the example code.
10591         
10592 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
10593
10594         * class-internals.h, class.c, reflection.c: reduce memory taken by
10595         MonoClass.
10596
10597 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
10598
10599         * metadata.c, metadata.h, loader.h: documentation updates, code and
10600         API cleanups.
10601
10602 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
10603
10604         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
10605         the example code.
10606
10607         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
10608         page faults caused by the runtime while reading metadata.
10609
10610 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10611
10612         * socket-io.c: the field names were changed 3 months ago and no one
10613         realized until bug #76077 got filed!
10614
10615 2005-09-20  Martin Baulig  <martin@ximian.com>
10616
10617         * icall.c (assembly_icalls): Removed some unused debugger icalls.
10618
10619 2005-09-20  Martin Baulig  <martin@ximian.com>
10620
10621         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
10622         write the rank into the class entry.
10623
10624 2005-09-20  Martin Baulig  <martin@ximian.com>
10625
10626         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
10627
10628 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
10629
10630         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
10631
10632         * icall.c (custom_attrs_defined_internal): New icall.
10633
10634         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
10635         function.
10636         (mono_custom_attrs_construct_by_type): New helper function.
10637
10638 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
10639
10640         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
10641         terminate the resulting string. Fixes #76123.
10642
10643 2005-09-16  Martin Baulig  <martin@ximian.com>
10644
10645         * mono-debug.c
10646         (mono_debug_add_method): Ignore inflated methods for the moment.
10647
10648 2005-09-14  Martin Baulig  <martin@ximian.com>
10649
10650         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
10651
10652 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
10653
10654         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
10655         return a success/failure indication.
10656         (mono_metadata_interfaces_from_typedef_full): Ditto.
10657         (get_constraints): Ditto.
10658
10659 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
10660
10661         * marshal.c (emit_marshal_array): Fix handling of null arrays.
10662         
10663         * marshal.c (emit_marshal_array): Add support for returning string
10664         arrays from delegates. Fixes #76063.
10665
10666         * marshal.c: Use the emit_ldloc/stloc macros where possible.
10667
10668 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
10669
10670         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
10671         icall.
10672
10673 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
10674
10675         * reflection.c icall.c: Fix after mono_get_exception_type_load
10676         signature change.
10677
10678         * assembly.c (mono_assembly_get_assemblyref): New helper function.
10679         (mono_assembly_load_reference): Use the new helper.
10680
10681         * class-internals.h (MonoLoaderError): New structure containing 
10682         information about type loading errors.
10683
10684         * class-internals.h loader.c: Add APIs to store per-thread loader
10685         error information.
10686
10687         * loader.c class.c: Set the loader error if needed.
10688
10689         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
10690
10691 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
10692
10693         * decimal.c: fixed to handle the broken ARM fp format.
10694
10695 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
10696
10697         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
10698         broken.
10699
10700 2005-09-06  Martin Baulig  <martin@ximian.com>
10701
10702         * domain.c (supported_runtimes): Added v2.0.50727.
10703
10704 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
10705
10706         * culture-info.h: reduce the size of some structures.
10707
10708 2005-09-05  Martin Baulig  <martin@ximian.com>
10709
10710         Reflect latest API changes in the August CTP.
10711
10712         * icall.c
10713         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
10714         ("MonoType.HasGenericArguments"): Removed.
10715         ("MonoMethod.BindGenericParameters"): Renamed to
10716         "MakeGenericMethod".
10717         ("MethodBuilder.BindGenericParameters"): Renamed to
10718         "MakeGenericMethod".    
10719
10720 2005-09-05  Martin Baulig  <martin@ximian.com>
10721
10722         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
10723
10724 2005-09-05  Martin Baulig  <martin@ximian.com>
10725
10726         Applying a patch from Michal Moskal <malekith@nemerle.org>.
10727
10728         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
10729         generic_container is non-NULL.
10730
10731 2005-09-05  Martin Baulig  <martin@ximian.com>
10732
10733         Applying a patch from Michal Moskal <malekith@nemerle.org>.
10734
10735         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
10736
10737 2005-08-29  Michal Moskal  <malekith@nemerle.org>
10738
10739         * reflection.c (encode_locals,
10740         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
10741         for large generic types.
10742
10743 2005-09-05  Martin Baulig  <martin@ximian.com>
10744
10745         Applying a patch from Michal Moskal <malekith@nemerle.org>.
10746
10747         * class.c (mono_dup_array_type): New public method.
10748         (mono_metadata_signature_deep_dup): New public method.
10749         (dup_type): Correctly duplicate array and function types.
10750
10751 2005-09-05  Martin Baulig  <martin@ximian.com>
10752
10753         Applying a patch from Michal Moskal <malekith@nemerle.org>.
10754
10755         * reflection.c (get_default_param_value_blobs): Handle generic types
10756         and generic methods.
10757
10758 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
10759
10760         * class.c: Fixed error reporting (method/class were inversed) for 
10761         inheritance demands.
10762         * security-manager.c|h: Added the AppDomain when calling the managed
10763         System.Security.SecurityManager.InheritanceDemand method.
10764
10765 2005-09-01  Raja R Harinath  <rharinath@novell.com>
10766
10767         * reflection.c (encode_marshal_blob): 'marshaltype' and
10768         'marshaltyperef' are alternate sources for the custom marshaler
10769         name.
10770
10771 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
10772
10773         * class.c: fix creation of array classes with rank == 1
10774         (patch by Ankit Jain <jankit@novell.com>).
10775
10776 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
10777
10778         * object.c: fix check for creating the bound data for arrays vs
10779         szarrays.
10780
10781 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10782
10783         * object.c: configuration file name is now based on the executable name,
10784         not the image name. Fixes bug #75931.
10785
10786 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
10787
10788         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
10789         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
10790
10791 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
10792
10793         * rand.c: Use wincrypt.h instead of WinCrypt.h.
10794
10795 2005-08-24  Ankit Jain  <jankit@novell.com>
10796             Raja R Harinath  <rharinath@novell.com>
10797
10798         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
10799           called by it recursively.
10800           (mono_class_init): Remove special case in pending_init handling, since it's
10801           superseded by the fix to mono_class_from_typeref.
10802
10803 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
10804
10805         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
10806         BROKEN_THREAD_START stuff.
10807
10808 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
10809
10810         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
10811         trampoline.
10812
10813         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
10814         
10815         * object.c (mono_delegate_ctor): Replace the original function address with
10816         a delegate trampoline.
10817
10818 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
10819
10820         * icall.c: add boolean argument to base64_to_byte_array and 
10821         InternalFromBase64String to control whether a whitespace-only string
10822         is allowed (or should casue a FormatException to be thrown). We need
10823         this as the behavior has changed between MS.NET 1.x and 2.0, and we
10824         to match the MS behaviour in both profiles.
10825         * appdomain.c: Bump corlib version.
10826
10827 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10828
10829         This patch implements a big portion of publisher policy
10830         support, used to bind assembly versions and redirect
10831         one assembly from version A to version B.
10832
10833         * assembly.c:
10834         New GSList loaded_assembly_bindings, for storing the cached
10835         assembly bindings.
10836         (assembly_binding_maps_name): New static function for checking if a 
10837         assembly binding information maps an assembly name.
10838         (mono_assembly_binding_info_free): New function for freeing
10839         assembly binding information resources.
10840         (get_publisher_policy_info): New static function for retrieving 
10841         assembly binding information from a MonoImage.
10842         (compare_versions): New static function for comparing an assembly
10843         binding information data and the version of an assembly name.
10844         (check_policy_versions): New static function for checking if an
10845         assembly binding info mapping an assembly name is valid for it.
10846         (mono_assembly_load_publisher_policy): New static function for
10847         loading the 'policy.major.minor.MyAssembly' image for an assembly
10848         with an assembly name 'aname'.
10849         (mono_assembly_bind_version): New static function for updating
10850         assembly redirection.
10851         (mono_assembly_apply_binding): New static function for applying
10852         assembly binding.
10853         (search_binding_loaded): New static function for searching 
10854         loaded assembly binding infos in the cache domain.
10855         (mono_assembly_load_full): Don't apply assembly binding for
10856         reflection only assemblies.
10857
10858         * metadata-internals.h: Add MonoAssemblyBindingInfo,
10859         which contains information about assembly binding. Also
10860         declare signature for mono_config_parse_publisher_policy ()
10861         function, used to retrieve pub policy info.
10862         
10863         * mono-config.c:
10864         (publisher_policy_start): New static function used to parse publisher 
10865         policy config files.
10866         (publisher_policy_parser): New static MonoParseHandler containing 
10867         the functions used when parsing config files.
10868         (mono_config_parse_publisher_policy): New function for parsing
10869         publisher policy files.
10870         
10871 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
10872
10873         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
10874
10875         * marshal.c (mono_delegate_free_ftnptr): Ditto.
10876
10877         * object.c (mono_get_addr_from_ftnptr): New helper function.
10878
10879         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
10880
10881         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
10882
10883 2005-08-19  Dick Porter  <dick@ximian.com>
10884
10885         * threads.c, threads.h, appdomain.c, appdomain.h,
10886         profiler-private.h, monitor.c, object.c, object-internals.h,
10887         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
10888         store the thread ID, so it can hold a 64 bit value if needed.
10889
10890 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
10891
10892         * reflection.c (mono_reflection_create_dynamic_method): Store the
10893         handle class into the method references as well so ldtoken works in
10894         dynamic methods.
10895
10896         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
10897         types.
10898
10899 2005-08-19  Ankit Jain <jankit@novell.com>
10900
10901         Fix #75847.
10902         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
10903           here rather than using the method signature of a arbitrary function
10904           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
10905           two arguments.
10906           Hack done with Harinath.
10907
10908 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10909
10910         * threadpool.c: disable printing stack traces when we get a exception
10911         in a threadpool thread. I need to do more testing to figure out which
10912         cases actually print this. Fixes bug #75828.
10913
10914 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10915
10916         * icall.c: there might be ignored whitespace after the last '='. This
10917         fixes length computation and bug #75840.
10918
10919 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
10920
10921         * assembly.c (mono_assembly_load_full): Consider .exe extension as
10922         well. Fixes #75809.
10923
10924         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
10925         #75784.
10926         
10927         * reflection.c (create_custom_attr_data): Ditto.
10928
10929 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
10930
10931         * locales.c, culture-info.h : removed RegionLCIDMap.
10932         * culture-info-tables.h : regenerated.
10933
10934 2005-08-16  Martin Baulig  <martin@ximian.com>
10935
10936         * class.c (mono_type_get_name_recurse): Small fix.
10937
10938 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
10939
10940         * locales.c : indentation fixie.
10941
10942 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
10943
10944         * object-internals.h,
10945           locales.h,
10946           locales.c,
10947           culture-info.h,
10948           icall.c : added RegionInfo table support.
10949         * culture-info-table.h : regenerated for region support.
10950
10951 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
10952
10953         * reflection.c (resolve_object): handle all kinds of MonoMethod
10954         including generic ones
10955
10956 2005-08-12  Ankit Jain <jankit@novell.com>
10957
10958         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
10959           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
10960
10961 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
10962
10963         * process.c: Don't close a thread handle when it's NULL. This is a
10964         workaround for bug #75733.
10965
10966 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
10967
10968         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
10969
10970 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
10971
10972         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
10973
10974 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10975
10976         * threadpool.c: if a work item in the thread pool has a callback that
10977         catches a exception, don't propagate it after invoking the callback.
10978         Fixes bug #75336.
10979
10980 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
10981
10982         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
10983
10984         * class-internals.h (MonoCachedClassInfo): Add some new fields.
10985
10986         * class.c (mono_class_init): Load field info lazily in the AOT case.    
10987
10988         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
10989
10990 2005-08-03  Ankit Jain  <jankit@novell.com>
10991
10992         Fix #75683.
10993         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
10994           PInvoke calling convention is 0.
10995
10996 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
10997
10998         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
10999         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
11000
11001 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
11002
11003         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
11004         to handle threads not started by the GC (patch by Michael Meeks
11005         <michael.meeks@novell.com>).
11006
11007 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
11008
11009         * reflection.c: Make buffer used in emitting types larger for some
11010         big generic types (patch by Michal Moskal).
11011
11012 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
11013
11014         * mono-debug.c: Fix some (not all) alignment problems.
11015
11016 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11017
11018         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
11019         Invoke mono_image_load_from_data_full passing the refonly
11020         parameter.
11021
11022         * assembly.c
11023         (mono_assembly_open_from_bundle): Add the refonly argument, 
11024         in order to pass it to other methods it calls to.
11025         (do_mono_assembly_open): Add the refonly argument, in order 
11026         to pass it to other methods it calls to.
11027         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
11028         the refonly parameter to it.
11029
11030         * image.c: Add loaded_images_refonly_hash and
11031         loaded_images_refonly_guid_hash to cache the reflection
11032         only loaded images.
11033         (mono_images_init): Initialize the hash tables used for
11034         caching the reflection only images.
11035         (load_modules): Invoke mono_image_open_full passing the refonly
11036         parameter to load the modules the correct way.
11037         (build_guid_table): Add the refonly argument, to re-build the 
11038         correct hash table.
11039         (do_mono_image_open): Added the refonly argument, in order to
11040         define it for the loaded image.
11041         (mono_image_loaded_full): New function, which receives an
11042         additional parameter to look for the image in the refonly or
11043         non-refonly section.
11044         (mono_image_loaded): Updated, using mono_image_loaded_full.
11045         (mono_image_loaded_by_guid_full): The same case that happens
11046         with mono_image_loaded_full.
11047         (mono_image_loaded_by_guid): Likewise.
11048         (register_image): Use the ref_only variable inside MonoImage
11049         to decide in which hash table store the current image.
11050         (mono_image_open_from_data_full): Rename
11051         mono_image_open_from_data to mono_image_open_from_data_full,
11052         adding the refonly argument, to define the ref_only variable 
11053         inside MonoImage.
11054         (mono_image_open_from_data): Return 
11055         mono_image_open_from_data_full.
11056         (mono_image_open_full): Rename mono_image_open to
11057         mono_image_open_full, receiving the new refonly argument,
11058         to pass it to inner methods.
11059         (mono_pe_file_open): Update this function, to open
11060         a MonoImage as a non-refonly image.
11061         (mono_image_close): Use the refonly variable inside
11062         MonoImage to remove the image from the correct caches.
11063
11064         * image.h: Add the signatures of mono_image_open_full,
11065         mono_image_open_from_data_full, mono_image_loaded_full,
11066         mono_image_loaded_by_guid_full.
11067
11068         * metadata-internals.h: Add the ref_only field to 
11069         MonoImage.
11070         
11071 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11072
11073         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
11074         Fix the last behavior, which used to load the assemblies and
11075         extract MonoReflectionAssemblyName information, instead of
11076         extract it from the metadata tables. Needed for Reflection
11077         Only assemblies.
11078         
11079 2005-07-29  Martin Baulig  <martin@ximian.com>
11080
11081         * mono-debug-debugger.c
11082         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
11083         not initialized.
11084
11085         * mono-debug.c
11086         (mono_debug_address_from_il_offset): Check whether we have
11087         debugging support before attempting to take the lock.
11088         (mono_debug_source_location_from_address): Likewise.
11089         (mono_debug_source_location_from_il_offset): Likewise.
11090         (mono_debug_il_offset_from_address): Likewise.
11091         (mono_debug_address_from_il_offset): Likewise.
11092
11093 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
11094
11095         * class.c (mono_class_from_name_case): Add support for dynamic images.
11096         Fixes #75650.
11097
11098         * object.c (mono_class_compute_gc_descriptor): Add a workaround
11099         for #75479.
11100
11101 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
11102         
11103         * reflection.c (mono_method_get_object): Fix warning.
11104
11105 2005-07-28  Martin Baulig  <martin@ximian.com>
11106
11107         * mono-debug.c
11108         (mono_debug_add_wrapper): Also write the wrapper type.
11109
11110 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
11111
11112         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
11113         
11114         * class.c (mono_class_init): Avoid reading nested classes if the AOT
11115         data indicates the class has none.
11116
11117 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
11118
11119         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
11120         loader lock with the debugger lock. Prevents deadlocks for beagle.
11121
11122         Beagle can now run on an smp box for a weekend without any
11123         issues. Woohoo!
11124
11125 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
11126
11127         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
11128         in a module. Fixes #75629.
11129
11130 2005-07-26  Martin Baulig  <martin@ximian.com>
11131
11132         * mono-debug.c (mono_debug_add_wrapper): New static method.
11133         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
11134         interncall or a wrapper.
11135
11136         * mono-debug.h (MonoDebugWrapperData): New public typedef.
11137         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
11138         (MONO_DEBUGGER_VERSION): Bump to 51.
11139
11140         * mono-debug-debugger.c
11141         (mono_debugger_add_type): Removed this empty function.
11142         (mono_debugger_add_method): Likewise.
11143
11144 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
11145
11146         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
11147         before accessing method->slot.
11148
11149 2005-07-21  Jb Evain  <jbevain@gmail.com>
11150
11151         * reflection.c (method_encode_clauses/class): Handle filters clauses.
11152         Fixes #75010.
11153
11154 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
11155
11156         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
11157         #75587.
11158
11159 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
11160
11161         * image.h image.c: Add mono_image_get_guid () API function.
11162
11163 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
11164
11165         There were issues when multiple threads tried to load
11166         assemblies. A deadlock was created between assemblies_mutex and
11167         mono_domain_assemblies_lock. This fixes the issue by making the
11168         assembly ref counting be lock free. See bug 75586.
11169         
11170         * image.c (mono_image_close): The add ref function here was using
11171         Interlocked operations while the unref was using a mutex and a
11172         --. I don't think this was ever a bug that would be exposed in a
11173         non-pendantic way (ie, by an embedder doing a ref on one thread
11174         and an unref on another), but for the sake of correctness, this is
11175         now Interlocked.
11176
11177         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
11178         (mono_assembly_load_reference): Call mono_assembly_addref rather
11179         than touching the refcount ourselves.
11180         (mono_assembly_close): Use InterlockedDecrement to unref the
11181         assembly. Don't acquire the lock unless it is actually needed.
11182
11183 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
11184
11185         * class.c (mono_class_layout_fields): Fix calculation of has_references
11186         for generic types.
11187
11188 2005-07-12  Martin Baulig  <martin@ximian.com>
11189
11190         Applying a patch from Michal Moskal <malekith@nemerle.org>.
11191
11192         * metadata.c
11193         (mono_type_hash): Provide better hashing for generic instances.
11194         (mono_generic_inst_hash): Improve hashing.
11195         (mono_generic_class_hash): Likewise.
11196
11197         * reflection.c (mymono_metadata_type_hash): Improve hashing for
11198         generic instances.
11199
11200 2005-07-12  Martin Baulig  <martin@ximian.com>
11201
11202         * reflection.c (mono_reflection_create_runtime_class): Remove the
11203         hack for generic type definitions and non-`Run' assemblies.
11204         (mono_reflection_bind_generic_parameters): Also use
11205         `klass->wastypebuilder' to check for TypeBuilders.
11206
11207 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
11208
11209         * class.c (mono_class_layout_fields): Fix calculation of has_references
11210         for generic types.
11211
11212         * class.c (inflate_generic_class): Fix a leak.
11213         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
11214         for generic types.
11215
11216 2005-07-11  Martin Baulig  <martin@ximian.com>
11217
11218         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
11219         on error.
11220
11221 2005-07-11  Martin Baulig  <martin@ximian.com>
11222
11223         * loader.c (find_method): Also lookup in
11224         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
11225
11226 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
11227
11228         * appdomain.c (mono_domain_unload): Don't free the error message
11229         before passing it to mono_get_exception_...
11230
11231         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
11232         
11233 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
11234
11235         * threads.c: try to better guess an available RT signal (bug #75387).
11236
11237 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
11238
11239         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
11240         and CACHE_OBJECT.
11241
11242 2005-07-07  Martin Baulig  <martin@ximian.com>
11243
11244         * class.c (mono_type_get_name_full): Return NULL for
11245         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
11246         fixes #75408.
11247
11248 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
11249
11250         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
11251         exit the appdomain as well being aborted.
11252
11253         * threadpool.c: Create all threadpool threads inside the root appdomain, and
11254         change back to the root domain after calling managed code. This enables
11255         appdomains using threadpools to be unloaded.
11256
11257 2005-07-07  Martin Baulig  <martin@ximian.com>
11258
11259         * class-internals.h
11260         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
11261         into `MonoDynamicGenericClass' since we only need it for dynamic
11262         types.
11263
11264         * reflection.c (mono_class_bind_generic_parameters): We don't need
11265         to compute the `parent' here.
11266
11267 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
11268
11269         * culture-info-table.h : regenerated.
11270
11271 2005-07-06  Martin Baulig  <martin@ximian.com>
11272
11273         * icall.c
11274         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
11275
11276         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
11277
11278 2005-07-06  Martin Baulig  <martin@ximian.com>
11279
11280         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
11281         we're doing a signature-only comparision; fixes #74945.
11282
11283 2005-07-06  Martin Baulig  <martin@ximian.com>
11284
11285         * class-internals.h (MonoGenericClass): Moved some things out into
11286         a new `MonoInflatedGenericClass' type.  
11287         (MonoInflatedGenericClass): New type; the `klass' of a
11288         `MonoGenericClass' is now computed lazyly in
11289         mono_get_inflated_generic_class().      
11290
11291         * class.c (mono_get_inflated_generic_class): New public function.
11292         (mono_class_inflate_generic_method): Removed the unused
11293         `MonoClass *' argument.
11294         (setup_generic_vtable): Don't call mono_get_inflated_method() on
11295         all the methods.
11296         (mono_class_create_generic): Make this static and merge it with
11297         mono_class_create_generic_2(); we're now called automatically from
11298         mono_get_inflated_generic_class().
11299
11300         * loader.c (mono_method_signature): Call
11301         mono_get_inflated_method() here.
11302
11303 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
11304
11305         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
11306         type of fields with RVA.
11307
11308         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
11309         for this pseudo class.
11310         (my_mono_class_from_generic_parameter): Likewise.
11311         (mono_class_init): Allow interfaces to have cctors.
11312
11313 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
11314
11315         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
11316         lazily for AOT methods.
11317
11318 2005-07-05  Martin Baulig  <martin@ximian.com>
11319
11320         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
11321         returns FALSE for a successful match, not TRUE.
11322
11323 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
11324
11325         * loader.c (mono_method_get_index): Optimize this a bit.
11326
11327 2005-07-04  Martin Baulig  <martin@ximian.com>
11328
11329         * class.c
11330         (class_compute_field_layout): Move the check for generic type
11331         definitions into mono_class_layout_fields().  Fixes #74684.
11332         (mono_class_from_generic_parameter): Correctly compute
11333         `klass->parent'; fixes #75457.
11334
11335         * reflection.c (register_assembly, register_module): Make sure
11336         `domain->rejobject_hash' is already created.
11337
11338 2005-07-02  Martin Baulig  <martin@ximian.com>
11339
11340         * class-internals.h
11341         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
11342         `MonoDynamicGenericClass'.      
11343
11344 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
11345
11346         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
11347         returned by a field getter is null, since null is a valid value.
11348
11349 2005-07-01  Martin Baulig  <martin@ximian.com>
11350
11351         * reflection.c (mono_reflection_generic_class_initialize): Update
11352         the `dgclass->fields [i].parent' to the correct class.
11353         (mono_image_get_fieldref_token): Use the declaring type, not the
11354         reflected type.
11355
11356 2005-07-01  Martin Baulig  <martin@ximian.com>
11357
11358         * loader.c (find_method): Also look in the interfaces; fixes #75429.
11359
11360 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
11361
11362         * threads.c (thread_cleanup): assert that thread != NULL
11363         (wait_for_tids_or_state_change): We were using the wrong variable
11364         when accessing wait->threads. `i' was always out of the bounds of
11365         the array.
11366
11367 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11368
11369         * loader.c: map user32 and kernel32 to libMonoSupportW
11370
11371 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
11372
11373         * appdomain.c (unload_thread_main): Mark this as WINAPI.
11374
11375 2005-06-28  Martin Baulig  <martin@ximian.com>
11376
11377         * loader.c (method_from_methodspec): Fix #75334.
11378
11379 2005-06-28  Martin Baulig  <martin@ximian.com>
11380
11381         Fix #74953 - Arrays now implement the generic IList<T> interface
11382         on the 2.0 platform.
11383
11384         * class-internals.h (MonoDefaults): Added `generic_array_class'.
11385
11386         * reflection.c (mono_class_bind_generic_parameters): New public
11387         function; similar to mono_reflection_bind_generic_parameters(),
11388         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
11389
11390         * domain.c (mono_init_internal): Try to initialize.
11391         `mono_defaults.generic_array_class' here; this'll only succeed if
11392         we're using the 2.0 corlib.
11393
11394         * icall.c
11395         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
11396         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
11397         (mono_lookup_internal_call): Added support for nested classes.
11398
11399         * loader.c
11400         (mono_get_method_from_token): Set `result->signature->pinvoke' if
11401         we're an interncall and have generic arguments.
11402
11403         * class.c
11404         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
11405         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
11406         instance of System.Array.InternalArray<T> for arrays, so they
11407         implement the generic IList<T> interface.
11408
11409 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
11410
11411         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
11412         (chastamar@yahoo.com). Fixes #75374.    
11413
11414 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
11415
11416         * culture-info-table.h: regenerated.
11417
11418 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11419
11420         * icall.c: handle spaces correctly for base64 strings.
11421
11422 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
11423
11424         * *.c: Kill some warnings.
11425
11426 2005-06-23  Duncan Mak  <duncan@novell.com>
11427
11428         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
11429         that this builds on Solaris 10 (x86).
11430
11431 2005-06-23  Martin Baulig  <martin@ximian.com>
11432
11433         * class.c
11434         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
11435         generic type definitions.
11436
11437 2005-06-23  Martin Baulig  <martin@ximian.com>
11438
11439         Fix #75331.
11440
11441         * metadata.c (mono_class_get_overrides): Renamed to
11442         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
11443         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
11444         pass it to mono_get_method_full().
11445
11446 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
11447
11448         * reflection.c (mono_reflection_create_runtime_class): take the
11449         mono_domain_lock in this method. Prevents deadlocks
11450
11451 2005-06-22  Martin Baulig  <martin@ximian.com>
11452
11453         * loader.c (method_from_methodspec): Fix #75330.
11454
11455 2005-06-22  Martin Baulig  <martin@ximian.com>
11456
11457         * reflection.c (type_get_qualified_name): Use
11458         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
11459         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
11460         argument; use it if we don't have an assembly name.
11461
11462 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
11463
11464         * object.c: In mono_message_init, set "copy out" flag for in
11465         parameters with the [Out] flag.
11466
11467 2005-06-21  Martin Baulig  <martin@ximian.com>
11468
11469         * class.c
11470         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
11471         and MONO_TYPE_PTR.
11472
11473 2005-06-21  Martin Baulig  <martin@ximian.com>
11474
11475         * class.c (mono_class_init): Don't initialize `class->fields' for
11476         generic instances since they're initialized again in
11477         compute_field_layout(). 
11478         (compute_field_layout): Set the field's `generic_info' here; fix
11479         #75320. 
11480
11481 2005-06-21  Martin Baulig  <martin@ximian.com>
11482
11483         * class-internals.h
11484         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
11485
11486         * metadata.c (mono_metadata_generic_method_equal): Also
11487         distinguish the `generic_class'; fixes #75334.
11488
11489 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11490
11491         * domain.c:
11492         * appdomain.c:
11493         * domain-internals.h:
11494         * reflection.c: 'domain_assemblies' field is now protected by its own
11495         lock. Don't call into managed code to run the AssemblyLoad event if we
11496         now there are no registered delegates for it.
11497
11498 2005-06-20  Martin Baulig  <martin@ximian.com>
11499
11500         * class.c (mono_class_is_assignable_from): Use a custom version of
11501         mono_class_has_parent() to make things work for generic instances;
11502         fix #75300.
11503
11504 2005-06-20  Martin Baulig  <martin@ximian.com>
11505
11506         * loader.c (method_from_methodspec): Apply a patch from
11507         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
11508
11509 2005-06-20  Martin Baulig  <martin@ximian.com>
11510
11511         * class.c (mono_class_init): Reverted Zoltan's last change; it
11512         breaks generics.
11513
11514 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
11515
11516         * threads.c (wait_for_tids_or_state_change): Add missing locking.
11517
11518 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11519
11520         * socket-io.c: fix the index in the socket array for writable/error
11521         sockets. Fixes bug #75306.
11522
11523 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
11524
11525         * class.c (mono_class_init): Allow interfaces to have static ctors.
11526
11527 2005-06-17  Martin Baulig  <martin@ximian.com>
11528
11529         * loader.c (method_from_methodspec): Use `context->container' when
11530         parsing the `gmethod->inst'.
11531
11532 2005-06-17  Martin Baulig  <martin@ximian.com>
11533
11534         * class.c (mono_type_get_name_recurse): Don't add the assembly
11535         name for type arguments.
11536
11537 2005-06-15  Martin Baulig  <martin@ximian.com>
11538
11539         * reflection.c (mono_image_get_inflated_method_token): Encode
11540         correct klass; fixes #75260.
11541
11542 2005-06-13 Michal Moskal <malekith@nemerle.org>
11543
11544         * icall.c: Make GetCorrespondingMethod/Constructor take
11545         MonoReflectionMethod method not MonoMethod. Removed
11546         MonoType.GetCorrespondingField, and make
11547         MonoGenericType.GetCorrespondingField take name not
11548         MonoClassField.
11549
11550 2005-06-13  Michal Moskal <malekith@nemerle.org>
11551
11552         * reflection.c (field_encode_signature, encode_locals):
11553          Make sizes of buffers for types larger (for big generic types).
11554          (create_generic_typespec,
11555          mono_reflection_sighelper_get_signature_local,
11556          mono_reflection_sighelper_get_signature_field):
11557          Add asserts for too small buffers.
11558
11559 2005-06-15  Martin Baulig  <martin@ximian.com>
11560
11561         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
11562         if our parent is not a dynamic type.
11563
11564 2005-06-15  Martin Baulig  <martin@ximian.com>
11565
11566         * class-internals.h (MonoTypeNameFormat): New enum.
11567
11568         * class.c
11569         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
11570         (mono_type_get_full_name): Removed.
11571         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
11572         argument instead of the boolean's.
11573
11574         * icall.c (ves_icall_System_MonoType_getFullName):
11575         Added `gboolean assembly_qualified'.    
11576
11577         * reflection.h
11578         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
11579
11580         * reflection.c (mono_reflection_parse_type): Parse the new type
11581         name format.
11582
11583 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11584
11585         * icall.c: no need to convert from utf16 to utf8 and then back again
11586         after the call to GetLogicalDrives.
11587
11588 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11589
11590         * icall.c: frombase64. Fix problems exposed by new tests.
11591
11592 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11593
11594         * icall.c: added internal calls for converting char [] and strings in
11595         base64 into byte [].
11596
11597 2005-06-10  Martin Baulig  <martin@ximian.com>
11598
11599         * class.c (mono_class_create_generic_2): Read the nested classes
11600         from the metadata rather than from `gklass->nested_classes' since
11601         `gklass' might not be initialized yet.
11602
11603 2005-06-09  Duncan Mak  <duncan@novell.com>
11604
11605         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
11606         all public headers. Fixes #74919.
11607
11608 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
11609
11610         * domain.c: The key for proxy_vtable_hash is now a pointer
11611         array. Added new GHashFunc and GCompareFunc functions for this.
11612
11613         * class.h: The list of interfaces in MonoRemoteClass is known in
11614         advance and can't grow (we create a new MonoRemoteClass if needed),
11615         so now the interface array can be allocated together with
11616         MonoRemoteClass.
11617         
11618         * object.c: Added a new method create_remote_class_key.
11619         Fixed mono_remote_class so it does not depend on
11620         mono_upgrade_remote_class.
11621         Removed extend_interface_array.
11622         Added new method clone_remote_class(), which makes a copy of a remote
11623         class and adds a new interface or class to it.
11624         mono_upgrade_remote_class() now creates a new remote class (or gets
11625         it from the cache) if an vtable upgrade is needed. In this way
11626         we make sure that other objects sharing the same remote class
11627         don't get the new vtable with unwanted interfaces.
11628         
11629         * object-internals.h:
11630         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
11631         
11632         * marshal.c: Track changes in mono_upgrade_remote_class().
11633
11634 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
11635         * icall.c: Add runtime methods for obtaining members of inflated
11636         class, which were created from supplied non-inflated members. It
11637         is used in internal Get{Method,Constructor,Field} methods in
11638         System.Type
11639
11640 2005-06-09  Martin Baulig  <martin@ximian.com>
11641
11642         * reflection.c
11643         (mono_reflection_bind_generic_method_parameters): Fix #75169.
11644
11645 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11646         * reflection.c (mono_image_basic_init): Define
11647         Version in MonoDynamicAssembly. 
11648         
11649 2005-06-08  Martin Baulig  <martin@ximian.com>
11650
11651         Fix #75136.
11652
11653         * loader.c
11654         (mono_method_signature_full): New public method; takes a
11655         `MonoGenericContext *'.
11656         (find_method): Use mono_method_signature_full() and pass the
11657         klass'es context to it.
11658
11659         * class.c (mono_class_is_inflated_method): Use
11660         mono_method_signature_full() and pass the context to it.
11661
11662 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
11663
11664         * object.c: add proper locking in mono_remote_class_vtable(),
11665         fixes possible memory corruption.
11666
11667 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
11668
11669         * marshal.c (mono_remoting_marshal_init): set
11670         initialized after initialization.
11671
11672 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
11673
11674         * locales.c : hush.
11675
11676 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
11677
11678         * object.c (extend_interface_array): fix really silly
11679         memory corrupting / comparison bug.
11680
11681 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11682
11683         * reflection.c: Functions added to support the creation
11684         of CustomAttributeData, which includes Attribute data
11685         used by ReflectionOnly methods.
11686
11687         * reflection.h:  mono_reflection_get_custom_attrs_data and
11688          mono_custom_attrs_data_construct added (functions exposed).
11689
11690          * icall.c: Added mono_reflection_get_custom_attrs_data
11691          as icall.
11692         
11693 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
11694
11695         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
11696         lupus's request.
11697
11698 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
11699
11700         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
11701
11702         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
11703         dynamic DllImportAttribute.
11704
11705         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
11706         dynamic DllImportAttribute.
11707
11708         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
11709         Fixes #75162.
11710
11711 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11712
11713         * threads.c: avoid segfault when an unstarted thread is aborted.
11714
11715 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
11716
11717         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
11718         Returns the name and version of the runtime for reporting.
11719
11720 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11721
11722         * appdomain.c: bump corlib version.
11723         * object-internals.h: new field in MonoReflectionAssembly.
11724
11725 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11726
11727         * object-internals.h: Carlos forgot to add this field.
11728
11729 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11730
11731         * icall.c: Added create_version to create instances
11732         of Version of MonoReflectionAssemblyName. This change helps
11733         the AssemblyName tests to keep running fine.
11734         
11735 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
11736   
11737         * object.c (mono_method_return_message_restore): A somehow less
11738         intrusive fix for #75138.
11739
11740 2005-06-03  Raja R Harinath  <rharinath@novell.com>
11741
11742         * object.c (mono_method_return_message_restore): Fix computation
11743         of expected number of out args.
11744
11745 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
11746
11747         * reflection.c (mono_image_get_method_info): Fix the case when the
11748         charset is empty.
11749
11750 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
11751
11752         * object.c: Added missing null check in
11753           mono_method_return_message_restore.
11754
11755 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
11756
11757         * reflection.c (mono_image_get_method_info): Handle the case when
11758         dllentry is empty.
11759
11760 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
11761
11762         * object.c: When creating the vtable for a proxy, take into account
11763         all inherited interfaces, not only the ones registered in
11764         iclass->interfaces. This fixs bug #74996.
11765         Also, in mono_method_return_message_restore, verify that the array
11766         of out args has the expected lengh.
11767
11768 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11769
11770         * socket-io.c: update the timeout in Poll when the call is interrupte.
11771
11772 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11773
11774         * socket-io.c: support abort/suspend in Select_internal after last
11775         change.
11776
11777 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11778
11779         * threadpool.c: remove warning.
11780
11781 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11782
11783         * icall.c:
11784         * socket-io.[ch]: Select_internal uses poll() now when available, thus
11785         removing the 1024 limit from select(). Runtime part of the fix for
11786         bug #71203.
11787
11788 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11789
11790         * socket-io.c: when resolving the addresses for the same
11791         host returned by gethostname(), get the local IPs from the interface
11792         list. Loopback addresses are discarded if the are interfaces up with
11793         non-loopback ones. Fixes bug #63265.
11794
11795 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
11796
11797         * appdomain.c, verify.c, object-internals.h, reflection.c:
11798         bumped corlib number to 36, and added new extra_flags field
11799         to ReflectionMethodBuilder and friends.  Fixes #75060.
11800
11801 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
11802
11803         * gc.c: register a new weak link only if the object is non-null
11804         (fixes bug#75047).
11805
11806 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
11807
11808         * culture-info.h : short time pattern too.
11809
11810 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
11811
11812         * culture-info.h : expand long time pattern string length.
11813
11814 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
11815
11816         * culture-info-table.h : update (more French date format; #72788).
11817
11818 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
11819
11820         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
11821         the method is static. Fixes #75029.
11822
11823 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
11824
11825         * reflection.c: Update the table_idx field of method builders after
11826         saving the module, since it can change. This is a workaround for
11827         bug #74914. 
11828
11829 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
11830
11831         * culture-info-table.h : update (additional French date format).
11832
11833 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
11834
11835         * icall.c (ves_icall_type_Equals): Revert last change.
11836         
11837         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
11838
11839         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
11840
11841 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
11842
11843         * class-internals.h: Added executioncontext_class field to 
11844         MonoDefaults structure.
11845         * domain.c: Cache System.Threading.ExecutionContext class in 
11846         mono_defaults.
11847         * object.c: Capture the ExecutionContext for asynchroneous calls in
11848          mono_async_result_new.
11849         * object-internals.h: Added execution_context and original_context 
11850         fields to MonoAsyncResult. Added execution_context to MonoThread.
11851         * security-manager.c|.h: Added mono_get_context_capture_method to 
11852         return the capture method (if required by the security manager or by
11853         the framework version used).
11854         * threadpool.c: Apply capture (if present) ExecutionContext in 
11855         mono_async_invoke and revert to original context after it completes.
11856
11857 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
11858
11859         * culture-info-table.h : updated (real hacky solution for zh-CHT).
11860
11861 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
11862
11863         * culture-info-table.h : zh-CHT related workaround.
11864
11865 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
11866
11867         * marshal.c (emit_marshal_custom): Add some error checking and call the
11868         methods in the ICustomMarshaler interface. Fixes #74875.
11869         
11870         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
11871         native->managed wrappers.
11872
11873 2005-05-12  Martin Baulig  <martin@ximian.com>
11874
11875         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
11876         here and use the loader lock.
11877
11878         * mono-debug.c: Properly lock when the debugger is not attached.
11879         (mono_debug_init): Release the initial lock if we're not running
11880         in the debugger.
11881
11882 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
11883
11884         * marshal.c (emit_marshal_custom): Pass through NULL values without
11885         calling the custom marshalling routines.
11886
11887         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
11888         conversion in structures. Fixes #74882.
11889
11890 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
11891
11892         * culture-info-table.h : zh-* cultures were missing.
11893
11894 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
11895
11896         * threads.c: Added a new event background_change_event which is signaled
11897         when a thread changes its background mode.
11898         Moved here several checks previously done in managed code. The checks
11899         require the thread lock, and using the thread lock in managed code
11900         can result in deadlocks.
11901         Merged Start_internal and Thread_internal into a single method. Now 
11902         Thread_internal does all work of creating and starting a thread.
11903         Added icalls for setting and getting the state of the object. Moved from
11904         managed code to avoid locking there.
11905         Added wait_for_tids_or_state_change() which is called instad of
11906         wait_for_tids when waiting for non-backround threads to end. This method
11907         will return if one of the threads ends or the background_change_event
11908         is signaled.
11909         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
11910         the background mode. This method signals the background_change_event
11911         event.
11912         * icall.c:
11913         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
11914         removed Start_internal.
11915         
11916 2005-05-11  Martin Baulig  <martin@ximian.com>
11917
11918         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
11919         to order of some fields to get proper alignment on 64-bit machines.
11920
11921 2005-05-11  Martin Baulig  <martin@ximian.com>
11922
11923         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
11924         changes as they're broken and completely fuck up the debugger.
11925
11926         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
11927
11928 2005-05-10  Martin Baulig  <martin@ximian.com>
11929
11930         * reflection.c (mono_reflection_generic_class_initialize): Don't
11931         call mono_class_setup_parent() here.
11932
11933 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11934
11935         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
11936         send/receive timeout use an integer in milliseconds. We were using a
11937         struct timeval.
11938
11939 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11940
11941         * locales.c:
11942         (internal_get_cultures): reserve the first slot of the array for the
11943         InvariantCulture, which will be filled in managed code.
11944
11945 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
11946
11947         * reflection.c (mono_image_fill_module_table): Initialize the
11948         GENERATION field as well.
11949
11950 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11951
11952         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
11953         Monitor.Enter on the object.
11954
11955 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
11956
11957         * threads.c: Enable the wait for running threads when exiting.
11958         * icall.c: Suspend all threads before exiting.
11959
11960 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
11961
11962         * assembly.c (mono_assembly_load_reference): Fix warning.
11963
11964 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11965
11966         * threadpool.c: changed the default number of threads per cpu. From now
11967         on, the default will be 20 + (5 * number of cpus) instead of 50.
11968
11969 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
11970
11971         * loader.c (mono_method_get_signature_full): Add locking here.
11972
11973 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
11974
11975         * appdomain.c: Moved methods for parsing and freeing assembly
11976         names to assembly.c.
11977         * assembly.c, domain-internals.h: Created public methods for parsing
11978         assembly names. Fixed mono_assembly_load_with_partial_name:
11979         it now finds the best match, taking into account the version,
11980         token and culture specified in the partial name. Also return
11981         the latest version if no version information is specified.
11982
11983 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
11984
11985         * threadpool.c: replace check for SocketAsyncCall class.
11986
11987 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11988
11989         * threadpool-internals.h:
11990         * Makefile.am: added threadpool-internals.h
11991
11992         * threadpool.c: call mono_unhandled_exception on exceptions not handled
11993         that happen in threadpool threads (tested on MS).
11994         (mono_thread_pool_remove_socket): new function that dispatch any pending
11995         AIO call on a socket that is closing. By now only epoll really needs it,
11996         as select/poll wake up when the socket closes.
11997
11998
11999         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
12000
12001 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
12002
12003         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
12004
12005 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
12006
12007         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
12008
12009 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
12010
12011         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
12012         has an abort request, convert it into a suspend request.
12013
12014 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
12015
12016         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
12017         warning for the usage of `UnmanagedFunctionPointerAttribute' which
12018         is not supported yet.
12019
12020 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12021
12022         * image.c: register assemblies loaded from data (bundles) in the loaded
12023         assemblies hash. Fixes bug #74772.
12024
12025 2005-04-29  Martin Baulig  <martin@ximian.com>
12026
12027         * class.c (mono_type_get_name_recurse): Update to the new naming
12028         schema from the latest .NET 2.x beta2.
12029         (mono_class_setup_vtable_general): If we're a generic instance,
12030         copy the vtable from our generic type definition and inflate all
12031         the methods in it.
12032
12033         * loader.c (find_method): Update to the new naming schema from the
12034         latest .NET 2.x beta2.
12035
12036 2005-04-29  Raja R Harinath  <harinath@gmail.com>
12037
12038         * class.c (mono_class_init): Add a mono_loader_unlock to the
12039         #74734 fix.
12040
12041 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
12042
12043         * icall.c (ves_icall_System_Environment_Exit): Remove the 
12044         suspend_all_other_threads () call for the time being, since it can hang.
12045
12046         * threads.c (mono_thread_manage): Similarly, disable the waiting for
12047         the background threads to exit, since it can also hang.
12048
12049         * class.c (mono_class_init): Applied patch from Ankit Jain 
12050         (radical@gmail.com). Avoid pending init errors when a field refers
12051         to a nested class using a typeref. Fixes #74734.
12052
12053         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
12054         this for dynamic modules.
12055
12056 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12057
12058         * threads.c: don't wait for threads that are in the process of aborting
12059         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
12060         and waiting for background threads to finish. This makes xsp and
12061         mod-mono-server exit without random length delays and/or hangs.
12062
12063 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12064
12065         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
12066
12067 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
12068
12069         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
12070         dynamic types to prevent infinite loops. Fixes #74727.
12071
12072         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
12073         ..._is_assignable_to.
12074
12075 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
12076
12077         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
12078
12079 2005-04-25  Martin Baulig  <martin@ximian.com>
12080
12081         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
12082
12083         * domain.c
12084         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
12085
12086         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
12087
12088         * reflection.c (build_compressed_metadata): Set metadata header
12089         version to 2.0.
12090
12091 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
12092
12093         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
12094         number into an integral and a decimal part. Fixes #70473.
12095
12096         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
12097
12098 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
12099
12100         * culture-info-table.h : reflected the latest locale-builder output.
12101
12102 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12103
12104         * threadpool.c: check for SuspendRequested too when deciding if
12105         mono_thread_interruption_checkpoint should be called.
12106
12107 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12108
12109         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
12110         * threads.c: remove interruption_mutex and use Interlocked instead. When
12111         suspending all the threads, wait for all the suspended events at once.
12112         If we're shutting down and get an APC that is going to be queued,
12113         call mono_thread_execute_interruption immediately, as the thread might
12114         be sleeping on a pthread condition or mutex.
12115
12116         * icall.c: call mono_runtime_set_shutting_down before suspending the
12117         threads.
12118
12119         Fixes bug #74693. And now xsp is happier when exiting.
12120
12121 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
12122
12123         * loader.c (mono_stack_walk): Fix #74690.
12124
12125 2005-04-22  Martin Baulig  <martin@ximian.com>
12126
12127         * mono-debug.h (MonoDebugMethodJitInfo): Added
12128         `MonoDebugMethodJitInfo *jit'.
12129
12130         * mono-debug.c (mono_debug_read_method): Cache the
12131         MonoDebugMethodJitInfo in `address->jit'.
12132         (mono_debug_free_method_jit_info): New public method.
12133
12134 2005-04-22  Martin Baulig  <martin@ximian.com>
12135
12136         * class.c (mono_class_is_assignable_from): Disallow
12137         type parameter -> interface.
12138
12139 2005-04-21  Dick Porter  <dick@ximian.com>
12140
12141         * threads.c (mono_thread_create): Turn an assertion into an error.
12142
12143 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
12144
12145         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
12146         
12147         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
12148         Fix some gcc 4.0 warnings.
12149
12150 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
12151
12152         * file-io.c: fix alt dir separator char on unix systems
12153         and cleanup (fixes bug #71214).
12154
12155 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
12156
12157         * marshal.c: Use CALLVIRT instead of CALL when dispatching
12158         a call to a remote domain, since the method may be an
12159         interface method in the client domain. This fixes bug #74192.
12160
12161 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12162
12163         * threadpool.c: recv/send are now performed before going back to managed
12164         code to save one transition.
12165
12166 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12167
12168         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
12169
12170         * metadata/threadpool.c: removed hack to workaround the bug above.
12171
12172         Fixes bug #74618.
12173
12174 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
12175
12176         * reflection.c reflection.h: Fix handling of parameter defaults in
12177         dynamic methods. Also fixes handling of parameter attributes.
12178         Fixes #74609.
12179
12180         * mono-debug.c (mono_debug_close_image): Fix warning.
12181
12182 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12183
12184         * socket-io.h: replaced old unused field with new 'blocking'.
12185         * threadpool.c: restore socket blocking state on windows(tm).
12186
12187 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
12188
12189         * icall.c: don't return the codebase in the AssemblyName[] returned by
12190         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
12191         * object-internals.h: Removed FIXME (fields were presents) and fixed
12192         versioncompat declaration.
12193
12194 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12195
12196         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
12197         not closed, so don't cleanup when it happens.
12198
12199 2005-04-13  Chris Toshok  <toshok@ximian.com>
12200
12201         * mono-debug-debugger.h: change prototype for
12202         mono_debugger_lookup_type.
12203
12204         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
12205         this function, although it should probably be named
12206         mono_debugger_init_type.
12207
12208 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12209
12210         * threadpool.c: fix non-AIO case.
12211
12212 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
12213
12214         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
12215         the built-in profiler to measure just JIT compilation times.
12216
12217 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12218
12219         * threadpool.c: the epollfd might be closed by another thread at
12220         any time, so ignore EBADF at treat it as a "we're closing" sign.
12221
12222 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12223
12224         * threadpool.c: release the semaphores with a count equals to the number
12225         of working threads in both IO and regular pools. Fixed typo that messed
12226         up the count of IO pool threads. Don't initialize the pipe handles if
12227         we're using epoll.
12228
12229 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12230
12231         * threadpool.c: some systems don't like a NULL when deleting the socket
12232         from epoll.
12233
12234 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12235
12236         * threadpool.c: fix semaphore allocation.
12237
12238 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12239
12240         * threadpool.c: added epoll() based implementation for asynchronous IO
12241         that is used instead of the default poll() when available.
12242         It can be disabled by setting MONO_DISABLE_AIO.
12243
12244 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12245
12246         * threadpool.c: windows needs 'closesocket' and instead of returning
12247         0 when the stream is closed while in select, it returns -1. Fixes bug
12248         #74573.
12249
12250 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
12251
12252         * class.c (class_compute_field_layout): Fix the regression caused by
12253         the previous try.
12254
12255 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12256
12257         * threadpool.c: separate pool for socket async. IO.
12258         * threadpool.h: mono_max_worker_threads is not a global any more.
12259
12260 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
12261
12262         * class.c (class_compute_field_layout): Fix #74549.
12263
12264 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12265
12266         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
12267         use 2 connected sockets instead.
12268
12269 2005-04-08  Miguel de Icaza  <miguel@novell.com>
12270
12271         * mono-config.c: Add new entry point for mkbundle
12272         mono_config_parse_memory. 
12273
12274 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12275
12276         * threadpool.c: removed another unused function.
12277
12278 2005-04-08  Ankit Jain  <radical@corewars.org>
12279
12280         * reflection.c (get_default_param_value_blobs): Add 'types'
12281         parameter to get the types encoded in the constant table.
12282         (mono_param_get_objects): Use the type from the constant table,
12283         not the type of the parameter, when creating default values.
12284         Handle null default values correctly.
12285
12286 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12287
12288         * file-io.c:
12289         * file-io.h:
12290         * threadpool.c:
12291         * threadpool.h:
12292         * icall.c:
12293         * socket-io.c: removed dead code for async IO.
12294
12295 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12296
12297         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
12298
12299         * threadpool.c: intercept socket async. calls and pass them to a thread
12300         that is polling and dispatching the job items to the threadpool as
12301         socket become ready. Fixes bugs #71217, #71933.
12302
12303         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
12304         between char and short/ushort arrays.
12305
12306         * socket-io.c: remove dead code.
12307
12308 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
12309
12310         * locales.c,
12311           icall.c : removed InternalToUpper_Comp() and
12312           InternalToLower_Comp().
12313
12314 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
12315
12316         * char-conversions.h : The tables were incorrectly generated. Should
12317           be generated against invariant culture.
12318
12319 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
12320
12321         * object.c (mono_runtime_invoke_array): Fix return value when 
12322         passing pre-created valuetype objects to ctors.
12323
12324         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
12325         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
12326         Fixes #74338.
12327
12328 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
12329
12330         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
12331         only used with --security and hides the wrong corlib version error.
12332
12333 2005-03-30  Joshua Tauberer  <tauberer@for.net>
12334
12335         * class.c: Changed mono_class_name_from_token so that types
12336         outside of a namespace don't have an initial period.  Improved
12337         the g_warning message used in _mono_class_get when loading
12338         fails.
12339         * assembly.c: In mono_assembly_load_reference, when an assembly
12340         can't be found, "No such file or directory" is misleading and
12341         unhelpful because a few paths were checked for the presence of
12342         the assembly.  When that happens (ENOENT), display a nicer
12343         message indicating the directories that were searched.  In all
12344         cases, the warning is made easier to read for non-hackers.
12345
12346 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
12347
12348         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
12349         project/solution.
12350         * appdomain.h|domain.c: Removed inline from functions.
12351         * appdomain.c: Reduced warnings when compiling on windows.
12352         * icall.c: Fixed output_debug declaration to gunichar2*.
12353         * mono-config.c: Reduced warnings when compiling on windows.
12354         * rand.c: Added missing "windows.h". Added missing return value.
12355         * rawbuffer.c: Added missing winsock2.h for windows.
12356         * sysmath.h: Added mono-compiler.h header to allow/ease 
12357         compilation with non-GCC compilers.
12358         * threads.c: Fixed declarations to compile with VS.NET C compiler.
12359         Removed cast warnings.
12360
12361         Adapted from the work of J Lothian (for VC6).
12362
12363 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
12364
12365         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
12366         from default_path.
12367
12368 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
12369
12370         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
12371         the 2.0 profile.
12372
12373 2005-03-27  Raja R Harinath  <harinath@gmail.com>
12374
12375         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
12376         has to be in $(exec_prefix).  $(prefix) is for arch-independent
12377         stuff, and it would probably use $(prefix)/share rather than
12378         $(prefix)/lib.
12379
12380 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12381
12382         * console-io.c: added 2 includes that might be missing.
12383
12384 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
12385
12386         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
12387         profile.
12388
12389         * reflection.c (create_custom_attr): Allocate the params array using
12390         alloca so it gets GC tracking.
12391
12392 2005-03-23  Chris Toshok  <toshok@ximian.com>
12393
12394         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
12395         out some spew.
12396
12397 2005-03-24  Raja R Harinath  <rharinath@novell.com>
12398
12399         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
12400         changes to pick up any changes in prefix, etc.
12401
12402 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
12403
12404         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
12405         
12406         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
12407         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
12408
12409 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
12410
12411         * class-internals.h object-internals.h class.c reflection.c: Extend the
12412         mono_lookup_dynamic_token () function to return the class of the
12413         token as well. 
12414
12415         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
12416         well. Fixes #73848.
12417
12418 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
12419
12420         * security-manager.c: Skip inheritance checks for intra-corlib
12421         class inheritance and method overrides. This skips a lot of checks
12422         and (anyway) permissions cannot work until corlib is loaded.
12423
12424 2005-03-23  Martin Baulig  <martin@ximian.com>
12425
12426         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
12427         MONO_TYPE_GENERICINST.  
12428
12429 2005-03-23  Martin Baulig  <martin@ximian.com>
12430
12431         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
12432
12433 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
12434
12435         * class.c: added locking comments to some functions.
12436         Cache the interface offsets arrays (saves about 20 KB
12437         of runtime memory in a typical app).
12438         Reduce the time overhead in mono_class_setup_supertypes ().
12439
12440 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
12441
12442         * icall.c: speedup and fix leaks in GetMethodsByName and
12443         GetPropertiesByName.
12444
12445 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
12446
12447         * reflection.c: some locking fixes.
12448
12449 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
12450
12451         * metadata.c: added missing break in case statement.
12452
12453 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
12454
12455         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
12456         typedbyref return values. Fixes #73941.
12457
12458 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
12459
12460         * security-manager.c|h: Added demandunmanaged method and 
12461         suppressunmanagedcodesecurity class to MonoSecurityManager.
12462         Renamed aptc class to allowpartiallytrustedcallers.
12463
12464 2005-03-17  Martin Baulig  <martin@ximian.com>
12465
12466         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
12467
12468 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12469
12470         * file-io.c: disabled file async. IO using aio_*. It uses the
12471         threadpool now. Workaround for bug #73718.
12472
12473 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
12474
12475         * assembly.h, mono-config.c: added code to deal with bundled configs
12476         for bundled assemblies.
12477
12478 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
12479
12480         * *.c, private.h: cleanup, removing old private.h header file.
12481
12482 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
12483
12484         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
12485         and throw_on_unmappable_char attributes.
12486
12487 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
12488
12489         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
12490         _ProcessName_internal.
12491
12492 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
12493
12494         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
12495         #73631.
12496
12497         * icall.c threads.c threads-types.h: Remove slothash icalls as they
12498         are no longer used.
12499
12500 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
12501
12502         * object.c (compute_class_bitmap): Add support for generics. Fixes
12503         #73527.
12504
12505 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
12506
12507         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
12508
12509 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12510
12511         * filewatcher.c: commented out the code for windows watcher, as we don't
12512         use it (we use the managed implementation instead).
12513
12514 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
12515
12516         * object-internals.h (MonoThread): Remove 'unused1' field.
12517
12518         * appdomain.c: Bump corlib version.
12519
12520         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
12521
12522         * reflection.c (mono_reflection_create_runtime_class): Remove the
12523         AssemblyBuilder.Save optimization since it causes too many problems.
12524
12525 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
12526
12527         * exception.c|h: Added mono_get_exception_reflection_type_load to
12528         create a ReflectionTypeLoadException object.
12529         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
12530         to return NULL is a InheritanceDemand fails during reflection. Updated
12531         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
12532         ReflectionTypeLoadException if an InheritanceDemand fails during 
12533         reflection. Added icall mapping for GetLinkDemandSecurity.
12534         * security-manager.c|h: Added ves_icall_System_Security_
12535         SecurityManager_GetLinkDemandSecurity internal call to return the
12536         class and methods permissions set for a LinkDemand. Removed unused
12537         fields in MonoSecurityManager.
12538
12539 2005-03-10  Martin Baulig  <martin@ximian.com>
12540
12541         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
12542         it's a generic instance.
12543
12544 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
12545
12546         * reflection.c (mono_get_object_from_blob): Applied patch from
12547         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
12548
12549         * class.c (mono_class_is_assignable_from): Another try at fixing 
12550         #73469 without breaking anything.
12551
12552 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
12553
12554         * class.c: (mono_class_is_assignable_from): Revert the last changes
12555         since they don't work with generics.
12556         
12557         * class.c (mono_class_is_assignable_from): Fix build bustage.
12558
12559         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
12560         the managed IsAssignableFrom method. Fixes #73469.
12561
12562         * reflection.c (mono_reflection_call_is_assignable_from): New helper
12563         function.
12564
12565 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
12566
12567         * object.c (mono_load_remote_field_new): Fix returning uninitialized
12568         memory when the remoting callback does not sets the out arguments.
12569         Fixes #73007.
12570
12571         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
12572         by mistake.
12573
12574         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
12575
12576         * object-internals.h (MonoStackFrame): Sync with managed object layout.
12577
12578         * appdomain.c: Bump corlib version.
12579
12580 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
12581
12582         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
12583         function.
12584
12585         * threads.c (mono_thread_attach): Detect threads which are not started
12586         by the GC pthread wrappers.
12587
12588 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
12589
12590         * icall.c: Added new icall for RNG.
12591         * rand.c|h: Added new icall to open the RNG. This allows to share a 
12592         single handle on Linux to access /dev/urandom and fix #73183.
12593
12594 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
12595
12596         * object.c: setting the new vtable in a transparent proxy object must
12597         not change the GC descriptor.
12598
12599 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
12600
12601         * object.c: fixed compilation without GCJ support.
12602         * reflection.c: for runtime-created types ensure klass->has_references
12603         is correct (bug #73215).
12604
12605 2005-03-02  Martin Baulig  <martin@ximian.com>
12606
12607         * class.c (mono_class_is_assignable_from): Make this work if
12608         `oklass' is a generic instance; fixes #72831.
12609
12610 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
12611
12612         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
12613         with hasthis set.
12614         
12615         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
12616
12617         * marshal.c: Reorganize native->managed marshalling code to also use
12618         the emit_marshal_... functions.
12619
12620 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
12621
12622         * object.c: typed allocs have issues with bitmap sizes > 30,
12623         so check for max_set >= 30.
12624
12625 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
12626
12627         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
12628         managed code. Fixes #73012.
12629
12630         * metadata.h (MonoMarshalSpec): Add elem_mult field.
12631
12632         * metadata.c reflection.c: Load/Emit elem_mult as well.
12633         
12634         * metadata.h (MonoMarshalSpec): Add comment.
12635
12636         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
12637
12638         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
12639         num_elem to -1 if not given.
12640
12641         * object-internals.h (MonoReflectionMarshal): Add has_size field.
12642
12643         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
12644         given values.
12645
12646 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
12647
12648         * null-gc.c (mono_gc_free_fixed): Was not compilable.
12649
12650 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
12651
12652         * reflection.c (encode_marshal_blob): Encode param_num field as well.
12653
12654         * object-internals.h (MonoReflectionMarshal): Add param_num field.
12655
12656 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
12657
12658         * object.c: generalized the reference bitmap creation
12659         and added hooks for the new GC.
12660         * class-internals.c: removed the gc_bitmap field from MonoClass.
12661
12662 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
12663
12664         * domain.c: help the compiler to produce better code
12665         in mono_jit_info_table_find ().
12666
12667 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
12668
12669         * object.c: make all allocations look typed.
12670
12671 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
12672
12673         * socket-io.c: load Mono.Posix if it's not loaded already
12674         (fixes bug#73033).
12675
12676 2005-02-24  Martin Baulig  <martin@ximian.com>
12677
12678         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
12679         * reflection.c (dup_type): Likewise.
12680
12681 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
12682
12683         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
12684         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
12685
12686 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
12687
12688         * domain.c, threads.c, object-internals.h: make the critical thread
12689         local vars use the fast access mode (even when we're compiled in
12690         a lib). Provide accessors to be used by the jit during codegen.
12691
12692 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12693
12694         * appdomain.c: Changed hook functios behavior to include
12695         support for the reflection only assemblies. Some icalls were changed
12696         to support the mentioned assemblies too. Signatures of static methods
12697         try_assembly_resolve and real_load now have an additional parameter:
12698         refonly.
12699
12700         * assembly.c: General changes to mono_assembly_ methods to support
12701         reflection only api. Functions mono_assembly_open, mono_assembly_load,
12702         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
12703         suffix, to support an additional gbool parameter to specify whether
12704         the assembli is reflection only or not. Created some new hook functions 
12705         to add support for reflection only assemblies. Signatures of static 
12706         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
12707         have now an additional parameter: refonly.
12708
12709         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
12710         indicating whether the assembly is reflection only or not.
12711
12712         * exception.c: Add mono_get_exception_invalid_operation.
12713
12714         * icall.c: Throw an InvalidOperationException when trying to invoke
12715         a property/method/event, or trying to set/get the value of a field.
12716         Also add an icall to retrieve the ref_only flag to the
12717         MonoReflectionAssembly.
12718
12719 2005-02-23  Chris Toshok  <toshok@ximian.com>
12720
12721         Part of fix for #72827.
12722         * mono-debug.c (mono_debug_add_method): add lexical block data to
12723         the info we write.  Kind of a hack at the moment - we copy the
12724         lexical block info from the MonoDebugMethodInfo to the
12725         MonoDebugMethodJitInfo here, before writing it.
12726         (mono_debug_read_method): read the lexical block info.
12727
12728         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
12729
12730         * debug-mono-symfile.h: add lexical block support.
12731
12732         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
12733         support.
12734
12735 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
12736
12737         * loader.c (mono_lookup_pinvoke_call): Fix warning.
12738
12739         * object.c (mono_runtime_free_method): Call mono_free_method () and
12740         put the TODOs there.
12741
12742         * loader.c (mono_free_method): Free up most memory allocated for 
12743         dynamic methods.
12744
12745 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
12746
12747         * reflection.c: properly flag a Type argument to a
12748         named custom attr value (bug #72248).
12749
12750 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
12751
12752         * reflection.c: reduce code duplication in named custom
12753         attribute encoding.
12754
12755 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
12756
12757         * reflection.c: properly encode custom attrs of type object
12758         (bug #72649).
12759
12760 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
12761
12762         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
12763
12764 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
12765
12766         * socket-io.c: load System.dll if it's not loaded already
12767         (bug #72850 and #70477).
12768
12769 2005-02-21  Martin Baulig  <martin@ximian.com>
12770
12771         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
12772         generic instances.
12773
12774 2005-02-21  Martin Baulig  <martin@ximian.com>
12775
12776         * reflection.c (mono_image_build_metadata): We also need to
12777         "fixup" the MethodImpl table after we computed the final method
12778         indices.  Call fixup_methodimpl() to do that.
12779         (fixup_methodimpl): New private method.
12780
12781 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
12782
12783         * assembly.c: special case mscorlib.dll (bug#72536),
12784         patch from Carlos Alberto Cortez.
12785
12786 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
12787
12788         * threads-types.h threads.c: Fix build bustage.
12789
12790         * threads.c: Use a union for long<->double conversions.
12791
12792         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
12793         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
12794
12795         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
12796         containing the checkpoint call with NOT_TAKEN.
12797         
12798         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
12799         checkpoint before pushing the arguments, so they won't have to be
12800         spilled to stack.
12801
12802 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
12803
12804         * domain.c, assembly.c, domain-internals.h: make some data
12805         const and relocation-free.
12806
12807 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
12808
12809         * object.c, appdomain.c, class-internals.h: introduce the
12810         MonoClassRuntimeInfo structure to hold the info needed to
12811         use a class at runtime. Made mono_class_vtable() lock-free
12812         for all the appdomains.
12813
12814 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
12815
12816         * metadata-internals.h, image.c: introduce a per-image mempool to
12817         be used for memory that has the same lifetime as the image.
12818
12819 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
12820
12821         * domain.c: In mono_init_internal(), instead of selecting the first
12822         runtime version supported by an executable, get a list of all
12823         supported versions and select the one for which an mscorlib exists
12824         (since even if the runtime supports a given version, it doesn't mean
12825         that the framework for that version is installed).
12826         Modified get_runtimes_from_exe to support this behavior.
12827         In supported_runtimes, added information about additional system
12828         assembly versions.
12829         
12830         * assembly.c: Added support for more than one system assembly version
12831         per runtime version. Updated the assembly list.
12832         In mono_assembly_remap_version, removed the initial version check,
12833         since we don't know to which version we need to compare until we
12834         get the version set on which the assembly is based.
12835         Moved the code for loading corlib into the new method
12836         mono_assembly_load_corlib(), so it can be used by the initialization
12837         code.
12838         
12839         * domain-internals.h: Updated data structures and added declaration
12840         for mono_assembly_load_corlib.
12841
12842 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
12843
12844         * reflection.c (resolve_object): Fix the creation of the signature in 
12845         the SignatureHelper case.
12846
12847         * assembly.c (mono_assembly_remap_version): Fix binary search.
12848         
12849 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
12850  
12851         * class.c: Added inheritance check when a method is overloaded (from a
12852         virtual method or when implementing an interface) and when a class is
12853         inherited. Added functions to set a failure for a class and to 
12854         retreive the exception from a failure.
12855         * class-internals.h: Added fields to MonoClass to keep the exception
12856         information status for inheritance (or other exceptions) to be thrown
12857         later (i.e. not at load time).
12858         * object.c: Throw the inheritance SecurityException when a type is to 
12859         be created with either class or method inheritance violations.
12860         * reflection.c|h: Fix when getting declsec from a class. Removed 
12861         unrequired code for class. Improved sanity in parameter naming.
12862         * security-manager.c|h: Added functions to check for class and method
12863         inheritance.
12864
12865 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
12866
12867         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
12868         and has_finalize in dynamic types as well.
12869
12870 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
12871
12872         * culture-info-table.h : fixed currency format for en-GB (and so on).
12873
12874 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
12875
12876         * gc.c: ensure the GC handles never have 0 as a value.
12877
12878 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
12879
12880         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
12881         a pointer to a struct to unmanaged code. Fixes #72625.
12882
12883 2005-02-16  Martin Baulig  <martin@ximian.com>
12884
12885         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
12886
12887 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
12888
12889         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
12890
12891 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
12892
12893         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
12894
12895         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
12896         UnmanagedFunctionPointerAttribute, use it for determining calling convention
12897         etc. Fixes #71471.
12898
12899         * reflection.c (mono_custom_attrs_get_attr): New helper function.
12900
12901         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
12902
12903 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
12904
12905         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
12906         changes to make the current context a field in MonoThread.
12907
12908 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
12909
12910         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
12911         the last change.
12912         
12913         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
12914         extracted from mono_marshal_get_native_wrapper.
12915
12916         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
12917         to create wrappers around native functions.
12918
12919         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
12920         delegates for arbitrary function pointers. Fixes #71472.
12921
12922 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
12923
12924         * threads.c: cleaned up the code a little.
12925
12926 2005-02-15  Martin Baulig  <martin@ximian.com>
12927
12928         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
12929         the data table.
12930
12931         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
12932         allocate larger chunks if needed.
12933
12934 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
12935
12936         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
12937         in by mistake.
12938
12939 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
12940
12941         * domain.c: keep the domains in an array and ensure the domain ids
12942         are kept small, so they can be used as indexes to domain-specific data
12943         with a small memory overhead.
12944
12945 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
12946
12947         * icall.c: Handle byref types in Type icalls. Fixes #72544.
12948
12949 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
12950
12951         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
12952
12953 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
12954
12955         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
12956
12957         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
12958         values.
12959
12960         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
12961         
12962 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
12963
12964         * domain-internals.h: add the hashtable here.
12965
12966         * class-internals.h: Remove `info' from MonoMethod
12967
12968         * domain.c: Add a new hashtable, jit_trampoline_hash
12969
12970 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
12971
12972         * object.c: don't set the value of static fields
12973         (fixes bug#72494).
12974
12975 2005-02-11  Martin Baulig  <martin@ximian.com>
12976
12977         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
12978         (mono_debug_add_method): Silently ignore the method if it's too big.
12979         (mono_debug_add_type): Likewise.
12980
12981 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
12982
12983         * threads.c, appdomain.c: remove #ifdefs from the code.
12984
12985 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
12986
12987         * metadata-internals.h: Added flags to MonoAssembly to cache the most
12988         common security informations. This allows us to stay in unmanaged code
12989         when doing LinkDemand and it's special cases (except for the first 
12990         time for initialization). The flags a very much used with --security.
12991         * reflection.c|h: Added code to get declarative security attributes 
12992         for LinkDemand and InheritanceDemand. This required to refactor the
12993         existing code for Demand.
12994         * security-manager.c|h: Added new method fields for the special cases
12995         of LinkDemand.
12996
12997 2005-02-10  Martin Baulig  <martin@ximian.com>
12998
12999         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
13000         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
13001
13002 2005-02-10  Martin Baulig  <martin@ximian.com>
13003
13004         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
13005         debugging code; this is almost a complete rewrite.
13006
13007         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
13008
13009 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
13010
13011         * domain.c, object.h: expose mono_string_equal () and 
13012         mono_string_hash ().
13013         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
13014         it's implemented in managed code.
13015
13016 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
13017
13018         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
13019         lo leak objects between appdomains.
13020
13021 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
13022
13023         * assembly.c: old compilers compilation fix from 
13024         robertj@gmx.net (Robert Jordan).
13025
13026 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
13027
13028         * class-internals.h: Little reminder for the future.
13029
13030         * debug-helpers.c: Fix up wrapper_type_names
13031
13032 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
13033
13034         * image.c, metadata-internals.h: when loading an image from a file,
13035         mmap all of it and use the same codepaths as when using a
13036         in-memory image: the code is simpler and we use less memory
13037         (both writable and readonly).
13038
13039 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
13040
13041         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
13042         API to alloc runtime data structures that need to be tracked by the
13043         GC and contain pointers.
13044         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
13045         make the code more readable and eventually use a different GC.
13046
13047 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
13048
13049         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
13050         for out arguments.
13051         
13052 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
13053
13054         * object.c: In release_type_locks(), don't release the cctor lock
13055         if it has already been released. This fixes a crash in the
13056         thread5 test.
13057
13058 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
13059
13060         * gc.c, marshal.c, icall.c: register a delegate for finalization
13061         only when the native function pointer has been allocated for it.
13062
13063 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
13064
13065         * object.c: cleaned up some code, allocate objects that are
13066         pointer free with the atomic malloc variant. Allocate memory
13067         for static data from the mempool if it's pointer-free.
13068         Allocate the bounds array at the end of the array data, when needed.
13069         * object-internals.h, object.h: move a private function in a private
13070         header.
13071         * class.c: handle missing case in tracking references in fields.
13072
13073 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
13074
13075         * class.c, class-internals.h: keep track if a type has
13076         reference fields in either the instance or static fields.
13077
13078 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
13079
13080         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
13081         and renamed to MonoRuntimeInfo. Added fields to store the expected
13082         framework assembly version. Changed mono_get_framework_version and
13083         mono_get_runtime_version for a single mono_get_runtime_info method.
13084         
13085         * assembly.c: Added method to remap system assembly versions to the
13086         current executing runtime version. Removed old mapping code.
13087         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
13088         
13089         * icall.c, reflection.c: Track api changes.
13090
13091 2005-02-06  Miguel de Icaza  <miguel@novell.com>
13092
13093         * loader.c (method_from_memberref): Improve error reporting,
13094         produce the class name instead of the typeref/typedef index. 
13095
13096 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
13097
13098         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
13099
13100 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
13101
13102         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
13103         stdcall and charset name mangling.  Reorganize the code and add
13104         some tracing stuff.
13105
13106 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
13107
13108         * monodiet.c: More iters!
13109
13110         * marshal.c: Iter usage.
13111
13112         * icall.c: Iter usage.
13113
13114         * object.c: Use iters.
13115
13116         * debug-helpers.c: More iters
13117
13118 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
13119
13120         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
13121         under win32.
13122
13123 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
13124
13125         * mono-debug-debugger.c: use iters
13126
13127         * class.c, class-internals.h: mono_class_setup_events is static
13128         now
13129
13130         * All callers: use iters
13131
13132 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
13133
13134         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
13135         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
13136
13137 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
13138
13139         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
13140
13141         * marshal.h: Add prototypes for ldfld/stfld_remote.
13142
13143         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
13144         this is called during startup.
13145         
13146 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
13147
13148         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
13149         MonoThreadsSync struct private in monitor.c. Changed the way
13150         MonoThreadsSync is allocated so it's faster and there is no
13151         need to keep track of it with a finalizer and it uses less memory.
13152         This also finally allows us to allocate mono objects as ptrfree when
13153         there are no reference fields.
13154
13155 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
13156
13157         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
13158         disappearing link to the GC interface and use them to simplify
13159         the gchandles code.
13160
13161 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
13162
13163         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
13164         stfld_remote which call mono_load/store_field_new. This allows methods
13165         calling ldfld/stfld wrappers to be AOTed.
13166
13167         * console-io.c: Include sys/filio.h under solaris.
13168         
13169         * console-io.c: Include curses.h if needed correctly.
13170
13171 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
13172         
13173         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
13174         method->klass as well.
13175
13176         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
13177
13178         * class.c (mono_class_init): Switch on lazy initialization of 
13179         methods.
13180
13181         * class.c (mono_class_get_finalizer): Handle the case when the 
13182         finalizer is inherited.
13183
13184 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13185
13186         * console-io.c: <curses.h> is needed by term.h on solaris.
13187
13188 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
13189
13190         * icall.c, class-internals.h, monodiet.c, class.c: Remove
13191         mono_class_setup_properties where possible. Remove this ftn from
13192         the header file, and make it static.
13193
13194 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
13195
13196         * loader.c: Add missing setup_... call.
13197
13198         * class.c: Add missing setup_... calls.
13199
13200         * class.c (mono_class_init): Switch on lazy initialization of 
13201         the generic vtable.
13202         
13203         * class.c (mono_class_init): Fix generics broken by the recent changes.
13204
13205         * monodiet.c (handle_type): Add missing setup_... calls.
13206
13207         * class.c: Back out garbage in previous patch.
13208         
13209         * class.c: Add missing setup_... calls.
13210
13211         * class.c (mono_class_get_method_from_name_flags): Avoid calling
13212         mono_class_setup_methods () if possible.
13213
13214         * class-internals.h (MonoClass): Add 'has_cctor' flag.
13215
13216         * class-internals.h (MonoCachedClassInfo): New structure.
13217
13218         * class.c: Initialize properties and events fields of MonoClass lazily.
13219
13220         * class.c: Add infrastructure for lazily initializing the methods and
13221         vtable fields of MonoClass. Not yet used.
13222
13223         * class.c (mono_class_get_finalizer): New helper function.
13224
13225         * class.c: Add infrastructure for loading some class related data from
13226         an AOT file.
13227
13228         * object.c: Add infrastructure for initializing the vtable from data
13229         in the AOT file.
13230
13231         * gc.c (run_finalize): Use mono_class_get_finalizer ().
13232
13233         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
13234         appropriate initialization function before accessing parts of the
13235         MonoClass structure.
13236
13237         * marshal.c: Fix warnings.
13238         
13239         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
13240
13241         * mono-debug-debugger.c (get_exception_message): Use 
13242         mono_class_get_method_from_name_flags ().
13243
13244 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
13245
13246         * reflection.c, appdomain.c: Replace a few manual searches that
13247         Zoltan missed. (Paolo approved this part of my initial patch).
13248
13249 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
13250
13251         * profiler.c: disable recording statistical events at report time.
13252
13253 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
13254
13255         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
13256         to byteswap arrays of enum values, too (bug #72080).
13257
13258 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
13259
13260         * appdomain.c (set_domain_search_path): Allow this to be called if
13261         domain->setup is not yet set.
13262
13263         * loader.c (mono_method_get_index): New helper function.
13264
13265         * loader.c reflection.c: Use mono_method_get_index ().
13266
13267         * class.c (mono_class_get_method_from_name_flags): New helper method.
13268
13269         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
13270         this.
13271
13272         * class.c (mono_class_get_cctor): New helper method.
13273
13274         * string-icalls.c object.c class.c marshal.c reflection.c: Use
13275         mono_class_get_method () to look up methods.
13276
13277 2005-02-01  Miguel de Icaza  <miguel@novell.com>
13278
13279         * console-io.c: Fix the build, this should work on Windows.
13280
13281 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
13282
13283         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
13284         be set to null to keep things valid
13285
13286 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13287
13288         * icall.c: added Console 2.0 icalls.
13289         * Makefile.am: added console-io.[ch]
13290         * console-io.[ch]: internal calls for Console 2.0 API.
13291
13292 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
13293
13294         * class.c: make sure we consider all the interfaces
13295         when calculating max_interface_id (bug found by
13296         Jeroen Frijters running ikvm).
13297
13298 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
13299
13300         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
13301         valuetype fields to null.
13302
13303         * object.c (set_value): Ditto. Fixes #71669.    
13304
13305 2005-01-31  Martin Baulig  <martin@ximian.com>
13306
13307         * metadata.c (mono_metadata_has_generic_params): New public
13308         function; checks whether something is a generic method.
13309
13310 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
13311
13312         * appdomain.c: fix infinite recursion when adding assemblies.
13313
13314 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
13315
13316         * object.c: Fix small typo to return all items for Environment.
13317         GetCommandLineArgs.
13318
13319 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
13320
13321         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
13322         reflection.c: more domain and assembly-unload related fixes
13323         and memory leaks plugs.
13324
13325 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
13326
13327         * 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.
13328
13329 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
13330
13331         * loader.c (mono_method_signature): Make this method lazy
13332         (mono_get_method_from_token): Don't computate the signature here.
13333
13334         Doing this saves quite a bit of memory. I got 90 kb on starting up
13335         monodoc. It should also save some disk reads on startup.
13336
13337         * *: MonoMethod->signature might be NULL now. You *MUST* use
13338         mono_method_signature.
13339
13340 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
13341
13342         * object.c (mono_runtime_get_main_args): Return an array from the
13343         current domain here. Fixes #71938.
13344
13345 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
13346
13347         * monitor.c: formatting changes to comply with the
13348         mono coding style and remove #ifdefs from the code.
13349
13350 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
13351
13352         * metadata.c, private.h: remove some unneeded data
13353         and use a more compact representation for table schemas.
13354
13355 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
13356
13357         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
13358         to get a better distribution in hash tables.
13359         * *.c: use mono_aligned_addr_hash() where appropriate.
13360         * assembly.c: make var static.
13361
13362 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
13363
13364         * domain-internals.h: Put MonoJitInfo on a diet.
13365
13366         * domain.c: Fix a warning.
13367
13368 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
13369
13370         * gc.c: rework the gc handles code to reuse handles
13371         when freed.
13372
13373 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
13374
13375         * domain.c: fixed long standing bug in mono_string_equal() which
13376         was brought to light with the ldstr changes.
13377
13378 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
13379
13380         * reflection.c: Remove warning by adding missing include for marshal.h
13381
13382 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
13383
13384         * domain.c, object.c: change the ldstr_table to hold
13385         MonoString* as keys: makes the runtime isinterned lookup
13386         faster and simplifies memory management.
13387
13388 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
13389  
13390         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
13391         possible to add imperative security checks before calling the icall.
13392         * reflection.c: Return security attributes on the original MonoMethod
13393         (and not the wrapped one). This fix permissions on icalls.
13394
13395 2005-01-25  Dick Porter  <dick@ximian.com>
13396
13397         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
13398         the check for mktime() support actually test the mktime() return
13399         value.  "Fixes" bug 71682, though the output is still different to
13400         MS.
13401
13402 2005-01-25  Martin Baulig  <martin@ximian.com>
13403
13404         * class.c (mono_class_is_assignable_from): Make this work for
13405         generic instances.
13406
13407 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
13408
13409         * marshal.c (mono_string_utf8_to_builder)
13410         (mono_string_builder_to_utf16): We might not have ownership of the
13411         string. In thise case, we need to create a new buffer.
13412
13413         * object-internals.h (mono_stringbuilder_capacity): sb->str might
13414         be null, in which case, use the default capacity.
13415
13416 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
13417
13418         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
13419         GC events to the profiler.
13420
13421 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
13422
13423         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
13424         if you don't want the GC to run.
13425
13426 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
13427
13428         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
13429         start providing a GC API and keeping different implementations in
13430         their own file.
13431         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
13432
13433 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
13434
13435         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
13436         mmap rather than allocating a huge buffer.
13437         (mono_debug_close_mono_symbol_file): Free the buffer allocated
13438         above.
13439
13440 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
13441
13442         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
13443         and CheckExecutionRights.
13444         * reflection.c|h: Keep the index of the declarative security to be 
13445         used, instead of the pointer, when AOT compiler is used. Also add 
13446         class initialization when requesting demands.
13447         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
13448         CheckExecutionRights. Both properties are now FALSE by default, and
13449         unmodifiable, unless the --security option is used.
13450
13451 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
13452
13453         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
13454         reflection.c: properly refcount images and assemblies, many leaks fixed.
13455
13456 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13457
13458         * threadpool.c: increase the timeout for threads in the thread pool to
13459         10s.  Fixes bug #67159.
13460
13461 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
13462
13463         * class-internals.h: Sun's compiler insists on explicit
13464         signed on bit fields to handle then correctly.
13465
13466 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
13467
13468         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
13469         Make the size of the array fit only the number of invalid path
13470         chars that we have.
13471
13472         * class.c (_mono_class_get): Improve the error reporting when a
13473         class referenced is not found, to assist debugging. 
13474
13475 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
13476
13477         * threads.c: fix off-by-one error.
13478         * domain.c: free data allocated in the domain.
13479
13480 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
13481
13482         * reflection.c (mono_method_body_get_object): Fill out exception info
13483         as well.
13484
13485         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
13486         structure.
13487         
13488 2005-01-19  Martin Baulig  <martin@ximian.com>
13489
13490         * loader.c (mono_get_method_constrained): Make this work again.
13491
13492 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
13493
13494         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
13495         guint16 to match the managed side.
13496
13497         * reflection.c (mono_reflection_body_get_object): Fill out local
13498         variables array.
13499
13500         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
13501         as well.
13502
13503         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
13504         'local_var_sig_token'.
13505
13506 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
13507
13508         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
13509         System.Drawing.
13510
13511         * reflection.c (mono_method_body_get_object): Handle abstract and
13512         runtime methods.
13513
13514 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
13515
13516         * marshal.c, loader.c, class-internals.h, reflection.c:
13517         store the emthod data for a wrapper in an array instead of a list.
13518
13519 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
13520
13521         * marshal.c: change the code to allocate memory more
13522         conservatively for method wrappers.
13523
13524 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
13525
13526         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
13527         fields from MonoClass to the marshal info structure where they belong.
13528
13529 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
13530
13531         * class.c, object.c, class-internals.h, marshal.c: rearrange
13532         some fields and tweak some types to lower memory usage.
13533
13534 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
13535
13536         * threads.c (signal_thread_state_change): Handle the case when the
13537         target thread is the current thread.
13538
13539         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
13540
13541         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
13542         emit_ptr_to_object_conv. 
13543
13544         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
13545         marshalling. Fixes #71352.
13546
13547 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
13548
13549         * metadata.h, blob.h: move table enum to blob.h so it can be included
13550         in any header.
13551         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
13552         cut the size of MonoImage/MonoDynamicImage.
13553
13554 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
13555
13556         * profiler.c (mono_profiler_install_simple): Fix default arguments.
13557
13558 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
13559
13560         * reflection.c, reflection.h, icall.c: add a function to check
13561         if an attribute type is defined for a metadata object.
13562
13563 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
13564
13565         * object-internals.h: Added some needed fields from StringBuilder class.
13566         * marshal.c: Set the maxCapacity when creating a StringBuilder.
13567
13568 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
13569
13570         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
13571         threads before shutting down the runtime.
13572
13573         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
13574
13575 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
13576
13577         * object-internal.h, threads.c: implement stacksize and 
13578         parameterized thread start functionality (requires
13579         matching corlib). Marked broken code for later removal.
13580
13581 2005-01-12  Martin Baulig  <martin@ximian.com>
13582
13583         * class-internals.h (MonoGenericClass): Moved the `initialized'
13584         flag to MonoDynamicGenericClass, removed `init_pending'.
13585         (MonoGenericInst): Added `is_reference' flag.
13586
13587 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
13588
13589         * reflection.c (mono_image_create_pefile): Only set the pe_offset
13590         inside the MSDOS header. Fixes #71201.
13591
13592         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
13593         gc thread.
13594         (mono_domain_finalize): Ditto.
13595
13596 2005-01-12  Martin Baulig  <martin@ximian.com>
13597
13598         * class.c (mono_get_shared_generic_class): Use the cache for
13599         non-dynamic generic classes.
13600
13601         * class-internals.h (mono_class_create_generic_2): Removed
13602         function prototype, this function is now static inside class.c.
13603
13604         * class.c (mono_class_create_generic_2): Made this static, only
13605         call it from mono_class_init() and mono_class_setup_parent().
13606         (collect_implemented_interfaces_aux): Call mono_class_init() on
13607         the interfaces we collect.
13608         (mono_class_setup_vtable): Call mono_class_init (class->parent).
13609
13610 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
13611
13612         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
13613         it a real thread handle.
13614
13615         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
13616         MonoJitExceptionInfo, since each catch clause needs its own variable.
13617         
13618 2005-01-11  Dick Porter  <dick@ximian.com>
13619
13620         * image.c (mono_pe_file_open): New variant on mono_image_open()
13621         that does not set up the CLI metadata; used for FileVersionInfo so
13622         it can get the data for windows binaries too.
13623         
13624         * process.c (process_read_string_block): Don't read off the end of
13625         the StringTable block.
13626
13627         These both fix bug 70766.
13628
13629 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
13630
13631         * gc.c: set some fields to NULL at GC cleanup time.
13632         * threads.c: if we quit the main thread, call exit ().
13633
13634 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
13635
13636         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
13637
13638 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
13639
13640         * threads.h, threads.c, object.c: added accessor and settor for
13641         main_thread. Handle it specially when exiting from it: wait
13642         for other foreground threads to exit.
13643
13644 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
13645
13646         * process.c, verify.c: remove some bloat.
13647
13648 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
13649
13650         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
13651         the calling convention to cdecl under win32.
13652
13653 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
13654
13655         * object.c (mono_object_get_size): New function to get the size of
13656         an object instance.
13657
13658         * profiler.c (simple_allocation): Use above.
13659
13660 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
13661
13662         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
13663         ves_icall_System_AppDomain_getRootDomain (as it's not required to
13664         get an appdomain by it's id and we can't assume the root's id is 0).
13665         * domain-internals.h: Change the function prototype to match.
13666         * icall.c: Change the icall table for AppDomain.
13667
13668 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
13669
13670         * locales.c (string_invariant_compare_char): Only compute
13671         GUnicodeTypes in the case where we need them.  Test for ordinality
13672         first and return if so.
13673
13674         From the commit:
13675
13676                 /*
13677                  * FIXME: here we must use the information from c1type and c2type
13678                  * to find out the proper collation, even on the InvariantCulture, the
13679                  * sorting is not done by computing the unicode values, but their
13680                  * actual sort order.
13681                  */
13682
13683 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
13684
13685         * loader.c: for P/Invoke methods, allow the "Internal" shared
13686         library name to refer to the calling process symbol namespace.
13687
13688 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
13689
13690         * Makefile.am: Add the security manager to the build.
13691         * security-manager.c|h: New. Initialization of the security manager.
13692
13693 2005-01-07  Dick Porter  <dick@ximian.com>
13694
13695         * threads.c: 
13696         * monitor.c: Update thread state during Monitor and WaitHandle
13697         waits.  Fixes bug 71031.
13698
13699 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
13700
13701         * reflection.c (property_encode_signature): Correctly handle when the
13702         property has no methods.
13703
13704 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
13705
13706         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
13707         
13708         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
13709         fields from mb, not rmb. Fixes #71017.
13710
13711         * marshal.c (emit_ptr_to_str_conv): Add support for 
13712         ByValTStr -> string conversion. Fixes #71015.
13713
13714         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
13715
13716         * mempool.c (mono_mempool_contains_addr): New helper function.
13717
13718 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
13719
13720         * metadata.c (mono_metadata_compute_size): Fix size calculation of
13721         HasSematics encoded fields.
13722         
13723         * metadata.c (mono_type_to_unmanaged): Improve error message for 
13724         invalid string marshalling.
13725
13726         * metadata.c: Fix warnings.
13727         
13728 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
13729
13730         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
13731         profiler support.
13732
13733 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
13734
13735         * domain.c object.c domain-internals.h: Revert part of r38077 since the
13736         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
13737         tests.
13738
13739 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
13740
13741         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
13742         so methods containing these can be AOTed.
13743
13744 2005-01-03  Martin Baulig  <martin@ximian.com>
13745
13746         * loader.c (find_method): Removed the hack for generic instances.
13747         (method_from_memberref): If our parent is a generic instance, pass
13748         its generic type definition to find_method() and then inflate the
13749         method.
13750         (mono_get_method_constrained): Pass the generic type definition to
13751         find_method() and inflate the method later.
13752
13753         * class-internals.h (MonoStats): Added `generic_class_count'.
13754
13755         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
13756         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
13757
13758         * reflection.c (mono_custom_attrs_from_params): Don't ignore
13759         generic type definitions.
13760
13761 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
13762
13763         * loader.c icall.c: Fix warnings.
13764
13765 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
13766
13767         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
13768         blittable types. Fixes #70864.
13769
13770 2004-12-29  Martin Baulig  <martin@ximian.com>
13771
13772         * icall.c
13773         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
13774
13775         * reflection.c (mono_method_get_object): Create a
13776         "System.Reflection.MonoGenericMethod" for inflated methods; don't
13777         call mono_get_inflated_method().
13778
13779         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
13780
13781 2004-12-27  Martin Baulig  <martin@ximian.com>
13782
13783         * class-internals.h (MonoMethod): Added `is_inflated' flag.
13784         (MonoMethodInflated): Added `inflated' field.
13785
13786         * class.c (mono_class_inflate_generic_method): Don't really
13787         inflate the method here; just set the `is_inflated' flag in the
13788         MonoMethod.
13789         (mono_class_get_inflated_method): Actually inflate the method here
13790         if it's not already inflated; we use the MonoMethodInflated's new
13791         `inflated' field as a cache.
13792
13793 2004-12-26  Martin Baulig  <martin@ximian.com>
13794
13795         * class.c
13796         (inflate_generic_class): Moved some code out of inflate_generic_type().
13797         (mono_class_inflate_generic_method): If we're already inflated,
13798         inflate the context and use the declaring method; ie. make sure
13799         the declaring method of an inflated method is always the generic
13800         method definition.
13801         (mono_class_create_from_typedef): Create
13802         `class->generic_container->context->gclass'.
13803
13804 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
13805
13806         * metadata-internals.h, marshal.c, reflection.c: More
13807         MonoGHashTable->GHashTable.
13808
13809         * domain-internals.h, class.c: Change MonoGHashTable's into
13810         GHashTables for some cases where no gc stuff is used
13811
13812         All users: update apis
13813
13814 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
13815
13816         * metadata.c (builtin_types): Make this `const'. Makes this get
13817         put into the shareable section.
13818         (mono_metadata_init): Casts to make gcc happy.
13819
13820 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
13821
13822         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
13823
13824 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
13825
13826         * icall.c: Added an internal call to retrieve the position and length
13827         of assembly-level declarative security attributes (RequestMinimum, 
13828         RequestOptional and RequestRefuse). This is used by the Assembly class
13829         to re-create the corresponding permission sets.
13830
13831 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
13832
13833         * marshal.c: fix the stelemref wrapper to be type correct
13834         (and faster).
13835
13836 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
13837
13838         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
13839         to do key & 0x7fffffff. Hashtable already does this. It just
13840         results in longer code.
13841
13842 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
13843
13844         * appdomain.c: Bump corlib version.
13845         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
13846         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
13847         * reflection.c|h: Add functions to get declarative security infos
13848         (blob position and length) for assemblies, classes and methods.
13849
13850 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
13851
13852         * reflection.c: sort the constant table (bug #70693).
13853
13854 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
13855
13856         * object-internals.h, threads.c, domain.c: add accessors for
13857         the MonoThread and MonoDomain tls keys.
13858
13859 2004-12-18  Martin Baulig  <martin@ximian.com>
13860
13861         * class.c (inflate_generic_type): If we're inflating a generic
13862         instance, set `ngclass->context->container = context->container';
13863         ie. the container we inflated into.
13864
13865         * metadata.c (mono_metadata_parse_generic_param): Reflect above
13866         inflate_generic_type() changes.
13867
13868 2004-12-17  Martin Baulig  <martin@ximian.com>
13869
13870         * class-internals.h
13871         (MonoGenericClass): Replaced `MonoType *generic_type' with
13872         `MonoClass *generic_class'.  Removed `dynamic_info'; if
13873         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
13874         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
13875
13876 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
13877
13878         * exception.c (mono_exception_from_token): New helper function.
13879
13880 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
13881
13882         * assembly.c (mono_assembly_load_with_partial_name): Call 
13883         mono_assembly_loaded before invoking the preload hooks. Fixes
13884         #70564.
13885
13886         * object-internals.h (MonoThread): Change culture_info and 
13887         ui_culture_info into an array.
13888
13889         * threads.c: Cache culture info objects from more than one appdomain.
13890
13891         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
13892         current UI culture.
13893
13894 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
13895
13896         * threads.h threads.c appdomain.c: Clear the culture_info field of
13897         all threads during unloading if they point to an object in the dying
13898         appdomain.
13899
13900 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
13901
13902         * culture-info.h (TextInfoEntry): New struct
13903         * object-internals.h: sync with managed
13904         * locales.c: fill the `text_info_data' field
13905         * culture-info-tables.h: update
13906
13907 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
13908
13909         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
13910         collector.
13911
13912 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
13913
13914         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
13915         (ves_icall_ModuleBuilder_getMethodToken): Ditto
13916
13917 2004-12-12  Martin Baulig  <martin@ximian.com>
13918
13919         * mono-debug-debugger.c (write_type): If we're an enum and the
13920         builtin types have already been initialized, call mono_class_init().
13921
13922 2004-12-11  Martin Baulig  <martin@ximian.com>
13923
13924         * metadata.c (mono_metadata_load_generic_params): Added
13925         `MonoGenericContainer *parent_container' argument; automatically
13926         compute `container->is_method'; pass the correct owner to
13927         get_constraints().      
13928
13929         * reflection.c (compare_genericparam): Sort the GenericParam table
13930         according to increasing owners. 
13931
13932 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
13933
13934         * profiler.c: allow disabling the default profiler.
13935
13936 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
13937
13938         * decimal.c, icall.c: allow disabling System.Decimal support.
13939
13940 2004-12-09  Marek Safar <marek.safar@seznam.cz>
13941
13942         * reflection.c: Add support for null attribute arguments.
13943
13944 2004-12-09  Martin Baulig  <martin@ximian.com>
13945
13946         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
13947         names to get rid of compiler warnings.
13948
13949 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
13950
13951         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
13952         mono_marshal_load_type_info (). Fixes #69625.
13953         (mono_marshal_get_ptr_to_struct): Likewise.
13954
13955 2004-12-08  Martin Baulig  <martin@ximian.com>
13956
13957         * mono-debug.h: Bumped version number to 47.
13958
13959         * mono-debug-debugger.c
13960         (mono_debugger_event_handler, mono_debugger_event): Take two
13961         guint64 arguments insteed of a gpointer and a guint32.  
13962
13963 2004-12-08  Martin Baulig  <martin@ximian.com>
13964
13965         * debug-mono-symfile.h
13966         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
13967         `address' to `native_offset'.
13968
13969 2004-12-08  Martin Baulig  <martin@ximian.com>
13970
13971         * class.c (mono_class_create_from_typespec): Only inflate if we
13972         either have `context->gclass' or `context->gmethod'.
13973
13974 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
13975
13976         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
13977
13978         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
13979
13980         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
13981
13982         * reflection.c (mono_assembly_get_object): Remove the workaround put
13983         in for the release.
13984         
13985         * appdomain.c: Use the corlib_internal field from MonoAssembly.
13986
13987         * appdomain.c: Bump corlib version.
13988
13989         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
13990         be visible in other appdomains.
13991
13992 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
13993
13994         * threads.c: Interlocked inc and dec for longs were messed up,
13995         use a KISS based impl for this. Fixes 70234
13996
13997 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
13998
13999         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
14000
14001 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
14002
14003         * icall.c: fix to follow policy not to allow struct
14004         arguments in icalls.
14005
14006 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14007
14008         * process.c: make the patch that handles spaces in file paths work
14009         on mono/windows too.
14010
14011 2004-12-06  Martin Baulig  <martin@ximian.com>
14012
14013         * class.c (mono_class_create_generic): Call
14014         mono_class_setup_supertypes() if we're dynamic.
14015         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
14016
14017 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
14018
14019         * object-internals.h: Add new fields to MonoThread.
14020
14021         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
14022
14023         * icall.c threads-types.h threads.c: Add new icalls.
14024
14025         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
14026
14027         * object-internals.h (MonoReflectionAssembly): Sync object layout with
14028         managed side.
14029
14030         * appdomain.c: Bump corlib version.
14031
14032         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
14033         internal assemblies. Fixes #69181.
14034
14035 2004-12-05  Martin Baulig  <martin@ximian.com>
14036
14037         * class.c (mono_class_inflate_generic_signature): Make this a
14038         no-op if `context' is NULL or we don't have any type parameters;
14039         also copy `sentinelpos'.        
14040
14041 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
14042
14043         * image.c: Add unbox_wrapper_cache.
14044
14045         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
14046
14047         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
14048         function generator.
14049         
14050         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
14051         Fixes #70173.
14052
14053         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
14054         
14055 2004-12-04  Martin Baulig  <martin@ximian.com>
14056
14057         * loader.c (mono_method_get_signature_full): New public function;
14058         like mono_method_get_signature(), but with an additional
14059         `MonoGenericContext *' argument.
14060
14061         * class.c (mono_class_inflate_generic_signature): Formerly known
14062         as inflate_generic_signature(); make this public.
14063
14064 2004-12-04  Martin Baulig  <martin@ximian.com>
14065
14066         * metadata.c
14067         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
14068         instead of a `MonoGenericContainer *'.  
14069         (mono_metadata_parse_array_full): Likewise.
14070         (mono_metadata_parse_signature_full): Likewise.
14071         (mono_metadata_parse_method_signature_full): Likewise.
14072         (mono_metadata_parse_generic_inst): Likewise.
14073         (mono_metadata_parse_generic_param): Likewise.
14074         (mono_metadata_parse_mh_full): Likewise.
14075         (mono_type_create_from_typespec_full): Likewise.
14076
14077 2004-12-03  Martin Baulig  <martin@ximian.com>
14078
14079         * class-internals.h (MonoGenericContainer): Replaced the
14080         `MonoGenericContext * pointer with a `MonoGenericContext'
14081         structure and made it the first element.
14082
14083 2004-12-03  Martin Baulig  <martin@ximian.com>
14084
14085         * class.c
14086         (inflate_generic_type): Set the `context->container' when creating
14087         a new MonoGenericContext.
14088         (mono_class_inflate_generic_method): Likewise.
14089         (mono_class_create_from_typespec): Just use `context->container'
14090         to get the container.
14091
14092         * loader.c (method_from_methodspec): Set `context->parent' from
14093         `context->container' - and if that's a method container, use its
14094         parent.  Also set the `context->container' when creating a new
14095         MonoGenericContext.
14096         (mono_get_method_from_token): Use just `context->container' to get
14097         the container.
14098
14099         * metadata.c (do_mono_metadata_parse_generic_class): Also set
14100         `gclass->context->container'.
14101
14102         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
14103         the `context->container' when creating a new MonoGenericContext.
14104
14105 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
14106
14107         * reflection.c (compare_genericparam): Sort params with identical
14108         owner by their number. Fixes gen-111 on sparc.
14109
14110 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
14111
14112         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
14113         around the domain changes.
14114
14115         * appdomain.c (mono_domain_unload): Handle the case when the thread
14116         calling Unload is itself being aborted during unloading. Fixes #70022.
14117
14118         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
14119
14120         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
14121         checkpoint_func as an icall so it gets a wrapper.
14122         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
14123         in the cross-appdomain wrappers too.
14124
14125         * threads.c (mono_thread_has_appdomain_ref): Make this public.
14126
14127         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
14128
14129         * reflection.c: Fix some memory leaks.
14130         
14131 2004-12-02  Martin Baulig  <martin@ximian.com>
14132
14133         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
14134
14135         * metadata.c (generic_class_cache): New static hashtable.
14136         (mono_metadata_lookup_generic_class): New public method.
14137
14138 2004-12-02  Martin Baulig  <martin@ximian.com>
14139
14140         * class.c (mono_class_create_from_typedef): Call
14141         mono_class_setup_parent() and mono_class_create_mono_type() before
14142         parsing the interfaces.
14143
14144 2004-12-02  Martin Baulig  <martin@ximian.com>
14145
14146         * metadata.c (generic_inst_cache): New static hashtable.
14147         (mono_metadata_lookup_generic_inst): New public function.
14148         (mono_metadata_inflate_generic_inst): New public function.
14149         (mono_metadata_parse_generic_inst): New public function.
14150         (do_mono_metadata_parse_generic_class): Use the new
14151         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
14152         since this'll also use the cache.
14153
14154         * reflection.c (mono_reflection_bind_generic_method_parameters):
14155         Use mono_metadata_lookup_generic_inst() to use the new cache.
14156
14157         * class.c (inflate_mono_type): Use
14158         mono_metadata_inflate_generic_inst() to inflate a generic
14159         instance; this'll also use the new cache.
14160
14161         * loader.c (method_from_methodspec): Use
14162         mono_metadata_parse_generic_inst() and
14163         mono_metadata_inflate_generic_inst() rather than parsing it
14164         manually, so we can use the new cache.
14165
14166 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
14167
14168         * threads.c (wait_for_tids): Do not incorrectly free threads when 
14169         the wait times out.
14170
14171 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
14172
14173         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
14174         iter->args based on whether parameters are passed in registers (i.e.
14175         MONO_ARCH_REGPARMS is defined)
14176
14177 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
14178
14179         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
14180         the exception message. Fixes #70070.
14181         (method_from_methodspec): Fix warnings.
14182
14183 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14184
14185         * process.c: (complete_path) return the path quoted
14186
14187 2004-12-01  Martin Baulig  <martin@ximian.com>
14188
14189         * class-internals.h (MonoGenericInst): New structure.
14190         (MonoGenericClass): Replaced `type_argc', `type_argv' and
14191         `is_open' with `MonoGenericInst *inst'.
14192         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
14193         `is_open' with `MonoGenericInst *inst'.
14194
14195 2004-11-30  Martin Baulig  <martin@ximian.com>
14196
14197         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
14198
14199         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
14200         to `generic_class_cache'.
14201
14202         * metadata.c
14203         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
14204         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
14205         (mono_generic_inst_is_valuetype): Renamed to
14206         mono_generic_class_is_valuetype().
14207
14208         * class-internals.h
14209         (MonoGenericInst): Renamed to MonoGenericClass.
14210         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
14211         (MonoClass): Renamed `generic_inst' to `generic_class'.
14212         (MonoGenericContext): Renamed `ginst' to `gclass'.
14213
14214         * object-internals.h
14215         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
14216
14217         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
14218         mono_reflection_generic_class_initialize().
14219
14220         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
14221         now known as "System.Reflection.MonoGenericClass".
14222         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
14223
14224 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
14225
14226         * class-internals.h: Added a flag field to MonoClass to cache the
14227         declarative security attributes actions associated with the class.
14228         * domain-internals.h: Added booleans to MonoJitInfo to cache the
14229         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
14230         applicable to the JITted method.
14231         * reflection.c|h: Added functions to extract (as flags) which security
14232         actions are available (declaratively) for a method, class or assembly.
14233         * metadata.c|h: Added functions to search the declarative security
14234         table in the metadata.
14235         
14236 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
14237
14238         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
14239         EXPORTEDTYPES are already in the class name cache, so there is no
14240         need to add extra code here to look at them. Just removes a bit of
14241         cruft.
14242
14243         (ves_icall_System_Environment_get_TickCount): No need for #if
14244         WINDOWS. We already have the code in io-layer.
14245
14246 2004-11-28  Martin Baulig  <martin@ximian.com>
14247
14248         * loader.c
14249         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
14250         Fixes gen-112.cs.
14251
14252 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
14253
14254         * assembly.c (do_mono_assembly_open): Instead of having a
14255         conditional WITH_BUNDLE, incorporate support for bundles here, by
14256         having a global `bundles' variable holding a pointer to the actual
14257         bundles. 
14258
14259         (mono_register_bundled_assemblies): New API call used by the
14260         bundle code. 
14261
14262         See mkbundle.1 for details.
14263         
14264 2004-11-27  Martin Baulig  <martin@ximian.com>
14265
14266         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
14267         the vtable for generic methods.
14268
14269 2004-11-26  Martin Baulig  <martin@ximian.com>
14270
14271         * metadata.c
14272         (mono_metadata_generic_method_hash): New public function.
14273         (mono_metadata_generic_method_equal): Likewise.
14274
14275         * class-internals.h
14276         (MonoGenericContainer): Added `GHashTable *method_hash'.
14277
14278         * reflection.c (ReflectionMethodBuilder): Added
14279         `MonoGenericContainer *generic_container'.
14280         (reflection_methodbuilder_to_mono_method): Don't create a new
14281         MonoGenericContainer each time we're called.
14282         (mono_reflection_bind_generic_method_parameters): Use
14283         `container->method_hash' to cache the results so we don't create a
14284         different method if we're called several times with the same
14285         arguments.
14286
14287         * loader.c (method_from_methodspec): Use the new
14288         `container->method_hash' here, too.
14289
14290 2004-11-26  Martin Baulig  <martin@ximian.com>
14291
14292         * class.c (inflate_generic_signature): Correctly compute
14293         `res->has_type_parameters'.
14294         (mono_class_vtable): Use the `has_type_parameters' flag to
14295         determine whether we're a generic method.
14296
14297         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
14298
14299 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
14300
14301         * object.c (mono_runtime_run_main): Fix a small memory leak.
14302
14303 2004-11-25  Martin Baulig  <martin@ximian.com>
14304
14305         * class.c (set_generic_param_owner): Fixed the loop.
14306
14307 2004-11-25  Martin Baulig  <martin@ximian.com>
14308
14309         * object.c (mono_class_vtable): Don't create any JIT wrappers for
14310         generic methods.
14311
14312 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
14313
14314         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
14315         names. Fixes #69787.
14316
14317 2004-11-24  Martin Baulig  <martin@ximian.com>
14318
14319         * class.c (mono_class_create_generic_2): If we don't have a
14320         `ginst->parent', inflate `gklass->parent' to get our parent.
14321
14322 2004-11-24  Martin Baulig  <martin@ximian.com>
14323
14324         * reflection.c (compare_genericparam): Correctly sort the
14325         GenericParam table; fixes #69779.
14326
14327 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
14328
14329         * reflection.c: When writing a PE file, don't create a huge
14330         buffer in memory. Just write the arrays we have to the file.
14331         This reduces memory usage.
14332
14333         * metadata-internals.h: MonoDynamicStream pefile is no longer used
14334         globally.
14335
14336 2004-11-17  Martin Baulig  <martin@ximian.com>
14337
14338         * class.c (mono_class_init): Don't setup `class->parent' for
14339         dynamic instances; moved this to mono_class_generic_2().
14340         (mono_class_create_generic): Also set `klass->inited' for dynamic
14341         generic instances.
14342         (mono_class_create_generic_2): Don't do anything for dynamic
14343         generic instances.  Set `klass->parent' here and also call
14344         mono_class_setup_parent() here. 
14345
14346         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
14347         `MonoType *parent' argument; set `ginst->parent' before calling
14348         mono_class_create_generic_2(), so we set the correct parent.
14349
14350 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
14351
14352         * reflection.c: allow getting attributes from ModuleBuilder
14353         (used by ikvm).
14354
14355 2004-11-17  Martin Baulig  <martin@ximian.com>
14356
14357         * class.c (mono_class_create_from_typedef): If a type parameter is
14358         inherited from an outer class, set its owner to that class.
14359
14360 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
14361
14362         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
14363           for (int*) written size. This fixes bug #69592.
14364
14365 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
14366
14367         * icall.c: Added IsAuthenticodePresnet internal call.
14368         * image.c|h: New function that check a MonoImage for an Authenticode
14369         signature in the certificate PE data directory.
14370         * security.c|h: New internal call to ask the runtime if an 
14371         Authenticode signature seems referenced in the PE header.
14372
14373 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
14374
14375         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
14376
14377         * reflection.c (mono_image_create_pefile): Free the assembly streams
14378         after writing out the assembly file.
14379
14380         * object.c (mono_runtime_run_main): Fix small memory leak.
14381
14382         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
14383         property access modifiers. Fixes #69389.
14384
14385 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
14386
14387         * domain.c, object.c, object-internals.h, domain-internals.h,
14388         object.h, marshal.c: keep dynamic code info per domain.
14389
14390 2004-11-15  Martin Baulig  <martin@ximian.com>
14391
14392         * class.c (mono_type_get_name_recurse): Put type arguments in
14393         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
14394         see bug #68387.
14395
14396 2004-11-15  Martin Baulig  <martin@ximian.com>
14397
14398         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
14399         (mono_class_setup_vtable): When computing `the_cname' for a
14400         generic instance, don't include the namespace since we'd otherwise
14401         add it twice.
14402
14403 2004-11-15  Martin Baulig  <martin@ximian.com>
14404
14405         * class.c (mono_class_create_generic): Changed return type to void.
14406         (mono_class_create_generic_2): New public function; setup
14407         `class->method', `class->field' and `class->interfaces' here
14408         instead of in mono_class_init().
14409
14410         * class.h (mono_class_create_generic): Moved to class-internals.h.
14411
14412 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
14413
14414         * reflection.c (mono_image_create_pefile): take a file HANDLE.
14415         rather than writing to memory, write to this file. Right now,
14416         we are just writting into a buffer, and copying that. However
14417         we can avoid the buffer later.
14418
14419         (mono_dynamic_stream_reset): new function
14420
14421         * icall.c, object-internals.h: update for the above.
14422
14423 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
14424
14425         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
14426         have been using gc'd memory. First it is slower, unlikely
14427         the comment in the source code said, secondly, it increases
14428         our footprint to do it in the gc.
14429
14430         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
14431         the method so that it does not have to copy to managed code.
14432
14433 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
14434
14435         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
14436
14437 2004-11-12  Martin Baulig  <martin@localhost>
14438
14439         * reflection.c (mono_image_create_token): Allow generic method
14440         definitions here, since they may appear in an `.override'; see
14441         gen-98/gen-99 for an example.
14442
14443 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
14444
14445         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
14446         #69365.
14447
14448         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
14449         descriptive.
14450
14451 2004-11-11  Martin Baulig  <martin@ximian.com>
14452
14453         * class.c (mono_class_setup_vtable): In an explicit interface
14454         implementation, the method name now includes the arity.
14455
14456 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
14457
14458         * object.c (mono_array_full_copy): Fix warning.
14459
14460 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
14461
14462         * appdomain.c: Removed look_for_method_by_name(). Use the new method
14463         mono_class_get_method_from_name() instead.
14464         
14465         * class-internals.h: Added two new types of wrappers. 
14466         Added MonoRemotingTarget enum. Added new trampoline function type, which
14467         takes an additional MonoRemotingTarget value as parameter, so it is
14468         possible to request a trampoline for a specific target.
14469         
14470         * class.c: Added new mono_class_get_method_from_name() method.
14471         
14472         * class.h: In MonoRemoteClass, we can have now to vtables, one for
14473         general remoting sinks and one specific for cross domain calls.
14474         
14475         * debug-helpers.c: Added new wrapper names.
14476         
14477         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
14478         of a remote class.
14479         
14480         * image.c: Porperly delete value objects form the remoting invoke hashtable.
14481         
14482         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
14483         with several other methods (mono_marshal_get_xappdomain_dispatch,
14484         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
14485         and others) can generate a fast remoting wrapper for cross domain calls.
14486         More information can be found in docs/remoting.
14487         Other changes: Removed mono_find_method_by_name, and used
14488         mono_class_get_method_from_name instead.
14489         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
14490         is stored in the remoting invoke hashtable.
14491         
14492         * marshal.h: published the new method for getting the xdomain wrapper,
14493         and also added a method for getting the adequate wrapper for a given
14494         method and target.
14495         
14496         * object-internals.h, object.c: Added a couple of methods for capying and
14497         cloning arrays.
14498         Modified mono_install_remoting_trampoline, which takes the new remoting
14499         trampoline that has a remoting target as parameter.
14500         mono_class_proxy_vtable now also takes a remoting target as parameter, and
14501         will return the most suitable vtable for the target.
14502         Added mono_remote_class_vtable, which returns the vtable of a remote class
14503         (which can be the normal remoting vtable or the xdomain vtable).
14504         
14505         * threads.c: the xdomain invoke and dispatch wrappers must also be
14506         protected against interruptions.
14507
14508 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14509
14510         * icall.c: use memmove in BlockCopyInternal when the source and
14511         destination arrays are the same.
14512
14513 2004-11-09  Martin Baulig  <martin@ximian.com>
14514
14515         * class-internals.h (MonoGenericContainer): Removed `method' and
14516         `signature', replaced them with `is_method' and `is_signature'
14517         flags.  Added `context'.
14518
14519         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
14520         instead of a `MonoGenericContainer *'.
14521
14522         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
14523         for dynamic type parameters.
14524         (mono_metadata_load_generic_params): Setup `container->context'.
14525
14526         * reflection.c (mono_reflection_setup_generic_class): Setup
14527         `tb->generic_container->context'.
14528         (do_mono_reflection_bind_generic_parameters): Use
14529         mono_class_inflate_generic_type() to correctly inflate types,
14530         rather than using our own hack just for MONO_TYPE_VAR.
14531
14532 2004-11-09  Martin Baulig  <martin@ximian.com>
14533
14534         * class.c (mono_class_inflate_generic_method): Small fix; don't
14535         crash here.
14536
14537         * icall.c
14538         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
14539         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
14540         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
14541         (ves_icall_Type_BindGenericParameters): Likewise.
14542         (ves_icall_Type_get_IsGenericInstance): Likewise.
14543         (ves_icall_Type_GetGenericParameterPosition): Likewise.
14544         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
14545         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
14546         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
14547
14548 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
14549
14550         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
14551         assembly versions and public key tokens. Fixes #69113.
14552
14553 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
14554
14555         * metadata.c: fix bug introduced with the type cache changes
14556         on 2004-11-06.
14557
14558 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
14559
14560         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
14561         the MonoClass pointer instead of the token in exception clauses.
14562         * reflection.c: updates for the above and make the code not depend
14563         on the structure of MonoExceptionClause.
14564
14565 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
14566
14567         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
14568         Add support for dynamic assemblies. Fixes #69114.
14569
14570         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
14571
14572 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
14573
14574         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
14575         since most only those methods use it. the code member of
14576         MonoMethodPInvoke was dead, so that can be removed too. Also,
14577         remove inline_count (again, not used), and move slot so that it
14578         can share bits with some other flags. This saves 8 bytes in the
14579         structure and gives us about 50 kb back for mcs helloworld.cs
14580
14581         * *.[ch]: Do naming changes for the above.
14582
14583         * loader.c (mono_method_get_header): Lazily init the header
14584         on first access.
14585         (mono_get_method_from_token): don't init the header here
14586         (mono_free_method): the header may never be allocated
14587
14588         Overall, this saves 150 kb of unmanaged allocations
14589         for mcs helloworld.cs. That accounts for 10% of the unmanaged
14590         memory at runtime.
14591         
14592         * loader.c, loader.h (mono_method_get_header): new accessor.
14593
14594         * *.[ch]: use the above method. Prepares us to lazily load
14595         the header.
14596
14597         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
14598         three warnings, which are actual bugs (see 69206).
14599
14600         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
14601         unused. Saves a cool 4 bytes / method.
14602
14603 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
14604
14605         * metadata.c (builtin_types): Add types for System.Object here.
14606         (mono_metadata_parse_type_full): Cache MonoType*'s that are
14607         for a class or valuetype from klass->this_arg or klass->byval_arg.
14608
14609         On mcs for a hello world, this gets us down from 21836 MonoType's
14610         to 14560.
14611
14612         (mono_metadata_free_type): Account for the above change.
14613
14614 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
14615
14616         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
14617         exception instead of asserting if name is null.
14618         (ves_icall_System_AppDomain_GetData): Ditto.
14619
14620 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
14621
14622         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
14623         EnumBuilder.
14624
14625         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
14626         Return NULL when the domain does not have entry_assembly set.
14627
14628         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
14629         Add a 'resource_modules' argument.
14630         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
14631
14632         * reflection.c (mono_reflection_create_runtime_class): Move setting
14633         of wastypebuilder here, so mono_get_type_object () returns a MonoType
14634         for enums too.
14635
14636         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
14637         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
14638         Throw an ArgumentNullException if 'ptr' is null.
14639
14640         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
14641         assemblies here. Fixes #69020.
14642
14643 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
14644
14645         * reflection.c (build_compressed_metadata): Fix the previous patch for
14646         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
14647         the stack.
14648
14649 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
14650
14651         * assembly.c (mono_assembly_names_equal): Allow a match if one of
14652         the cultures is false. Fixes #69090.
14653
14654         * reflection.c (build_compressed_metadata): Fix invalid memory read 
14655         detected by valgrind.
14656         
14657         * reflection.c (mono_reflection_get_type): Avoid triggering a 
14658         TypeResolve multiple times for the same type. Fixes #65577.
14659
14660 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
14661
14662         * marshal.c: Avoid using ldftn to call managed functions. It is
14663         much slower than just a call.
14664
14665         * reflection.c (mono_module_get_object): free the basename we
14666         allocate here from glib.
14667         
14668         * reflection.c (ensure_runtime_vtable): make sure to free
14669         overrides.  Also, we were allocating an array of MonoMethod not an
14670         array of MonoMethod*.
14671
14672         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
14673
14674         * image.c (mono_image_close): free image->guid here.
14675
14676 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
14677
14678         * reflection.c: Fix some spec conformance issues with the PE file
14679         structures so mcs compiled apps run on the Net 2.0 beta.
14680
14681 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
14682
14683         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
14684         Implement this. Fixes #67264.
14685
14686         * debug-helpers.h debug-helpers.c marshal.c: Move 
14687         mono_find_method_by_name to debug-helpers.c.
14688
14689 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
14690
14691         * object.c (mono_release_type_locks): type_initialization_hash is
14692         a GHashTable.
14693
14694         * reflection.c object.c object-internals.h: Fix warnings.
14695
14696         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
14697         without accessors. Fixes #61561.
14698
14699         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
14700         application base from the root domain if not set. Fixes #65641.
14701         (mono_runtime_init): Fix warning.
14702
14703 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14704
14705         * appdomain.c: call mono_thread_pool_init.
14706         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
14707         of worker threads based on the number of CPUs and the environment
14708         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
14709         for non-windows (windows) systems.
14710
14711 2004-10-27  Chris Toshok  <toshok@ximian.com>
14712
14713         * mono-debug-debugger.c (write_class): don't call mono_class_init
14714         here, as even with the check for (!klass->init_pending), we get
14715         into a situation where we're hitting cycles in class
14716         initialization.  Fixes #68816.
14717
14718 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
14719
14720         * image.c: Avoid overwriting values in the loaded_images_hash when an
14721         assembly is loaded multiple times. Fixes #61152.
14722
14723         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
14724         so multiple satellite assemblies for the same name can be loaded.
14725         Fixes #68259.
14726
14727         * mono_domain_assembly_preload: Actually return the loaded assembly, 
14728         not NULL.
14729
14730         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
14731         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
14732
14733         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
14734         pending finalizers are not invoked after the appdomain has been 
14735         unloaded. Fixes #67862.
14736
14737 2004-10-22  Martin Baulig  <martin@ximian.com>
14738
14739         * mono-debug-debugger.c
14740         (mono_debugger_runtime_invoke): Don't box valuetypes.
14741
14742 2004-10-22  Chris Toshok  <toshok@ximian.com>
14743
14744         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
14745         don't hide private methods.
14746
14747 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
14748
14749         * icall.c: Allows the runtime to "share" (when known) the public key
14750         token of an assembly. This avoid the need to recalculate the token 
14751         (from the public key) in managed code.
14752
14753 2004-10-21  Chris Toshok  <toshok@ximian.com>
14754
14755         * debug-helpers.c (append_class_name): argh, revert last patch.
14756         
14757 2004-10-21  Chris Toshok  <toshok@ximian.com>
14758
14759         * debug-helpers.c (append_class_name): use '+' as the delimiter,
14760         not '/', so that it matches what the debugger uses to look up
14761         methods.
14762
14763 2004-10-21  Martin Baulig  <martin@ximian.com>
14764
14765         * mono-debug-debugger.c (mono_debugger_throw_exception): New
14766         public method; this is called each time an exception is thrown and
14767         allows the debugger to use exception catch points.
14768
14769 2004-10-21  Martin Baulig  <martin@ximian.com>
14770
14771         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
14772         the stack pointer and the exception object in some struct and pass
14773         that to the debugger.
14774
14775 2004-10-21  Chris Toshok  <toshok@ximian.com>
14776
14777         * mono-debug-debugger.c (do_write_class): add instance/static
14778         event support.  We don't expose "raise" or "other" yet.
14779         (event_is_static): new method.
14780
14781 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
14782
14783         * mono-debug-debugger.c
14784         (mono_debugger_handle_exception): Remove
14785         bogus return value for fussy compilers.
14786
14787 2004-10-20  Martin Baulig  <martin@ximian.com>
14788
14789         * mono-debug-debugger.c
14790         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
14791         (mono_debugger_handled_exception): Likewise.
14792
14793 2004-10-20  Martin Baulig  <martin@ximian.com>
14794
14795         * mono-debug-debugger.h (MonoDebuggerEvent): Added
14796         MONO_DEBUGGER_EVENT_EXCEPTION.
14797
14798         * mono-debug-debugger.c (mono_debugger_handle_exception): New
14799         public function to send the debugger a notification for an
14800         exception and inform it about a catch/finally clause.
14801
14802 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
14803
14804         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
14805         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
14806         fix 2.95 build. 
14807
14808         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
14809
14810 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
14811
14812         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
14813         marshalled as [In,Out]. Fixes #58325.
14814
14815 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
14816
14817         * reflection.c (mono_method_body_get_object): Implement some fields.
14818
14819 2004-10-12  Martin Baulig  <martin@ximian.com>
14820
14821         * reflection.c (mono_reflection_bind_generic_parameters): Small
14822         fix, correctly retrieve our parent from a generic instance.
14823
14824 2004-10-12  Martin Baulig  <martin@ximian.com>
14825
14826         * metadata.c (mono_metadata_generic_param_equal): We always have
14827         an owner.
14828
14829         * class.c
14830         (mono_class_from_generic_parameter): We need to have an owner.
14831         (my_mono_class_from_generic_parameter): Likewise.
14832
14833         * reflection.c (mono_reflection_setup_generic_class): Renamed to
14834         mono_reflection_create_generic_class() and added a new
14835         mono_reflection_setup_generic_class().  
14836         (mono_reflection_initialize_generic_param): If we're a nested
14837         generic type and inherited from the containing class, set our
14838         owner to the outer class.
14839
14840 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
14841
14842         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
14843
14844         * reflection.c (mono_method_body_get_object): New function to create
14845         a MethodBody object.
14846
14847         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
14848
14849 2004-10-11  Martin Baulig  <martin@ximian.com>
14850
14851         * metadata.c (_mono_metadata_type_equal): Renamed to
14852         do_mono_metadata_type_equal() and made static.
14853
14854 2004-10-11  Martin Baulig  <martin@ximian.com>
14855
14856         * appdomain.c: Bump corlib version number to 28.
14857
14858 2004-10-10  Martin Baulig  <martin@ximian.com>
14859
14860         * class-internals.h
14861         (MonoGenericInst): Added `MonoGenericContainer *container'.
14862         (MonoGenericMethod): Likewise.
14863         (MonoGenericContext): Likewise.
14864         (MonoGenericParam): Added `MonoGenericContainer *owner'.
14865
14866         * metadata.c
14867         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
14868         (do_mono_metadata_parse_generic_inst): Likewise.
14869         (mono_metadata_parse_type_full): New public method.  This is the actual
14870         mono_metadata_parse_type() implementation - with an additional
14871         `MonoGenericContainer *' argument.
14872         (mono_metadata_parse_array_full): Likewise.
14873         (mono_metadata_parse_signature_full): Likewise.
14874         (mono_metadata_parse_method_signature_full): Likewise.
14875         (mono_metadata_parse_mh_full): Likewise.
14876         (mono_type_create_from_typespec): Likewise.
14877         (mono_metadata_interfaces_from_typedef_full): New public method;
14878         this is similar to the other _full() methods, but we take a
14879         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
14880         (mono_metadata_parse_generic_param): Take an additional
14881         `MonoGenericContainer *' argument and lookup the MonoGenericParam
14882         from that container.
14883         (mono_metadata_generic_param_equal): New static method to compare
14884         two type parameters.
14885         (_mono_metadata_type_equal): New static method; takes an
14886         additional `gboolean signature_only' argument - if true, we don't
14887         compare the owners of generic parameters.
14888         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
14889         with a TRUE argument - do a signature-only comparision.
14890
14891         * loader.c: Use the new _full() methods and pass the
14892         MonoGenericContainer to them.
14893
14894         * object-internals.h (MonoReflectionTypeBuilder): Added
14895         `MonoGenericContainer *generic_container' field.
14896         (MonoReflectionMethodBuilder): Likewise.
14897
14898 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
14899
14900         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
14901         case initial images of dynamic assemblies.
14902
14903         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
14904
14905         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
14906
14907         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
14908         length of event->other array.
14909         (typebuilder_setup_events): Ditto.
14910
14911         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
14912         'assembly_by_name' and add an 'assemblies' list.
14913
14914         * assembly.h assembly.c: Add a new search hook for determining whenever
14915         an assembly is already loaded. Use this instead of searching in the
14916         loaded_assemblies list.
14917
14918         * domain.c appdomain.c: Implement the new search hook so loaded 
14919         assemblies are now scoped by appdomain. Fixes #67727.
14920
14921 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
14922
14923         * threads.c (mono_thread_attach): Initialize synch_lock field so
14924         mono_thread_detach works again.
14925
14926         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
14927         'lib' too. Fixes #63130.
14928
14929 2004-10-06  Jackson Harper  <jackson@ximian.com>
14930
14931         * culture-info-tables.h: regenerated.
14932
14933 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
14934
14935         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
14936         implemented by other interfaces in the result. Fixes #65764.
14937         
14938         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
14939         Handle unloadable modules without crashing.
14940
14941         * image.c (load_modules): Revert the previous patch since modules must
14942         have a fixed index inside the array.
14943         
14944         * image.c (load_modules): Don't include native modules in the modules
14945         array.
14946
14947 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
14948
14949         * reflection.h: Add param_defaults field.
14950
14951         * reflection.c: Add support for parameter defaults in dynamic methods.
14952         Fixes #64595.
14953
14954         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
14955         an empty string when a type has no namespace. Fixes #64230.
14956
14957 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
14958
14959         * tabledefs.h: Added "internal" security actions to support non-CAS
14960         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
14961         Note: they do not seems to be used anymore in 2.0 (new metadata format)
14962
14963 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
14964
14965         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
14966         constructor of abstract class. Fixes #61689.
14967
14968 2004-10-04  Martin Baulig  <martin@ximian.com>
14969
14970         * class-internals.h (MonoGenericContainer): New type.
14971         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
14972         `MonoGenericContainer *generic_container'.
14973         (MonoClass): Replaced `gen_params' and `num_gen_params' with
14974         `MonoGenericContainer *generic_container'.
14975
14976         * metadata.c (mono_metadata_load_generic_params): Return a
14977         `MonoGenericContainer *' instead of a `MonoGenericParam *';
14978         removed the `num' argument.
14979
14980 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
14981
14982         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
14983         for dynamic images.
14984
14985         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
14986         machine fields.
14987
14988         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
14989
14990         * reflection.c: Save pe_kind and machine values into the generated
14991         image file.
14992
14993         * appdomain.c: Bump corlib version number.
14994
14995         * object-internals.h: Reorganize layout of LocalBuilder.
14996
14997         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
14998         New helper function.
14999
15000         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
15001         created MonoType for dynamic types. Fixes #66180.
15002
15003 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
15004
15005         * threadpool.c: the ares hashtable needs a critical section around it.
15006         this prevents some nasty segfaults
15007
15008 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
15009
15010         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
15011         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
15012         bug 67324).
15013         
15014 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
15015
15016         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
15017         
15018 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
15019
15020         * image.c: Always canonicalize image file names, to avoid loading
15021         the same assembly twice when referenced using a relative path.
15022
15023 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
15024
15025         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
15026
15027         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
15028
15029         * marshal.c: Fix warnings.
15030
15031 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
15032
15033         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
15034         attempting to marshal the delegate_trampoline as the method_addr.
15035         This patch has a static hashtable of marshalled delegates so that 
15036         we can map delegate_trampoline addresses back to delegates.  This
15037         allows a delegate passed to managed code to be passed back into native
15038         code.  Fixes #67039
15039
15040 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
15041
15042         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
15043
15044         * reflection.c (method_encode_code): Align method headers properly.
15045         Fixes #66025.
15046
15047 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
15048
15049         * marshal.c: In the runtime invoke wrapper, reset the abort
15050         exception if it is cached. This avoids the automatic rethrowal of 
15051         the exception after the catch of the wrapper. Also check for pending
15052         interruptions before calling the managed method. This is done using
15053         the new method emit_thread_force_interrupt_checkpoint, since the
15054         normal checkpoint method is ignored when running the invoke wrapper.
15055         * object.c: If the abort exception is rethrown, set the abort_exc
15056         field of the thread, so it will be rethrown aftere every catch.
15057         * threadpool.c: Only run an interruption checkpoint if what has been
15058         requested is a stop of the thread (aborts will be ignored).
15059         * threads.c: By default, a thread will now never be interrumped while
15060         running the runtime invoke wrapper (this ensures that runtime_invoke
15061         will always return to the caller if an exception pointer is provided).
15062         There is a new special method mono_thread_force_interruption_checkpoint()
15063         to force an interruption checkpoint even if running a protected
15064         wrapper, which is used by the same runtime invoke wrapper to do a check
15065         at a safe point.
15066
15067 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
15068
15069         * object.c, object-internals.h: Implemented mono_release_type_locks,
15070         which releases the cctor locks held by a thread.
15071         * threads.c, threads.h: In thread_cleanup, release cctor locks held
15072         by a thread. Added mono_thread_exit() method to be used to safely stop
15073         a thread.
15074
15075 2004-09-28  Raja R Harinath  <rharinath@novell.com>
15076
15077         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
15078         Move null check before dereference.  Avoid indexing beyond the end
15079         of the 'modules' array.
15080
15081 2004-09-28  Raja R Harinath  <rharinath@novell.com>
15082
15083         * metadata-internals.h (MonoImage): Add module_count field.
15084         * image.c (load_modules): Set image->module_count.
15085         (mono_image_load_file_for_image): Use image->module_count.
15086         * reflection.c (mono_image_load_module): Append to image->modules array 
15087         of dynamic assembly.
15088         (mono_module_get_object): Fix loop to actually increment index.
15089         Use image->module_count.
15090         * assembly.c (mono_assembly_load_references): Use image->module_count.
15091         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
15092         Likewise.
15093
15094 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
15095
15096         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
15097         Avoid assert on generic types.
15098
15099 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
15100
15101         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
15102
15103         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
15104
15105         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
15106         function to convert a MarshalSpec structure to its managed counterpart.
15107
15108         * reflection.c: Fix warnings.
15109         
15110         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
15111         field.
15112
15113         * icall.c (mono_create_icall_signature): Fix build.
15114
15115 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
15116
15117         * icall.c: Add MakePointType icall.
15118
15119         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
15120         warnings.
15121
15122 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15123
15124         * threadpool.c: reuse allocated slots in the queue.
15125
15126 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
15127
15128         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
15129
15130         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
15131
15132         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
15133         previous change.
15134
15135         * tabledefs.h: Add constants for pinvoke attributes BestFit and
15136         ThrowOnUnmappableChar.
15137
15138         * icall.c (ves_icall_Type_GetPacking): New icall.
15139
15140 2004-09-24  Martin Baulig  <martin@ximian.com>
15141
15142         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
15143
15144 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15145
15146         * appdomain.c:
15147         (mono_domain_set): allow setting a domain that is being unloaded.
15148         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
15149         being unloaded.
15150
15151 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
15152
15153         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
15154         the GetCustomAttributes icall.
15155
15156 2004-09-23  Martin Baulig  <martin@ximian.com>
15157
15158         * object-internals.h (MonoReflectionGenericParam): Replaced
15159         'has_ctor_constraint', `has_reference_type' and `has_value_type'
15160         with `guint32 attrs'.
15161
15162 2004-09-23  Martin Baulig  <martin@ximian.com>
15163
15164         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
15165
15166 2004-09-23  Martin Baulig  <martin@ximian.com>
15167
15168         * object-internals.h (GenericParameterAttributes): New enum.
15169
15170 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
15171
15172         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
15173         
15174         * class.c (init_events): Fill out event->other field.
15175
15176         * class.c: Fix warnings.
15177
15178         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
15179
15180 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
15181
15182         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
15183         walk which doesn't supply the IL offset.
15184
15185 2004-09-22  Martin Baulig  <martin@ximian.com>
15186
15187         * reflection.c (mono_reflection_setup_internal_class): If we're
15188         System.ValueType, System.Object or System.Enum, set
15189         `klass->instance_size' and create the vtable.
15190         (mono_reflection_create_internal_class): If we're an enum type,
15191         get the base class from our current corlib.
15192
15193 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
15194
15195         * reflection.h (MonoResolveTokenError): New type.
15196
15197         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
15198         icall.
15199
15200         * icall.c: Add an 'error' argument to the ResolveToken icalls.
15201
15202 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
15203
15204         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
15205         Support also calling constructors, but only for already allocated objects.
15206
15207 2004-09-17  Geoff Norton <gnorton@customerdna.com>
15208
15209         * reflection.c (type_get_qualified_name): If the klass is null
15210         return the typename to avoid a NullRefEx.
15211         (encode_cattr_value): Get the qualified name of the boxed type,
15212         not the underlying enumtype.  Fixes #62984.
15213
15214 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
15215
15216         * marshal.c: Fix problems with previous checkin.
15217
15218 2004-09-21    <vargaz@freemail.hu>
15219
15220         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
15221         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
15222
15223         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
15224
15225 2004-09-21  Geoff Norton <gnorton@customerdna.com>
15226
15227         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
15228         should only return a type for pointers, arrays, and passbyref types.
15229         Fixes bug #63841.
15230
15231 2004-09-21  Martin Baulig  <martin@ximian.com>
15232
15233         * domain.c (mono_debugger_check_runtime_version): New public
15234         function.
15235
15236         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
15237
15238 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
15239
15240         * reflection.c: Added missing sort to the declarative security 
15241         attributes table. MS implementation stops seeing the attributes if the
15242         token number regress in the table (as shown by ildasm and permview).
15243
15244 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
15245
15246         * object-internals.h (MonoReflectionModule): Add 'token' field.
15247         
15248         * reflection.c (mono_reflection_get_token): Add support for Module
15249         and Assembly.
15250         (mono_module_get_object): Set 'token' field.
15251         (mono_module_file_get_object): Set 'token' field.
15252
15253         * icall.c: Add new Assembly and Module icalls.
15254
15255         * appdomain.c: Bump corlib version.
15256
15257 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
15258
15259         * loader.h loader.c class.h class.c: Add helper functions for obtaining
15260         tokens of metadata objects.
15261
15262         * reflection.h reflection.c (mono_reflection_get_token): New function
15263         to obtain the token of a metadata object.
15264
15265         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
15266
15267 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
15268
15269         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
15270         
15271         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
15272
15273 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
15274
15275         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
15276         * object-internals.h: Added 3 MonoArray* members to MonoReflection
15277         AssemblyBuilder to access the permissions set in the class lib.
15278         * reflection.c: Added security attributes encoding step in 
15279         mono_image_build_metadata.
15280         * tabledefs.h: Added new security actions defined in 2.0:
15281         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
15282
15283 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
15284
15285         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
15286         macro parameter.
15287
15288 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
15289  
15290         * locales.c: nullify the ICU_collator member of CompareInfo when it is
15291           finalized. There where random SIGSEVs at program termination, when
15292           an object being finalized was trying to do a string comparison and
15293           the current culture was already finalized.
15294  
15295 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15296
15297         * threads.c: call thread_cleanup before finishing the thread if we get
15298         there.
15299
15300 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
15301
15302         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
15303         assemblies from the parent. Fixes #65665.
15304
15305 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
15306
15307         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
15308         modifiers.
15309
15310 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
15311
15312         * reflection.h: add prototype for mono_get_dbnull_object
15313         * reflection.c: add prototypes for get_default_param_value_blobs 
15314         and mono_get_object_from_blob for fussier compilers
15315
15316 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
15317  
15318         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
15319         false deadlock checks in class initialization.
15320  
15321 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
15322
15323         * image.c (mono_image_addref): Fix comment.
15324
15325         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
15326         possible.
15327
15328 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
15329
15330         * reflection.c (mono_param_get_objects): Modified to return
15331         ParameterInfo.DefaultValue object.
15332
15333         (get_default_param_value_blobs):
15334         (mono_get_object_from_blob):
15335         (mono_get_dbnull_object): New helper routines. 
15336
15337         * object.c (mono_get_constant_value_from_blob): New helper routine
15338         carved out from get_default_field_value ()
15339
15340         * object-internals.h (mono_get_constant_value_from_blob): Added
15341         function declaration.
15342
15343 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
15344
15345         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
15346         referenced assemblies. Fixes #62135.
15347
15348         * exception.h exception.c (mono_get_exception_file_not_found2): New
15349         helper function.
15350
15351 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
15352
15353         * class.h class.c: Add mono_type_get_underlying_type ().
15354
15355 2004-09-09  Geoff Norton <gnorton@customerndna.com>
15356
15357         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
15358         Fix GetTypes() to support dynamically created assemblies.
15359
15360 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
15361
15362         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
15363         
15364         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
15365         previous patch.
15366
15367         * reflection.h reflection.c loader.c: Allow dynamic construction of
15368         pinvoke methods. Fixes #65571.
15369         
15370         * reflection.c (mono_reflection_get_type): Revert previous change since
15371         it causes regressions.
15372
15373 2004-09-08  Martin Baulig  <martin@ximian.com>
15374
15375         * class.c (class_compute_field_layout): Don't call
15376         mono_class_layout_fields() for open generic instances.
15377
15378 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
15379         * threads.c appdomain.c: fix typo in GC macro
15380
15381 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15382
15383         * threads.c: don't call mono_thread_detach() in start_wrapper(),
15384         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
15385
15386 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
15387
15388         * image.c (mono_image_close): Applied patch from 
15389         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
15390         assembly is loaded multiple times from data.
15391         
15392         * image.c (mono_image_open): Fix warning.
15393
15394 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
15395
15396         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
15397         once. Fixes #58334.
15398         
15399         * reflection.c (mono_reflection_create_runtime_class): Initialize
15400         klass->nested_classes. Fixes #61224.
15401
15402 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
15403
15404         * threads.c: sched_yield() on exit, to allow threads to quit.
15405
15406 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
15407
15408         * object.c (mono_unhandled_exception): Remove leftover debug code.
15409
15410 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
15411
15412         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
15413
15414 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
15415
15416         * marshal.c (emit_marshal_array): Really null terminate string arrays.
15417         
15418         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
15419
15420 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
15421
15422         * marshal.c (emit_marshal_array): Null terminate string arrays.
15423         
15424         * marshal.c (raise_auto_layout_exception): Fix warning.
15425
15426         * reflection.c (mono_param_get_objects): Initialize the default value
15427         with DBNull.Value, not null. Fixes #62123.
15428
15429 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
15430
15431         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
15432         throw an exception with a cute explanation.
15433
15434 2004-09-06  Dick Porter  <dick@ximian.com>
15435
15436         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
15437         Close the new process's thread handle, as we don't use it.  The
15438         handle stays around forever otherwise.
15439
15440 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
15441
15442         * object.c (arith_overflow): Fix warning.
15443
15444         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
15445         calling conventions in method refs. Fixes #65352.
15446
15447         * reflection.c: Fix warnings.
15448
15449 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
15450
15451         * icall.c: Add a new icall for Array.Clear
15452
15453 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
15454
15455         * object.c: When allocating an array, we have to throw
15456         an overflow exception if any of the lengths are < 0.
15457
15458 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
15459
15460         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
15461         properly. Also move implementation of string array marshalling to 
15462         managed code. Fixes #42316.
15463
15464 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15465
15466         * assembly.c: provide more information when loading an assembly fails.
15467
15468 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15469
15470         * filewatcher.c: don't expect the development fam package to be
15471         installed.
15472
15473 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
15474
15475         * marshal.c: Make a copy of the signature cookie since it will be
15476         freed by the caller.
15477         
15478         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
15479
15480         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
15481
15482         * metadata.c (mono_metadata_free_marshal_spec): New function to free
15483         marshal specs.
15484
15485         * marshal.c: More refactoring.
15486         
15487         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
15488         smaller functions.
15489
15490 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
15491
15492         * object.c: In mono_message_invoke, fill the output parameter array after
15493           calling the managed method (it was done before the call). This fixes
15494           bug #59299.
15495
15496 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
15497
15498         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
15499         as well.
15500
15501 2004-09-02  Martin Baulig  <martin@ximian.com>
15502
15503         * class.c (mono_class_instance_size): Don't allow generic type
15504         definitions or open generic instances.
15505         (mono_class_array_element_size): If we're a value type, call
15506         mono_class_instance_size() on the original class.
15507
15508         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
15509         handle generic instances.
15510
15511         * mono-debug-debugger.c (write_type): Handle generic instances
15512         like classes.
15513
15514 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
15515
15516         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
15517         the allocation request fails. Fixes #65089.
15518
15519         * object.c (mono_runtime_free_method): Do not call mono_free_method.
15520         
15521         * object.c (mono_runtime_free_method): New function to free a dynamic
15522         method.
15523
15524         * marshal.c (mono_delegate_free_ftnptr): New function to free the
15525         delegate trampoline.
15526
15527         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
15528         with hasthis as dynamic,
15529
15530         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
15531
15532         * domain.c (mono_jit_info_table_remove): New function to remove an
15533         entry from the jit info table.
15534
15535         * class-internals.h (MonoMethod): Add 'dynamic' field.
15536
15537         * loader.c: Fix warnings.
15538
15539 2004-09-01  Martin Baulig  <martin@ximian.com>
15540
15541         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
15542         instead of mono_debugger_lock() because the latter one is a no-op
15543         unless running in the debugger.
15544
15545 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
15546
15547         * class.c (class_compute_field_layout): Classes with auto-layout or
15548         reference fields are not blittable.
15549         
15550 2004-09-01  Dick Porter  <dick@ximian.com>
15551
15552         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
15553         mono_image_get_filename() to get the assembly location.
15554
15555         * icall.c:
15556         * metadata.h: Fix compile warnings
15557
15558 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
15559
15560         * class.c (class_compute_field_layout): System.Object is blittable.
15561
15562         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
15563         as in/out. Fixes #59909.
15564
15565 2004-09-01  Martin Baulig  <martin@ximian.com>
15566
15567         * metadata.h (MONO_TYPE_ISREFERENCE): Call
15568         mono_metadata_generic_inst_is_valuetype() if we're a generic
15569         instance to check whether our underlying type is a reference type.
15570
15571 2004-09-01  Martin Baulig  <martin@ximian.com>
15572
15573         * metadata.c (mono_type_size): If we're a generic instance, call
15574         mono_class_value_size() for value types.
15575
15576 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
15577
15578         * marshal.c: Implement more custom marshalling functionality. Fixes
15579         #64915.
15580
15581 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
15582
15583         * mono-debug.c, debug-mono-symfile.c: add some locking love.
15584
15585 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
15586
15587         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
15588
15589         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
15590
15591         * icall.c: Fix some warnings.
15592
15593         * threads.c (abort_appdomain_thread): Fix unref errors.
15594         (mono_thread_current): Fix THREAD_DEBUG define.
15595
15596 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
15597
15598         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
15599
15600         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
15601
15602 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
15603
15604         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
15605         string arrays.
15606
15607 2004-08-28  Martin Baulig  <martin@ximian.com>
15608
15609         * metadata.c
15610         (mono_metadata_generic_inst_is_valuetype): New public function.
15611
15612         * metadata.h (MONO_TYPE_ISSTRUCT): Call
15613         mono_metadata_generic_inst_is_valuetype() if we're a generic
15614         instance to check whether our underlying type is a valuetype.
15615
15616 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
15617
15618         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
15619         #63768.
15620
15621 2004-08-25  Martin Baulig  <martin@ximian.com>
15622
15623         * loader.c (mono_get_method_from_token): Abstract methods can also
15624         be generic and thus have type parameters.
15625
15626         * metadata-internals.h
15627         (MonoDynamicImage): Added `GPtrArray *gen_params'.
15628
15629         * reflection.c (mono_image_get_generic_param_info): Don't create a
15630         metadata row, just add an entry to the `gen_params' array.
15631         (build_compressed_metadata): Sort the `gen_params' array and then
15632         actually create the metadata.
15633
15634 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15635
15636         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
15637
15638 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
15639
15640         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
15641
15642 2004-08-24  Martin Baulig  <martin@ximian.com>
15643
15644         * class.cs (mono_class_is_subclass_of): Like an interface, a
15645         generic instance also derives from System.Object.
15646
15647 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
15648
15649         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
15650         custom modifiers to be in any order. Fixes #61990.
15651
15652 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
15653
15654         * object.c: Register mono_object_new_fast icall.
15655         
15656         * object.c (mono_class_get_allocation_ftn): Return to calling
15657         mono_object_new_fast, since it seems faster to compute the object 
15658         size in unmanaged code than passing it as a parameter.
15659
15660         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
15661
15662         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
15663         this function with Boehm as the oom handler, so we don't have to check
15664         the result of GC_malloc.
15665
15666         * object.c: Remove checks for oom.
15667
15668         * object.h object.c (mono_class_get_allocation_ftn): New function to
15669         return the icall which can be used to allocate an instance of a given
15670         class. 
15671
15672         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
15673
15674         * class-internals.h: Add 'enabled' field.
15675
15676 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
15677
15678         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
15679
15680 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
15681         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
15682         value 0x0010.
15683
15684 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
15685
15686         * appdomain.c: use the Tls function for appdomain too,
15687         at Zoltan's request. Actually return in mono_context_get
15688
15689         * appdomain.c, profiler.c, threads.c: use __thread
15690
15691 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
15692
15693         * appdomain.c threads.c: Call GC_CreateThread on windows.
15694
15695         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
15696         multiple libraries since this don't work on windows.
15697
15698 2004-08-18  Martin Baulig  <martin@ximian.com>
15699
15700         * class-internals.h
15701         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
15702         MonoMethodHeader.
15703
15704         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
15705         MonoMethodNormal since we also need it for abstract and interface
15706         methods.
15707
15708         * reflection.c
15709         (build_compressed_metadata): Sort the GenericParam table.
15710         (mono_image_create_token): Added `gboolean create_methodspec'
15711         argument; this is false when generating a MethodImpl token.
15712         (reflection_methodbuilder_to_mono_method): Abstract and interface
15713         methods may also have generic parameters.
15714
15715 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
15716
15717         * appdomain.c: thread local alloc
15718
15719 2004-08-17  Martin Baulig  <martin@ximian.com>
15720
15721         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
15722
15723         * icall.c
15724         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
15725         argument.
15726
15727         * class.c (mono_type_get_full_name): New public function.
15728         (mono_type_get_name): Don't include the type arguments.
15729
15730 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
15731
15732         * Makefile.am: Build static versions of libmetadata and libmonoruntime
15733         for inclusion into the mono executable.
15734
15735 2004-08-16  Martin Baulig  <martin@ximian.com>
15736
15737         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
15738         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
15739
15740 2004-08-14  Martin Baulig  <martin@ximian.com>
15741
15742         * class.c (dup_type): Also copy the `byref' field.
15743
15744 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
15745
15746         * reflection.c (create_dynamic_mono_image): Revert the last change 
15747         since it breaks bootstrap.
15748
15749 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
15750
15751         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
15752
15753         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
15754         not free them with g_free.
15755
15756 2004-08-11  Martin Baulig  <martin@ximian.com>
15757
15758         * reflection.c (mono_reflection_setup_internal_class): Also call
15759         mono_class_setup_mono_type() if we already have a `tb->type.type'.
15760
15761 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
15762
15763         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
15764         called during default (first) AppDomain creation. Keep track of
15765         Evidence when loading assemblies.
15766
15767 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
15768
15769         * opcodes.c, opcodes.h: reduce runtime relocations.
15770
15771 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
15772
15773         * culture-info.h, locales.c: fixes and chages to sue the new
15774         optimized format of the locale data.
15775         * culture-info-tables.h: regenerated.
15776
15777 2004-08-06  Geoff Norton <gnorton@customerdna.com>
15778         
15779         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
15780
15781 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
15782
15783         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
15784         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
15785         * domain-internals.h: icall declaration.
15786         * icall.c: icall registration.
15787         * object-internals.h: New fields in MonoAssembly for CAS.
15788
15789 2004-08-05  Duncan Mak  <duncan@ximian.com>
15790
15791         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
15792         CEE_LDELEM_ANY.
15793
15794 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
15795
15796         * reflection.c: fix to deal with object[] arrays in custom ctors
15797         (bug #62550).
15798
15799 2004-08-05  Martin Baulig  <martin@ximian.com>
15800
15801         * class.c (mono_class_array_element_size): Added support for
15802         generic instances and correctly handle "recursive" types.
15803
15804 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
15805
15806         * assembly.c: Fix warnings.
15807
15808 2004-08-04  Martin Baulig  <martin@ximian.com>
15809
15810         * class.c
15811         (mono_type_get_name_recurse): Added `gboolean include_arity'
15812         argument specifying whether or not we should include the generic
15813         arity in the type name.
15814         (_mono_type_get_name): New static function.
15815         (mono_class_setup_vtable): If we're a generic instance, don't
15816         include the generic arity in the names of explicit method
15817         implementations.        
15818
15819 2004-08-03  Martin Baulig  <martin@ximian.com>
15820
15821         * class.c (mono_type_get_name_recurse): Enclose the generic type
15822         arguments in `<', '>'.
15823
15824 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
15825
15826         * gc.c: make GC warning messages use the trace API, they are just
15827         noise to most of the users.
15828
15829 2004-08-03  Martin Baulig  <martin@ximian.com>
15830
15831         * debug-mono-symfile.c (read_string): Correctly read the string.
15832
15833 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
15834
15835         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
15836         
15837         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
15838         icalls.
15839         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
15840
15841 2004-07-30  Martin Baulig  <martin@ximian.com>
15842
15843         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
15844         Reflect latest symbol writer changes.   
15845
15846 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
15847
15848         * object.c: always create an object if null is passed
15849         to Invoke() where a valuetype is expected.
15850
15851 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
15852
15853         * marshal.c (mono_marshal_init): make managed
15854         signatures match native ones better for 64bits.
15855
15856 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15857
15858         * appdomain.c: hack to build correctly the private bin path on windows.
15859         Fixes bug #61991.
15860
15861 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
15862
15863         * assembly.c: Load mscorlib from the correct framework directory
15864           (mono/<version>/mscorlib.dll).
15865         * appdomain.h: Added prototypes for new functions.
15866         * internals.h: Added some prototypes.
15867         * domain.c: When initializing the runtime, get from the executable and
15868           the configuration files the runtime version that the app supports.
15869           Added support methods for reading app.exe.config. Added list of versions
15870           supported by the JIT. Added two new methods: mono_init_from_assembly,
15871           which initializes the runtime and determines the required version from
15872           the provided exe file, and mono_init_version, which initializes
15873           the runtime using the provided version.
15874         * icall.c: Get machine.config from version-specific directory.
15875         * reflection.c: When generating an image, embed the version number
15876           of the current runtime.
15877
15878 2004-07-28  Dick Porter  <dick@ximian.com>
15879
15880         * socket-io.c
15881         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
15882         returned sockaddr size before creating the remote address object.
15883         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
15884         61608.
15885
15886 2004-07-28  Dick Porter  <dick@ximian.com>
15887
15888         * locales.c (string_invariant_compare_char): Fix invariant char
15889         compares between upper and lower cases.  Fixes bug 61458.
15890
15891 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
15892         
15893         * marshal.c: actually cache stelem.ref wrappers.
15894         
15895 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
15896
15897         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
15898         sections and remove the mono_cli_rva_map () function.
15899
15900 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
15901
15902         * debug-mono-symfile.c: fix one more endianess issue, from a patch
15903         by Geoff Norton (<gnorton@customerdna.com>).
15904
15905 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
15906
15907         * class.c: fix class loads for pointer types (typeof(int) !=
15908         typeof(int*)).
15909
15910 2004-07-27  Martin Baulig  <martin@ximian.com>
15911
15912         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
15913         reading the debugging information from an external ".mdb" file.
15914
15915 2004-07-24  Martin Baulig  <martin@ximian.com>
15916
15917         * reflection.c (mono_image_get_type_info): Only write a class
15918         layout entry if we actually have a size or a packing size.
15919
15920 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
15921
15922         * reflection.c (type_get_fully_qualified_name): 
15923         insert cast to get type checking of ?: with non-gcc compilers
15924
15925 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
15926
15927         * rand.c: use g_getenv for both lookups of
15928         MONO_EGD_SOCKET
15929
15930 2004-07-17  Martin Baulig  <martin@ximian.com>
15931
15932         * reflection.c (mono_reflection_bind_generic_method_parameters):
15933         Set `gmethod->reflection_info'.
15934
15935 2004-07-17  Martin Baulig  <martin@ximian.com>
15936
15937         * class.c (mono_class_create_from_typedef): Insert the newly
15938         created class into the hash table before computing the interfaces
15939         since we could be called recursively.
15940
15941 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
15942
15943         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
15944         function to implement stelem.ref in managed code
15945         * class-internals.h, debug-helpers.c: a new wrapper type
15946         for the above.
15947
15948 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
15949
15950         * gc.c: allow GC handles to work even when no GC is compiled in.
15951         Fix part of bug #61134 (GetAddrOfPinnedObject).
15952
15953 2004-07-13  Peter Williams  <peter@newton.cx>
15954  
15955         * process.c (complete_path): Make sure we don't attempt to execute
15956         directories.
15957  
15958 2004-07-12  Geoff Norton <gnorton@customerdna.com>
15959
15960         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
15961           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
15962           and will add/subtract the hour if needed
15963
15964 2004-07-12  Martin Baulig  <martin@ximian.com>
15965
15966         * reflection.c (mono_field_get_object): If we have
15967         `field->generic_info', take the attributes from
15968         `field->generic_info->generic_type'.    
15969
15970 2004-07-12  Martin Baulig  <martin@ximian.com>
15971
15972         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
15973         This function must be called before initializing the runtime.
15974         (mono_debug_init_1): New function; call this after initializing
15975         the runtime, but before loading the assembly.  It tells the
15976         debugger to load corlib and the builtin types.
15977
15978         * mono-debug-debugger.c: Did some larger changes in the debugging
15979         code; support recursive class declarations, make sure we actually
15980         add all classes.
15981
15982 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15983
15984         * debug-helpers.c: undo my previous patch and fixed the real issue in
15985         ../mini/exceptions-x86.c
15986
15987 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15988
15989         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
15990         when no HOME env. variable was set and a NullRef was thrown in a .cctor
15991         called from other .cctors.
15992
15993 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
15994
15995         * loader.c: Removed the mono_loader_wine_init hack now that we are
15996         doing a managed version of Windows.Forms.
15997
15998 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
15999
16000         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
16001         threadpool.c, threads.c: remove static data from rootset.
16002
16003 2004-07-09  Dick Porter  <dick@ximian.com>
16004
16005         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
16006         Don't do any more processing if the matched length was 0.  It was
16007         increasing the size of the string before.  Fixes bug 61167.
16008
16009 2004-07-09  Dick Porter  <dick@ximian.com>
16010
16011         * socket-io.h:
16012         * socket-io.c
16013         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
16014         Add support for SO_PEERCRED if its available.
16015
16016 2004-07-09  Peter Bartok <pbartok@novell.com>
16017         * loader.c: winelib.exe.so error message is now only displayed if
16018         MONO_DEBUG is set. To help us avoid questions when people are trying
16019         out the new Managed.Windows.Forms.
16020
16021 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
16022
16023         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
16024         for isinst and castclass wrappers.
16025
16026         * class-internals.h icall.c: Move registration and lookup of JIT icalls
16027         to libmetadata from the JIT, so they could be used by the marshalling
16028         code and the interpreter.
16029
16030         * marshal.c: Register marshalling related JIT icalls here instead of
16031         in mini.c. Use CEE_MONO_ICALL instead of the family of 
16032         CEE_MONO_PROC<x> opcodes to call marshalling functions.
16033
16034         * metadata.h: Remove unneeded marshalling conversions.
16035
16036         * opcodes.c: Update for new opcodes.
16037         
16038 2004-07-08  Martin Baulig  <martin@ximian.com>
16039
16040         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
16041         (mono_debug_get_domain_data): Make this function static.
16042
16043 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
16044
16045         * gc.c, object.h: add nice GC handle API for embedders.
16046
16047 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
16048
16049         * reflection.c: more changes for the new api
16050
16051         * object.c: When we reflect on a field w/ a constant value, it
16052         will not have a memory location, so we must access metadata. Also,
16053         allow easier reading of strings so that we can read them from
16054         the constant data.
16055
16056         * class.c (mono_class_layout_fields): no need for literal fields here.
16057
16058         * class-internals.h: api changes for const fields
16059
16060         * icall.c (ves_icall_get_enum_info): use new apis for const fields
16061
16062 2004-07-06  Martin Baulig  <martin@ximian.com>
16063
16064         * mono-debug.h: Increment version number to 44.
16065
16066         * mono-debug.c (mono_debug_add_wrapper): The second argument is
16067         now a gpointer, rewrote this whole method.
16068
16069         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
16070         function.  Add information about the wrapper in a new "misc table".
16071
16072         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
16073         for the new misc table.
16074
16075 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
16076
16077         * metadata-internals.h image.c: Add a cache for helper signatures.
16078
16079         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
16080
16081 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
16082
16083         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
16084         delegates from a delegate. Fixes #61033.
16085         
16086         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
16087         marshalling of stringbuilder arrays. Fixes #59900.
16088
16089 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
16090
16091         * icall.c: Add EnumBuilder:setup_enum_type icall.
16092
16093 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
16094
16095         * icall.c: Added a new icall for the property version of
16096         OffsetOfStringData.
16097
16098 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
16099
16100         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
16101         it has a constant size across platforms.
16102
16103         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
16104         stack trace.
16105
16106 2004-06-29  Martin Baulig  <martin@ximian.com>
16107
16108         * mono-debug.c (mono_debug_add_method): Protect the whole function
16109         in mono_debugger_lock(), not just parts of it.
16110
16111 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
16112
16113         * reflection.c: make sure padding bytes in heaps are zeroed.
16114
16115 2004-06-24  David Waite  <mass@akuma.org>
16116
16117         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
16118         image.c, loader.c, locales.c, marshal.c, metadata.c,
16119         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
16120         string-icalls.c, threads.c: change to C90-style comments from C99 /
16121         C++ -style
16122
16123 2004-06-24  Dick Porter  <dick@ximian.com>
16124
16125         * threads.c
16126         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
16127         return createdNew.  Fixes bug 60412.
16128
16129         * threads-types.h: 
16130         * icall.c: Add createdNew parameter to CreateMutex icall
16131
16132 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
16133
16134         * reflection.c, object-internals.h: save default value in params.
16135
16136 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16137
16138         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
16139         no need to build a new path combining that with the application base.
16140         Fixes bug #60442.
16141
16142 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
16143
16144         * reflection.c: fixed minor standard compliance issues.
16145
16146 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
16147
16148         * reflection.c: fixed issue with encoding some custom attributes
16149         (arrays in properties and fields, bug #60411).
16150
16151 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16152
16153         * reflection.c: fix start address when copying the public key token.
16154
16155 2004-06-23  Martin Baulig  <martin@ximian.com>
16156
16157         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
16158         the `exc' object in a static object to put it into the GC's root set.
16159
16160 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
16161
16162         * reflection.c: make mono_reflection_setup_internal_class ()
16163         callable a second time to setup a new parent class.
16164
16165 2004-06-23  Dick Porter  <dick@ximian.com>
16166
16167         * threads.c: Check for WAIT_IO_COMPLETION return values.
16168
16169 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
16170
16171         * appdomain.c: Removed the g_free on the public key token. Now copy 
16172         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
16173         * assembly.c: Added public key token string value when loading 
16174         assemblies. Fix bug #60439.
16175         * icall.c: Added missing informations (like public key) in 
16176         GetReferencedAssemblies. Fix #60519.
16177         * image.h: Changed definition for public key token from const char*
16178         public_tok_value to guchar public_key_token [17];
16179         * reflection.c: Updated for changes to public key token.
16180
16181 2004-06-22  Lluis Sanchez Gual
16182
16183         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
16184         for the field in base classes.
16185
16186 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
16187
16188         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
16189         mark headers as not supported, they are installed only for use by the
16190         debugger.
16191
16192 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
16193
16194         * *.c, *.h: avoid namespace pollution in public headers.
16195
16196 2004-06-21  Martin Baulig  <martin@ximian.com>
16197
16198         * exception.c (mono_get_exception_security): It's in
16199         "System.Security", not in "System".
16200
16201         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
16202         the exception classes.
16203
16204 2004-06-21  Martin Baulig  <martin@ximian.com>
16205
16206         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
16207         Protect the exception object from being finalized.
16208
16209 2004-06-21  Martin Baulig  <martin@ximian.com>
16210
16211         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
16212         public function.
16213
16214 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
16215
16216         * reflection.c: Load the assembly in mono_reflection_type_from_name,
16217         if it was not loaded before. Fix parts of #60439.
16218
16219 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
16220
16221         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
16222         code that was broken since Ben's change: wrappers are now
16223         dependent on the method signature only again.
16224
16225 2004-06-21  Martin Baulig  <martin@ximian.com>
16226
16227         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
16228         added interface support.
16229
16230 2004-06-21  Martin Baulig  <martin@ximian.com>
16231
16232         * class.c (mono_vtable_get_static_field_data): New public method.
16233
16234 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
16235
16236         * filewatcher.c : Windows build fix to be compliant with API changes.
16237
16238 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
16239
16240         * class.h, class.c: more accessors.
16241         * metadata.h, metadata.c: prepare for hiding MonoType and
16242         MonoMethodSignature: people should use the accessors from now on
16243         outside of the tree.
16244
16245 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
16246
16247         * *.c, *.h: more API cleanups.
16248
16249 2004-06-18  Jackson Harper  <jackson@ximian.com>
16250
16251         * assembly.c: Trace loading assemblies.
16252         * loader.c: Trace loading native libraries.
16253         * mono-config.c: Trace loading config files.
16254         
16255 2004-06-18  Dick Porter  <dick@ximian.com>
16256
16257         * locales.c: Tell ICU the lengths of strings, it can cope with
16258         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
16259
16260 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
16261
16262         * image.c: swapped name/filename;
16263
16264 2004-06-18  Martin Baulig  <martin@ximian.com>
16265
16266         * mono-debug-debugger.c (write_class): Write the parent class at
16267         the end of the header.
16268
16269 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
16270
16271         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
16272
16273 2004-06-17  Raja R Harinath  <rharinath@novell.com>
16274
16275         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
16276         (bundle_obj): New conditional define.
16277         (BUILT_SOURCES): Remove.
16278         ($(bundle_srcs)): Make parallel-make safe.
16279         (libmonoruntime_la_LIBADD): Make unconditional.
16280         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
16281         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
16282
16283 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
16284
16285         * culture-info-tables.h: It was inconsistent with the latest
16286           supp info files.
16287
16288 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
16289
16290         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
16291         be loaded.
16292
16293         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
16294         with gcc 2.95.
16295
16296 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
16297
16298         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
16299         cleaned up public header threads.h.
16300
16301 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
16302
16303         * Makefile.am, *.c, *.h: more API cleanups.
16304
16305 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
16306
16307         * Makefile.am: removed monosn from compilation.
16308         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
16309         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
16310         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
16311         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
16312         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
16313         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
16314
16315 2004-06-15  Jackson Harper  <jackson@ximian.com>
16316
16317         * assembly.c: Make locales lower case when searching the GAC for
16318         assemblies. gacutil will always make locales lowercase when
16319         installing so this effectively makes them case insensitive.
16320         
16321 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
16322
16323         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
16324         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
16325           parameter which allows to choose whether the wait can be interrupted or 
16326           not. Also added the method mono_monitor_enter(), which locks the monitor
16327           using an infinite wait and without allowing interruption.
16328           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
16329           interrupted.
16330         * object.h: Added new fields in MonoThread. suspend_event holds the event
16331           used to susped/resume the thread. synch_lock is the lock object to use for
16332           modifying the thread state.
16333         * threads.c: Use the new synch_lock object for locking, instead of "this",
16334           which can generate deadlocks.
16335           Moved thread state change in Thread.Sleep and Thread.Join from managed
16336           to unmanaged code. This avoids a deadlock when the thread was suspended
16337           just after acquiring the thread lock.
16338           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
16339           Implemented Thread.Suspend using an event instead of ThreadSuspend,
16340           which is not fully implemented in the io-layer.
16341         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
16342
16343 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
16344
16345         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
16346         threads-types.h: more API cleanups.
16347
16348 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
16349
16350         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
16351         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
16352         threadpool.c, threads.c: first pass at the exported API cleanup.
16353
16354 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
16355
16356         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
16357
16358 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16359
16360         * icall.c: added internalGetHome.
16361
16362 2004-06-14  Dick Porter  <dick@ximian.com>
16363
16364         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
16365         possible to return successfully when '.' or '..' were the only
16366         entries in a directory, but were skipped.  The MonoIOStat was not
16367         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
16368         Fixes bug 59574.
16369
16370 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
16371
16372         * reflection.c: make binaries run on .Net 1.1 by default.
16373
16374 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
16375
16376         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
16377
16378 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
16379
16380         * marshal.c: keep track of struct size with explicit layout
16381         (bug #59979).
16382
16383 2004-06-12  Martin Baulig  <martin@ximian.com>
16384
16385         * mono-debug-debugger.c: Comment out a debugging g_message().
16386
16387 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
16388
16389         * reflection.c, reflection.h: do not free custom attrs that are cached.
16390         * icall.c: use braces to make code clearer.
16391
16392 2004-06-11  Martin Baulig  <martin@ximian.com>
16393
16394         * class.h (MonoInflatedField): New type.
16395         (MonoClassField): Replaced `MonoType *generic_type' with
16396         `MonoInflatedField *generic_info'.
16397
16398         * icall.c
16399         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
16400
16401 2004-06-11  Martin Baulig  <martin@ximian.com>
16402
16403         * reflection.c (mono_image_create_method_token): Correctly encode
16404         varargs methods.
16405
16406 2004-06-11  Martin Baulig  <martin@ximian.com>
16407
16408         * metadata.c (mono_metadata_parse_method_signature): When parsing
16409         a MethodDef which has VarArgs, also set sentinelpos if we don't
16410         have any parameters.
16411
16412 2004-06-11  Martin Baulig  <martin@ximian.com>
16413
16414         * verify.c (mono_method_verify): In CEE_CALL, use
16415         mono_method_get_signature() to get the method's signature, unless
16416         we're a PInvoke method.
16417
16418 2004-06-10  Jackson Harper  <jackson@ximian.com>
16419
16420         * assembly.c: Use <path>/lib/mono/gac for the extra paths
16421         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
16422         logical name as the supplied path is just a prefix to the gac not
16423         the direct path to it.
16424         
16425 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
16426
16427         * reflection.c: make the token for a created method match
16428         the token of the MethodBuilder it was created from
16429         (IKVM requires this behaviour now).
16430
16431 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
16432
16433         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
16434         reflection.c, socket-io.c: leak fixes.
16435
16436 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
16437
16438         * icall.c: handle sentinel pos in vararg methods in position different
16439         from 0.
16440
16441 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16442
16443         * culture-info-tables.h: freshly generated.
16444
16445 2004-06-09  Martin Baulig  <martin@ximian.com>
16446
16447         * loader.c (mono_get_method_constrained): Call `mono_class_init
16448         (constrained_class)'.   
16449
16450 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
16451
16452         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
16453         any methods. Fixes #59629.
16454
16455 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
16456
16457         * culture-info-tables.h: reflecting locale-builder updates.
16458
16459 2004-06-08  Dick Porter  <dick@ximian.com>
16460
16461         * object.h:
16462         * locales.c: Fixed compile warnings, including a real bug in
16463         CompareInfo_internal_compare.
16464         
16465 2004-06-08  Dick Porter  <dick@ximian.com>
16466
16467         * locales.c
16468         (ves_icall_System_Globalization_CompareInfo_internal_index):
16469         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
16470         Double-check the resuls of usearches, because ICU currently
16471         ignores most of the collator settings here.  Fixes bug 59720.
16472         
16473 2004-06-08  Dick Porter  <dick@ximian.com>
16474
16475         * locales.c
16476         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
16477         Fix memory leak and segfault-causing typo.  No idea how this one
16478         lasted so long without being noticed.
16479
16480 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
16481
16482         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
16483         any methods. Fixes #59629.
16484
16485 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16486
16487         * assembly.c:
16488         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
16489         own the critical section before). Removed dead code (that's done
16490         in the preload hook).
16491
16492         (mono_assembly_load_with_partial_name): call the preload hook.
16493
16494 2004-06-08  Martin Baulig  <martin@ximian.com>
16495
16496         * metadata.c (mono_metadata_signature_alloc): Default
16497         `sentinelpos' to -1.
16498
16499         * reflection.c (mono_image_get_array_token): Likewise.
16500
16501 2004-06-08  Martin Baulig  <martin@ximian.com>
16502
16503         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
16504
16505         * metadata.c (mono_metadata_parse_method_signature): When parsing
16506         a MethodDef which has VarArgs, set sentinelpos.
16507
16508         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
16509         `gint16' since we're using -1 for non-varargs methods.
16510
16511         * reflection.c
16512         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
16513         (method_encode_signature): Added varargs support.
16514         (method_builder_encode_signature): Likewise.
16515         (mono_image_get_varargs_method_token): New static method.
16516         (mono_image_create_method_token): New public method; this is
16517         called via an icall instead of mono_image_create_token() when
16518         calling a varargs method.       
16519
16520 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
16521
16522         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
16523
16524 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
16525
16526         * culture-info-tables.h : Reflecting the latest locale-builder that
16527           fixed empty array representation ({} to {0}).
16528
16529 2004-06-07  Jackson Harper  <jackson@ximian.com>
16530
16531         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
16532         looking up extra gac paths. This allows MONO_GAC_PATH to act
16533         exactly like a prefix.
16534         
16535 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
16536
16537         * reflection.c (mono_reflection_type_from_name): Make a copy of the
16538         type name before modifying it. Fixes #59405.
16539
16540 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
16541
16542         * culture-info.h: added fields for "all datetime patterns".
16543         * locales.c: (  ves_icall_System_Globalization_CultureInfo
16544           _construct_datetime_format ()): fill xxx_patterns fields.
16545         * object.h: added fields for "all datetime patterns" to
16546           MonoDateTimeFormatInfo.
16547         * culture-info-tables.h: reflecting locale-builder updates.
16548
16549 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
16550
16551         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
16552         the event has no add and remove methods. Fixes #59629.
16553
16554 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
16555
16556         * object.c: Fixed possible integer overflow when allocating large
16557         strings.
16558
16559 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
16560
16561         * culture-info-tables.h: reflecting locale-builder updates.
16562
16563 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
16564
16565         * culture-info-tables.h: reflecting locale-builder updates.
16566
16567 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
16568
16569         * culture-info-tables.h: reflecting locale-builder updates.
16570
16571 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
16572
16573         * threads.c: Made Thread.Sleep abortable.
16574
16575 2004-06-02  Martin Baulig  <martin@ximian.com>
16576
16577         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
16578
16579         * debug-mono-symfile.h: Bumped symbol file version number to 37.
16580
16581 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
16582
16583         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
16584
16585 2004-05-30  Jackson Harper  <jackson@ximian.com>
16586
16587         * reflection.c: Do not hardcode assembly versions or public key
16588         tokens anymore. All of this except the corlib section was dead
16589         code anyways.
16590         
16591 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
16592
16593         * object.c (mono_runtime_invoke_array): Automatically create boxed
16594         objects for byref valuetypes if needed. Fixes #59300.
16595         
16596         * object.c (mono_method_return_message_restore): Handle 
16597         MONO_TYPE_OBJECT as well.
16598
16599 2004-05-28  Jackson Harper  <jackson@ximian.com>
16600
16601         * reflection.c: The modified type encoding was causing build
16602         problems. Reverted for now.
16603         
16604 2004-05-28  Jackson Harper  <jackson@ximian.com>
16605
16606         * reflection.c/h: Take an assembly ref so that we dont create
16607         fully qualified names when encoding types in the same assembly as
16608         the custom attribute being emitted.
16609         * appdomain.c: Increment version number.
16610         
16611 2004-05-26  Duncan Mak  <duncan@ximian.com>
16612
16613         * icall.c
16614         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
16615         Set the full version number (major, minor, build, revision).
16616
16617 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
16618
16619         * marshal.c (emit_struct_conv): increment src/dst after blit
16620         (mono_marshal_get_managed_wrapper,
16621         mono_marshal_get_native_wrapper): make sure we have marshalling
16622         info before marshalling params (info computation affects
16623         blittable)
16624
16625         * class.c (class_compute_field_layout): correctly deal with
16626         blittable
16627         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
16628         value types (as per what windows dows by default)
16629         (mono_class_setup_mono_type): System.ValueType is blittable
16630         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
16631         blittable
16632
16633         * marshal.c (mono_marshal_load_type_info): flag types  as
16634         non-blittable if the native layout doesn't match the managed
16635         layout
16636
16637 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16638
16639         * appdomain.c: don't add stuff in the private search path that is
16640         above the application base. If application base is not set, there's
16641         no private search path.
16642
16643 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
16644
16645         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
16646         byref struct arguments in native->managed marshalling.
16647
16648 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
16649
16650         * marshal.c (mono_marshal_get_runtime_invoke): correctly
16651         cache methods using signature (special case for methods
16652         that are value type or string class)
16653         
16654         * image.c (mono_image_close): clean up allocated GSList's
16655         in runtime_invoke_cache.
16656
16657 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16658
16659         * mono-config.c: set the correct path for mono_cfg_dir on windows when
16660         there's no MONO_CFG_DIR environment variable defined.
16661
16662 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16663
16664         * threads.c: windows version must be >= 0x0500 to include OpenThread.
16665
16666 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
16667
16668         * threadpool.c: Really wait for 500ms after the async call, even if the wait
16669           is interrumped.
16670         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
16671           before waiting for it, and call CloseHandle after the wait to unref it.
16672           This will make sure that handles are not disposed too early.
16673
16674 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16675
16676         * appdomain.c:
16677         * appdomain.h:
16678         * icall.c: removed
16679         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
16680         needed now.
16681
16682         * object.c: se the application_base only for the domain that runs
16683         Main. Fixes bug #59216,
16684
16685 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16686
16687         * appdomain.c:
16688         * object.c: only the domain in which Main is run have
16689         SetupInformation.ConfigurationFile set, so moved a few lines from
16690         appdomain.c to object.c.
16691
16692 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16693
16694         * appdomain.c: we tried to load [name].(dll|exe), but according
16695         to bug #57710, we must also try [culture]/[name].(dll|exe) and
16696         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
16697         There's a test case attached to bug #58922.
16698
16699 2004-05-27  Dick Porter  <dick@ximian.com>
16700
16701         * icall.c:
16702         * file-io.c: Implemented icalls for locking and unlocking regions
16703         in a file.
16704         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
16705         FALSE on error (fixes both compiler warning and real bug.)
16706
16707 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
16708
16709         * culture-info-tables.h: reflecting locale-builder updates.
16710
16711           (Added missing ChangeLog entry for 05/26)
16712
16713 2004-05-27  Jackson Harper  <jackson@ximian.com>
16714
16715         * locales.c: Fix some cut and paste errors.
16716         
16717 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16718
16719         * mono-config.c: set the correct path for config. directory on windows.
16720
16721 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
16722
16723         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
16724           on win32.
16725
16726 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
16727
16728         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
16729         from pinvoke functions.
16730         
16731         * marshal.c (mono_ftnptr_to_delegate): Implement this.
16732
16733 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
16734
16735         * culture-info-tables.h: reflecting locale-builder updates.
16736
16737 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
16738
16739         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
16740         #59086.
16741
16742 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
16743
16744         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
16745         * icall.c: Modified icalls for RNG.
16746         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
16747         Windows (CryptoAPI).
16748
16749 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
16750
16751         * locales.c: Fix build.
16752
16753 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
16754
16755         * culture-info-tables.h: reflecting locale-builder updates.
16756
16757 2004-05-25  Jackson Harper  <jackson@ximian.com>
16758
16759         * locales.c: When creating the current culture use the $LANGs
16760         specific culture. So DateTimeFormat and NumberFormat entries are created.
16761         
16762 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
16763
16764         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
16765         a char array as parameter.
16766
16767 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
16768
16769         * image.c: In mono_image_open(), always use an absolute path name to
16770           look for already loaded images.
16771
16772 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
16773
16774         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
16775         missing in the windows build (like older cygwin include files).
16776
16777 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
16778
16779         * icall.c: Fixed check for possible integer overflow in Buffer_
16780         BlockCopy icall. Replaced comments style // by /* */.
16781
16782 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
16783
16784         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
16785         
16786         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
16787         check after MONO_VTADDR. Fixes pinvoke2.exe.
16788
16789         * marshal.h marshal.c metadata.h: Add beginnings of support for
16790         ftnptr -> delegate marshalling.
16791
16792 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
16793
16794         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
16795         * threads.c: Fix warnings.
16796
16797 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
16798
16799         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
16800         * icall.c: Registered icalls for Suspend and Resume.
16801         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
16802           Thread.Abort.
16803         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
16804         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
16805         * process.c: Use WaitForSingleObjectEx.
16806         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
16807           checkpoints.
16808         * threads.c, threads.h: Make use of new Ex wait methods. Improved
16809           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
16810           for Suspend and Resume. Added new mono_thread_stop, used for stoping
16811           background threads. Added basic support for Abort in Windows.
16812           Start new threads using a managed delegate invoke wrapper. This wrapper
16813           has an interruption checkpoint that is needed since an interruption
16814           can be requested before the thread leaves the unmanaged code that starts 
16815           the thread.
16816         * marshal.c: Added interruption checkpoint after every native call, and
16817           also before managed calls for wrappers called from unmanaged code to
16818           go into managed code.
16819         * object.h: Added new field in MonoThread to keep track of interruption
16820           requests.
16821
16822 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
16823
16824         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
16825         calls.
16826
16827 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16828
16829         * appdomain.c:
16830         * assembly.c:
16831         * gc.c:
16832         * locales.c:
16833         * mono-config.c:
16834         * rand.c: getenv -> g_getenv (windows!)
16835
16836         * process.c: complete_path is also used on non-windows platforms.
16837
16838 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16839
16840         * icall.c: new signature for Process_Start.
16841
16842         * process.[ch]: new signature for Process_Start. If we're on windows
16843         and UseShellExecute is false, we have to search for the program by
16844         ourselves if we don't get a full path.
16845
16846 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
16847
16848         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
16849         marshalling and call CleanUpNativeData if needed. Fixes #58646.
16850
16851 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16852
16853         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
16854         Fixes bug #58373.
16855
16856 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16857
16858         * process.c: use double quotes to quote program name and arguments on
16859         windows. Fixes bug #58575.
16860
16861 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16862
16863         * file-io.c: don't return "." and ".." when using windows Find*File.
16864
16865 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
16866
16867         * marshal.c: Don't pass wrappers to message init because method 
16868         addressed used to lookup metadata. part of remoting[2|3] fix.
16869
16870 2004-05-15  Jackson Harper  <jackson@ximian.com>
16871
16872         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
16873         path is essentially the same as MONO_PATH except that it points to
16874         GACs instead of lib directories.
16875         * loader.h: The user gac is gone so we dont need function to
16876         enable/disable it.
16877         * mono-config.c: user gac option is now gone.
16878         
16879 2004-05-15  Jackson Harper  <jackson@ximian.com>
16880
16881         * culture-info.h: Make defines more consistent, add calendar data
16882         to the culture info table.
16883         * culture-info-tables.h: Add basic calendar data. Basically
16884         everyone gets default gregorian until all the data is
16885         updated.
16886         * locales.c: Use the new consistent defines. Set calendar data for
16887         culture info objects.
16888         * object.h: add a field for calendar data to CultureInfo
16889         
16890 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
16891
16892         * image.c: image->runtime_invoke_cache is keyed on signatures now.
16893         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
16894         a signature.
16895         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
16896         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
16897         an extra param that is the pointer of the method to invoke. The IL for
16898         the invoke method is no longer specific to the method, but to the
16899         signature of the method. Thus, we can share the same code for multiple
16900         methods. This reduces the number of methods that have to be compiled.
16901
16902 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
16903
16904         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
16905
16906         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
16907
16908         * icall.c: Optimize Buffer.BlockCopy.
16909
16910 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16911
16912         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
16913         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
16914         quote). Changed them to "MMMM yyyy".
16915
16916 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
16917
16918         * rand.c
16919         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
16920
16921 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
16922
16923         * reflection.h: Updated after changes to managed structures.
16924
16925         * appdomain.c: Bump corlib version.
16926
16927 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16928
16929         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
16930         windows.
16931
16932 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16933
16934         * Makefile.am: link to ../os/libmonoos.la on windows.
16935
16936         * assembly.c:
16937                 -If MONO_DEBUG, warn about non-existing directories in
16938                 MONO_PATH.
16939                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
16940                 compile time variable.
16941                 -Removed init_default_path and call mono_set_rootdir from
16942                 libmonoos.a instead (windows only).
16943
16944         * assembly.h: declare mono_assembly_getrootdir().
16945
16946         * domain.c:
16947         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
16948
16949         * loader.c: s/getenv/g_getenv/
16950
16951 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
16952
16953         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
16954
16955         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
16956
16957         * metadata.h: Add new marshalling conversions.
16958
16959         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
16960         function.
16961
16962         * reflection.c (mono_reflection_get_type): Lookup the type in all
16963         modules of a multi-module assembly. Fixes #58291.
16964
16965 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
16966
16967         * threads.c: Before aborting a background, set the StopRequested
16968         state.  This avoids throwing the Abort exception.
16969         In mono_thread_manage, don't continue with the shutdown until all
16970         aborted threads have actually stopped.
16971
16972 2004-05-10  Jackson Harper  <jackson@ximian.com>
16973
16974         * locales.c: Remove the modifier from culture names.
16975         
16976 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16977
16978         * Makefile.am: monosn is not installed any more. It has been deprecated
16979         in favor of sn.
16980
16981 2004-05-07  Jackson Harper  <jackson@ximian.com>
16982
16983         * locales.c
16984         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
16985         Fix array construction, add bailout if the length is 0.
16986
16987 2004-05-07  Dick Porter  <dick@ximian.com>
16988
16989         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
16990         machine doesn't have a DNS entry.  Patch by Urs Muff
16991         (umuff@quark.com), fixes bug 57928.
16992
16993 2004-05-06  Jackson Harper  <jackson@ximian.com>
16994
16995         * reflection.c: Handle null PublicTokens properly. alloc mem for
16996         assembly names culture so we dont crash when freeing it.
16997         
16998 2004-05-06  Jackson Harper  <jackson@ximian.com>
16999
17000         * assembly.c: Check the usergac when loading with partial names.
17001         
17002 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
17003
17004         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
17005         does nothing for now (not required for Linux/Windows) but the class
17006         library can call it (and a newer or modified runtime could need it).
17007         * icall.c: Registred icall.
17008
17009 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17010
17011         * loader.c: prints a message on module loading error we set MONO_DEBUG
17012         environment variable.
17013
17014 2004-05-05  Jackson Harper  <jackson@ximian.com>
17015
17016         * appdomain.c: Handle PublicKeyToken=null properly.
17017         
17018 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
17019
17020         * environment.c|h: Added icall ves_icall_System_Environment_
17021         GetOSVersionString to get the current OS version as a string.
17022         * icall.c: Registred icall.
17023
17024 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
17025
17026         * object.c: in mono_object_get_virtual_method(), take into account that
17027         non-virtual methods don't have a slot in the vtable. Check needed when
17028         the object is a proxy.
17029
17030 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
17031
17032         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
17033         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
17034
17035         * object.c (mono_class_compute_gc_descriptor): Fix warning.
17036
17037         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
17038         passed when a valuetype is expected.
17039
17040         * object.c (mono_unhandled_exception): Only set the exit code if the
17041         exception happens in the main thread. Fixes thread5.exe.
17042
17043         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
17044         invalid names. Fixes #58047.
17045
17046 2004-05-03  Jackson Harper  <jackson@ximian.com>
17047
17048         * assembly.c: This line was committed accidently and is unneeded.
17049         
17050 2004-05-03  Jackson Harper  <jackson@ximian.com>
17051
17052         * icall.c: Add new icall for Assembly::LoadWithPartialName
17053         * assembly.c/.h: new function that probes the GAC to load partial
17054         assembly names by Paolo Molaro.
17055         
17056 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17057
17058         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
17059         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
17060         (type_get_fully_qualified_name): Added PublicKeyToken when building a
17061         full type name.
17062
17063 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17064
17065         * appdomain.c: fixed check for 'neutral' culture and removed warning.
17066         * reflection.c: fix bug when parsing a full type name and Version is not
17067         the last thing in the string.
17068
17069 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
17070
17071         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
17072         crashes when it is freed.
17073
17074 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17075
17076         * assembly.c: print the compat warning to stderr.
17077
17078 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
17079
17080         * assembly.c (mono_assembly_load_references): Add a compatibility
17081         hack to run old applications that might be still referencing the
17082         3300-based assemblies, only do this for System.xxx.
17083
17084 2004-05-01  Jackson Harper  <jackson@ximian.com>
17085
17086         * appdomain.c: If the culture is neutral we set it to "".
17087         
17088 2004-04-29  Jackson Harper  <jackson@ximian.com>
17089
17090         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
17091
17092 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
17093  
17094         * string-icalls.c: added low overhead function for copying chars
17095         * icall.c: added needed icall for the above function
17096  
17097 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17098
17099         * icall.c: fix return value of get_global_assembly_cache.  Implemented
17100         Environment.GetLogicalDrives.
17101
17102 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
17103
17104         * rand.c: try and talk to egd or prngd
17105         for random bytes if opening devices fail.
17106
17107 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
17108
17109         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
17110         alignment for the type using the native alignment of its members 
17111         instead of using klass->min_align.
17112
17113         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
17114
17115 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17116
17117         * file-io.c:
17118         * socket-io.c: added check for sys/aio.h.
17119
17120 2004-04-28  Dick Porter  <dick@ximian.com>
17121
17122         * threads.c: Don't abort a thread thats already aborting, when
17123         terminating everything.
17124
17125 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17126
17127         * icall.c: added 2 new async calls for Socket.
17128
17129         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
17130         IO on *nix systems.
17131
17132         * threadpool.c: removed unused variable.
17133
17134 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
17135
17136         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
17137
17138 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
17139
17140         * locales.c: put back string_invariant_tolower () and
17141         string_invariant_toupper ().
17142
17143 2004-04-26 David Waite <mass@akuma.org>
17144
17145         * file-io.h:
17146         * socket-io.h:
17147         * threads.h:
17148         * unicode.h: remove comma from end of enumeration declarations
17149
17150 2004-04-26 David Waite <mass@akuma.org>
17151
17152         * debug-mono-symfile.h:
17153         * decimal.c:
17154         * mono_debug.h:
17155         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
17156
17157
17158 2004-04-26  Jackson Harper  <jackson@ximian.com>
17159
17160         * appdomain.c: Increment version number.
17161         
17162 2004-04-26  Jackson Harper  <jackson@ximian.com>
17163
17164         * appdomain.c: Set assembly references public token value when
17165         PublicKeyToken is specified, not the hash_value. Free public token
17166         values when free assembly name data. Previously the public key
17167         token was hex decoded, however we are using hex encoded public key
17168         tokens, so this is not neccasary.
17169         * assembly.c: Lookup assemblies in the gac if their public token
17170         value is set. Add function to allow enabling user gac
17171         lookups. Specify whether or not the assembly was loaded from the
17172         GAC. Compare full assembly names when checking the cache for
17173         assemblies (Temporarily disabled see comment in code). Remove
17174         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
17175         specifies trace-loader they get extra info to stdout on the
17176         loading of assemblies.
17177         * image.h: Add a field for an assembly references public token
17178         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
17179         whether an assembly has been loaded from the GAC.
17180         * image.c: Remove a corlib -> mscorlib name mapping.
17181         * loader.h: Add function to enable/disable the user gac.
17182         * mono-config.c: Check if the usergac is enabled in the config
17183         file.
17184         * icall.c: New icall to determine whether or not an assembly has
17185         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
17186         * tabldefs.h: Add constant for assemblyref flag that specifies a
17187         full public key is used instead of a public token.
17188         * reflection.c: Remove mscorlib -> corlib mappings. Set
17189         PublicTokenValue instead of hash value. This value is a hex
17190         string so it does not need to be expanded.
17191
17192 2004-04-26  Martin Baulig  <martin@ximian.com>
17193
17194         * mono-debug-debugger.c (mono_debugger_initialize): Set
17195         `mono_debugger_initialized' before calling mono_debug_lock().
17196
17197 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
17198
17199         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
17200           InternalToUpper/InternalToLower.
17201         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
17202           removed invariant culture shortcut.  This is now done in managed code.
17203         * locales.c: (string_invariant_toupper/tolower) removed.
17204
17205 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17206
17207         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
17208         Added Poll internal call.
17209
17210         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
17211         call for Poll. Select was too heavy for polling a single socket.
17212
17213         * threadpool.[ch]: added mono_threadpool_cleanup.
17214         * threads.c: use it. Don't use Thread_Abort on windows.
17215
17216 2004-04-23  Martin Baulig  <martin@ximian.com>
17217
17218         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
17219
17220 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
17221
17222         * icall.c: Registred new icalls for key pair protection and added an
17223         icall for Environment.GetFolderPath on Windows.
17224         * security.c|h: Added new icalls for key pair protection.
17225
17226 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17227
17228         * socket-io.c: don't display the non-supported family warning for known
17229         families. Now this is not displayed on windows when checking support
17230         for IPv4/IPv6.
17231
17232 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17233
17234         * class.c: don't display the layout warning for static fields.
17235
17236 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
17237
17238         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
17239         * locales.c, locales.h: Added new icalls for culture-specific
17240         Char.ToLower and Char.ToUpper.
17241
17242 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17243
17244         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
17245         by David Waite.
17246
17247 2004-04-20  Martin Baulig  <martin@ximian.com>
17248
17249         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
17250         of the type name before passing it to mono_reflection_type_from_name().
17251
17252 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
17253
17254         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
17255         encodings here. Fixes #56965.
17256
17257 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
17258
17259         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
17260         fix test on strstr result not that I can see anything that
17261         relies on the result.
17262
17263 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
17264
17265         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
17266         Fixes #57081.
17267
17268         * marshal.c (mono_marshal_get_string_encoding): New helper function.
17269
17270         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
17271         function to determine which marshalling to use for strings. Fixes
17272         #56965.
17273
17274         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
17275
17276         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
17277
17278 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
17279
17280         * icall.c: #include mono-config.h
17281
17282 2004-04-15  Jackson Harper  <jackson@ximian.com>
17283
17284         * culture-info-tables.h: Fix date formats for en-US culture.
17285         
17286 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
17287
17288         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
17289         ThreadPool.SetMinThreads.
17290         * threadpool.c: Implemented ThreadPool.GetMinThreads and
17291         ThreadPool.SetMinThreads.
17292
17293 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
17294
17295         * mono-config.c: also load the .config file in the directory
17296         where the assembly was found.
17297
17298 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
17299
17300         * assembly.c: load per-assembly config files.
17301         * icall.c: decrapified code to get the config dir and moved to
17302         mono-config.c.
17303         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
17304         per-assembly config files. When doing a dll map lookup give precedence
17305         to the per-assembly data.
17306
17307 2004-04-14  Martin Baulig  <martin@ximian.com>
17308
17309         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
17310         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
17311         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
17312
17313         * mono-debugger-debugger.c: While the debugger is locked, remember
17314         whether the symbol tables have changes and send one single
17315         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
17316
17317 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
17318
17319         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
17320
17321         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
17322         function.
17323
17324         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
17325         account when marshalling string arrays. Fixes #56965.
17326
17327 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
17328
17329         * icall.c: Add new icalls mapping for security.
17330         * security.c|h: Add internal calls for WindowsIdentity,
17331         WindowsImpersonationContext and WindowsPrincipal.
17332
17333 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
17334
17335         * class.c: Added comment to ensure the System.MonoDummy class
17336         is removed when no longer necessary
17337
17338 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
17339
17340         * appdomain.c: Pass arguments to the bootstraping exceptions to
17341         minimize JITed methods at boot
17342
17343         * metadata.c (mono_exception_from_name_two_strings): Allow for the
17344         second string to be null.
17345
17346         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
17347         Change the protocol to minimize the JIT methods at startup.  Now
17348         it Returns the internal codepage, if the value of "int_code_page"
17349         is 1 at entry, and we can not compute a suitable code page
17350         number, returns the code page as a string.
17351
17352 2004-04-13  Jackson Harper  <jackson@ximian.com>
17353
17354         * culture-info-tables.h: Fix number of decimal digits for all
17355         english locales.
17356
17357 2004-04-13  Jackson Harper  <jackson@ximian.com>
17358
17359         * icall.c: Clairfy out of sync error message. It is not always
17360         your corlib that is out of sync.
17361
17362 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
17363
17364         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
17365         properties when only the set accessor is overriden. Fixes #55874.
17366
17367 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
17368
17369         * assembly.c (mono_assembly_load_references): Make this thread safe.
17370         Fixes #56327.
17371
17372 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
17373
17374         * monosn.c: Add missing initialization calls.
17375
17376 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
17377
17378         * locales.c:
17379         ves_icall_System_Globalization_CultureInfo_construct_number_format
17380         Fix g_assert so it compiles on fussier compilers re int/ptr
17381         mismatch
17382
17383 2004-04-08  Dick Porter  <dick@ximian.com>
17384
17385         * socket-io.h:
17386         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
17387         53992.  Also rearrange the code so that the internal calls return
17388         an error value and exceptions are thrown from managed code.
17389
17390         * icall.c: Add type info to the socket icalls.
17391
17392 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17393
17394         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
17395         owes me a beer.
17396
17397 2004-04-07  Martin Baulig  <martin@ximian.com>
17398
17399         * class.c (mono_class_from_generic_parameter): Don't default
17400         `klass->parent' to `mono_defaults.object_type'.
17401
17402 2004-04-07  Martin Baulig  <martin@ximian.com>
17403
17404         * reflection.c (mono_reflection_initialize_generic_parameter): Set
17405         `param->pklass->reflection_info'.       
17406
17407 2004-04-07  Jackson Harper  <jackson@ximian.com>
17408
17409         * culture-info-tables.h: Fix date separator symbol.
17410         
17411 2004-04-07  Martin Baulig  <martin@ximian.com>
17412
17413         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
17414         from System.Type to System.MonoType.
17415
17416 2004-04-07  Martin Baulig  <martin@ximian.com>
17417
17418         * reflection.h
17419         (MonoReflectionGenericParam): Added `has_reference_type' and
17420         `has_value_type' fields.
17421
17422         * reflection.c (mono_image_get_generic_param_info): Encode the
17423         correct flags if we have the `class' or `struct' constraint.
17424
17425 2004-04-07  Martin Baulig  <martin@ximian.com>
17426
17427         * reflection.h
17428         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
17429
17430 2004-04-07  Jackson Harper  <jackson@ximian.com>
17431
17432         * appdomain.c: Revert extra patches, just wanted to bump the
17433         version number.
17434         
17435 2004-04-07  Jackson Harper  <jackson@ximian.com>
17436
17437         * Makefile.am: Add culture-info private headers.
17438         * icall.c: Add new icalls for contructing locales.
17439         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
17440         * locales.h: Declare new culture info construction methods.
17441         * object.h: Add new fields used to avoid the CultureMap to
17442         MonoCultureInfo.
17443         * culture-info.h: Definition of structs used in the culture info
17444         tables.
17445         * culture-info-tables.h: Autogenerated tables that contain culture
17446         info data. This file was generated with the locale-builder tool.
17447         * appdomain.c: Incement corlib version number.
17448         
17449 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
17450
17451         * appdomain.c: (mono_runtime_init) move mono_thread_init
17452         to before mono_object_new calls so critical sections
17453         are initialized before use.
17454
17455 2004-04-07  Martin Baulig  <martin@ximian.com>
17456
17457         * icall.c
17458         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
17459         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
17460         (ves_icall_MonoGenericParam_initialize): Removed.
17461         (monogenericparam_icalls): Removed.
17462         (generictypeparambuilder_icalls): Added new table for
17463         System.Reflection.Emit.GenericTypeParameterBuilder.
17464
17465         * reflection.c
17466         (mono_reflection_define_generic_parameter): Removed.
17467         (mono_reflection_initialize_generic_parameter): This is now called
17468         from GenericTypeParameterBuilder's .ctor.
17469
17470 2004-04-06  Martin Baulig  <martin@ximian.com>
17471
17472         * class.c (mono_class_init): Don't inflate nested classes in a
17473         generic instance.
17474         (mono_type_get_name_recurse): Include the generic arguments for
17475         generic instances and generic type declarations.
17476         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
17477         (_mono_class_get_instantiation_name): Removed.
17478         (mono_class_create_generic): Always use `gklass->name' as our name.
17479
17480         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
17481
17482         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
17483         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
17484         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
17485         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
17486         closed generic methods here.
17487
17488         * reflection.c
17489         (mono_reflection_generic_inst_get_nested_types): Removed.
17490         (inflate_mono_method): Copy the generic parameters from the
17491         MonoMethodHeader into out MonoGenericMethod.
17492
17493 2004-04-06  Martin Baulig  <martin@ximian.com>
17494
17495         * row-indexes.h
17496         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
17497
17498         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
17499
17500         * reflection.c (build_compressed_metadata): If we have any entries
17501         in the GenericParam, MethodSpec or GenericParamConstraint tables,
17502         set the header version to 1.1.
17503
17504 2004-04-06  Martin Baulig  <martin@ximian.com>
17505
17506         * class.c (mono_class_init): If we're a generic instance,
17507         initialize our nested classes, too.
17508         (_mono_class_get_instantiation_name): Deal with the new `!%d'
17509         suffix. 
17510
17511 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17512
17513         * process.c: quote the argument passed to the shell on windows.
17514
17515 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
17516
17517         * threads.c (mono_alloc_special_static_data): Allow this to be
17518         called during startup.
17519
17520 2004-04-02  Martin Baulig  <martin@ximian.com>
17521
17522         * icall.c
17523         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
17524
17525 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
17526
17527         * icall.c: Fix build.
17528
17529 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
17530
17531         * Makefile.am: Added security.c|h.
17532         * icall.c: Added icall for get_UserName;
17533         * security.c: New file for security related icalls. Added function
17534         get_UserName for System.Environment (fix #56144).
17535         * security.h: New. Header file for security.c
17536
17537 2004-04-02  Dick Porter  <dick@ximian.com>
17538
17539         * icall.c: Deleted the icalls that were obsoleted some time ago
17540         by the ICU string code, and which were mixed into the icall
17541         rearranging.  Fixes bug 55969.
17542
17543         * string-icalls.h: 
17544         * string-icalls.c: Deleted the code that those icalls reference.
17545
17546 2004-04-01  Martin Baulig  <martin@ximian.com>
17547
17548         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
17549
17550         * class.c (mono_class_from_generic_parameter): Don't set 
17551         TYPE_ATTRIBUTE_INTERFACE.
17552         (my_mono_class_from_generic_parameter): Likewise.
17553
17554 2004-04-01  Martin Baulig  <martin@ximian.com>
17555
17556         * loader.c (find_method): Added an optional `MonoClass *ic'
17557         argument to search in a specific interface.
17558         (mono_get_method_constrained): New public function.
17559
17560 2004-04-01  Martin Baulig  <martin@ximian.com>
17561
17562         * reflection.c (mono_image_get_generic_field_token): Use the
17563         `handleref' cache here.
17564
17565 2004-04-01  Martin Baulig  <martin@ximian.com>
17566
17567         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
17568
17569         * reflection.c (create_generic_typespec): Use the `typespec' hash
17570         here, not the `typeref' one.    
17571
17572 2004-04-01  Martin Baulig  <martin@ximian.com>
17573
17574         * class.c (mono_class_inflate_generic_type): Moved the
17575         functionality into a new static inflate_generic_type() which
17576         returns NULL if it didn't do anything.  Only increment the
17577         `mono_stats.inflated_type_count' if we actually inflated
17578         something.
17579         (mono_class_get_full): Check the classes type to see whether we
17580         need to inflate it; also inflate MONO_TYPE_(M)VAR.
17581
17582 2004-04-01  Jackson Harper  <jackson@ximian.com>
17583
17584         * reflection.c: Set culture for assembly references.
17585         
17586 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
17587
17588         * reflection.[ch], icall.[ch], Fix support for pinning variables.
17589
17590 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17591
17592         * assembly.c:
17593         (do_mono_assembly_open): the critical section also covers
17594         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
17595
17596 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17597
17598         * threads.c:
17599         (mono_manage_threads): abort the background threads when finishing.
17600         Fixes bug #47232.
17601
17602 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17603
17604         * gc.c: only close the done_event handle if there was no timeout.
17605         C-ified comments.
17606
17607 2004-03-30  Martin Baulig  <martin@ximian.com>
17608
17609         * icall.c (icall_entries): It's called "System.Activator", not
17610         "System.Activation".    
17611
17612 2004-03-30  Martin Baulig  <martin@ximian.com>
17613
17614         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
17615         (mono_class_create_from_typespec): Likewise.
17616
17617 2004-03-30  Martin Baulig  <martin@ximian.com>
17618
17619         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
17620         `has_ctor_constraint' and `initialized'.
17621
17622 2004-03-30  Martin Baulig  <martin@ximian.com>
17623
17624         * reflection.c (encode_new_constraint): New static function to add
17625         the constructor constraint attribute to a type parameter.
17626         (encode_constraints): Call encode_new_constraint() if necessary.
17627
17628         * reflection.h
17629         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
17630
17631         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
17632         
17633 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
17634
17635         * reflection.c, icall.c: add support for pinning variables. 
17636
17637 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
17638
17639         * marshal.c (mono_marshal_get_managed_wrapper):
17640         init bool local with zero rather than null.
17641
17642 2004-03-29  Martin Baulig  <martin@ximian.com>
17643
17644         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
17645         the "official" behavior here.
17646         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
17647
17648 2004-03-29  Martin Baulig  <martin@ximian.com>
17649
17650         * icall.c: Reflect latest API changes.
17651
17652 2004-03-29  Martin Baulig  <martin@ximian.com>
17653
17654         * loader.c (mono_get_method_from_token): Also call
17655         mono_metadata_load_generic_params () for abstract and interface
17656         methods; replace the type arguments in the method signature with
17657         the ones which are loaded from the metadata.
17658
17659 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
17660
17661         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
17662         of the lock is not the current thread. MS.NET don't do it, in spite of
17663         what the documentation says. See bug #56157.
17664
17665 2004-03-28  Martin Baulig  <martin@ximian.com>
17666
17667         * class.c (mono_class_init): Don't call init_properties() and
17668         init_events() for generic instances; set `prop->parent' when
17669         inflating properties.
17670
17671         * reflection.c (mono_generic_inst_get_object): Call
17672         `mono_class_init (ginst->klass)'.
17673         (mono_type_get_object): Only create a MonoGenericInst if your
17674         generic type is a TypeBuilder.
17675         (do_mono_reflection_bind_generic_parameters): Only set
17676         `ginst->is_dynamic' if our generic type is a TypeBuilder.
17677
17678 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
17679
17680         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
17681         Fixes #56091.
17682
17683 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17684
17685         * icall.c: added Kill_internal icall.
17686         * process.[ch]: added Kill_internal icall.
17687
17688 2004-03-25  Martin Baulig  <martin@ximian.com>
17689
17690         * class.h (MonoStats): Added `generic_instance_count',
17691         `inflated_method_count', `inflated_type_count' and
17692         `generics_metadata_size'.       
17693
17694 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17695
17696         * reflection.c: no warnings now.
17697
17698 2004-03-25  Martin Baulig  <martin@ximian.com>
17699
17700         * class.c (mono_class_get_full): New public function; does a
17701         mono_class_get(), but also takes a `MonoGenericContext *'.
17702
17703         * loader.c (mono_field_from_memberref): Renamed to
17704         `field_from_memberref', made static and added `MonoGenericContext *'
17705         argument.
17706         (mono_field_from_token): Added `MonoGenericInst *' argument.
17707         (method_from_memberef): Likewise.
17708         (mono_get_method_from_token): Likewise.
17709         (mono_get_method_full): New public function; does a
17710         mono_get_method(), but also takes a `MonoGenericContext *'.
17711
17712         * verify.c (mono_method_verify): Get the method's generic context
17713         and pass it to mono_field_from_token(), mono_get_method_full() and
17714         mono_class_get_full().
17715
17716 2004-03-25  Martin Baulig  <martin@ximian.com>
17717
17718         * class.c (mono_class_inflate_generic_type): Take a
17719         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
17720         `MonoGenericMethod *'.
17721
17722 2004-03-25  Martin Baulig  <martin@ximian.com>
17723
17724         * loader.h (MonoMethodInflated): Store the MonoGenericContext
17725         instead of the MonoGenericMethod here.
17726
17727 2004-03-25  Martin Baulig  <martin@ximian.com>
17728
17729         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
17730         each time we create a new MonoGenericInst, we also create a new
17731         context which points back to us.
17732
17733         * class.c (inflate_method): Use `ginst->context' instead of
17734         creating a new context.
17735
17736         * loader.c (method_from_memberref): Use
17737         `klass->generic_inst->context' instead of creating a new context.
17738
17739 2004-03-25  Martin Baulig  <martin@ximian.com>
17740
17741         * class.h (MonoGenericContext): New struct.
17742         (MonoGenericMethod): Removed `generic_inst'.
17743
17744         * class.c (mono_class_inflate_generic_method): Take a
17745         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
17746
17747 2004-03-25  Martin Baulig  <martin@ximian.com>
17748
17749         * loader.h (MonoMethodInflated): New typedef.
17750
17751         * metadata.h (MonoMethodSignature): Removed `gen_method', make
17752         `generic_param_count' consume just 30 bits, added `is_inflated'
17753         and `has_type_parameters' flags (one bit each).
17754
17755         * class.c (mono_class_inflate_generic_method): Create a
17756         MonoMethodInflated instead of a MonoMethodNormal and set
17757         `is_inflated' in the method signature.
17758
17759         * class.h (MonoGenericMethod): Removed `generic_method'.
17760
17761 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
17762
17763         * image.c: Make sure the name of a MonoImage is always an absolute path.
17764           This fixes bug #54415.
17765
17766 2004-03-24  Martin Baulig  <martin@ximian.com>
17767
17768         * class.c (mono_class_setup_vtable): If we're a generic instance,
17769         use our generic type's vtable size.
17770
17771 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
17772
17773         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
17774         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
17775         problems.
17776
17777 2004-03-23  Martin Baulig  <martin@ximian.com>
17778
17779         * class.h (MonoDynamicGenericInst): Added `int count_events' and
17780         `MonoEvent *events'.
17781
17782         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
17783         (typebuilder_icalls): Added "get_event_info"; calls
17784         mono_reflection_event_builder_get_event_info(). 
17785
17786         * reflection.c (mono_reflection_generic_inst_initialize): Added
17787         `MonoArray *events'.
17788         (mono_reflection_event_builder_get_event_info): New function.
17789
17790 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
17791
17792         * object.h: add mono_type_initialization_init
17793
17794         * object.c (mono_runtime_class_init): 
17795         implement class constructor synchronization rules
17796         to cope with threading issues.  
17797         add mono_type_initialization_init
17798
17799         * appdomain.c (mono_runtime_init): call 
17800         mono_type_initialization_init
17801
17802         * class.h: removing initializing field from MonoVTable
17803
17804 2004-03-23  Martin Baulig  <martin@ximian.com>
17805
17806         * class.c (my_mono_class_from_generic_parameter): Use
17807         `param->name' if it's not NULL. 
17808
17809 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
17810
17811         * class.c: do not insert non-virtual methods in the vtable.
17812         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
17813         that means the method is non-virtual. This never would have
17814         happened before.
17815
17816 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
17817
17818         * profiler.c: Added lock for accessing coverage_hash.
17819
17820 2004-03-22  Martin Baulig  <martin@ximian.com>
17821
17822         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
17823         `method->method->signature->generic_param_count != 0' to make it
17824         work for interface methods.
17825
17826 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17827
17828         * process.c: quote the string passed to the shell using g_shell_quote.
17829
17830 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17831
17832         * threads.c:
17833         (mono_threads_manage): don't remove the finalizer thread and self
17834         from the threads hash table so that mono_thread_manage can be called
17835         more than once.
17836
17837 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17838
17839         * process.c: quote the arguments when UseShellExecute is true. Fixes
17840         bug #55790.
17841
17842 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17843
17844         * threads.c: set mono_thread_detach as a cleanup routine for every
17845         thread. This way it's always executed upon thread termination, either
17846         aborted or finished normally. No more xsp hangs!
17847
17848 2004-03-17  Martin Baulig  <martin@ximian.com>
17849
17850         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
17851         `int count_nested' and a `MonoType **nested'.
17852
17853         * reflection.c (mono_reflection_bind_generic_parameters): Moved
17854         most of the functionality into a new static
17855         do_mono_reflection_bind_generic_parameters() and don't take a
17856         `MonoType *nested_in' argument any more.  Don't compute nested
17857         types here.
17858         (mono_reflection_generic_inst_get_nested_types): New public method
17859         to get nested types.
17860
17861         * class.c (mono_class_create_generic): Set `klass->nested_in' if
17862         we're a nested class.
17863
17864         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
17865         mono_reflection_generic_inst_get_nested_types() to compute the
17866         nested types.
17867
17868 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
17869
17870         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
17871         descriptive error message under windows.
17872         
17873 2004-03-17  Martin Baulig  <martin@ximian.com>
17874
17875         * class.c (dup_type): Added `const MonoType *original' argument;
17876         copy the attrs from the original type.
17877
17878 2004-03-17  Martin Baulig  <martin@ximian.com>
17879
17880         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
17881         `m->generic_inst_cache' here.
17882
17883 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
17884
17885         * exception.h exception.c: Add stack_overflow_exception.
17886
17887 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17888
17889         * threadpool.c:
17890         (overlapped_callback): call SetEvent *after* invoking the callback.
17891         No need to call CloseHandle.
17892
17893 2004-03-16  Martin Baulig  <martin@ximian.com>
17894
17895         * reflection.c (mono_image_get_fieldref_token): Take a
17896         `MonoReflectionField *' instead of a `MonoClassField *' and a
17897         `MonoClass *'; store the `MonoReflectionField *' in the hash.
17898
17899 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17900
17901         * appdomain.c: don't add the culture to the filename we're looking for
17902         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
17903
17904 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17905
17906         * locales.c: don't ignore symbols when doing case insensitive compares.
17907         Thanks Dick! Fixes bug #54046.
17908
17909         * threads.c: surround 'threads' usage with enter/leave in
17910         mono_thread_manage.
17911
17912 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
17913
17914         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
17915         implicitly marshalled as [Out]. Fixes #55450.
17916
17917         (mono_marshal_get_runtime_invoke): Zero out the result if there is
17918         an exception.
17919
17920 2004-03-16  Martin Baulig  <martin@ximian.com>
17921
17922         * class.c (mono_class_from_generic_parameter): Use the actual
17923         parameter name. 
17924
17925 2004-03-16  Martin Baulig  <martin@ximian.com>
17926
17927         * reflection.c (type_get_signature_size): New static function.
17928         Compues the size of the type in a method signature.
17929         (method_get_signature_size): New static function; calls
17930         type_get_signature_size() to compute the actual size of the
17931         method's signature.
17932         (method_encode_signature): Use method_get_signature_size() to get
17933         the signature's size rather than using `nparams * 10'.
17934
17935 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17936
17937         * file-io.h: define here WapiOverlapped on windows. I don't want the
17938         regular OVERLAPPED one.
17939
17940         * file-io.c:
17941         * threadpool.c: somehow, BindIoCompletionCallback is not found.
17942         Disabling AIO on windows.
17943
17944 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17945
17946         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
17947         bug #55385.
17948
17949 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17950
17951         * appdomain.c: upgraded corlib version.
17952
17953         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
17954         and BeginWrite. Allow opening files for asynchrnous operations.
17955
17956         * file-io.h: new struct that maps FileStreamAsyncResult.
17957         * icall.c: added new icalls.
17958         * process.[ch]: support setting child process environment variables
17959         and use the SHELL or COMSPEC when UseShellExecute is true.
17960
17961         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
17962         callback for async. IO is here and also BindHandle.
17963
17964         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
17965         from here.
17966
17967 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
17968
17969         * reflection.c (create_custom_attr): Allow len == 0.
17970
17971         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
17972         computation on big-endian machines.
17973
17974 2004-03-13  Martin Baulig  <martin@ximian.com>
17975
17976         * class.h (MonoGenericInst): Added `int count_ifaces'.
17977
17978         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
17979         `ginst->count_ifaces' instead `klass->interface_count' since we
17980         may get called before the vtable is created.
17981
17982         * loader.c (mono_method_get_param_names): If we're a generic
17983         instance, return and don't initialize the class.
17984
17985         * reflection.c (mono_reflection_setup_generic_class): Don't call
17986         ensure_runtime_vtable().
17987         (mono_reflection_bind_generic_parameters): Set
17988         `ginst->count_ifaces'.
17989
17990 2004-03-11  Jackson Harper <jackson@ximian.com>
17991
17992         * icall.c:
17993         * unicode.c:
17994         * unicode.h: Remove unused System.Char icalls.
17995         
17996 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
17997
17998         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
17999         code when we P/Invoke the first library in Windows.Forms, instead
18000         of when we first open the assembly.
18001
18002         * assembly.c: Drop the lookup from here.
18003
18004 2004-03-10  Martin Baulig  <martin@ximian.com>
18005
18006         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
18007         class for properties, fields and events.  Finally fixes #54945.
18008
18009 2004-03-10  Martin Baulig  <martin@ximian.com>
18010
18011         * metadata.c (mono_metadata_class_equal): New static function;
18012         checks whether two generic instances or two generic parameters are
18013         equal.
18014         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
18015         compare classes.        
18016
18017 2004-03-10  Martin Baulig  <martin@ximian.com>
18018
18019         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
18020
18021         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
18022         argument and write it into the `reflection_info' field.
18023
18024         * icall.c
18025         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
18026         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
18027
18028 2004-03-09  Jackson Harper  <jackson@ximian.com>
18029
18030         * char-conversions.h: use 8 bits for numeric data its all we need
18031         * icall.c: numeric data is only 8 bits now.
18032
18033 2004-03-09  Martin Baulig  <martin@ximian.com>
18034
18035         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
18036
18037         * class.c (init_properties, init_events): Initialize the new
18038         `parent' field.
18039
18040         * reflection.c (typebuilder_setup_properties): Likewise.
18041         (typebuilder_setup_events): Likewise.
18042
18043         * reflection.h (MonoEventInfo): Replaced `parent with
18044         `declaring_type' and `reflected_type'.
18045
18046         * icall.c (ves_icall_get_property_info): Distinguish between
18047         declaring and reflected type.
18048         (ves_icall_get_event_info): Likewise.
18049
18050 2004-03-09  Martin Baulig  <martin@ximian.com>
18051
18052         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
18053         (ves_icall_Type_GetField): Correctly set field->klass.
18054
18055 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
18056
18057         * loader.h: Fix warning.
18058
18059 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
18060
18061         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
18062         library routine if present.  Notice that it will still continue
18063         executing even if its missing, for those working on the Gtk#
18064         edition of Windows.Forms.
18065
18066         * assembly.c (do_mono_assembly_open): If loading the
18067         System.Windows.Forms call mono_loader_wini_init.
18068
18069 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
18070
18071         * class.h: Added MonoRemoteClass struct.
18072         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
18073         function for MonoStrings.
18074         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
18075         Added internal call for getting the proxy type.
18076         * marshal.c: Get the type of transparent proxies from its remote_class.
18077         Added methods that generate the IL for type checks and casts:
18078         mono_marshal_get_isinst, mono_marshal_get_castclass, 
18079         mono_marshal_get_proxy_cancast.
18080         * marshal.h: Declaration of the previous new methods.
18081         * object.c: Added new moethods for creating and updating MonoRemoteClass
18082         instances: mono_remote_class, mono_upgrade_remote_class, 
18083         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
18084         * verify.c: FIx transparent_proxy_fields layout.
18085         * appdomain.c: Bump corlib version.
18086
18087 2004-03-04  Jackson Harper  <jackson@ximian.com>
18088
18089         * icall.c: Add icall to access char conversion tables.
18090         * char-conversions.h: Character conversion tables.
18091         * Makefile.am: Add char-conversions.h private header file.
18092         
18093 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
18094
18095         * appdomain.c (unload_thread_main): Increase unloading timeout to
18096         10 sec as a temporary workaround for Nant problems.
18097
18098 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
18099
18100         * gc.c: Add checks for GC_enable and GC_disable.
18101
18102         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
18103         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
18104         (bug #54988).
18105         
18106 2004-02-27  Martin Baulig  <martin@ximian.com>
18107
18108         * reflection.c (mono_reflection_bind_generic_parameters): Take a
18109         `MonoReflectionType *' instead of a `MonoType *'.
18110
18111 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
18112
18113         * gc.c (run_finalize): Avoid finalizing the object representing the
18114         finalizer thread.
18115         (finalizer_thread): Fix warning.
18116
18117 2004-02-25  Martin Baulig  <martin@ximian.com>
18118
18119         * class.c (_mono_class_get_instantiation_name): Added `int offset'
18120         argument for nested types.
18121         (mono_class_create_generic): Added support for nested generictypes.
18122
18123         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
18124         `GList *nested'.
18125
18126         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
18127
18128         * reflection.c (method_encode_signature): Increase the minimum
18129         value of `size' from 10 to 11.
18130         (mono_reflection_bind_generic_parameters): Take `int type_argc'
18131         and `MonoType **types' arguments instead of the `MonoArray
18132         *types'; added `MonoType *nested_in'.  Recursively instantiate
18133         nested classes. 
18134
18135 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
18136
18137         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
18138         stack_overflow_ex members which are used by exception handling.
18139
18140         * appdomain.c (mono_runtime_init): Initialize the new members.
18141
18142         * gc.c (mono_gc_enable): New helper function.
18143         * gc.c (mono_gc_disable): New helper function.
18144
18145 2004-02-23  Martin Baulig  <martin@ximian.com>
18146
18147         * icall.c: I must have been really stupid - make it actually work
18148         this time ;-)
18149
18150 2004-02-23  Martin Baulig  <martin@ximian.com>
18151
18152         * loader.c (method_from_memberref): Only inflate the method if
18153         it's in another klass.
18154
18155 2004-02-23  Martin Baulig  <martin@ximian.com>
18156
18157         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
18158         (mono_class_init): If we're a generic instance and an interface,
18159         compute `class->interface_id'; also create `class->interfaces'
18160         here and inflate them.
18161
18162         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
18163         `ginst->is_open'.
18164         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
18165
18166         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
18167
18168 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
18169
18170         * reflection.c (method_encode_code): Improved the error message
18171         generated by the exception.
18172
18173 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18174
18175         * icall.c: Martin did not do what he said in the ChangeLog for
18176         2004-02-18, but put back the changes for properties and events.
18177         Commenting those changes out again and adding comment to bug #54518.
18178         
18179         * process.c: removed warning.
18180
18181 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
18182
18183         * marshal.c (emit_struct_conv): Print an error message instead of
18184         asserting when a type does not have the StructLayout attribute.
18185
18186 2004-02-20  Martin Baulig  <martin@ximian.com>
18187
18188         * reflection.c (mono_type_get_object): Also use the cache for
18189         generic instances.
18190         (mono_reflection_bind_generic_parameters): Always compute
18191         `ginst->ifaces'.        
18192
18193 2004-02-20  Martin Baulig  <martin@ximian.com>
18194
18195         * class.h (MonoGenericMethod): Removed `klass'.
18196
18197         * class.c (mono_class_inflate_generic_method): Added `MonoClass
18198         *klass' argument.
18199
18200 2004-02-20  Martin Baulig  <martin@ximian.com>
18201
18202         * reflection.c (method_encode_methodspec): Actually use the
18203         uninflated signature for the memberref.
18204
18205 2004-02-20  Martin Baulig  <martin@ximian.com>
18206
18207         * class.h (MonoGenericMethod): Removed `declaring'.
18208
18209         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
18210         is NULL, compute it here.
18211
18212 2004-02-20  Martin Baulig  <martin@ximian.com>
18213
18214         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
18215
18216         * metadata.c (mono_metadata_generic_inst_hash): New method.
18217         (mono_metadata_generic_inst_equal): New method.
18218
18219         * reflection.c (mono_reflection_bind_generic_parameters): Use the
18220         `klass->image->generic_inst_cache' cache to avoid creating
18221         duplicate MonoGenericInst's.
18222
18223         * class.c (mono_class_inflate_generic_type): Use the cache.
18224
18225 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
18226
18227         * object.c: fixed gc descriptor calculation for embedded valuetypes.
18228
18229 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18230
18231         * icall.c: added Socket.WSAIoctl icall.
18232
18233         * socket-io.[ch]: implemented
18234         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
18235
18236 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
18237
18238         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
18239
18240 2004-02-18  Urs C Muff  <umuff@quark.com>
18241
18242         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
18243         this work on PPC and other big-endian architectures.
18244
18245         * debug-mono-symfile.h: Prepended the names of all the `guint32'
18246         fields with an underscore to make sure they're only accessed by
18247         the read32() macro.
18248
18249 2004-02-18  Martin Baulig  <martin@ximian.com>
18250
18251         * icall.c: Put the klass->refclass changes back for methods and
18252         fields, but not for properties and events.  We're currently not
18253         distinguishing between DeclaringType and ReflectedType for
18254         properties and events, that's what caused the regressions.
18255
18256 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18257
18258         * object.c:
18259         (mono_async_result_new): the handle can be NULL.
18260
18261         * threadpool.c: Use an event instead of a semaphore, don't initialize
18262         it until needed. This saves quite a few semaphores from being created
18263         when using the threadpool.
18264
18265 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
18266
18267         * object.c (mono_string_is_interned_lookup): Fix interning of long
18268         strings. Fixes #54473.
18269
18270         * domain.c (ldstr_equal): Optimize if the two strings are equal.
18271
18272         * icall.c: Revert the klass->refclass changes since they introduce
18273         regressions (bug #54518).
18274
18275 2004-02-18  Martin Baulig  <martin@ximian.com>
18276
18277         * class.c (mono_class_init): If we're a generic instance and don't
18278         come from a TypeBuilder, inflate our members here.
18279         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
18280         (mono_class_create_generic): New public method.
18281         (mono_class_initialize_generic): Removed.
18282         (get_instantiation_name): Renamed to
18283         _mono_class_get_instantiation_name() and made it public.
18284
18285 2004-02-18  Martin Baulig  <martin@ximian.com>
18286
18287         * class.c (mono_class_inflate_generic_type): Clear the new
18288         instance's `nginst->klass' when inflating a generic instance.
18289         (mono_class_is_subclass_of): Added (basic) support for generic
18290         instances.
18291
18292 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
18293
18294         * appdomain.h, domain.c: use a MonoCodeManager instead of a
18295         MonoMempool to hold compiled native code.
18296
18297 2004-02-17  Martin Baulig  <martin@ximian.com>
18298
18299         * class.h (MonoDynamicGenericInst): Added `count_properties' and
18300         `properties'.
18301
18302         * reflection.c (mono_reflection_generic_inst_initialize): Added
18303         `MonoArray *properties' argument.
18304
18305         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
18306
18307 2004-02-17  Martin Baulig  <martin@ximian.com>
18308
18309         * icall.c (ves_icall_Type_GetFields): Renamed to
18310         ves_icall_Type_GetFields_internal() and added a
18311         `MonoReflectionType *rtype' argument; pass it to
18312         mono_field_get_object() to set the field's "reflected" type.
18313         (ves_icall_Type_GetConstructors): Likewise.
18314         (ves_icall_Type_GetEvents): Likewise.
18315         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
18316         argument; pass it to mono_method_get_object() to set the method's
18317         "reflected" type.       
18318
18319 2004-02-17  Martin Baulig  <martin@ximian.com>
18320
18321         * class.h (MonoDynamicGenericInst): New type.
18322         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
18323
18324         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
18325         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
18326         (ves_icall_MonoGenericInst_GetFields): New interncall.
18327
18328         * class.c (mono_class_from_generic): Don't call
18329         mono_class_initialize_generic() if this is a dynamic instance;
18330         ie. it's being created from a TypeBuilder.
18331         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
18332         `class->byval_arg.type'.
18333
18334         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
18335         to `inflate_method' and made static.
18336         (mono_reflection_inflate_field): Removed.
18337         (mono_reflection_generic_inst_initialize): New public method.
18338
18339         * reflection.h (MonoReflectionGenericInst): Removed `methods',
18340         `ctors' and `fields'; added `initialized'.
18341
18342 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
18343
18344         * debug-helpers.c (mono_method_full_name): Fix output for empty
18345         namespaces.
18346
18347 2004-02-12  Martin Baulig  <martin@ximian.com>
18348
18349         * class.h (MonoClassField): Added `MonoType *generic_type'.
18350
18351         * reflection.c (mono_image_get_fieldref_token): Added support for
18352         instantiated generic types.
18353         (field_encode_inflated_field): Removed.
18354         (mono_image_get_inflated_field_token): Removed.
18355         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
18356
18357         * reflection.h (MonoReflectionInflatedField): Removed.
18358
18359 2004-02-12  Martin Baulig  <martin@ximian.com>
18360
18361         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
18362         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
18363
18364         * reflection.c (mono_image_get_methodspec_token): Take a
18365         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
18366         (mono_image_create_token): Check whether we have a
18367         `method->signature->gen_method' and call
18368         mono_image_get_methodspec_token() if appropriate.
18369         (inflated_method_get_object): Removed.
18370         (mono_reflection_bind_generic_method_parameters): Return a
18371         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
18372         (mono_reflection_inflate_method_or_ctor): Likewise.
18373
18374         * reflection.h (MonoReflectionInflatedMethod): Removed.
18375
18376 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
18377
18378         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
18379         for custom valuetype marshalling.
18380
18381         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
18382
18383 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18384
18385         * icall.c: fixed WSAGetLastError_internal name.
18386
18387 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
18388
18389         * threads.c (mono_thread_attach): Allow this to be called multiple
18390         times for a thread.
18391         
18392         * threads.c (build_wait_tids): Do not wait for ourselves.
18393
18394         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
18395         appdomain list is empty.
18396
18397         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
18398         memory returned by mono_string_builder_to_utf16, since it points into
18399         managed memory. Thanks to Bernie Solomon for noticing this.
18400
18401         * icall.c: Add AppDomainSetup icalls.
18402
18403         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
18404
18405         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
18406         types.
18407
18408         * reflection.c (reflection_methodbuilder_to_mono_method): Save
18409         custom attributes to the method_aux struct. Also fix array indexes etc.
18410
18411         * loader.c (mono_method_get_param_names): Make dynamic case work again.
18412         
18413 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
18414
18415         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
18416         (both static and runtime) and reduce startup time.
18417
18418 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
18419
18420         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
18421         AsAny marshalling conversion instead of crashing.
18422
18423         * marshal.c: Fix warnings.
18424
18425 2004-02-09  Martin Baulig  <martin@ximian.com>
18426
18427         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
18428
18429         * reflection.h (MonoReflectionInflatedMethod): Removed the
18430         `declaring' field, it's now in the unmanaged MonoGenericMethod.
18431
18432         * reflection.c (method_encode_methodspec): Removed the `method'
18433         argument; we get it from `gmethod->declaring'.
18434         (inflated_method_get_object): Removed the `declaring' argument.
18435
18436 2004-02-09  Martin Baulig  <martin@ximian.com>
18437
18438         * class.h (MonoGenericMethod): New type.
18439         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
18440         `generic_method'.
18441
18442         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
18443         a `MonoGenericMethod *gen_method' one.
18444
18445         * class.c (mono_class_inflate_generic_type): Take an additional
18446         `MonoGenericMethod * argument.  This is only non-NULL if we're
18447         inflating types for a generic method.   
18448         (mono_class_inflate_generic_signature): Renamed to
18449         inflate_generic_signature() and made static; take a
18450         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
18451         (inflate_generic_header): Take a `MonoGenericMethod *' argument
18452         instead of a `MonoGenericInst *' one.
18453         (mono_class_inflate_generic_method): Likewise.
18454
18455         * reflection.c (encode_generic_method_sig): Take a
18456         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
18457         (method_encode_methodspec): Likewise.
18458         (inflated_method_get_object): Likewise. 
18459
18460         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
18461         field with a `MonoGenericMethod *gmethod' one.  
18462
18463 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
18464
18465         * class.h (mono_class_has_parent): add parens to expansion
18466         so you can ! this.
18467
18468 2004-02-08  Martin Baulig  <martin@ximian.com>
18469
18470         * image.h (MonoImage): Removed `generics_cache'.
18471
18472         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
18473         instead of a `MonoType *' argument; removed the `inflate_methods'
18474         argument.  Don't inflate methods here.
18475
18476         * loader.c (find_method): If it's a generic instance, call
18477         mono_class_init() on the `sclass->generic_inst->generic_type'.
18478
18479         * metadata.c (mono_type_size): Make this work on uninitialized
18480         generic instances; call it on the `ginst->generic_type's class.
18481
18482         * reflection.c (mono_reflection_bind_generic_parameters): Call
18483         mono_class_from_generic() to create the `ginst->klass'.
18484
18485 2004-02-08  Martin Baulig  <martin@ximian.com>
18486
18487         * class.h (MonoClass): Changed type of `generic_inst' from
18488         `MonoType *' to `MonoGenericInst *'.
18489
18490 2004-02-08  Martin Baulig  <martin@ximian.com>
18491
18492         * icall.c (ves_icall_Type_BindGenericParameters): Just call
18493         mono_type_get_object(), this is now creating a `MonoGenericInst'
18494         for MONO_TYPE_GENERICINST.
18495         (ves_icall_MonoGenericInst_GetParentType): Likewise.
18496         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
18497
18498         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
18499         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
18500         (inflated_method_get_object): Added `MonoClass *refclass' argument.
18501         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
18502         and reflected type.
18503
18504         * reflection.h (MonoReflectionInflatedMethod): Removed
18505         `declaring_type' and `reflected_type'.
18506
18507 2004-02-08  Martin Baulig  <martin@ximian.com>
18508
18509         * class.h (MonoGenericInst): Added `MonoType *parent' and
18510         `MonoType **ifaces'.
18511
18512         * reflection.h (MonoReflectionGenericInst): Removed `klass',
18513         `parent' and `interfaces'.
18514
18515         * reflection.c (mono_reflection_bind_generic_parameters): Take a
18516         `MonoType *' argument and return a `MonoType *'.
18517
18518         * icall.c
18519         (ves_icall_MonoGenericInst_GetParentType): New interncall.
18520         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
18521
18522 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
18523
18524         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
18525         valuetype marshalling.
18526
18527 2004-02-06  Martin Baulig  <martin@ximian.com>
18528
18529         * class.c
18530         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
18531         (my_mono_class_from_generic_parameter): Likewise.
18532
18533 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
18534
18535         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
18536         contents of the symbol files lazily.
18537
18538         * object.h (MonoThread): Add 'name' and 'name_len' fields.
18539
18540         * threads.h threads.c icall.c: New icalls for getting and setting the
18541         threads name.
18542
18543 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
18544
18545         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
18546         Raise an exception when the domain is not found.
18547
18548 2004-02-03  Martin Baulig  <martin@ximian.com>
18549
18550         * reflection.c (mono_image_get_methodspec_token): Use the
18551         uninflated signature; fixes gen-33.
18552
18553 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
18554
18555         * gc.c threads.c: Make the finalizer thread a normal managed thread so
18556         the finalizer code can use thread functionality.
18557
18558         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
18559         the finalizer thread.
18560
18561         * threads.c: Make some functions more robust.
18562
18563         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
18564
18565         * metadata.h: Add new marshalling conventions.
18566
18567         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
18568         stringbuilder marshalling. Fixes #53700.
18569
18570         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
18571
18572         * reflection.c (mono_image_get_type_info): Save declarative security
18573         info.
18574
18575         * reflection.c (mono_image_get_field_info): Handle uninitialized 
18576         unmanaged fields as well.
18577
18578         * appdomain.c: Bump corlib version.
18579
18580 2004-02-01  Martin Baulig  <martin@ximian.com>
18581
18582         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
18583         method type arguments.  
18584
18585 2004-01-30  Duncan Mak  <duncan@ximian.com>
18586
18587         * marshal.h: Add prototype for
18588         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
18589         and
18590         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
18591         fix the build.
18592
18593 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
18594
18595         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
18596         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
18597
18598 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
18599
18600         * marshal.c (mono_marshal_get_native_wrapper): Add support for
18601         custom marshalling of valuetypes.
18602
18603         * marshal.c: Fix some warnings.
18604
18605 2004-01-29  Martin Baulig  <martin@ximian.com>
18606
18607         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
18608         for generic method parameters.
18609
18610         * reflection.c (method_encode_methodspec): Write the uninflated
18611         signature into the methodspec table.
18612         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
18613         is always the uninflated method.
18614         (reflection_methodbuilder_to_mono_method): Copy the generic
18615         parameters from the MethodBuilder into `header->gen_params'.
18616
18617 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
18618
18619         * class.c (mono_class_from_generic_parameter): Fix warning.
18620
18621 2004-01-27  Martin Baulig  <martin@ximian.com>
18622
18623         * class.c (mono_class_from_generic_parameter): Don't create
18624         `klass->methods' here.  
18625
18626 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
18627
18628         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
18629         extension since it does not work with libraries named lib<FOO>.dll.so.
18630
18631 2004-01-25  Martin Baulig  <martin@ximian.com>
18632
18633         * class.c (mono_class_inflate_generic_type): Added support for
18634         MONO_TYPE_GENERICINST.
18635
18636         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
18637         inflate methods on open constructed types.      
18638
18639 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18640
18641         * object.c: fire ProcessExit event in the root AppDomain after running
18642         Main. Fixes bug #53299.
18643
18644 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
18645
18646         * socket-io.c: include the new socket-wrappers.h header.
18647         Use the wrappers instead of the unix socket functions to make the code
18648         more clear.
18649
18650 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
18651
18652         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
18653
18654         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
18655         Fixes #22532.
18656
18657 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
18658
18659         * reflection.c (mono_image_create_pefile): Handle the case when the
18660         entry point is not a MethodBuilder.
18661
18662         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
18663         field to ReflectionMethod since it is not allways a builder.
18664
18665         * reflection.c (type_get_fully_qualified_name): New helper function to
18666         return the fully qualified name of a type.
18667
18668         * reflection.c (encode_marshal_blob): Always emit the fully qualified
18669         type name for custom marshallers.
18670
18671         * reflection.c (mono_marshal_spec_from_builder): Ditto.
18672
18673         * class.c (mono_class_setup_vtable): If a parent class already 
18674         implements an interface, use the implementing methods from that class.
18675         Fixes #53148.
18676
18677 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18678
18679         * threadpool.c: just return instead of ExitThread to allow for thread
18680         clean up earlier.
18681
18682 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
18683
18684         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
18685         when closing resource modules.
18686
18687         * reflection.c (mono_image_create_pefile): Handle the case when the
18688         entry point is not a MethodBuilder.
18689
18690         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
18691         field to ReflectionMethod since it is not allways a builder.
18692
18693 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
18694
18695         * marshal.c (mono_marshal_get_managed_wrapper): 
18696         mono_marshal_alloc takes native int so CONV_I
18697         the arg for 64bits.
18698
18699 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
18700
18701         * reflection.c (fixup_cattrs): New function to fixup the methoddef
18702         tokens in the cattr table. Fixes #53108.
18703
18704 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18705
18706         * loader.c: don't trim ".dll" before looking up in the config file.
18707         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
18708
18709 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
18710
18711         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
18712         Return the module which contains the resource as well.
18713         (ves_icall_System_Reflection_Module_Close): New icall.
18714
18715         * appdomain.c: Bump corlib version number.
18716
18717         * image.c (mono_image_addref): New public function.
18718
18719         * assembly.c: Call mono_image_addref.
18720
18721         * reflection.c (mono_module_get_object): Increase reference count of 
18722         the image.
18723
18724         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
18725         Fixes #22532.
18726
18727         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
18728         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
18729         proper exceptions on DllImport problems.
18730
18731 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
18732
18733         * class.c, metadata.c: eliminate CSIZE macro.
18734
18735 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
18736
18737         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
18738         * object.h: Added async_callback field in MonoAsyncResult.
18739         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
18740         * verify.c: Added async_callback in MonoAsyncResult layout.
18741
18742 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
18743
18744         * reflection.c (mono_reflection_get_custom_attrs): Add support
18745         for Modules.
18746
18747 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
18748
18749         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
18750         marshalling.
18751         (mono_marshal_method_from_wrapper): Add null pointer check.
18752
18753 2004-01-16  Martin Baulig  <martin@ximian.com>
18754
18755         * debug-mono-symfile.h: Set version number to 36 and reflect
18756         latest symbol writer changes.
18757
18758 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
18759
18760         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
18761         multi-dimensional arrays.
18762         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
18763         (mono_class_from_mono_type): Use bounded_array_class_get.
18764         
18765         * class.c (mono_bounded_array_class_get): New function which takes
18766         a 'bounded' bool argument to distinguish vectors from one dimensional
18767         arrays.
18768
18769         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
18770         bounded_array_class_get if the array has bounds.
18771
18772         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
18773         Search modules loaded using AssemblyBuilder:AddModule as well.
18774
18775 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18776
18777         * appdomain.c: increased corlib version.
18778         * filewatcher.c: removed g_print.
18779         * icall.c:
18780         (get_property_info): only allocate what is actually requested.
18781         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
18782
18783 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18784
18785         * Makefile.am: added filewatcher.[ch]
18786         * filewatcher.[ch]: FileSystemWatcher runtime support.
18787         * icall.c: added new FSW icalls.
18788
18789 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
18790
18791         * string-icalls.c: fix stringbuilder regression as suggested by
18792         Iain McCoy <iain@mccoy.id.au>.
18793
18794 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
18795
18796         * process.c (process_read_stringtable_block): Recognize '007f' as
18797         a language neutral stringtable block.
18798
18799 2004-01-12  Patrik Torstensson
18800
18801         * object.h (MonoStringBuilder) : Changed layout to support our
18802         new stringbuilder class.
18803         * marshal.c: Change marshalling to support the new layout of 
18804         string builder.
18805         * appdomain.c: increased version number because new layout of
18806         string builder.
18807
18808 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
18809
18810         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
18811         assembly name as an string instead of an AssemblyName, since it is
18812         easier to extract info from it.
18813
18814         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
18815         the culture subdirectories too. Fixes #52231.
18816
18817 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18818
18819         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
18820         It takes 2 new parameters with an optional name for the method to look
18821         for and case ignoring info.
18822
18823         * threadpool.c: removed unused variable.
18824
18825 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18826
18827         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
18828         It takes 2 new parameters with an optional name for the property to look
18829         for and case ignoring info.
18830         Fixes bug #52753.
18831
18832 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
18833
18834         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
18835         Fix #52451.
18836
18837 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18838
18839         * appdomain.c:
18840         * assembly.c: escape the uri before passing it to g_filename_from_uri.
18841         Fixes bug #52630.
18842
18843 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
18844
18845         * reflection.c: Add support for more than one unmanaged resource.
18846
18847         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
18848         in field->def_value, as done in all other cases.
18849
18850         * reflection.c (mono_reflection_get_custom_attrs): Add support for
18851         TypeBuilders.
18852
18853         * reflection.c (mono_reflection_create_runtime_class): Remove 
18854         errorneous assignment to klass->element_class, since it is already
18855         done in mono_reflection_setup_internal_class.
18856
18857 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18858
18859         * gc.c: added missing LeaveCriticalSection.
18860         * icall.c: indented a couple of lines.
18861         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
18862         if we call EndInvoke inside a callback. Fixes bug #52601.
18863
18864 2004-01-07  Martin Baulig  <martin@ximian.com>
18865
18866         * mono-debug-debugger.h
18867         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
18868
18869 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
18870
18871         * appdomain.c: Use messages in NotImplementedException.
18872
18873         * exception.c (mono_get_exception_not_implemented): Now this takes
18874         a message argument.
18875
18876         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
18877         exception instead of g_asserting an aborting when something is not
18878         implemented.
18879
18880         Add some inline docs.
18881
18882 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
18883
18884         * reflection.h: Update after changes to object layout.
18885
18886         * reflection.c: Implement saving of unmanaged aka win32 resources.
18887
18888         * appdomain.c: Bump version number.
18889
18890         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
18891         Handle missing domains gracefully.
18892
18893 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
18894
18895         * file-io.c : On Windows, there are much more invalid_path_chars.
18896
18897 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
18898
18899         * class.h, object.c: prepare for GetType () speedup.
18900
18901 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
18902
18903         * profiler.c: workaround for --profile null reference exception on
18904           cygwin. Patch by Patrik Torstensson.
18905
18906 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
18907
18908         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
18909         make work for unaligned access.
18910
18911 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
18912
18913         * class.c: small cleanup (class->fields [i] -> field).
18914         * image.c: check address of metadata is valid.
18915
18916 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
18917
18918         * assembly.h assembly.c (mono_assembly_loaded): New public function to
18919         search the list of loaded assemblies.
18920
18921         * reflection.c (mono_reflection_type_from_name): Use 
18922         mono_assembly_loaded instead of mono_image_loaded.
18923
18924         * reflection.c: Fix warnings.
18925
18926 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
18927
18928         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
18929         is dynamic. This is needed since an assembly can contain both dynamic and
18930         non-dynamic images.
18931
18932         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
18933         assembly->dynamic.
18934
18935         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
18936
18937         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
18938         to store modules loaded using AddModule.
18939
18940         * reflection.c (mono_image_fill_file_table): Generalize this so it works
18941         on Modules.
18942
18943         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
18944
18945         * reflection.c (mono_image_fill_export_table_from_module): New function to
18946         fill out the EXPORTEDTYPES table from a module.
18947
18948         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
18949         into a separate function. Also handle loaded non-dynamic modules.
18950
18951         * reflection.c (mono_image_basic_init): Fix memory allocation.
18952
18953         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
18954
18955         * assembly.c (mono_assembly_load_references): Make this public.
18956
18957 2003-12-19  Martin Baulig  <martin@ximian.com>
18958
18959         * class.c (mono_class_initialize_generic): Made this static, take
18960         a `MonoGenericInst *' instead of a `MonoClass *'.
18961         (mono_class_from_generic): Call mono_class_initialize_generic()
18962         unless we're already initialized or being called from
18963         do_mono_metadata_parse_generic_inst().
18964
18965         * class.h (MonoGenericInst): Added `initialized' and
18966         `init_pending' flags.
18967
18968         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
18969         `mono_class_init (gklass)' or mono_class_initialize_generic()
18970         here; set `generic_inst->init_pending' while parsing the
18971         `type_argv'.
18972
18973 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
18974
18975         * locales.c: include string.h for memxxx prototypes
18976
18977 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
18978
18979         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
18980         constructor when accessing literal fields.
18981
18982 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
18983
18984         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
18985
18986         * reflection.c (assembly_add_resource_manifest): New function to fill
18987         the MANIFESTRESOURCE table.
18988
18989         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
18990
18991         * reflection.h: Update to changes in class layout.
18992
18993         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
18994         Reenable call to mono_runtime_is_shutting_down ().
18995
18996         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
18997         determine if the runtime is shutting down.
18998
18999 2003-12-16  Jackson Harper <jackson@ximian.com>
19000
19001         * icall.c: comment out call to mono_runtime_is_shutting_down to
19002         fix build.
19003         
19004 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
19005
19006         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
19007         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
19008
19009 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
19010
19011         * reflection.c: move definition of swap_with_size
19012         to before its first call
19013
19014 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
19015
19016         * appdomain.c (mono_runtime_is_shutting_down): New public function.
19017
19018         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
19019         icall.
19020
19021         * object.c: Fix warnings.
19022
19023         * icall.c (ves_icall_Type_Get...): Only consider inherited static
19024         members if FlattenHierarchy is set.
19025
19026         * reflection.c (mono_image_add_decl_security): New function to emit
19027         declarative security.
19028
19029         * reflection.h reflection.c: Add support for declarative security.
19030
19031         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
19032         
19033 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
19034
19035         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
19036         
19037         * appdomain.c verify.c: Moved corlib version checking into its own
19038         function in appdomain.c since it needs to create vtables etc.
19039
19040 2003-12-13  Patrik Torstensson <p@rxc.se>
19041
19042         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
19043         instead of unwrapped server.
19044
19045 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
19046
19047         * verify.c (check_corlib): Fix field index.
19048
19049 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
19050
19051         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
19052         GetGacPath icall.
19053
19054 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
19055
19056         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
19057         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
19058         cope with sizeof(size_t) != sizeof(guint32).
19059
19060 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19061
19062         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
19063         in case of failure.
19064
19065 2003-12-10  Mark Crichton <crichton@gimp.org>
19066
19067         * icall.c: removed the GetNonZeroBytes.  We now handle this case
19068         in managed code.
19069
19070         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
19071
19072 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
19073
19074         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
19075         marked as deleted.
19076
19077 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
19078
19079         * verify.c (check_corlib): Handle the case when the version field is 
19080         initialized by a static constructor.
19081
19082 2003-12-08  Patrik Torstensson  <p@rxc.se>
19083
19084     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
19085
19086 2003-12-08  Martin Baulig  <martin@ximian.com>
19087
19088         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
19089         a MonoReflectionGenericParameter, also take the parameter index
19090         and name as arguments.
19091         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
19092         (ves_icall_MonoGenericParam_initialize): New interncall.
19093         (ves_icall_Type_make_byref_type): New interncall.
19094
19095         * reflection.h (MonoReflectionGenericParam): Derive from
19096         MonoReflectionType, not just from MonoObject.  Added `refobj' and
19097         `index' fields.
19098
19099         * reflection.c (mono_reflection_define_generic_parameter): Create
19100         and return a new MonoReflectionGenericParam; don't initialize the
19101         constraints here.
19102         (mono_reflection_initialize_generic_parameter): New public method;
19103         initializes the constraints and creates the `param->pklass'.
19104
19105 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
19106
19107         * reflection.h reflection.c: Use the new fields 'num_types', 
19108         'num_fields' and 'num_methods' to track the number of types etc.
19109
19110         * verify.c (check_corlib): Check corlib version number.
19111
19112 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
19113
19114         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
19115         function works on all methods.
19116
19117 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
19118
19119         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
19120         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
19121         the custom_type_info flag of the transparent proxy.
19122         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
19123         objects that supports IRemotingTypeInfo.
19124         * object.h: Added custom_type_info field in transparent proxy.
19125
19126 2003-12-06  Martin Baulig  <martin@ximian.com>
19127
19128         * class.c (mono_class_create_from_generic): Removed.
19129         (mono_class_from_generic): Check `ginst->klass' before doing
19130         anything else.  This is important to fully support "recursive"
19131         generic types.
19132
19133         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
19134         empty `generic_inst->klass' before doing anything else.
19135
19136 2003-12-06  Dick Porter  <dick@ximian.com>
19137
19138         * verify.c: 
19139         * object.h:
19140         * icall.c:
19141         * locales.c: Use C structs to access class fields.  Don't do a
19142         conversion between MonoString and UChar because both are
19143         platform-endian UTF-16.  Compare now takes startindex and count
19144         parameters.  Add a char overload for IndexOf.  Speed up the
19145         invariant string IndexOf.
19146
19147 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
19148
19149         * Makefile.am (monosn_LDADD): Fix parallel build.
19150
19151 2003-12-04  Martin Baulig  <martin@ximian.com>
19152
19153         * icall.c
19154         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
19155         (ves_icall_Type_make_array_type): New interncall.       
19156
19157 2003-12-04  Martin Baulig  <martin@ximian.com>
19158
19159         * locales.c: also change it in the !HAVE_ICU case.
19160
19161 2003-12-04  Dick Porter  <dick@ximian.com>
19162
19163         * icall.c:
19164         * locales.c: construct_compareinfo is now in CompareInfo, not
19165         CultureInfo.
19166
19167 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
19168
19169         * image.c (mono_image_load_file_for_image): Cache loaded images in the
19170         image->files array.
19171
19172         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
19173         table as well.
19174
19175         * assembly.c (mono_assembly_load_references): Only load references
19176         once.
19177
19178         * class.c (mono_class_from_name): Avoid linear search of the 
19179         EXPORTEDTYPE table.
19180
19181         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
19182
19183 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
19184
19185         * image.h (MonoImage): Add 'field_cache' field.
19186
19187         * loader.c (mono_field_from_token): Cache field lookups.
19188         
19189         * reflection.c (mono_module_get_object): Fix name property.
19190
19191         * icall.c (ves_icall_get_enum_info): Update after changes to 
19192         mono_metadata_get_constant_index ().
19193
19194         * icall.c: Get rid of get_type_info icall, use a separate icall for
19195         each type property to avoid needless memory allocations. Fixes #51514.
19196
19197         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
19198         to avoid needless binary searches.
19199
19200         * class.c (class_compute_field_layout): Move the initialization of
19201         field->def_value to mono_class_vtable ().
19202
19203         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
19204         non-corlib types.
19205
19206         * object.c (mono_object_allocate): Make it inline.
19207
19208         * object.c (mono_object_allocate_spec): Make it inline.
19209         
19210 2003-12-02  Dick Porter  <dick@ximian.com>
19211
19212         * locales.c (create_NumberFormat): NumberFormatInfo construction.
19213         Patch by Mohammad DAMT (mdamt@cdl2000.com).
19214
19215 2003-12-01  Dick Porter  <dick@ximian.com>
19216
19217         * threads.c: Fix signature and call in CreateMutex and
19218         CreateEvent.
19219
19220 2003-12-01  Dick Porter  <dick@ximian.com>
19221
19222         * icall.c: 
19223         * locales.c: Implement string compares and searching
19224
19225         * object.h: Add extra Thread field
19226
19227 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
19228
19229         * reflection.c (fixup_method): Add support for MonoCMethod.
19230
19231 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
19232
19233         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
19234
19235         * reflection.c (assembly_name_to_aname): Allow extra characters in
19236         assembly names. Fixes #51468.
19237
19238 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
19239
19240         * exception.c (mono_exception_from_name_domain): New helper function.
19241
19242         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
19243         exception object in the correct domain.
19244
19245         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
19246         formatting + make a copy a the input data.
19247
19248         * loader.c (mono_get_method_from_token): Methods which contain
19249         native code do not have entries in the ImplMap.
19250
19251         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
19252         Thanks to Gonzalo for spotting this.
19253         
19254         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
19255         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
19256
19257         * assembly.h (mono_assembly_load_from): Split the second part of 
19258         assembly loading into a new public function.
19259
19260         * exception.h (mono_get_exception_bad_image_format): New function.
19261
19262 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
19263
19264         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
19265         Enumerate all modules inside a dynamic assembly. Fixes #51293.
19266         
19267         * icall.c: Add new icall for creating dynamic methods.
19268
19269         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
19270
19271         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
19272
19273         * reflection.c (mono_reflection_create_dynamic_method): New icall to
19274         create a dynamic method.
19275
19276         * reflection.c (resolve_object): New helper function.
19277
19278         * reflection.c: Generalize ReflectionMethodBuilder and the functions
19279         which manipulate it so they can also work on dynamic methods.
19280
19281         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
19282         creating the MonoReflectionMethodAux structure if it is not needed.
19283         
19284         * reflection.h verify.c: Update after changes to object layout.
19285
19286         * reflection.c (method_builder_encode_signature): Fix compilation on
19287         gcc 2.95.x.
19288
19289 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
19290
19291         * appdomain.h: Added support for context static fields. Added static_data
19292           field to MonoAppContext and renamed thread_static_fields to a more
19293           generic special_static_fields in MonoAppDomain, since it can now contain
19294           context static fields.
19295         * domain.c: Updated hashtable name.
19296         * object.c: Replaced field_is_thread_static() for a more generic
19297           field_is_special_static() which also checks for context static attribute.
19298           In mono_class_vtable(), added support for static context fields.
19299         * threads.c: Changed methods that manage thread static fields to more
19300           generic methods so they can be reused both for thread and context static
19301           data.
19302         * threads.h: Declared some new methods.
19303
19304 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
19305
19306         * reflection.h: Update after changes to the managed types.
19307
19308         * reflection.c (encode_custom_modifiers): New helper function.
19309
19310         * reflection.c (method_encode_signature): Emit custom modifiers.
19311
19312         * reflection.c (field_encode_signature): Emit custom modifiers.
19313
19314 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
19315
19316         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
19317
19318         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
19319         implementation.
19320
19321         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
19322         icall.
19323
19324         * object.c (mono_field_get_value_object): New function.
19325
19326         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
19327         specific.
19328
19329 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
19330
19331         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
19332         return a preallocated out-of-memory exception instance.
19333
19334         * object.c (out_of_memory): Use the new function.
19335
19336         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
19337         flag is before the custom modifiers. Fixes #49802.
19338
19339 2003-11-16  Martin Baulig  <martin@ximian.com>
19340
19341         * class.c (mono_class_is_open_constructed_type): Implemented the
19342         MONO_TYPE_GENERICINST case.
19343
19344 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
19345
19346         * assembly.c (mono_assembly_fill_assembly_name): New function to
19347         fill out the MonoAssemblyName structure.
19348         (mono_assembly_open): Use the new function.
19349
19350         * icall.c (fill_reflection_assembly_name): New helper function.
19351
19352         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
19353         new function.
19354
19355         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
19356
19357 2003-11-15  Martin Baulig  <martin@ximian.com>
19358
19359         * class.c (mono_class_is_open_constructed_type): New public
19360         function; checks whether a type is an open constructed type,
19361         ie. whether it still contains type parameters.
19362         (mono_class_inflate_generic_type): If we're a type parameter and
19363         the inflated type is also a MONO_TYPE_(M)VAR, return the original
19364         type.
19365
19366         * class.h (MonoGenericInst): Added `guint32 is_open'.
19367
19368         * loader.c (method_from_methodspec): Check whether we're an open
19369         or closed constructed type and set `ginst->is_open'.
19370
19371         * reflection.c (mono_reflection_bind_generic_parameters): Check
19372         whether we're an open or closed constructed type and set
19373         `ginst->is_open'.
19374         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
19375         from open constructed types.
19376
19377 2003-11-15  Martin Baulig  <martin@ximian.com>
19378
19379         * reflection.c (mono_reflection_bind_generic_parameters): If we're
19380         a generic instance (instead of a generic type declaration) with
19381         unbound generic parameters, bind them to our actual types.
19382
19383 2003-11-14  Martin Baulig  <martin@ximian.com>
19384
19385         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
19386
19387         * reflection.c (mono_reflection_bind_generic_parameters): If we're
19388         an interface type, populate `res->interfaces' with instantiated
19389         versions of all the interfaces we inherit.
19390
19391 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
19392
19393         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
19394         when MONO_PATH is set but doesn't contain the install dir.
19395
19396 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19397
19398         * icall.c:
19399         (ves_icall_Type_GetInterfaces): don't return an interface twice when
19400         it's also implemented in base classes. Fixes bug #50927.
19401
19402 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
19403
19404         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
19405         if this method is called from a finalizer. Fixes #50913.
19406
19407 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
19408
19409         * threads.c: Implement VolatileRead/VolatileWrite
19410
19411         * icall.c: Add new icalls for VolatileRead/VolatileWrite
19412
19413 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
19414
19415         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
19416         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
19417         2.95.3.
19418
19419         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
19420         from Peter Ross (pro@missioncriticalit.com).
19421         
19422 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
19423
19424         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
19425
19426 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
19427
19428         * assembly.c (mono_assembly_load_references): Disable check because it
19429         triggers on older corlibs which lots of people have.
19430
19431 2003-11-12  Jackson Harper  <jackson@ximian.com>
19432
19433         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
19434         load corlib.dll if mscorlib.dll is not found.
19435         * assembly.h: Remove corlib name define.
19436         * class.c:
19437         * domain.c:
19438         * image.c: Change corlib name to mscorlib.
19439         
19440 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
19441
19442         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
19443
19444 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
19445
19446         * appdomain.h: Added loader_optimization here to sync with the C#
19447         code, and add disallow_binding_redirects field.
19448
19449 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
19450
19451         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
19452
19453         * reflection.c (mono_image_build_metadata): Fix crash on modules
19454         with no types.
19455
19456         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
19457
19458         * icall.c (ves_icall_get_method_info): Return callingConvention as
19459         well.
19460
19461         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
19462         namespaces from the EXPORTEDTYPE table as well.
19463
19464         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
19465         from all modules inside the assembly.
19466         
19467 2003-11-11  Martin Baulig  <martin@ximian.com>
19468
19469         * reflection.c (mono_reflection_bind_generic_parameters): Make
19470         this work for interfaces.
19471
19472 2003-11-11  Martin Baulig  <martin@ximian.com>
19473
19474         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
19475
19476 2003-11-11  Martin Baulig  <martin@ximian.com>
19477
19478         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
19479         "MonoInflatedMethod" and "MonoInflatedCtor".
19480
19481 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
19482
19483         * reflection.c (resolution_scope_from_image): Use the assembly table
19484         from the manifest module, since other modules don't have it.
19485
19486         * debug-helpers.c (mono_type_full_name): New helper function.
19487
19488         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
19489
19490         * image.c (mono_image_load_file_for_image): New public function which
19491         is a replacement for the load_file_for_image in class.c.
19492
19493         * assembly.c (mono_assembly_load_module): A wrapper for the function
19494         above which does assembly association and reference loading too.
19495
19496         * class.c (mono_class_from_name): Call mono_assembly_load_module.
19497
19498 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19499
19500         * appdomain.c: not all of the attributes for the full assembly name
19501         are required and the order doesn't matter. Fixes bug #50787.
19502
19503 2003-11-10  Dick Porter  <dick@ximian.com>
19504
19505         * locales.c: Use platform-endian UTF16
19506
19507 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
19508
19509         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
19510         
19511 2003-11-10  Martin Baulig  <martin@ximian.com>
19512
19513         * metadata.c
19514         (mono_metadata_load_generic_params): Make this actually work.
19515
19516         * reflection.c (mono_reflection_bind_generic_parameters): If our
19517         parent is a generic instance, pass all the `types' to it, no
19518         matter whether it has the same number of type parameters or not.
19519
19520 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
19521
19522         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
19523
19524         * assembly.c (mono_assembly_load_references): Move the image<->assembly
19525         assignment code to this function so it gets called recursively for all
19526         modules.
19527
19528         * image.c (load_modules): Remove the assembly assignment since it is
19529         now done by mono_assembly_load_references.
19530         
19531         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
19532         Add 'module' argument.
19533         (mono_module_get_types): New helper function.
19534         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
19535
19536 2003-11-08  Martin Baulig  <martin@ximian.com>
19537
19538         * class.c (mono_class_inflate_generic_method): Interface method
19539         don't have a header.
19540
19541         * reflection.c (mono_image_get_methodspec_token): Take an
19542         additional `MonoGenericInst *' argument instead of reading it from
19543         the header; this is necessary to support interfaces.
19544         (mono_image_create_token): Pass the `MonoGenericInst *' from the
19545         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
19546         (inflated_method_get_object): Take an additional `MonoGenericInst *'
19547         argument.
19548
19549         * reflection.h (MonoReflectionInflatedMethod): Added
19550         `MonoGenericInst *ginst'.
19551
19552 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
19553
19554         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
19555
19556 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
19557
19558         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
19559
19560 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
19561
19562         * reflection.c 
19563         (reflection_methodbuilder_from_method_builder):
19564         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
19565         initialize a ReflectionMethodBuilder structure.
19566         (mono_image_get_methodbuilder_token):
19567         (mono_image_get_ctorbuilder_token): New functions to emit memberref
19568         tokens which point to types in another module inside the same assembly.
19569
19570         * reflection.c: Use the new helper functions.
19571         
19572         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
19573
19574         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
19575         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
19576
19577         * reflection.c (resolution_scope_from_image): Emit a moduleref if
19578         neccesary.
19579
19580         * reflection.c (mono_image_build_metadata): Emit metadata only for the
19581         current module. Emit the manifest only for the main module.
19582
19583         * reflection.c (mono_image_create_token): Add assertion when a 
19584         memberref needs to be created.
19585
19586         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
19587
19588         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
19589         larger buffer for the custom attribute blob. Fixes #50637.
19590         
19591 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19592
19593         * threadpool.c: notify listener on async processing handles after
19594         invoking the async callback. Thanks to Zoltan.
19595
19596 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
19597
19598         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
19599         avoid code duplication.
19600
19601         * reflection.h (MonoDynamicImage): New type which is currently unused,
19602         but will be used through the ref.emit code in place of 
19603         MonoDynamicAssembly.
19604
19605         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
19606         object layout.
19607
19608         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
19609         a MonoDynamicImage instead of just a MonoImage.
19610         
19611         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
19612         icalls to ModuleBuilder but keep their semantics, so they will work
19613         with moduleb->assemblyb. This will change later.
19614         
19615 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
19616
19617         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
19618         object layout.
19619
19620         * reflection.c (mono_image_build_metadata): Avoid creation of a default
19621         main module, since it is now done by the managed code.
19622
19623 2003-11-03  Martin Baulig  <martin@ximian.com>
19624
19625         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
19626         `ginst->klass' here.
19627         (method_encode_methodspec): Don't use the `ginst->generic_method's
19628         klass if it's a generic instance, use `ginst->klass' in this case.
19629
19630 2003-11-03  Martin Baulig  <martin@ximian.com>
19631
19632         * reflection.c (mono_image_get_generic_method_param_info):
19633         Removed, use mono_image_get_generic_param_info() instead.
19634         (mono_image_get_type_info): Write the GenericParam table before
19635         the Method table.  This is neccessary because in the GenericParam
19636         table, type parameters of the class (ie. '!0' etc.) must come
19637         before the ones from its generic methods (ie. '!!0' etc).
19638
19639 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
19640
19641         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
19642
19643 2003-11-02  Martin Baulig  <martin@ximian.com>
19644
19645         * reflection.c (create_generic_typespec): Take a
19646         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
19647         the generic parameters from it.
19648
19649 2003-11-02  Martin Baulig  <martin@ximian.com>
19650
19651         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
19652         instead of a `MonoClassField *' since we just need the type.
19653         (create_generic_typespec): New static function.  Creates a
19654         TypeSpec token for a generic type declaration.
19655         (mono_image_get_generic_field_token): New static function.
19656         (mono_image_create_token): If we're a FieldBuilder in a generic
19657         type declaration, call mono_image_get_generic_field_token() to get
19658         the token.
19659
19660 2003-11-02  Martin Baulig  <martin@ximian.com>
19661
19662         * reflection.h
19663         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
19664         `MonoReflectionGenericInst *declaring_type' and
19665         `MonoReflectionGenericInst *reflected_type' fields.
19666
19667         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
19668         `MonoReflectionGenericInst *declaring_type' and a
19669         `MonoReflectionGenericInst *reflected_type' argument instead of a
19670         single `MonoReflectionGenericInst *type' one.  Set
19671         `res->declaring_type' and `res->reflected_type' from them.
19672         (mono_reflection_inflate_field): Likewise.      
19673
19674 2003-11-02  Martin Baulig  <martin@ximian.com>
19675
19676         * class.c (mono_class_setup_vtable): Don't store generic methods
19677         in the vtable.  
19678
19679 2003-11-02  Martin Baulig  <martin@ximian.com>
19680
19681         * reflection.h (MonoReflectionGenericInst): Added
19682         `MonoReflectionType *declaring_type'.
19683
19684         * reflection.c (mono_reflection_bind_generic_parameters): Use
19685         `if (tb->parent)' instead of `klass->parent'.
19686
19687 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
19688
19689         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
19690         with an empty ASSEMBLY table.
19691
19692         * reflection.c (mono_image_build_metadata): Avoid using the same loop
19693         variable in the inner and outer loops.
19694
19695 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
19696
19697         * metadata.h (mono_metadata_make_token): Put parentheses around macro
19698         argument.
19699
19700         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
19701         
19702         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
19703         icalls. Instead, do everything in managed code. This is needed since
19704         it is hard to restore the original domain etc. in unmanaged code in the
19705         presence of undeniable exceptions.
19706
19707         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
19708         New icalls to push and pop appdomain refs.
19709
19710 2003-10-31  Martin Baulig  <martin@ximian.com>
19711
19712         * class.c (inflate_generic_type): Renamed to
19713         mono_class_inflate_generic_type() and made it public.
19714
19715         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
19716         New interncall.
19717
19718         * loader.c (mono_field_from_memberref): Also set the retklass for
19719         typespecs.
19720
19721         * fielder.c (mono_image_get_inflated_field_token): New static
19722         method; creates a metadata token for an inflated field.
19723         (mono_image_create_token, fixup_method): Added support for
19724         "MonoInflatedField".
19725         (fieldbuilder_to_mono_class_field): New static function.
19726         (mono_reflection_inflate_field): New public function.
19727
19728         * reflection.h
19729         (MonoReflectionGenericInst): Added `MonoArray *fields'.
19730         (MonoReflectionInflatedField): New typedef.     
19731
19732 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
19733
19734         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
19735         for Solaris and other platforms without s6_addr16
19736
19737 2003-10-30  Martin Baulig  <martin@ximian.com>
19738
19739         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
19740         argument instead of two.
19741         (mono_class_inflate_generic_signature): Likewise.
19742         (inflate_generic_header): Likewise.
19743         (mono_class_inflate_generic_method): Likewise.  In addition, if
19744         `ginst->klass' is set, it becomes the new `method->klass'.
19745
19746         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
19747         field.
19748
19749         * reflection.c (encode_generic_method_sig): Write a 0xa as the
19750         first byte. [FIXME]
19751         (method_encode_methodspec): If we have generic parameters, create
19752         a MethodSpec instead of a MethodRef.
19753         (fixup_method): Added support for "MonoInflatedMethod" and
19754         "MonoInflatedCtor".
19755         (mono_image_create_token): Added support for "MonoInflatedMethod"
19756         and "MonoInflatedCtor".
19757         (inflated_method_get_object): New static function; returns a
19758         managed "System.Reflection.MonoInflatedMethod" object.
19759         (mono_reflection_bind_generic_method_parameters): Return a
19760         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
19761         (mono_reflection_inflate_method_or_ctor): Likewise.
19762         (mono_image_get_generic_method_param_info): Initialize unused
19763         fields to zero.
19764         (mono_image_get_generic_param_info): Likewise.
19765
19766         * reflection.h (MonoReflectionInflatedMethod): New public
19767         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
19768         "S.R.MonoInflatedCtor" classes.
19769
19770         * loader.c (method_from_memberref): If we're a TypeSpec and it
19771         resolves to a generic instance, inflate the method.
19772
19773 2003-10-28  Dick Porter  <dick@ximian.com>
19774
19775         * object.c (mono_runtime_run_main): Convert command-line arguments
19776         into utf8, falling back to the user's locale encoding to do so.
19777
19778 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
19779
19780         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
19781         at this time.
19782
19783         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
19784
19785         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
19786         up icalls at method definition time. Partially fixes #33569.
19787
19788 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
19789
19790         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
19791         marshalling of arrays. Fixes #50116.
19792
19793         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
19794
19795         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
19796         points to a vtable in the dying appdomain.
19797
19798         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
19799         listeners into unmanaged code inside the lock.
19800
19801         * object.c (mono_class_vtable): Turn off typed allocation in non-root
19802         domains and add some comments.
19803
19804 2003-10-25  Martin Baulig  <martin@ximian.com>
19805
19806         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
19807
19808         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
19809
19810         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
19811         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
19812         currently parsing.  Create the generic class and store it in
19813         `generic_inst->klass' before parsing the type arguments.  This is
19814         required to support "recursive" definitions; see mcs/tests/gen-23.cs
19815         for an example.
19816         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
19817         to support recursive typespec entries.
19818
19819         * class.c (mono_class_setup_parent): If our parent is a generic
19820         instance, we may get called before it has its name set.
19821         (mono_class_from_generic): Splitted into
19822         mono_class_create_from_generic() and mono_class_initialize_generic().
19823
19824 2003-10-25  Martin Baulig  <martin@ximian.com>
19825
19826         * icall.c (ves_icall_Type_BindGenericParameters): Return a
19827         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
19828         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
19829         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
19830
19831         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
19832         (create_typespec): Likewise.
19833         (mono_reflection_bind_generic_parameters): Return a
19834         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
19835         (mono_reflection_inflate_method_or_ctor): New public function.
19836
19837         * reflection.h (MonoReflectionGenericInst): New typedef.        
19838
19839 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
19840
19841         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
19842         inside the domain lock. Fixes #49993.
19843         
19844         * object.c (mono_class_vtable): When typed allocation is used, 
19845         allocate vtables in the GC heap instead of in the mempool, since the
19846         vtables contain GC descriptors which are used by the collector even
19847         after the domain owning the mempool is unloaded.
19848
19849         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
19850
19851         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
19852         reflect what it does. Also invalidate mempools instead of freeing
19853         them if a define is set.
19854
19855         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
19856         of the appdomain.
19857         
19858         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
19859         hold the finalizable objects in this domain.
19860
19861         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
19862         appdomain.
19863
19864         * appdomain.c (mono_domain_set): New function to set the current
19865         appdomain, but only if it is not being unloaded.
19866
19867         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
19868         appdomain which is being unloaded.
19869         
19870         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
19871         unloading of the root appdomain.
19872
19873         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
19874         icall to execute a method in another appdomain. Intended as a 
19875         replacement for InternalSetDomain, which can confuse the code 
19876         generation in the JIT.
19877
19878         * appdomain.c (mono_domain_is_unloading): New function to determine
19879         whenever an appdomain is unloading.
19880
19881         * appdomain.c (mono_domain_unload): New function to correctly unload
19882         an appdomain.
19883
19884         * assembly.c (mono_assembly_load_references): Check that an assembly
19885         does not references itself.
19886
19887         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
19888         domain manually, it asks the finalizer thread to do it, then waits for
19889         the result. Also added a timeout.
19890
19891         * icall.c: Register the new icalls.
19892
19893         * threads.h threads.c: Export the mono_gc_stop_world and 
19894         mono_gc_start_world functions.
19895         
19896         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
19897         function to fill out the mempool with 0x2a.
19898
19899 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
19900
19901         * reflection.h (MonoReflectionMethodAux): New structure to store
19902         information which is rarely used, thus is not in the MonoMethod
19903         structure.
19904
19905         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
19906         store the aux info.
19907
19908         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
19909         and marshalling info into the aux structure.
19910
19911         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
19912         from the aux structure.
19913
19914         * loader.c (mono_method_get_param_names): Retrieve the param names from
19915         the aux structure.
19916         
19917 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
19918
19919         * exception.h exception.c: Add AppDomainUnloadedException && fix 
19920         warning.
19921
19922 2003-10-21  Dick Porter  <dick@ximian.com>
19923
19924         * socket-io.c
19925         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
19926         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
19927
19928 2003-10-21  Martin Baulig  <martin@ximian.com>
19929
19930         * reflection.c (mono_reflection_bind_generic_parameters):
19931         `klass->parent' is NULL for interfaces.
19932
19933 2003-10-21  Martin Baulig  <martin@ximian.com>
19934
19935         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
19936
19937 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
19938
19939         * exception.c (mono_exception_from_name_msg): New helper function for
19940         creating exceptions and initializing their message field.
19941
19942         * exception.c: Simplify functions using the new helper.
19943
19944         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
19945         New function.
19946
19947         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
19948         mono_raise_exception, since otherwise gcc doesn't generate the function
19949         epilog for raise_exception, confusing the stack unwinding in the JIT.
19950         Fixes #45043.
19951
19952         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
19953         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
19954         Fixes #49499.
19955
19956 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19957
19958         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
19959         utf8.
19960
19961 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
19962
19963         * icall.c: Removed GetUninitializedObject method because
19964           AllocateUninitializedClassInstance does the same.
19965
19966 2003-10-18  Martin Baulig  <martin@ximian.com>
19967
19968         * class.c (inflate_generic_signature): Renamed to
19969         mono_class_inflate_generic_signature() and made it public.
19970         (my_mono_class_from_generic_parameter): New static function; if we
19971         don't already have the generic parameter's MonoClass, create a
19972         very simple one which is just used internally in the runtime and
19973         not passed back to managed code.
19974
19975         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
19976
19977         * metadata.h (MonoMethodSignature): Moved the
19978         `MonoGenericParam *gen_params' to the MonoMethodHeader.
19979         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
19980
19981         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
19982         ves_icall_MonoMethod_GetGenericArguments(); this is now an
19983         interncall on the MonoMethod class, not on MethodInfo.
19984         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
19985         calling mono_reflection_bind_generic_method_parameters() directly.
19986
19987         * loader.c (mono_method_get_signature): If this is a MethodSpec;
19988         return the already computed `method->signature'.
19989         (method_from_methodspec): New static function to load a method
19990         from a MethodSpec entry.
19991         (mono_get_method_from_token): Call the new method_from_methodspec()
19992         for MethodSpec tokens.  
19993         (mono_get_method_from_token): If we're a generic method, load the
19994         type parameters.
19995
19996         * reflection.c (mono_image_get_memberref_token): Allow
19997         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
19998         table.
19999         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
20000         (mono_image_create_token): First check whether it's a generic
20001         method (so we'd need to create a MethodSpec), then do the other
20002         two alternatives.
20003         (mono_reflection_bind_generic_method_parameters): Return a
20004         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
20005         called directly from the interncall.
20006
20007 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
20008
20009         * reflection.c (load_public_key): Move loading of the public key
20010         into managed code.
20011
20012         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
20013
20014         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
20015         fields.
20016
20017         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
20018         culture, hash_alg and public_key. Fixes #49555.
20019
20020 2003-10-17  Martin Baulig  <martin@ximian.com>
20021
20022         * class.h (MonoGenericInst): Moved this declaration here and added
20023         `MonoMethod *generic_method'.
20024
20025         * icall.c
20026         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
20027         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
20028
20029         * metadata.c (mono_metadata_type_equal): Two types of
20030         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
20031         index; ie. don't compare the address of the `MonoGenericParam'
20032         structure.
20033         (mono_metadata_load_generic_params): Removed the `MonoMethod
20034         *method' argument.
20035
20036         * metadata.h (MonoGenericInst): Moved declaration to class.h.
20037         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
20038
20039         * reflection.c (method_encode_signature): Encode the number of
20040         generic parameters.
20041         (encode_generic_method_sig): New static function.
20042         (method_encode_methodspec): New static function; creates an entry
20043         in the MethodSpec table for a generic method.
20044         (mono_image_get_methodspec_token): New static function.
20045         (mono_image_create_token): Call mono_image_get_methodspec_token()
20046         for generic methods.
20047         (mono_reflection_bind_generic_method_parameters): New public
20048         function.  Instantiates a generic method.
20049
20050 2003-10-16  Martin Baulig  <martin@ximian.com>
20051
20052         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
20053         *gen_params' here from MonoMethodHeader.
20054
20055         * metadata.c (mono_metadata_parse_method_signature): If we have
20056         generic parameters, initialize `method->gen_params' and then set
20057         the correct `type->data.generic_param' in all the parameters.
20058
20059 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
20060
20061         * threads.c (mono_threads_get_default_stacksize): New function to 
20062         return the default stacksize.
20063
20064         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
20065         termination of the finalizer thread, since the previous method had
20066         race conditions. Fixes #49628.
20067
20068         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
20069         as for the other managed threads.
20070
20071 2003-10-16  Martin Baulig  <martin@ximian.com>
20072
20073         * class.c (inflate_generic_signature): Copy `generic_param_count'
20074         and `gen_params'.
20075
20076         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
20077         New interncall.
20078
20079         * metadata.c (mono_metadata_parse_method_signature): Actually set
20080         the `method->generic_param_count' here.
20081         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
20082
20083 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
20084
20085         * object.h: Add a new field to TypedRef to simplify the implementation
20086         of the REFANY opcodes in the JIT.
20087
20088         * icall.c: Make use of the new field.
20089
20090         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
20091         dynamically.
20092
20093 2003-10-15  Martin Baulig  <martin@ximian.com>
20094
20095         * class.c (mono_class_from_gen_param): Renamed to
20096         mono_class_from_generic_parameter() and moved most of the
20097         functionality from mono_reflection_define_generic_parameter()
20098         here; ie. we create a "real" class here.
20099         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
20100         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
20101         previously been called.
20102
20103         * class.h (MonoGenericParam): Moved the declaration of this struct
20104         here from metadata.h and added `MonoMethod *method'.
20105
20106         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
20107         interncall.
20108
20109         * loader.c (mono_get_method_from_token): If we have any generic
20110         parameters, call mono_metadata_load_generic_params() to read them
20111         from the MONO_TABLE_GENERICPAR.
20112
20113         * metadata.c (mono_metadata_load_generic_params): Added
20114         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
20115
20116         * metadata.h (MonoMethodSignature): Replaced
20117         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
20118         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
20119
20120         * reflection.c (mono_reflection_define_generic_parameter): Moved
20121         most of the functionality into the new
20122         mono_class_from_generic_parameter(); set the `method' field if
20123         we're a method parameter.       
20124
20125 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
20126
20127         * marshal.c (emit_struct_conv): if native size is 0
20128         emit no code.
20129
20130 2003-10-14  Martin Baulig  <martin@ximian.com>
20131
20132         * icall.c: The generics API has changed in the spec since it was
20133         added to System.Type; these modifications make it match the spec
20134         again.
20135         (ves_icall_Type_GetGenericParameters): Renamed to
20136         `ves_icall_Type_GetGenericArguments'.
20137         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
20138         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
20139         `ves_icall_MonoType_get_HasGenericArguments'.
20140         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
20141         `ves_icall_MonoType_get_IsGenericParameter'.
20142         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
20143         this is no interncall anymore.
20144         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
20145         `ves_icall_TypeBuilder_get_IsGenericParameter'.
20146
20147 2003-10-14  Martin Baulig  <martin@ximian.com>
20148
20149         * reflection.c (mono_reflection_bind_generic_parameters): Also
20150         inflate generic methods if we're reading the class from IL.
20151
20152 2003-10-13  Martin Baulig  <martin@ximian.com>
20153
20154         * reflection.c (mono_reflection_define_generic_parameter): This
20155         method isn't called directly from the icall anymore; take a
20156         `MonoReflectionAssemblyBuilder *' so we can use this for type and
20157         method generic parameters.
20158         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
20159         (method_builder_encode_signature): Encode generic parameters.
20160         (mono_image_get_method_info): Write generic params to the
20161         MONO_TABLE_GENERICPARAM table.
20162
20163         * reflection.h (MonoReflectionMethodBuilder): Added
20164         `MonoArray *generic_params'.
20165
20166         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
20167
20168         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
20169         wrapper for mono_reflection_define_generic_parameter().
20170         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
20171
20172 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
20173
20174         * marshal.h: Add missing function to fix build.
20175
20176         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
20177         the SetLastError pinvoke attribute.
20178
20179         * marshal.c (mono_marshal_set_last_error): New helper function called
20180         by the generated code.
20181         
20182         * marshal.c (mono_mb_emit_branch): New helper function.
20183
20184         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
20185
20186         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
20187         classes as parameters and return values of delegates. Fixes #29256. 
20188
20189 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
20190
20191         * locales.c: use gint32 in non HAVE_ICU case
20192
20193 2003-10-11  Martin Baulig  <martin@ximian.com>
20194
20195         * mono-debug.c (mono_debug_add_method): Added a workaround for
20196         bug #48591.
20197
20198 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
20199
20200         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
20201         delegates passed to native code must use the STDCALL calling 
20202         convention. Fixes #35987.
20203
20204 2003-10-10  Martin Baulig  <martin@ximian.com>
20205
20206         * class.c (inflate_generic_type): If we're inflating for a generic
20207         type instance (and not for a generic method), return
20208         MONO_TYPE_MVAR unchanged.
20209
20210 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20211
20212         * string-icalls.c: Join ignores null strings in the source array.
20213         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
20214         * threads.c: GetAvailableTheads is slightly more accurate.
20215
20216 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
20217
20218         * threads.h threads.c : add mono_threads_set_default_stacksize
20219         and pass default to CreateThread calls.
20220
20221 2003-10-09  Dick Porter  <dick@ximian.com>
20222
20223         * icall.c:
20224         * locales.h:
20225         * locales.c: Internal calls for constructing CultureInfo and
20226         related objects from libicu (if its available.)
20227
20228 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
20229
20230         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
20231
20232 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20233
20234         * threadpool.c: added an argument to async_invoke_thread that is the
20235         item to process, pass the MonoAsyncResult to the thread start function
20236         when creating a new thread. This way we don't need to acquire any lock
20237         when we're creating a new thread. Readded a semaphore for faster
20238         response times (instead of that Sleep i added).
20239
20240 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
20241
20242         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
20243         get daylight change dates better on Windows, fix handling
20244         of platforms without tm_gmtoff.
20245
20246 2003-10-06  Martin Baulig  <martin@ximian.com>
20247
20248         * class.c (inflate_generic_method): Renamed to
20249         mono_class_inflate_generic_method() and made public.
20250         (mono_class_init): Don't inflate the generic methods here.
20251         (mono_class_from_generic): Added `gboolean inflate_methods'
20252         argument.  Inflate the methods here.
20253
20254         * loader.c (mono_method_get_param_names): Ignore instances of
20255         generic types for the moment.
20256
20257         * reflection.c (fixup_method): Added support for inflated methods.
20258         (mono_image_create_token): Use mono_image_get_methodref_token()
20259         for inflated methods.
20260         (mono_custom_attrs_from_param): Ignore instances of generic types
20261         for the moment.
20262         (mono_reflection_bind_generic_parameters): New public function.
20263         Moved all the functionality from
20264         ves_icall_Type_BindGenericParameters() here and added support for
20265         dynamic types.
20266         (mono_reflection_define_generic_parameter): Initialize
20267         `klass->methods' here.
20268
20269         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
20270         functionality into mono_reflection_define_generic_parameter().
20271         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
20272         TypeBuilder, return that TypeBuilder.
20273
20274 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20275
20276         * appdomain.c: removed mono_delegate_semaphore.
20277
20278         * threadpool.c:
20279         (mono_thread_pool_add): moved hash table creation inside and the thread 
20280         creation outside of the critical region.
20281         (mono_thread_pool_finish): removed obsolete code.
20282         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
20283         continue or exit the thread depending on the queue.
20284
20285 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
20286
20287         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
20288         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
20289         handle more bool marshalling options
20290
20291 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
20292
20293         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
20294         arrays of structs. Also add a more descriptive error message when
20295         a structure member is marshalled as LPArray.
20296
20297 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
20298
20299         * marshal.c (mono_marshal_get_native_wrapper): Add support for
20300         marshalling arrays of complex types. Fixes #29098. Also remove an
20301         usused and incomplete function.
20302
20303 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
20304
20305         * gc.c: report heap_size - free_bytes as total memory allocated
20306         (bug#49362).
20307
20308 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
20309
20310         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
20311         fix timezone handling problems on Windows.
20312         
20313         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
20314         asserts when the year is outside the range handled by ms the functions.
20315
20316         * class.c (setup_interface_offsets): If the class is an interface,
20317         fill out its interface_offsets slot.
20318
20319 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20320
20321         * threadpool.c: mark threadpool threads as background.
20322
20323 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
20324
20325         * decimal.c - define DECINLINE to nothing if not using GCC
20326
20327 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
20328
20329         * assembly.c: More refcount fixes.
20330
20331 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20332
20333         * string-icalls.c: if we're not trimming, return the same string.
20334         When not splitting, don't create a new string.
20335
20336 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20337
20338         * image.c:
20339         (mono_image_open): increment the ref_count inside the critical section.
20340
20341 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
20342
20343         * image.c (mono_image_open): Fix reference counting bug.
20344
20345 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
20346
20347         * marshal.c (mono_marshal_type_size) struct alignment changed for 
20348         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
20349         64bits. Avoid leak in mono_marshal_get_native_wrapper when
20350         mono_lookup_pinvoke_call throws.        
20351
20352 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
20353
20354         * reflection.c (mono_reflection_parse_type): Fix #49114.
20355
20356         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
20357         temporary workaround for cygwin header problem.
20358
20359         * object.c (mono_object_isinst): Synchronize this with the code
20360         generated by the JIT for casts.
20361
20362 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
20363
20364         * reflection.c (encode_type): Fix #38332.
20365
20366 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
20367
20368         * marshal.c (mono_marshal_method_from_wrapper): New function to return
20369         the original method from the wrapper method.
20370
20371 2003-09-25  Martin Baulig  <martin@ximian.com>
20372
20373         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
20374         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
20375         (ves_icall_Type_get_IsGenericInstance): New interncall.
20376
20377 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
20378
20379         * object.c: fix cast warning in big endian code.
20380
20381 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
20382
20383         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
20384         
20385 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20386
20387         * assembly.c: don't call check_env from mono_assembly_load. It's
20388         already done once in mono_assemblies_init and may cause headaches when
20389         multiple threads are loading assemblies.
20390
20391 2003-09-19  Martin Baulig  <martin@ximian.com>
20392
20393         * reflection.c (mono_reflection_define_generic_parameter): Don't
20394         allocate `klass->methods', set `klass->flags' to
20395         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
20396
20397 2003-09-18  Martin Baulig  <martin@ximian.com>
20398
20399         * class.c (mono_class_init): Don't create `class->methods' if it's
20400         already initialized.
20401
20402         * metadata.c (mono_metadata_load_generic_params): Make this
20403         actually work.
20404
20405         * reflection.c (mono_reflection_define_generic_parameter): Set
20406         parent class and interfaces from the constraints.
20407
20408         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
20409         to keep this struct in sync with the declaration in TypeBuilder.cs.
20410
20411 2003-09-17  Martin Baulig  <martin@ximian.com>
20412
20413         * metadata.h (MonoType): Replaced the data's `int type_param'
20414         field with `MonoGenericParam *generic_param'.
20415         (MonoGenericParam): Added `MonoClass *klass'.
20416
20417         * class.c (mono_class_from_gen_param): Removed the
20418         `MonoImage *image' and `int type_num' arguments.
20419
20420         * metadata.c (mono_metadata_parse_generic_param): New static
20421         method; creates a MonoGenericParam which just contains the index.
20422         (do_mono_metadata_parse_type): Call
20423         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
20424         MONO_TYPE_MVAR.
20425
20426         * reflection.c (mono_image_typedef_or_ref): Generic type
20427         parameters may be in the same assembly, but never use a typedef
20428         for them.
20429         (mono_reflection_define_generic_parameter): We're now creating a
20430         "real" class for the type parameter; it's now safe to call
20431         mono_class_from_mono_type() on the class'es type, it'll do the
20432         right thing.
20433
20434 2003-09-16  Martin Baulig  <martin@ximian.com>
20435
20436         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
20437         `symfile->range_entry_size' and `symfile->class_entry_size' here;
20438         the `symfile' data structure must be fully initialized before it
20439         gets added to the table.
20440
20441 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
20442
20443         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
20444
20445         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
20446         class init trampolines.
20447
20448 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
20449
20450         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
20451         to the built-in profiler to turn off time and allocation profiling
20452         respectively.
20453
20454 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
20455
20456         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
20457         g_direct_equal.
20458
20459         * debug-helpers.c (mono_method_full_name): Print the wrapper type
20460         in human readable form.
20461
20462 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
20463
20464         * reflection.c icall.c: Fixed warnings.
20465
20466         * image.c (load_class_names): Use a temporary hash table to hold the
20467         namespaces in order to avoid doing many string comparisons.
20468
20469         * image.h: Fix typo.
20470
20471         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
20472         Pass NULL instead of g_direct_equal to the GHashTable constructor 
20473         since the NULL case is short-circuited inside g_hash_table_lookup, 
20474         leading to better performance.  
20475
20476         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
20477         obtain the first custom attribute for a given index. Depends on the
20478         CustomAttribute table being sorted by the parent field.
20479
20480         * reflection.c (mono_custom_attrs_from_index): Use the new function 
20481         for better performance.
20482
20483 2003-09-07  Martin Baulig  <martin@ximian.com>
20484
20485         * class.c (mono_class_init): If we're a generic instance, inflate
20486         all our methods instead of loading them from the image.
20487         (mono_class_from_generic): Set `class->methods = gklass->methods'.
20488
20489 2003-09-07  Martin Baulig  <martin@ximian.com>
20490
20491         * mono-debug-debugger.c: Added support for constructors.
20492
20493 2003-09-06  Martin Baulig  <martin@ximian.com>
20494
20495         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
20496         New interncall.
20497
20498         * reflection.c (mono_reflection_setup_generic_class): Call
20499         ensure_runtime_vtable() to create the vtable.
20500
20501 2003-09-05  Martin Baulig  <martin@ximian.com>
20502
20503         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
20504         MONO_TYPE_MVAR.
20505
20506 2003-09-04  Martin Baulig  <martin@ximian.com>
20507
20508         * reflection.c (mono_reflection_define_generic_parameter): Generic
20509         parameters start with zero.
20510
20511 2003-09-04  Martin Baulig  <martin@ximian.com>
20512
20513         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
20514
20515         * reflection.h (MonoReflectionGenericParam): New typedef.
20516         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
20517         the generic parameters from the managed TypeBuilder.
20518
20519         * reflection.c (mono_reflection_define_generic_parameter): New function.
20520         (mono_reflection_create_runtime_class): Encode generic parameters.
20521         (mono_reflection_setup_generic_class): New function; this is
20522         called after adding adding all generic params to the TypeBuilder.
20523         (encode_type): Added MONO_TYPE_VAR.
20524
20525 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
20526
20527         * class.h class.c (mono_class_needs_cctor_run): Moved this method
20528         here from the JIT.
20529
20530         * assembly.h assembly.c: Moved the AOT loading code into an assembly
20531         load hook.
20532
20533 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
20534
20535         * reflection.h reflection.c class.h class.c: Delete duplicate 
20536         definition of mono_type_get_name () from reflection.c and export the
20537         one in class.c.
20538
20539         * class.c: Class loading fixes from Bernie Solomon 
20540         (bernard@ugsolutions.com).
20541
20542         * reflection.c: Endianness fixes from Bernie Solomon 
20543         (bernard@ugsolutions.com).
20544         
20545 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
20546
20547         * assembly.h assembly.c: Define a file format version for AOT
20548         libraries.
20549         
20550         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
20551
20552         * appdomain.h (MonoJitInfo): New field to determine whenever the
20553         code is domain neutral.
20554         
20555 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
20556
20557         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
20558
20559 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
20560
20561         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
20562         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
20563         Avoid caching the result since strings must be domain specific. Fixes
20564         #48050.
20565
20566 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
20567
20568         * marshal.c (mono_marshal_init): Make this callable multiple times
20569         since it is hard to find a correct place to call it.
20570
20571         * object.c (mono_runtime_class_init): Execute static constructors in
20572         the correct appdomain.
20573
20574         * image.c (build_guid_table): Handle the case when multiple images have
20575         the same GUID.
20576
20577 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20578
20579         * icall.c: added a couple of icalls for System.Web.
20580
20581 2003-08-28  Martin Baulig  <martin@ximian.com>
20582
20583         * icall.c (ves_icall_Type_BindGenericParameters): Use
20584         `klass->generic_inst' instead of `&klass->byval_arg' in the
20585         mono_type_get_object() call.  The returned type must be
20586         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
20587
20588 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
20589
20590         * NOTES: New file.
20591
20592         * object.c (mono_class_proxy_vtable): Make it thread safe.
20593
20594         * pedump.c: Fix warning.
20595
20596         * object.c appdomain.h: Get rid of metadata_section. 
20597         It is no longer needed and it was causing deadlocks with domain->lock.
20598
20599         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
20600
20601 2003-08-26  Martin Baulig  <martin@ximian.com>
20602
20603         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
20604
20605 2003-08-26  Martin Baulig  <martin@ximian.com>
20606
20607         * pedump.c (main): Call mono_metadata_init(),
20608         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
20609         and mono_loader_init().
20610
20611 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
20612
20613         * loader.h: Add missing include to fix build.
20614
20615         * image.h: mono_image_load_references is no more.
20616
20617         * assembly.c: Reworked assembly loading to make it really thread safe.
20618         After these changes, the assembly returned by mono_assembly_open is
20619         fully initialized, i.e. all its references assemblies are loaded.
20620
20621         * assembly.c (mono_image_load_references): Renamed to 
20622         mono_assembly_load_references, and made private, since clients no
20623         longer need to call it.
20624
20625         * class.c: Removed calls to mono_assembly_load_references, since it was
20626         a source of deadlocks.
20627
20628         * loader.h loader.c class.h class.c: Protect data structures using a 
20629         new lock, the loader lock.
20630
20631         * class.c (mono_class_setup_vtable): Create temporary hash tables and
20632         GPtrArrays only when needed.
20633
20634         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
20635         into empty structures by mcs. Fixes pinvoke7.cs.
20636         
20637         * domain.c (mono_init): Call a new initialization function.
20638
20639         * appdomain.c (mono_runtime_init): Call the new initializer function
20640         of the marshal module.
20641
20642         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
20643         inserted into empty structures by mcs. Fixes pinvoke7.cs.
20644
20645         * marshal.h marshal.c: Added locks around the wrapper caches to make
20646         this module thread safe.
20647
20648         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
20649         this argument. Fixes pinvoke1.exe.
20650
20651 2003-08-25  Lluis Sanchez <lluis@ximian.com>
20652
20653         * object.h: Added call_type field to MonoMethodMessage and the corresponding
20654         enumeration of values. Removed fields to store remote call output values in
20655         MonoAsyncResult. Not needed any more.
20656         * object.c: Initialize call_type and async_result fields in mono_message_init.
20657         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
20658         dispatching the message.
20659         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
20660         async call to finish. To do it use a message with EndInvoke call type.
20661
20662 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
20663
20664         * loader.h loader.c (mono_method_hash_marhal_info): New function which
20665         determines whenever a method has marshalling info.
20666
20667 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20668
20669         * assembly.c: fix the build on windows.
20670
20671 2003-08-22 Lluis Sanchez <lluis@ximian.com>
20672
20673         * object.cs: Fixed bug #47785.
20674
20675 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
20676
20677         * string-icalls.c (StringReplace): If their are no occurances of
20678         the old string found return a reference to the supplied
20679         string. This saves some memory and matches MS behavoir.
20680         
20681 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20682
20683         * socket-io.c: fixed compilation for systems that define AF_INET6
20684         and don't define SOL_IP/SOL_IPV6.
20685
20686 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
20687
20688         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
20689         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
20690
20691         * rawbuffer.c rawbuffer.h: Make this module thread safe.
20692
20693         * domain.c: Make this module thread safe.
20694
20695         * domain.c (mono_init): Call new initialization function.
20696
20697         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
20698         reference types too. Fixes #38812.
20699
20700         * image.c (mono_image_init): Fixed warnings.
20701
20702         * class.c (mono_class_from_typeref): Handle assembly load failure
20703         correctly.
20704
20705         * appdomain.c (add_assemblies_to_domain): Handle the case when
20706         the references of an assembly are not yet loaded.
20707
20708         * metadata.c image.c assembly.c: Moved initialization of global
20709         variables to a separate function called at startup since lazy 
20710         initialization of these variables is not thread safe.
20711         
20712         * image.c assembly.c: Made this module thread safe by adding locks in 
20713         the appropriate places.
20714
20715         * domain.c (mono_init): Call the new initialization functions of the
20716         three modules.
20717
20718 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
20719
20720         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
20721           make a direct call. It is proxy's work to make the call asynchronous.
20722           mono_delegate_end_invoke(): If the targe is a proxy, just collect
20723           the return values.
20724         * object.cs: mono_method_call_message_new(): read AsyncResult and
20725           state object from parameters list, if this info is requested.
20726         * object.h: Added fields to store remote call output values in
20727           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
20728
20729 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
20730
20731         * object.h: add needed fields to MonoThread.
20732         * threads.c, threads.h: allow registering a function to cleanup data
20733         allocated per thread by the JIT.
20734
20735 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
20736
20737         * loader.h: portability fix by Bernie Solomon
20738         * <bernard@ugsolutions.com>.
20739
20740 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
20741
20742         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
20743         return a MonoArray. This simplifies the code and also ensures that
20744         the cache allways contains an object reference as a value.
20745
20746         * icall.c (ves_icall_get_parameter_info): Simplified using the new
20747         function.
20748
20749 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20750
20751         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
20752         fixes a problem with byte ordering when getting the address family for
20753         a socket.
20754
20755 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
20756
20757         * .cvsignore: Added monosn.
20758
20759         * reflection.h reflection.c loader.c: Added support for parameter
20760         marshalling to dynamically created types. Fixes #47295.
20761
20762 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
20763
20764         * rand.c: remove useless warnings.
20765
20766 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
20767
20768         * class.c: implemented ldtoken for methods and fieldrefs.
20769
20770 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20771
20772         * threadpool.c: when mono_async_invoke was called, no one took care of
20773         monitoring the queue. So if the method invoked took some time and we
20774         got new async invoke requests after 500 ms (the thread created waited
20775         that long in WaitForSingleObject), the new async invoke was not called
20776         until the previous one finished.
20777
20778         This is fixed now. Thanks to Totte for helping with it.
20779
20780 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20781
20782         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
20783
20784 2003-08-11  Martin Baulig  <martin@ximian.com>
20785
20786         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
20787
20788 2003-08-06  Martin Baulig  <martin@ximian.com>
20789
20790         * mono-debug-debugger.c: Added support for static fields,
20791         properties and methods.
20792
20793 2003-08-06  Martin Baulig  <martin@ximian.com>
20794
20795         * mono-debug-debugger.c: Don't store the MonoString's vtable to
20796         make this work for applications with multiple application domains.
20797
20798 2003-08-04  Martin Baulig  <martin@ximian.com>
20799
20800         * mono-debug-debugger.c: Completely reworked the type support; the
20801         most important thing is that we're now just using one single
20802         `MonoType' instance per type.
20803
20804 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
20805
20806         * mono-endian.h, mono-endian.c, icall.c: Added icall
20807         ves_icall_System_Double_AssertEndianity to assert double word endianity
20808         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
20809
20810 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
20811
20812         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
20813         support, icalls and fixes.
20814
20815 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
20816
20817         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
20818         classes that are a punctuation character in .NET is not the same a
20819         g_unichar_ispunct.
20820
20821 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
20822
20823         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
20824
20825 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
20826
20827         * icall.c: Add new MemCopy internalcall.
20828         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
20829         Simplified code; It is not necessary to handle all the cases here,
20830         as the C# code takes care of it.  Only handle the case of the name
20831         resource embedded into the assembly.
20832
20833         Changed signature to return the data pointer and the size of the
20834         data. 
20835
20836 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
20837
20838         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
20839         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
20840
20841 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
20842
20843         * socket-io.c: ignore EINTR error in select.
20844
20845 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
20846
20847         * class.h, class.c: removed unused subclasses field in MonoClass.
20848
20849 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
20850
20851         * icall.c: improve fix of get_base_definition(). If the parent class
20852           doesn't have the mehod, look at the parent of the parent.
20853         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
20854           to check if a parameter is an in or out parameter
20855           (PARAM_ATTRIBUTE_IN is not set by default).
20856           mono_method_return_message_restore(): Use mono_class_value_size to
20857           get the size of a value type. mono_type_stack_size (parameterType)
20858           does not return the correct value if parameterType is byRef.
20859           mono_load_remote_field(), mono_load_remote_field_new(),
20860           mono_store_remote_field(), mono_store_remote_field_new():
20861           raise exception if the remote call returns an exception.
20862
20863 2003-07-28  Martin Baulig  <martin@ximian.com>
20864
20865         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
20866         method.  This is a wrapper around mono_runtime_invoke() which
20867         boxes the instance object if neccessary.
20868
20869 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
20870
20871         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
20872         metadata.h, row-indexes.h, verify.c: first cut of generics support.
20873
20874 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
20875
20876         * icall.c: disable mcs bug workaround.
20877
20878 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
20879
20880         * object.c (mono_runtime_class_init): Take the metadata_section
20881         mutex before obtaining the domain mutex.
20882
20883         * appdomain.h: Added definition of metadata_section mutex here. 
20884
20885         * object.c: define metadata_mutex here.
20886
20887 2003-07-24  Ravi Pratap  <ravi@ximian.com>
20888
20889         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
20890         fixed.
20891
20892 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
20893
20894         * reflection.c: Fix bug #46669
20895
20896 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20897
20898         * exception.c:
20899         * exception.h:
20900         * icall.c:
20901         * object.h: fill in the type name for TypeLoadException.
20902
20903 2003-07-23  Ravi Pratap  <ravi@ximian.com>
20904
20905         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
20906         relationship between TypeBuilders while compiling corlib) and bug
20907         45993 (Array types returned from the runtime while compiling
20908         corlib were from the loaded corlib).
20909
20910 2003-07-22  Martin Baulig  <martin@ximian.com>
20911
20912         * mono-debug-debugger.c: Reworked the type support a bit more;
20913         distinguish between types and classes.
20914
20915 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
20916
20917         * icall.c: add IsArrayImpl icall.
20918
20919 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
20920
20921         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
20922         initializing real_size only once. Also fix bug #46602.
20923
20924 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
20925
20926         * object.c: Renamed mono_metadata_section to metadata_section.
20927
20928 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
20929
20930         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
20931           empty array if the type is an array. Fixed.
20932           ves_icall_MonoMethod_get_base_definition: if the base method
20933           is abstract, get the MethodInfo from the list of methods of
20934           the class.
20935         * reflection.c: ParameterInfo.PositionImpl should be zero-based
20936           and it was 1-based. Fixed in mono_param_get_objects.
20937
20938 2003-07-20  Martin Baulig  <martin@ximian.com>
20939
20940         * mono-debug.h: Set version number to 31.
20941         (mono_debug_init): Added `MonoDomain *' argument.
20942
20943         * mono-debug-debugger.c: Reworked the type support; explicitly
20944         tell the debugger about builtin types; pass the `klass' address to
20945         the debugger.
20946
20947 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
20948
20949         * image.c: Allow new metadata tables to be loaded without a
20950         warning. Also update the warning message to give the new constant value.
20951                 
20952 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
20953
20954         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
20955         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
20956         array type representation changes.
20957
20958 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
20959
20960         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
20961         on Environment.Exit () call.
20962
20963 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
20964
20965         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
20966         requires a matching corlib.
20967
20968 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
20969
20970         * Changelog: My editor decided to add a CR to each line. Sorry about that.
20971           Committed again without the CRs.
20972         
20973 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
20974
20975         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
20976           getting it from the "this" socket instance. Did not work
20977           if the socket is a subclass of Socket.
20978           Also fixed bug #35371.
20979
20980 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
20981
20982         * metadata.c: fixed size for TypedByRef.
20983         * loader.c: when searching for a method, consider the vararg amrker.
20984         * unicode.c, decimal.c: constify some arrays.
20985
20986 2003-07-15  Dick Porter  <dick@ximian.com>
20987
20988         * socket-io.c: Fixed compilation for gcc < 3.2.
20989
20990         Fixed compilation for machines that don't have AF_INET6 (thanks to
20991         Bernie Solomon <bernard@ugsolutions.com> for that part.)
20992
20993         Fixed compile warnings.
20994         
20995         Fixed formatting and line endings.
20996
20997 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
20998
20999         * socket-io.h:
21000         * socket-io.c: Added IPv6 support.
21001
21002 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
21003
21004         * class.c (mono_class_is_assignable_from): New function to implement
21005         the is_assignable_from logic. Used by mono_object_isinst, 
21006         Type::IsAssignableFrom () and the interpreter.
21007
21008         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
21009         Object, even interfaces.
21010         
21011         * object.c (mono_object_isinst): Implement in terms of 
21012         is_assignable_from.
21013
21014         * icall.c (ves_icall_type_is_assignable_from): New icall.
21015
21016 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
21017
21018         * domain.c (foreach_domain): fix compiler warning.
21019
21020 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
21021
21022         * image.c (load_metadata_ptrs): use g_strndup because strndup is
21023         not available on all plattforms
21024
21025 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
21026
21027         * image.h image.c: Store the metadata version string in MonoImage.
21028         * icall.c: New icall to retrieve the image version.
21029         * reflection.c (create_dynamic_image): Fill in the image version field
21030         * reflection.c (build_compressed_metadata): Use the image version
21031         from the image structure.
21032
21033 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21034
21035         * appdomain.c: modified comment.
21036         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
21037         That will be its last iteration when mono_gc_cleanup is called from
21038         mono_runtime_cleanup and before the domain is unloaded.
21039
21040         Fixes bug #45962.
21041
21042 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
21043
21044         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
21045         attributes.
21046
21047 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
21048
21049         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
21050         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
21051         Bernie Solomon <bernard@ugsolutions.com>.
21052
21053 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
21054
21055         * object.c, object.h: provide mono_object_new_fast() for faster
21056         allocation in some special cases.
21057
21058 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
21059
21060         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
21061         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
21062
21063 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
21064
21065         * threadpool.c: fix leaks.
21066
21067 2003-07-01  Dick Porter  <dick@ximian.com>
21068
21069         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
21070         using MonoGHashTables.  Fixes threadpool bug posted to list.
21071
21072 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
21073
21074         * image.h, image.c: added support to load an assembly from a byte array.
21075         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
21076         assembly bundle support.
21077
21078 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
21079
21080         * threadpool.c (mono_thread_pool_add): keep a reference to the
21081         AsyncResult to prevent GC
21082
21083 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
21084
21085         * class.c: leak fix.
21086
21087 2003-06-25  Dick Porter  <dick@ximian.com>
21088
21089         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
21090         for the async object, the WaitHandle object will close the handle.
21091         Fixes bug 45321.
21092
21093 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
21094
21095         * class.c: in mono_array_class_get (), lookup from the hash with the
21096         same type we insert: this works around a bug in
21097         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
21098         lluis. The real fix will have to wait for after the release.
21099
21100 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
21101
21102         * icall.c: fix memory leak when getting type members.
21103
21104 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
21105
21106         * reflection.c: added more pubtoken special cases.
21107
21108 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
21109
21110         * class.c: handle field offset correctly when class size
21111         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
21112
21113 2003-06-20  Martin Baulig  <martin@ximian.com>
21114
21115         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
21116         *image' field.
21117
21118 2003-06-20  Martin Baulig  <martin@ximian.com>
21119
21120         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
21121
21122 2003-06-20  Martin Baulig  <martin@ximian.com>
21123
21124         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
21125         just distinguish between variables in registers and variables at
21126         an offset relative to a register.
21127
21128 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21129
21130         * icall.c: #ifdef out latest changes until mcs is fixed.
21131
21132 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
21133
21134         * icall.c: return members in metadata order.
21135
21136 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
21137
21138         * icall.c: avoid infinite loop in GetTimeZoneData.
21139
21140 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
21141
21142         * icall.c: added Marshal.Prelink/All icalls.
21143
21144 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
21145
21146         * object.c, object.h: fix warnings and do some overflow checking
21147         when creating arrays.
21148
21149 2003-06-17  Dick Porter  <dick@ximian.com>
21150
21151         * file-io.h:
21152         * file-io.c: File attributes need to be tweaked slightly when
21153         passed from the managed to the w32 world.
21154
21155 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
21156         * profiler.h profiler-private.h profiler.c: Rework last patch
21157         based on suggestion by Paolo.
21158         
21159 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
21160
21161         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
21162         instruction level coverage data collection.
21163         * profiler.h profiler.c (: Added new callback function which can be
21164         used by the profiler to limit which functions should have coverage
21165         instrumentation.
21166         * profiler.c (mono_profiler_load): Call g_module_build_path to
21167         generate the file name of the profiler library.
21168
21169 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
21170
21171         * profiler.c, profiler.h, profiler-private.h: added basic block 
21172         coverage profiling API.
21173
21174 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
21175
21176         * reflection.c (mono_reflection_create_runtime_class): Add support
21177         for events in dynamically generated code.
21178
21179         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
21180         not allocated.
21181
21182 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
21183
21184         * icall.c: when getting timezone info, return reasonable values if we
21185         can't get the actual data.
21186
21187 2003-06-14  Dick Porter  <dick@ximian.com>
21188
21189         * threads.c (start_wrapper): Remove the reference to the thread
21190         object in the TLS data, so the thread object can be finalized.
21191         This won't be reached if the thread threw an uncaught exception,
21192         so those thread handles will stay referenced :-( (This is due to
21193         missing support for scanning thread-specific data in the Boehm GC
21194         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
21195
21196 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
21197
21198         * reflection.c: ensure streams and tables are first allocated with
21199         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
21200
21201 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
21202
21203         * icall.c: fixed GetElementType for byrefs (bug# 44792).
21204
21205 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
21206
21207         * reflection.c (mono_reflection_create_runtime_class): Add support for
21208         properties to dynamically created classes.
21209         * reflection.c: Fix a few places where non-MonoObjects were inserted
21210         into the tokens hashtable.
21211
21212 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
21213
21214         * object.c: some support to handle out of memory exceptions.
21215
21216 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
21217
21218         * marshal.c (mono_marshal_get_native_wrapper): support reference
21219         return types
21220
21221 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
21222
21223         * object.h, object.c: more portability stuff from Bernie Solomon.
21224         Unexport mono_object_allocate(). Added mono_object_unbox ().
21225         Set exitcode when an unhandled exception is thrown.
21226
21227 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
21228
21229         * marshal.c (mono_marshal_get_native_wrapper): use custom
21230         marshaler for return types.
21231
21232 2003-06-10  Dick Porter  <dick@ximian.com>
21233
21234         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
21235         ip_mreq is available
21236
21237 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
21238
21239         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
21240         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
21241         by Bernie Solomon <bernard@ugsolutions.com>.
21242
21243 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
21244
21245         * gc.c (mono_gc_init): Avoid error message on shutdown when
21246         GC_DONT_GC=1 is used.
21247
21248         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
21249         New icall to return the GUID of a module.
21250
21251 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
21252
21253         * class.c: ensure instance size always includes the parent's size
21254         even whem class size is set explicitly (fixes bug#44294).
21255
21256 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
21257
21258         * profiler.h, profiler.c: made the simple profiler thread-safe,
21259         get more accurate timing info. Allow the loading of an
21260         externally-developed profiler module.
21261
21262 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
21263
21264         * marshal.c (mono_marshal_get_native_wrapper): improved
21265         class/byref arguments.
21266         (mono_marshal_get_native_wrapper): better string marshaling support.
21267
21268 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
21269
21270         * class.c: ensure .pack and .size are handled correctly and
21271         simplified layout of static fields.
21272
21273 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
21274
21275         * appdomain.c
21276         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
21277
21278         * loader.c (mono_lookup_pinvoke_call): look for modules in the
21279         current directory (fix bug 44008)
21280
21281 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
21282
21283         * marshal.c (mono_marshal_get_native_wrapper): started support for
21284         custom marshalers.
21285         (mono_delegate_to_ftnptr): consider marshalling specifications
21286
21287 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
21288
21289         * reflection.c, reflection.h: emit custom marshal info.
21290
21291 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21292
21293         * object.c: free the GError.
21294         * icall.c: added CloseEvent_internal.
21295         * threads.[ch]:
21296         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
21297         call.
21298
21299 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
21300
21301         * loader.c (mono_method_get_signature): Add support for dynamic
21302         assemblies.
21303
21304 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
21305
21306         * reflection.c: fixed bug #43905.
21307
21308 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
21309
21310         * class.c, domain.c, icall.c, metadata.h, object.h: support for
21311         handling TypedReference and ArgIterator.
21312         * loader.c, loader.h: added function to get signature at call site.
21313
21314 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
21315
21316         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
21317         data readonly. Buglets and warning fixes. Some MethodSpec support.
21318
21319 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
21320
21321         * class.h, class.c, object.c: remove relative numbering support.
21322
21323 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
21324
21325         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
21326         free the string, until we get a chance to fix Gtk#
21327
21328 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21329
21330         * marshal.c: revert last patch.
21331
21332 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
21333
21334         * icall.c: updates for new mono_class_vtable() not calling
21335         the type constructor anymore.
21336
21337 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
21338
21339         * object.h, object.c: separate vtable creation from type
21340         initialization. Make running the .cctor thread safe.
21341
21342 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
21343
21344         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
21345
21346 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
21347
21348         * loader.c (mono_get_method): consider calling convention
21349
21350 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
21351
21352         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
21353         to return the invisible global type for a module.
21354
21355         * reflection.c (mono_image_build_metadata): Emit global fields too.
21356
21357 2003-05-20  Peter Williams  <peterw@ximian.com>
21358
21359         * loader.c (mono_lookup_internal_call): Add a few newlines.
21360
21361 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
21362
21363         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
21364         literal strings.
21365
21366         * appdomain.c (set_domain_search_path): Recalculate search path when
21367         AppDomainSetup.PrivateBinPath changes.
21368
21369         * object.c (mono_class_compute_gc_descriptor): It turns out some
21370         parts of the class libs (like System.Thread) holds pointers to
21371         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
21372         to treat native int a pointer type here.
21373         
21374 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
21375
21376         * appdomain.h, domain.c: add hashtable for jump target resolution.
21377
21378 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
21379
21380         * reflection.h reflection.c icall.c: Added new icalls 
21381         GetManifestResourceInfoInternal, GetModulesInternal and support
21382         infrastructure.
21383
21384 2003-05-16  Dick Porter  <dick@ximian.com>
21385
21386         * icall.c:
21387         * file-io.h:
21388         * file-io.c: Implement System.IO.MonoIO::GetTempPath
21389
21390 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
21391
21392         * object.c: mono_store_remote_field: little fix to previous patch.
21393
21394 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
21395
21396         * class.c: add constructors to array classes.
21397         * icall.c: special case array construction for InternalInvoke (),
21398
21399 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
21400
21401         * class.h class.c reflection.c object.c: Added support for field
21402         defaults in dynamically generated classes.
21403
21404 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
21405
21406         * reflection.c: properly encode charset for ddlimport.
21407
21408 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
21409
21410         * threads.c: allow compiling without GC.
21411
21412 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
21413
21414         * appdomain.h, object.c, object.h, threads.c, threads.h: added
21415         handling of thread static data.
21416
21417 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
21418
21419         * reflection.h, reflection.c: added mono_custom_attrs_free ().
21420
21421 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
21422
21423         * class.c (mono_array_class_get): always set the serializable flags
21424         (mono_array_class_get): always set the SEALED attribute for array types
21425
21426 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
21427
21428         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
21429         attributes (fix for bug 42021).
21430
21431 2003-05-12  Dick Porter  <dick@ximian.com>
21432
21433         * gc.c: Don't run finalizers when the finalizer thread is
21434         finishing up, because the default domain has already been
21435         destroyed.
21436
21437 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
21438
21439         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
21440         value is null, we should throw an exception.   This is slightly
21441         different than the other conventions used for the constructor.
21442
21443 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21444
21445         * socket-io.c: fixed windows build.
21446
21447 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21448
21449         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
21450
21451 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
21452
21453         * object.c (mono_string_new_wrapper): Compatibility fix for MS
21454         compilers.
21455
21456 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
21457
21458         * class.c (mono_class_layout_fields): Add experimental GC aware
21459         auto layout facility. Requires class library changes to work correctly.
21460
21461         (mono_class_setup_vtable): Avoid overriding explicit interface
21462         method implementations. Fixes iface3.exe test.
21463
21464         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
21465         object reference.
21466         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
21467         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
21468
21469         * metadata.h: Add new type classification macro which determines
21470         whenever the type holds an object reference.
21471
21472 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
21473
21474         * marshal.c (mono_marshal_get_native_wrapper): cleanups
21475
21476 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
21477
21478         * gc.c (finalizer_thread): Work around a GC bug.
21479
21480 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
21481
21482         * marshal.c (emit_struct_conv): allow unions
21483
21484         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
21485
21486 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
21487
21488         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
21489
21490 2003-05-06  Martin Baulig  <martin@ximian.com>
21491
21492         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
21493
21494 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21495
21496         * socket-io.c:
21497         (Select_internal): allow NULLs, don't create arrays if not needed.
21498         Coupled with Socket.cs changes.
21499
21500         * threadpool.c:
21501         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
21502         register a finalizer for it that will close the semaphore handle. This
21503         fixes the leak and make Lupus' test run with > 4080 loops.
21504
21505 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
21506
21507         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
21508         Jerome Laban (bug #42287)
21509
21510 2003-05-02  Martin Baulig  <martin@ximian.com>
21511
21512         * debug-mono-symfile.h
21513         (MonoSymbolFile): Moved declaration into mono-debug.h.
21514         (MonoDebugMethodJitInfo): Likewise.
21515         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
21516         argument.
21517         (_mono_debug_address_from_il_offset): Take a
21518         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
21519
21520         * mono-debug.h
21521         (MonoDebugDomainData): New struct.
21522         (mono_debug_get_domain_data): New function.
21523         (mono_debug_add_method): Take an additional `MonoDomain *'
21524         argument.
21525         (mono_debug_source_location_from_address): Likewise.
21526         (mono_debug_il_offset_from_address): Likewise.
21527         (mono_debug_address_from_il_offset): Likewise.
21528
21529 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
21530
21531         * reflection.c: one more check for null type in custom attrs.
21532
21533 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21534
21535         * reflection.c: avoid warning (comparison is always false due to limited
21536         range of data type).
21537
21538 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21539
21540         * icall.c: throw an exception in Type.GetField if the argument 'name'
21541         is NULL.
21542
21543 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
21544
21545         * reflection.c: fixed handling of enums in named arguments to custom
21546         attributes (bug #42123).
21547
21548 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
21549
21550         * reflection.c: use the right array element type and handle
21551         a null for a Type argument, too.
21552
21553 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
21554
21555         * reflection.c: handle arrays as arguments to custom attributes.
21556
21557 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
21558
21559         * reflection.c: handle a string value in a custom attr
21560         ctor that takes an object.
21561
21562 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
21563
21564         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
21565         (fix bug #42063)
21566
21567 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
21568
21569         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
21570
21571 2003-04-27  Martin Baulig  <martin@ximian.com>
21572
21573         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
21574         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
21575         MONO_DEBUGGER_EVENT_BREAKPOINT.
21576         (mono_breakpoint_trampoline_code): Removed.
21577         (mono_debugger_event_handler): The last argument is now a
21578         `guint32'.
21579         (mono_debugger_insert_breakpoint_full): Removed the
21580         `use_trampoline' argument.
21581         (mono_debugger_method_has_breakpoint): Likewise.
21582         (mono_debugger_trampoline_breakpoint_callback): Renamed to
21583         mono_debugger_breakpoint_callback(); take the method and
21584         breakpoint number as arguments.
21585
21586 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
21587
21588         * metadata.c: fix off by one when loading parameters attributes.
21589
21590 2003-04-24  Martin Baulig  <martin@ximian.com>
21591
21592         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
21593
21594 2003-04-24  Martin Baulig  <martin@ximian.com>
21595
21596         * mono-debug-debugger.c: Moved all code which interacts with the
21597         Mono Debugger here.
21598
21599         * debug-mono-symfile.c: This code now just deals with the symbol
21600         file itself, the debugger code is now in mono-debug-debugger.c.
21601
21602 2003-04-23  Martin Baulig  <martin@ximian.com>
21603
21604         * mono-debug.c (mono_debug_source_location_from_il_offset):
21605         New method; like mono_debug_source_location_from_address(), but
21606         takes an IL offset instead of a machine address.
21607
21608 2003-04-23  Martin Baulig  <martin@ximian.com>
21609
21610         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
21611         `line' field; this is now computed by the debugger.
21612
21613 2003-04-23  Martin Baulig  <martin@ximian.com>
21614
21615         * mono-debug.[ch]: New files.  This is the new debugging interface.
21616
21617         * mono-debug-debugger.[ch]: New files.  Moved all code which
21618         interacts with the Mono Debugger here.
21619
21620 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
21621
21622         * domain.c (mono_init): initialize mono_defaults.monitor_class
21623
21624 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
21625
21626         * reflection.c (method_encode_code): Add a spicy exception to help
21627         future compiler authors.
21628
21629 2003-04-21  Martin Baulig  <martin@ximian.com>
21630
21631         * icall.c
21632         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
21633         Make this work with relative pathnames; g_filename_to_uri() needs
21634         an absolute filename.
21635
21636 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
21637
21638         * icall.c: Track name changes in Object and ValueType.
21639
21640 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
21641
21642         * metadata.c (mono_type_stack_size): size should be a multiple of
21643         sizeof (gpointer)
21644
21645 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21646
21647         * gc.c:
21648         (internal_domain_finalize): moved into mono_domain_finalize. No need
21649         to create another thread because the finalizers will be run in the
21650         finalizer thread.
21651         
21652         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
21653         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
21654         to be run (MS does this too).
21655
21656 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
21657
21658         * object.c (mono_class_compute_gc_descriptor): Update comment.
21659
21660         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
21661
21662         * image.h: Add synchronized wrapper cache.
21663
21664         * image.c (do_mono_image_open): Initialize cache.
21665
21666         * reflection.c (create_dynamic_mono_image): Initialize cache.
21667
21668 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21669
21670         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
21671         ves_icall_System_Buffer_ByteLengthInternal.
21672
21673 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
21674
21675         * reflection.c: setup klass->nested_in earlier. Allow
21676         a dash in the assembly name.
21677
21678 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
21679
21680         * metadata.c (mono_type_to_unmanaged): dont access
21681         type->data.klass for MONO_TYPE_OBJECT
21682         (mono_type_to_unmanaged): consider System.Delegate class
21683
21684 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
21685
21686         * class.c: just setup supertypes in the proper place instead of
21687         initializing the full element class for arrays.
21688
21689 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
21690
21691         * class.c: ensure the element class of arrays is initialized.
21692         Setup the supertype info for array classes, too.
21693
21694 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
21695
21696         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
21697
21698 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21699
21700         * Makefile.am: re-added -m option when running cygpath. This way,
21701         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
21702         separator.
21703         * mono-config.c: same codepath for locating mono config file for WIN32
21704         and the rest.
21705         * assembly.c: if mono_assembly_setrootdir is called, don't override
21706         the value set.
21707
21708 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21709
21710         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
21711         MONO_ASSEMBLIES variable.
21712
21713 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
21714
21715         * icall.c: added Assembly::GetNamespaces() icall.
21716
21717 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21718
21719         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
21720
21721 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
21722
21723         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
21724         * object.c: fixed bug in the construction of vtable for proxies
21725
21726 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
21727
21728         * object.c (mono_array_new): Mark mono_array_new as an icall.
21729
21730 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21731
21732         * class.c: fixed test for public method when overriding interfaces.
21733         Closes bug #40970.
21734
21735 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
21736
21737         * appdomain.h, domain.c: added mono_domain_foreach() to
21738         be able to access the currently loaded appdomains.
21739         * object.c: make string interning work across sppdomains.
21740         Mark some functions for use as icalls.
21741
21742 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
21743
21744         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
21745
21746         * reflection.h reflection.c: Allocate long living data using 
21747         GC_MALLOC_ATOMIC so the collector does not need to scan it.
21748
21749         * reflection.c: Double the allocation size in streams instead of
21750         increasing it, to prevent unneccesary copying on large assemblies.
21751         
21752         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
21753         creation if the assembly does not have the Run flag set.
21754
21755 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
21756
21757         * class.h: avoid the C++ keywords in header files (Jerome Laban
21758         spotted and fixed this).
21759
21760 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21761
21762         * object.c:
21763         (mono_unhandled_exception): fill in the arguments for the
21764         UnhandledException event. Only trigger that event for the default
21765         domain (as MS does).
21766
21767 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
21768
21769         * object.c: Improve typed allocation stuff based on suggestions from
21770         Paolo. Also turn it on if the GC library supports it.
21771
21772 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
21773
21774         * object.c object.h class.h: Added experimental typed allocation
21775         facility using the interfaces in gc_gcj.h.
21776
21777         * os/gc_wrapper.h: Added new include files.
21778         
21779 2003-04-03  Martin Baulig  <martin@ximian.com>
21780
21781         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
21782         which is not yet enabled by default.
21783
21784         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
21785         functions.
21786         (mono_gc_lock, mono_gc_unlock): New static functions.
21787
21788         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
21789         functions; stop/start the world for the garbage collector.  This
21790         is using the windows API; we need to complete the SuspendThread()/
21791         ResumeThread() implementation in the io-layer to make this work on Unix.
21792         (mono_gc_push_all_stacks): New public function; tells the garbage
21793         collector about the stack pointers from all managed threads.
21794
21795 2003-04-03  Martin Baulig  <martin@ximian.com>
21796
21797         * object.h (MonoThread): Added `gpointer stack_ptr'.
21798
21799         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
21800
21801 2003-04-03  Martin Baulig  <martin@ximian.com>
21802
21803         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
21804
21805 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
21806
21807         * reflection.c (typebuilder_setup_fields): Initialize field.first and
21808         field.last.
21809
21810 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
21811
21812         * loader.c (mono_lookup_internal_call): Report the corlib that is
21813         out of sync.
21814
21815 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
21816
21817         * icall.c (ves_icall_type_GetTypeCode): fixed check for
21818         System.DBNull (it's class not valuetype).
21819
21820 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
21821
21822         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
21823         if the array method was already assigned a token (fixes bug#40646).
21824
21825 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
21826
21827         * reflection.c (mono_reflection_get_type): Attempt type resolve even
21828         if no assembly is given.
21829
21830 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
21831
21832         * metadata.h: Added the new tables.
21833
21834         * row-indexes.h: Added definitions for new tables.
21835
21836         * metadata.c: Add schemas for new tables, and add support for
21837         computing the sizes of them.
21838
21839         * class.c: Update for handling the new type cases.
21840
21841 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
21842
21843         * metadata.h (MONO_TYPE_IS_VOID): new macro
21844
21845 2003-03-31  Martin Baulig  <martin@ximian.com>
21846
21847         * threads.h (MonoThreadCallbacks): Added `thread_created'.
21848
21849         * threads.c (mono_thread_new_init): Call `thread_created' in the
21850         mono_thread_callbacks.
21851
21852 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
21853
21854         * loader.h: added marshalbyrefobject_class to mono_defaults
21855         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
21856         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
21857           generation of output parameters.
21858           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
21859         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
21860           contextbound and the target object belongs to the context of the caller.
21861         * object.h: added context and unwrapped_server variables in MonoRealProxy.
21862         * object.c: Implemented support for interfaces and abstract classes
21863           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
21864           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
21865
21866 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
21867
21868         * class.h class.c (mono_class_is_subclass_of): New function.
21869         
21870         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
21871         routines for most common case (calls from ArrayList::ToArray).
21872
21873         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
21874         routine so programs which call Environment::Exit() can be profiled.
21875
21876         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
21877         Added MONO_ARCH_SAVE_REGS.
21878
21879         * icall.c (ves_icall_type_is_subtype_of): Use new function.
21880
21881 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
21882
21883         * blob.h: Add a couple of new MonoType types definitions.
21884
21885         * tabledefs.h: Add a couple of new call convs.
21886
21887 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
21888
21889         * reflection.h (MonoReflectionDynamicAssembly): track changes in
21890         the layout of the class.
21891
21892         * reflection.c (alloc_table): double the size on overflow to avoid
21893         unnecessary copying.
21894
21895         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
21896         avoid filling out metadata tables and blobs. Also set mb->ilgen to
21897         null so it can be garbage collected.
21898         
21899 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
21900
21901         * reflection.c (mono_reflection_get_type): Return the resolved type
21902         only if it is in the assembly we searched.
21903
21904         * reflection.c (ensure_runtime_vtable): Initialize method slots.
21905
21906         * class.c (mono_class_setup_vtable): Set the slot of the overriding
21907         method.
21908
21909 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21910
21911         * appdomain.c:
21912         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
21913         the right one is 'file:///blah', but MS allows it.
21914         * assembly.c:
21915         (mono_assembly_open): allow 'file://blah'
21916
21917         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
21918
21919 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
21920
21921         * socket-io.c: fixes bug #40310.
21922
21923 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
21924
21925         * reflection.c (mono_reflection_parse_type): handle deeply nested
21926         types correctly.
21927
21928         * reflection.c (mono_image_create_token): Use unique token values
21929         since they will be put into a hash table.
21930
21931         * class.c (mono_class_setup_vtable): If a method occurs in more than
21932         one place in the vtable, and it gets overriden, then change the
21933         other occurances too.
21934
21935         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
21936         object as return type.
21937
21938 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
21939
21940         * icall.c: Deleted "ToString" implementation for double and float
21941         because they are full implemented in managed code.
21942
21943 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
21944
21945         * reflection.c, reflection.h: implemented and exported functions
21946         to retrieve info about custom attributes.
21947
21948 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21949
21950         * appdomain.c: moved Uri handling to assembly.c
21951         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
21952         work when using a file Uri in *nix and windows.
21953
21954         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
21955         GetReferencedAssemblies.
21956
21957 2003-03-18  Dick Porter  <dick@ximian.com>
21958
21959         * icall.c: Rename a couple of internal calls
21960
21961         * threads.c: Set the thread state to Stopped when a thread exits.
21962         Fixes bug 39377.
21963
21964 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
21965
21966         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
21967         New icall.
21968
21969         * object.c (mono_class_vtable): fix warning.
21970
21971 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
21972
21973         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
21974
21975         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
21976         memory.
21977         (method_encode_clauses): Create exception info structures in the right
21978         order.
21979         (mono_reflection_setup_internal_class): Initialize supertypes field.
21980
21981         * class.c object.c: Handle interfaces which implement other interfaces 
21982         correctly.
21983
21984         * class.h class.c: Move the supertypes array initialization code into 
21985         a separate function so it can be used for dynamic types too. Also call
21986         it earlier, in mono_class_init(), since it can be used before the
21987         type is initialized.
21988
21989 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21990
21991         * Makefile.am:
21992         * assembly.c:
21993         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
21994
21995         * appdomain.c:
21996         * appdomain.h:
21997         * marshal.c:
21998         * object.c: remove warnings.
21999
22000 2003-03-13  Martin Baulig  <martin@ximian.com>
22001
22002         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
22003         (MonoDebugLexicalBlockEntry): New types.
22004
22005         * debug-mono-symfile.c
22006         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
22007
22008 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22009
22010         * process.c: ret can be any non-zero value accroding to MS doc.
22011
22012 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
22013
22014         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
22015         fixing a warning for a miss-used prototype, would have cause
22016         random memory corruption.
22017
22018 2003-03-07  Martin Baulig  <martin@ximian.com>
22019
22020         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
22021         getting really annoying ....
22022
22023 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
22024
22025         * reflection.c (fixup_method): added support for array methods.
22026
22027 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
22028
22029         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
22030         (pointed out by Michael Adams).
22031
22032 2003-03-04  Dick Porter  <dick@ximian.com>
22033
22034         * icall.c: Temporarily reverted the Double and Single ToString()
22035         change, because it broke nunit.
22036
22037 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
22038
22039         * object.h, threads.h: make include files compatible with C++
22040         (patch by Jerome Laban <jlaban@wanadoo.fr>).
22041
22042 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
22043
22044         * icall.c: Erased ToString helper functions for Double and Single.
22045         Now, that implementations ar all in managed code (Double and Single
22046         Formatters).
22047
22048 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
22049
22050         * appdomain.c: Added method for initializing the default context of
22051         a domain. Added internal call for getting the default context.
22052         * appdomain.h: Added context variable in MonoDomain struct.
22053         * domain.c: mono_domain_set also sets the default context of the domain
22054         * icall.c: Mapped internal method InternalGetDefaultContext.
22055         * object.c: mono_object_get_virtual_method returns always a remoting
22056         wrapper if the object is a transparent proxy.
22057         mono_runtime_invoke_array: when creating an object by calling the
22058         constructor, if the created object is a proxy, then the constructor should
22059         be called using the a remoting wrapper.
22060
22061 2003-03-03  Dick Porter  <dick@ximian.com>
22062
22063         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
22064         variable so it compiles on solaris.  Problem spotted by
22065         Christopher Taylor <ct@cs.clemson.edu>
22066
22067 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22068
22069         * appdomain.c:
22070         (get_info_from_assembly_name): don't leak value.
22071
22072         * icall.c:
22073         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
22074         result.
22075
22076 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
22077
22078         * assembly.c: export mono_image_load_references ().
22079         * class.c: handle function pointers. mono_class_from_name() now
22080         supports nested type names directly.
22081
22082 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
22083
22084         * reflection.h reflection.c: Encode already created dynamic methods 
22085         and fields correctly as a DEF instead of a REF.
22086
22087         * reflection.c: Get rid of the force_ref argument to 
22088         mono_image_typedef_or_ref since it was wrong in the first place.
22089
22090         * string-icalls.c: add error checking to string constructors according
22091         to the MSDN docs.
22092
22093         * reflection.c: Emit types in the order their TypeBuilders were 
22094         created. Previously, a new table index was assigned to each type before
22095         the tables were emitted. This was wrong because the signature blob
22096         might already refer to a type by its original table index.
22097
22098 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
22099
22100         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
22101         change.
22102         
22103 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22104
22105         * Makefile.am: make assemblies dir have \ instead of / on windows.
22106
22107 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
22108
22109         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
22110         iterate over the NESTEDCLASS table using a linear search since the
22111         table is not guaranteed to be sorted by the secondary key.
22112
22113         * class.c (mono_class_create_from_typedef): fixed up call to
22114         mono_metadata_nesting_typedef.
22115         
22116 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
22117
22118         * marshal.c (mono_string_to_byvalstr): clear the memory as
22119         suggested by Jerome Laban <jlaban@wanadoo.fr>
22120
22121 2003-02-26  Dick Porter  <dick@ximian.com>
22122
22123         * process.c: Cope with padding in .rsrc blocks
22124
22125 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
22126
22127         * metadata.h: reverted the filter_len change, it breaks reflection
22128         
22129 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
22130
22131         * metadata.h: added a new field to store the filter_len
22132         
22133
22134 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
22135
22136         * reflection.c: handle custom attributes for types and members
22137         created with Reflection.Emit (bug#38422).
22138
22139 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
22140
22141         * reflection.c: define RTSpecialName automatically for constructors for
22142         compatibility with MS.NET.
22143
22144         * reflection.c (mono_reflection_create_runtime_class): initialize
22145         nested_in field of dynamically created classes.
22146
22147 2003-02-22  Martin Baulig  <martin@ximian.com>
22148
22149         * debug-mono-symfile.h: Incremented version number.
22150
22151 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
22152
22153         * object.h icall.c process.c: fix warnings.
22154
22155 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
22156
22157         * appdomain.h appdomain.c:
22158         (mono_domain_try_type_resolve): split the 
22159         name_or_tb argument into a name and a tb argument.
22160         (mono_domain_has_type_resolve): new function to check whenever the
22161         application has registered a TypeResolve event handler.
22162         
22163         * icall.c reflection.h reflection.c: move the type resolve logic into
22164         mono_reflection_get_type () so it will be invoked when 
22165         Assembly::GetType () is called.
22166
22167         * reflection.c:
22168         (mono_reflection_get_type): renamed to get_type_internal.
22169         (mono_reflection_get_type): fixed type name generation so it works 
22170         for nested types too.
22171         (mono_reflection_get_type): call has_type_resolve () to avoid the 
22172         costly type name generation if there is no resolve event handler.
22173
22174 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
22175
22176         * class.c, image.c: load exported types from file references.
22177
22178 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
22179
22180         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
22181           used to cache the managed methods used to create proxies and make 
22182           remote invocation of methods.
22183         * class.h: Added in MonoVTable a flag to indicate that a class needs 
22184           to be remotely created.
22185         * object.c: Modified the method mono_class_vtable(). It now initializes 
22186           the remote flag of the vtable. Modified mono_object_new_specific(), 
22187           so now it checks the remote flag.
22188         * icall.c: Added a couple of internal methods, one for enabling instance 
22189           creation interception for a type, and one for creating objects bypassing
22190           the remote check.
22191
22192 2003-02-18  Martin Baulig  <martin@ximian.com>
22193
22194         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
22195         New interncall to get a method's metadata token.
22196
22197         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
22198         New interncall for the debugger.
22199
22200 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
22201
22202         * class.c (mono_class_setup_vtable): allocate supertype array
22203
22204 2003-02-18  Martin Baulig  <martin@ximian.com>
22205
22206         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
22207
22208 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22209
22210         * reflection.c:
22211         (assembly_name_to_aname): jump over unknown properties (i've found
22212         something like: 'type, assembly, version=xxx, custom=null, public...',
22213         so now will ignore custom=null and still get the rest of the values).
22214
22215 2003-02-17  Dick Porter  <dick@ximian.com>
22216
22217         * threads.c: Have Thread.Start() wait for a semaphore to signal
22218         that the thread has set up all its local data.  This fixes bug
22219         34323, where Abort() raced the new thread's TLS data.
22220
22221         Also removes the handle_store() call from start_wrapper, because
22222         threads are now always created suspended and there is no longer a
22223         race between the parent and child threads to store the info.
22224
22225 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
22226
22227         * image.c: explain the #- heap issue in a message, hopefully
22228         avoiding FAQs on mono-list.
22229
22230 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22231
22232         * icall.c:
22233         (GetEntryAssembly): if the domain has not invoked
22234         AppDomain.ExecuteAssembly yet, return the assembly of the default
22235         AppDomain.
22236
22237 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
22238
22239         * class.c (mono_ldtoken): make it work in dynamic assemblies.
22240
22241 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
22242
22243         * metadata.c, reflection.c: simple speedup to type hash
22244         and equals code.
22245
22246 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
22247
22248         * image.c, image.h, class.c, assembly.c: move module loading
22249         to MonoImage. When loading metadata, consider alignemnet from
22250         the start of metadata, not from the metadata address in memory.
22251
22252 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
22253
22254         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
22255         AssemblyBuilder objects. Factored out custom attribute creation into
22256         a separate function.
22257         (create_custom_attr): new function to create custom attributes.
22258
22259 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
22260
22261         * Makefile.am: Got tired of typing the full pathname to pedump.
22262         Until there is another option, am installing this.
22263
22264 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
22265
22266         * class.c (class_compute_field_layout): always set field->parent 
22267         (mono_ldtoken): use mono_defaults.fieldhandle_class;
22268
22269 2003-02-11  Dick Porter  <dick@ximian.com>
22270
22271         * threads-types.h:
22272         * monitor.c: Rewrote Monitor, making lock much faster and
22273         Pulse/Wait work as specified.  Also uses much fewer handles, and only
22274         creates them as needed.
22275
22276         * exception.c: Added SynchronizationLockException
22277
22278         * threads.c: Deleted old Monitor implementation.  The new one is
22279         in a new file.
22280
22281 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
22282
22283         * class.c: handled TypedReference type code. Set the correct size for
22284         class data. Setup interface_offsets for interface classes, too.
22285
22286 2003-02-09  Martin Baulig  <martin@ximian.com>
22287
22288         * debug-mono-symfile.h: Reflect latest symbol writer changes.
22289
22290 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
22291
22292         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
22293         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
22294         * object.c: fixed mono_object_get_virtual_method () for interfaces.
22295         * verify.c: check for code that runs after the end of the method.
22296
22297 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
22298
22299         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
22300         "System.Math::Round2".
22301         * sysmath.h: Added Floor, Round and Round2 definitions.
22302         * sysmath.c: Modified certain functions that were not 100% compliant
22303         with MS.NET (math precision) and added the implementation of Floor,
22304         Round and Round2.
22305
22306 2003-02-07  Martin Baulig  <martin@ximian.com>
22307
22308         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
22309
22310 2003-02-07  Martin Baulig  <martin@ximian.com>
22311
22312         * debug-mono-symfile.c: Reflected latest symwriter changes.
22313         (mono_debug_create_mono_symbol_file): Removed.
22314         (mono_debug_open_mono_symbol_file): Take an argument which
22315         specifies whether to create a dynamic symbol file.
22316
22317 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
22318
22319         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
22320
22321 2003-02-05  Martin Baulig  <martin@ximian.com>
22322
22323         * reflection.c (mono_image_build_metadata): Make this public,
22324         protect it against being called multiple times, don't create
22325         resources and don't build the compressed metadata here.
22326         (mono_image_create_pefile): Do this here.
22327
22328         * icall.c
22329         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
22330
22331 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22332
22333         * socket-io.c: fixed bug #36322.
22334
22335 2003-02-06  Piers Haken <piersh@friskit.com>
22336
22337         * appdomain.[ch]:
22338         * class.h:
22339         * debug-mono-symfile.c:
22340         * icall.c:
22341         * loader.c:
22342         * mono-config.c:
22343         * monosn.c:
22344         * reflection.c:
22345         * socket-io.c: warning cleanups
22346
22347 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
22348
22349         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
22350         function. works like remoting invoke, but does a check for the Proxy first.
22351
22352 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
22353
22354         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
22355
22356 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
22357
22358         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
22359         array of pointers.
22360         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
22361         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
22362
22363         * object.c (mono_store_remote_field_new): used by the new jit
22364         instead of mono_store_remote_field
22365         (mono_load_remote_field_new): used by the new jit
22366         instead of mono_load_remote_field
22367
22368 2003-02-05  Patrik Torstensson
22369
22370         * appdomain.c: changed unload to take the domain id instead
22371         of domain
22372         
22373         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
22374
22375
22376 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22377
22378         * appdomain.c: don't look for assemblies in ApplicationBase if
22379         PrivateBinPathProbe is set.
22380
22381 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22382
22383         * object.c: make the first argument in main_args contain the absolute
22384         path to the assembly. Fixes bug #37511.
22385
22386 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22387
22388         * icall.c: get correct UTC offset for countries not using daylight
22389         time saving. Fixes bug #30030.
22390
22391 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22392
22393         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
22394         and 1 are the family).
22395
22396 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
22397
22398         * icall.c (ves_icall_InternalExecute): removed wrong assertion
22399
22400         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
22401
22402 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
22403
22404         * reflection.c: added support for SignatureHelper tokens, which is
22405         needed by the Calli opcode.
22406
22407         * reflection.h: track changes to SignatureHelper class.
22408
22409         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
22410
22411 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22412
22413         * appdomain.c: fixed loading assemblies from PrivateBinPath.
22414
22415 2003-02-03  Patrik Torstensson
22416         * appdomain.[c|h], domain.c : 
22417          - Added support for getting a domain via domain id
22418          - Support for setting and getting domain from System.AppDomain 
22419            (used in cross appdomain channel)
22420          - Added support for get/set for a MonoAppContext on a thread 
22421            (Context class in System.Runtime.Remoting.Contexts),
22422          - Removed hack in Get/SetData and ExecuteAssembly.
22423         
22424         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
22425         the managed world to get control when a proxy is created.
22426
22427         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
22428         
22429 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
22430
22431         * icall.c
22432         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
22433         Populate the codebase field as well.
22434
22435 2003-02-02  Martin Baulig  <martin@ximian.com>
22436
22437         * debug-mono-symfile.c
22438         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
22439         (mono_debug_symfile_add_method): Allow interncalls.
22440
22441 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22442
22443         * icall.c: throw parse exception if strtod fails or the string is empty.
22444
22445 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
22446
22447         * marshal.c: handle object type separately from defined
22448         class types.
22449
22450 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
22451
22452         * marshal.c: handle NATIVE_LPSTR for strings when it's
22453         explicitly specified.
22454
22455 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
22456
22457         * reflection.c, reflection.h, icall.c: setup the reflection
22458         handle cache for ModuleBuilders and AssemblyBuilders.
22459
22460 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
22461
22462         * reflection.c (reflection_methodbuilder_to_mono_method): set
22463         pinvoke flag
22464
22465 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22466
22467         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
22468
22469 2003-01-29  Dick Porter  <dick@ximian.com>
22470
22471         * threads.c: No need for the fake_thread kludge now that Thread
22472         doesn't run a class constructor
22473         
22474 2003-01-29  Dick Porter  <dick@ximian.com>
22475
22476         * threads.c: Use g_direct_hash instead of the rather bogus
22477         g_int_hash
22478
22479 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
22480
22481         * marshal.c (mono_marshal_get_native_wrapper): add check for null
22482         (fix pinvoke12.exe)
22483         (mono_marshal_get_struct_to_ptr): generate valid IL code
22484         (mono_marshal_get_ptr_to_struct): generate valid IL code
22485         (*): correctly set sig->pinvoke, we need to memdup the signature
22486         to do that
22487
22488 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
22489
22490         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
22491         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
22492
22493 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
22494
22495         * profiler.c: provide more callers information.
22496
22497 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
22498
22499         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
22500
22501         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
22502
22503         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
22504
22505 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
22506
22507         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
22508         exception instead of going into an infinite loop on dates which it 
22509         can't yet handle.
22510
22511         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
22512         out-of-range exception if needed.
22513
22514         * class.c (mono_class_setup_vtable): allow a virtual method to provide
22515         an implementation for an interface method and to override an inherited
22516         method at the same time. 
22517         Imagine a scenario when a virtual method is used to override a
22518         virtual abstract method in a parent class, and this same method 
22519         provides an implementation for an method inherited from an interface. 
22520         In this case, the interface resolution code will set im->slot, which 
22521         means that the virtual method override pass will skip this method 
22522         which means a pointer to the abstract method inherited from the parent
22523         will remain in the vtable of this non-abstract class.
22524
22525         * class.c: (mono_class_setup_vtable): continue search for a real 
22526         method if only an abstract method is found.     
22527
22528 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
22529
22530         * reflection.c: add size to encoding for ByValStr and ByValArray
22531         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
22532
22533 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
22534
22535         * class.c (mono_class_setup_vtable): pass the override info as an
22536         argument.
22537
22538         * class.c (mono_class_setup_vtable): set the slot of overriding methods
22539         correctly.
22540         
22541         * reflection.c (ensure_runtime_vtable); add support for method 
22542         overrides.
22543         
22544 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
22545
22546         * reflection.c (resolution_scope_from_image): Hack to work to work with
22547         dynamic assemblies.
22548
22549         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
22550         added a 'force_ref' argument to force this function to allways return 
22551         a TypeRef. This is needed by mono_image_get_memberref_token ().
22552         
22553 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
22554
22555         * reflection.c (mono_image_get_type_info): interfaces really don't have
22556         a parent.
22557
22558         * reflection.c (mono_image_basic_init): fill out missing fields of
22559         image structure.
22560
22561         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
22562         dynamic assemblies. This is required so dynamic assemblies show up in
22563         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
22564         Type::GetType() etc. This is consistent with MS behaviour.
22565
22566         * image.c image.h reflection.c: add newly created classes to the name 
22567         cache so mono_class_get () will find them.      
22568
22569 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
22570
22571         First part of changes to get IKVM.NET running under mono.
22572         
22573         * appdomain.h, appdomain.c: added new function 
22574         mono_domain_try_type_resolve() which will emit TypeResolve events. 
22575         This function will call AppDomain::DoTypeResolve to do the actual work.
22576
22577         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
22578         moved existing code dealing with dynamic tokens to a new function 
22579         called mono_reflection_lookup_dynamic_token (). This function will 
22580         raise TypeResolve events when appropriate. Since reflection.c is not 
22581         part of libmetadata, a new hook function called 
22582         mono_lookup_dynamic_token() is added to class.c which will call this.
22583
22584         * assembly.h assembly.c: make the invoke_load_hook function public,
22585         so it can be called for dynamic assemblies.
22586
22587         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
22588
22589         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
22590         type isn't found.
22591
22592         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
22593         MonoGHashTable, since it contains pointers to objects which the GC 
22594         needs to track.
22595
22596         * assembly.c (search_loaded): remove unused variable.
22597         
22598 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
22599
22600         * object.c: fixed issue exposed by gcc-generated IL programs
22601         that use RVA data for pointers.
22602
22603 2003-01-25  Martin Baulig  <martin@ximian.com>
22604
22605         * threads.c (start_wrapper): Moved the initialization of
22606         `start_func' above the mono_new_thread_init() call to which we
22607         pass it as argument.
22608
22609 2003-01-24  Martin Baulig  <martin@ximian.com>
22610
22611         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
22612         the MonoThread pointer.
22613
22614 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
22615
22616         * icall.c: Rename `PowImpl' to Pow.
22617
22618 2003-01-23  Dick Porter  <dick@ximian.com>
22619
22620         * threads.c (start_wrapper): Create a Thread object if needed, so
22621         the Main() thread can do the class initialisation in a subthread
22622         that has been set up to allow managed code execution.
22623
22624         Pass the thread ID instead of the MonoThread pointer to the thread
22625         start and attach callbacks.  This change is required, because the
22626         jit thread start callback must be called _before_ the Thread
22627         object can be created.
22628         
22629         (mono_thread_init): Removed much object creation code that is no
22630         longer needed.  No managed code is called from here now.
22631
22632         * object.c (mono_runtime_exec_managed_code): Create a subthread
22633         for Main, and call back to the runtime to use it.
22634         Set the exit code when Main exits.
22635
22636         * gc.c: Make sure domain finalisation happens in a subthread.
22637         Re-enable threaded GC, fixing bug 31333 (again).
22638
22639         * environment.c: System.Environment internall calls (so far just
22640         ExitCode is here, the others are still in icall.c)
22641
22642         * appdomain.c (mono_runtime_cleanup): All threads running managed
22643         code should have finished before mono_runtime_cleanup() is
22644         reached, so no need to clean up threads.
22645
22646 2003-01-22  Martin Baulig  <martin@ximian.com>
22647
22648         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
22649         `gpointer func' arguments.      
22650         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
22651         but added `MonoThread *thread' argument.
22652         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
22653
22654         * threads.c (mono_new_thread_init): Added `gpointer func' argument
22655         and pass it to the mono_thread_start_cb callback.
22656         (mono_install_thread_callbacks): New public function to install a
22657         set of callbacks which are set by the debugger.
22658         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
22659
22660 2003-01-22  Martin Baulig  <martin@ximian.com>
22661
22662         * Makefile.am: Install debug-mono-symfile.h.
22663
22664 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
22665
22666         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
22667
22668 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
22669
22670         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
22671         * class.c (mono_ptr_class_get): correctly set access levels of pointers
22672         (mono_array_class_get): correctly set access levels of arrays
22673
22674 2003-01-20      Patrik Torstensson
22675         * image.h (MonoAssemblyName): changed major, minor, build, revision
22676         from signed to unsigned.
22677
22678 2003-01-20  sean kasun <skasun@azstarnet.com>
22679
22680         * reflection.c (load_cattr_value): Now this handles
22681         MONO_TYPE_SZARRAY.  Fixes bug #35629
22682
22683 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
22684
22685         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
22686         integer value
22687
22688 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22689
22690         * decimal.c: fixed bug #26056.
22691
22692 2003-01-17  Martin Baulig  <martin@ximian.com>
22693
22694         * gc.c: Raise an ExecutionEngineException instead of using g_error().
22695
22696 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22697
22698         * exception.[ch]:
22699         (mono_get_exception_type_initialization): new function.
22700
22701         * object.c: throw a TypeInitializationException when an exception is
22702         thrown invoking the class constructor.
22703
22704 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22705
22706         * reflection.c: fixed attribute reading.
22707
22708 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22709
22710         * icall.c:
22711         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
22712         provided, look for the type in the calling assembly and then in
22713         mscorlib; if the assembly name is provided, only try that one.
22714
22715 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
22716
22717         * object.c: register the vtable before there is a chance it's
22718         queried again recursively.
22719
22720 2003-01-13  Duncan Mak  <duncan@ximian.com>
22721
22722         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
22723         gc-internal.h. 
22724         
22725 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
22726
22727         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
22728
22729 2003-01-11  Martin Baulig  <martin@ximian.com>
22730
22731         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
22732         this to 20 for the release.
22733
22734 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
22735
22736         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
22737
22738         * loader.c (mono_method_get_marshal_info): bug fix
22739
22740         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
22741         structures with explicit layout
22742
22743 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
22744
22745         * profiler.c: made the output more readable (and sorted). 
22746         Added caller information for the allocation profiler.
22747
22748 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
22749
22750         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
22751
22752 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22753
22754         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
22755         to get value types.
22756         
22757 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
22758
22759         * object.c, profiler.h, profiler.c, profiler-private.h:
22760         Added object allocation profiler.
22761
22762 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
22763
22764         * reflection.h, reflection.c: handle global methods.
22765         Compress blob entries.
22766
22767 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
22768
22769         * marshal.c: fix compilation.
22770
22771 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
22772
22773         * loader.c (mono_method_get_marshal_info): impl.
22774
22775         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
22776
22777 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22778
22779         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
22780         for reference types.
22781
22782 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
22783
22784         * loader.c: fixed off by one error in loaded parameter names.
22785
22786 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
22787
22788         * marshal.c (mono_marshal_get_icall_wrapper): like
22789         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
22790         instead of a MonoMethod.
22791
22792 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22793
22794         * decimal.c: fixed bug #36537.
22795
22796 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
22797
22798         * marshal.c: throw a missing method exception if a
22799         P/Invoke method is not found.
22800
22801 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
22802
22803         * icall.c: allow a null this for constructors.
22804
22805 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
22806
22807         * icall.c: raise the proper exceptions if the arguments to the
22808         internal Invoke are incorrect.
22809
22810 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
22811
22812         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
22813
22814 2003-01-03  Martin Baulig  <martin@ximian.com>
22815
22816         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
22817
22818 2002-12-31  Martin Baulig  <martin@ximian.com>
22819
22820         * debug-mono-symfile.c: Completely rewrote the type section.
22821         Instead of using individual malloc()ed fields, we use one big
22822         continuous memory area and offsets into this area.
22823         See the comments in the source code for details.
22824
22825 2002-12-30  Martin Baulig  <martin@ximian.com>
22826
22827         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
22828
22829 2002-12-30  Martin Baulig  <martin@ximian.com>
22830
22831         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
22832         line number table in this data blob instead of using an external
22833         pointer.
22834
22835 2002-12-28  Martin Baulig  <martin@ximian.com>
22836
22837         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
22838
22839 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
22840
22841         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
22842         as a boxed return type.
22843
22844 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
22845
22846         * appdomain.c
22847         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
22848         g_build_filename to properly get separators on the filename created.
22849
22850         * object.h: Small change, introduce MonoMarshalByRefObject to
22851         track the layout of that structure in the C# universe as we make
22852         changes there.
22853
22854 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
22855
22856         * object.c: removed assert to allow static fields on interfaces.
22857         * loader.c: a TypeSpec may be used for any type, not just arrays.
22858
22859 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
22860
22861         * class.c, class.h: added mono_class_array_element_size ().
22862         Ignore static methods in interfaces.
22863
22864 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22865
22866         * threads.c: fixed the build under cygwin.
22867
22868 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
22869
22870         * reflection.c: handle nullref constants. Allocate keys for
22871         reflection handles with the GC.
22872
22873 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
22874
22875         * threads.c, threads.h: added mono_thread_get_abort_signal()
22876         to get a suitable signal for thread abort.
22877
22878 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
22879
22880         * metadata.c: fix handling of ExportedType table.
22881
22882 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22883
22884         * icall.c: added WriteWindowsDebugString internal call.
22885
22886 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22887
22888         * reflection.h: added fields to match C# implementation.
22889
22890 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22891
22892         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
22893
22894 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
22895
22896         * gc.h, gc-internal.h: Rename header for GC internal calls to
22897         gc-internal.h from gc.h as to not clash with Boehm GC having its
22898         header installed as <gc.h> in outside include paths.
22899         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
22900         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
22901
22902 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22903
22904         * icall.c: assign minor, build and revision in FillName.
22905
22906 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
22907
22908         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
22909         Added support for running code generated by Reflection.Emit.
22910
22911 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22912
22913         * appdomain.c: check for NULL argument in LoadFrom.
22914
22915 2002-12-10  Dick Porter  <dick@ximian.com>
22916
22917         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
22918
22919 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22920
22921         * appdomain.c: fix buglet when building exe file name.  Handle full
22922         assembly name (needed after latest changes to AssemblyName).
22923         * image.c:
22924         (mono_image_close): free some hashtables.
22925
22926 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
22927
22928         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
22929         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
22930         on some systems (redhat 7.3) 
22931
22932 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
22933
22934         * threads.c: delete the critical section of a sync block,
22935         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
22936
22937 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
22938
22939         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
22940
22941 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22942
22943         * appdomain.[ch]: handle the assembly preload event to try loading the
22944         assemblies using the paths we have in the current domain.
22945
22946         * assembly.[ch]: created an assembly preload hook that is called to try
22947         loading the assembly by other means that the ones provided here.
22948
22949         * domain.c: initialize the domain search path.
22950
22951         From now on, assemblies (TODO: except corlib and System) are loaded
22952         according to these rules when using mono_assembly_load ():
22953
22954                 1. It tries to load the assembly from the ApplicationBase
22955                 of the current domain appending .dll and .exe (TODO: have to
22956                 try loading from name/name.dll and name/name.exe).
22957
22958                 2. It tries the search path specified in PrivateBinPath for the
22959                 current domain (if any).
22960
22961                 3. Previous behavior.
22962
22963 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
22964
22965         * icall.c: implemented GetInterfaceMap() related icall.
22966         * domain.c, loader.h: load MethodInfo in mono_defaults.
22967
22968 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
22969
22970         * gc.c: disable the finalizer thread for now, untill all the issues
22971         with it are resolved.
22972
22973 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
22974
22975         * string-icalls.c: handle embedded nulls in string ctor when the
22976         length is specified.
22977
22978 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
22979
22980         * class.c: look for explicit interface implementation in parent
22981         classes, too.
22982
22983 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
22984
22985         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
22986
22987 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
22988
22989         * gc.c: protect handles with a critical section.
22990
22991 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22992
22993         * icall.c:
22994         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
22995         parameters. If no assembly specified, try getting the type from all
22996         the assemblies in the current domain, else, load the assembly and get
22997         the type from it.
22998
22999 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23000
23001         * marshal.c: applied patch from Aleksey Demakov that fixes
23002         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
23003
23004 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23005
23006         * icall.c: fixed get_location.
23007
23008 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
23009
23010         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
23011         declarations to make it work with older gcc. 
23012
23013         * loader.c (mono_get_method): set signature->pinvoke for native calls
23014
23015 2002-11-20  Dick Porter  <dick@ximian.com>
23016
23017         * threads.c (mono_thread_init): Set the main thread's handle
23018
23019 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
23020
23021         * gc.c: allow compilation without GC support. Changed to match the
23022         mono coding style.
23023
23024 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
23025
23026         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
23027
23028 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
23029
23030         * reflection.c: set a public key token on the core assemblies.
23031
23032 2002-11-18  Dick Porter  <dick@ximian.com>
23033
23034         * threads.c: Split out some thread initialisation so that other
23035         files can set the start callback function.
23036
23037         * gc.c: Run finalisers in a separate thread, to avoid stack
23038         overflow.  Fixes bug 31333.
23039
23040         * appdomain.c: Set up GC finalisation thread.
23041
23042         * reflection.c: 
23043         * object.c: 
23044         * domain.c: Use gc.h macros for GC_malloc
23045         
23046 2002-11-15  Dick Porter  <dick@ximian.com>
23047
23048         * threadpool.c: 
23049         * threads.c:
23050         * appdomain.c: Removed mono_runtime_init_with_attach(),
23051         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
23052         merging the extra parameter with the existing function.  Removed
23053         unneeded code in mono_thread_attach().
23054
23055 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
23056
23057         * image.c (mono_image_loaded_by_guid): a method to get loaded
23058         images by guid. 
23059         (load_metadata_ptrs): we store the guid as string.
23060
23061 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
23062
23063         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
23064
23065         * metadata.c (mono_guid_to_string): imported method form Zoltan
23066         Varga (slightly modified)
23067
23068         * assembly.c (mono_assembly_open): load precompiled code
23069
23070         * loader.h (MonoMethod): we store the method token for use in the
23071         aot compiler. 
23072
23073 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23074
23075         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
23076         the hook function called when an assembly is loaded.
23077         
23078         * domain.c: Modified file.
23079         (mono_domain_assembly_load): removed hash table insertion of assemblies.
23080
23081         Fixes bug #33196.
23082
23083 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
23084
23085         * reflection.c: Map PEFileKind to the value expected by the WinNT
23086         image loader. 
23087
23088 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23089
23090         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
23091         Read until the buffer is filled completely.
23092
23093 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23094
23095         * icall.c: implemented MonoType.InternalGetEvent ().
23096
23097 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23098
23099         * appdomain.c: implemented InitAppDomainSetup. Delayed
23100         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
23101         the entry_assembly.
23102
23103         * assembly.c: base_dir is now an absolute path ending with
23104         G_DIR_SEPARATOR.
23105
23106         * icall.c: modified get_location according to the above changes.
23107
23108         * object.c: init AppDomain.SetupInformation for the default domain after
23109         we have the entry assembly.
23110
23111         * domain.c: when unloading a domain, setup = NULL.
23112
23113 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
23114
23115         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
23116
23117 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
23118
23119         * object.h, object.c: introduced mono_object_get_virtual_method ()
23120         to lookup the method invoked on an object when a callvirt is done on
23121         a method.
23122         * icall.c: make MethodInfo::Invoke() always do a virtual call.
23123
23124 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23125
23126         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
23127         current domain when loaded an assembly and failed to load it.
23128
23129         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
23130
23131 2002-10-31  Dick Porter  <dick@ximian.com>
23132
23133         * icall.c: 
23134         * file-io.h: 
23135         * file-io.c: Return the error status in a parameter, as the
23136         GetLastError() value has long since been blown away if we try and
23137         look it up in a subsequent internal call invocation.  Delete the
23138         GetLastError() internal call, because it's useless.
23139
23140 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
23141
23142         * class.[ch]: added cast_class to fix bug 29517
23143
23144 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
23145
23146         * marshal.c: create valid IL code in the filter clause:
23147         the new JIT is less forgiving:-)
23148
23149 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23150
23151         * icall.c: removed get_property internal call.
23152
23153 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
23154
23155         * appdomain.h domain.c: Added an ID to appdomains.
23156         
23157         * threads.c threads.h icall.c: Implement icall
23158         Thread:GetDomainID(), and remove unused icall 
23159         CurrentThreadDomain_internal.
23160
23161 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23162
23163         * icall.c: Don't recurse through the base types in GetConstructor.
23164         Fixes bug #32063. 
23165
23166 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
23167
23168         * mempool.h, mempool.c: added mono_mempool_empty() and
23169         mono_mempool_stats().
23170
23171 2002-10-23  Dick Porter  <dick@ximian.com>
23172
23173         * file-io.c: 
23174         * file-io.h: 
23175         * icall.c: Added MonoIO.GetFileType internal call
23176
23177 2002-10-17  Dick Porter  <dick@ximian.com>
23178
23179         * appdomain.c (mono_runtime_cleanup): Don't signal the async
23180         delegate semaphore before waiting for all threads to finish,
23181         because new threads can also call async delegates.  Fixes bug
23182         32004.
23183
23184         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
23185         of 3 seconds, in case another async job is queued.  (This part is
23186         needed because the bug fix reintroduced the 3s exit lag.)  This
23187         makes the mono_runtime_shutdown flag superfluous.
23188
23189 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
23190
23191         * reflection.c: include ehader size in method section headers.
23192         Really check for suplicated modules entries.
23193
23194 2002-10-17  Martin Baulig  <martin@gnome.org>
23195
23196         * debug-mono-symfile.c: Added back support for locals.
23197
23198 2002-10-14  Martin Baulig  <martin@gnome.org>
23199
23200         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
23201         MONO_TYPE_VOID.
23202
23203 2002-10-14  Martin Baulig  <martin@gnome.org>
23204
23205         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
23206         mono_class_get() instead of looking in the class cache. 
23207
23208 2002-10-13  Martin Baulig  <martin@gnome.org>
23209
23210         * debug-mono-symfile.c: Set version number to 28, include the
23211         signature in method names.
23212
23213 2002-10-13  Martin Baulig  <martin@gnome.org>
23214
23215         * debug-mono-symfile.h: Set version number to 27.
23216
23217 2002-10-11  Martin Baulig  <martin@gnome.org>
23218
23219         * gc.c: Don't register/unregister NULL pointers as disappearing links.
23220
23221 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
23222
23223         * metadata.c, metadata.h: added helper function to allocate signatures.
23224
23225 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23226
23227         * icall.c: added internal call to get the location of machine.config.
23228
23229 2002-10-08  Martin Baulig  <martin@gnome.org>
23230
23231         * debug-mono-symfile.c: Ignore classes with a pending init for the
23232         moment.
23233
23234 2002-10-03  Dick Porter  <dick@ximian.com>
23235
23236         * threads.c: Freebsd pthread_t is a pointer
23237
23238 2002-10-03  Dick Porter  <dick@ximian.com>
23239
23240         * socket-io.c: Implemented GetHostName_internal
23241
23242 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23243
23244         * mono-config.c:
23245         (mono_config_parse_file): don't leak the text.
23246
23247 2002-10-02  Martin Baulig  <martin@gnome.org>
23248
23249         * debug-mono-symfile.c: Added support for methods.
23250
23251 2002-10-01  Martin Baulig  <martin@gnome.org>
23252
23253         * debug-mono-symfile.c: Don't emit methods and line numbers for
23254         the dynamic symbol file, just write the type table.  We can easily
23255         have an external helper program which creates a symbol file for an
23256         IL file.        
23257
23258 2002-10-01  Dick Porter  <dick@ximian.com>
23259
23260         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
23261         Only add the handle to the cleanup array when we're about to
23262         launch the thread.  Bug 31425 deadlocked when the test was run on
23263         mono under w32.
23264
23265 2002-10-01  Martin Baulig  <martin@gnome.org>
23266
23267         * debug-mono-symfile.c: Added support for properties.
23268
23269 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
23270
23271         * reflection.c: unaligned store fix from Mark Crichton
23272         <crichton@gimp.org>.
23273
23274 2002-09-27  Martin Baulig  <martin@gnome.org>
23275
23276         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
23277         New interncall.
23278
23279 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
23280
23281         * assembly.h, assembly.c: use a sane API to hook into the assembly
23282         loading process instead of a useless special-purpouse hack
23283         (ngen needs a hook, too, for example).
23284
23285 2002-09-27  Dick Porter  <dick@ximian.com>
23286
23287         * threads.c (mono_thread_init): Call GetCurrentProcess() so
23288         io-layer can set up some process handle info.  Not needed on w32,
23289         but doesn't hurt either.
23290
23291         * process.c: Pass the program name in the second parameter to
23292         CreateProcess, so the path is searched.  Include the working
23293         directory. Implemented process name, process enumeration, and some
23294         process detail internal calls.
23295         
23296         * icall.c: Added internal calls for process lookup, and some
23297         process details
23298
23299 2002-09-26  Martin Baulig  <martin@gnome.org>
23300
23301         * assembly.c (mono_install_open_assembly_hook): New global
23302         function to install a function to be invoked each time a new
23303         assembly is loaded.
23304         (mono_assembly_open): Run this callback function if set.
23305
23306         * debug-mono-symfile.c: Put back line numbers for the dynamic
23307         symbol file and also record the .il file as source file.  This
23308         allows us to install the temporary symbol file as `file.dbg' just
23309         like a compiler-generated one.
23310
23311 2002-09-26  Nick Zigarovich <nick@chemlab.org>
23312
23313         * Corrected typo in gc.c (BOHEM vs BOEHM).
23314
23315 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23316
23317         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
23318         GetProperties. Also avoid calling g_slist_length in GetProperties and
23319         GetMethods.
23320
23321 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
23322
23323         * reflection.c: avoid unaligned stores (bug spotted by
23324         Mark Crichton  <crichton@gimp.org>).
23325
23326 2002-09-25  Martin Baulig  <martin@gnome.org>
23327
23328         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
23329         instead of guint64 for addresses and added prologue/epilogue info.
23330
23331 2002-09-25  Martin Baulig  <martin@gnome.org>
23332
23333         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
23334         store line number info.  For the dynamic symbol file, we only need
23335         to provide the JIT generated dynamic line number info for the dynamic
23336         symbol file.
23337
23338 2002-09-25  Martin Baulig  <martin@gnome.org>
23339
23340         * debug-mono-symfile.h: Incremented version number.
23341
23342 2002-09-24  Martin Baulig  <martin@gnome.org>
23343
23344         * class.c (mono_debugger_class_init_func): New global function
23345         pointer variable.
23346         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
23347         call it.
23348
23349         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
23350         function.  This is called via the mono_debugger_class_init_func
23351         hook to add all types to the dynamic type table.
23352         (ves_icall_MonoDebugger_GetType): New interncall to get a class
23353         from its metadata token.
23354
23355         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
23356         New interncall for the debugger.
23357
23358 2002-09-24  Nick Drochak <ndrochak@gol.com>
23359
23360         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
23361         before using it in case it is null.
23362         
23363 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
23364
23365         * metadata.c: allow custom modifiers in local var signatures
23366         (bug spotted by Zoltan Varga).
23367
23368 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
23369
23370         * class.c: deal with the <Module> class that may have a NULL vtable.
23371         Eliminate warnings.
23372
23373 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
23374
23375         * image.c, image.h: more strong name helpers.
23376         * monosn.c: more work: convert pem keys to cryptoapi format.
23377
23378 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
23379
23380         * string-icalls.c: speedup IndexOf.
23381
23382 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
23383
23384         * icall.c: updates from Zoltan.2.Varga@nokia.com.
23385
23386 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
23387
23388         * icall.c: cleanup: use mono_object_domain ().
23389
23390 2002-09-23  Martin Baulig  <martin@gnome.org>
23391
23392         * debug-mono-symfile.c: Improved type support.
23393
23394 2002-09-22  Martin Baulig  <martin@gnome.org>
23395
23396         * debug-mono-symfile.c: Added support for reference types and strings.
23397
23398 2002-09-22  Martin Baulig  <martin@gnome.org>
23399
23400         * debug-mono-symfile.c: Started to work on the type table.
23401
23402 2002-09-21  Martin Baulig  <martin@gnome.org>
23403
23404         * debug-mono-symfile.c: Largely reworked the symbol table format.
23405         The symbol table is now incrementally updated each time a new
23406         method is added.  We're now also using our own magic and version
23407         so that you don't need to recompile all your classes if the
23408         dynamic table changes.
23409         (mono_debug_update_mono_symbol_file): Removed.
23410         (mono_debug_symfile_add_method): New function to add a method.
23411
23412 2002-09-21  Martin Baulig  <martin@gnome.org>
23413
23414         * icall.c
23415         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
23416         New interncall.
23417
23418         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
23419         New interncall to get a method from its metadata token.
23420
23421 2002-09-21  Martin Baulig  <martin@gnome.org>
23422
23423         * debug-mono-symfile.c: Create type table.
23424
23425 2002-09-20  Martin Baulig  <martin@gnome.org>
23426
23427         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
23428
23429 2002-09-20  Martin Baulig  <martin@gnome.org>
23430
23431         * debug-mono-symfile.c: Provide information about params and locals.
23432
23433 2002-09-20  Martin Baulig  <martin@gnome.org>
23434
23435         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
23436         New interncall.
23437
23438         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
23439         interncall to get a method from its metadata token.
23440
23441 2002-09-20  Martin Baulig  <martin@gnome.org>
23442
23443         * debug-mono-symfile.c: Added a few checks for method->header
23444         being non-NULL.  This should never happen, but for the moment
23445         let's use a g_warning() rather than a g_assert().
23446
23447 2002-09-19  Mark Crichton  <crichton@gimp.org>
23448
23449         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
23450         even if support for it isn't present.  Added an #ifdef to fix this.
23451
23452         * socket-io.c: Added checks back for Solaris support.
23453
23454 2002-09-19  Martin Baulig  <martin@gnome.org>
23455
23456         * debug-mono-symfile.c (read_string, write_string): Reflect latest
23457         changes in the symbol file format.
23458
23459 2002-09-18  Martin Baulig  <martin@gnome.org>
23460
23461         * debug-mono-symfile.c: Set version number to 21.
23462
23463 2002-09-18  Dick Porter  <dick@ximian.com>
23464
23465         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
23466         on netbsd.  Fixes bug 30051.
23467
23468 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23469
23470         * reflection.c:
23471         (set_version_from_string): little fix.
23472
23473 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
23474
23475         * monosn.c, Makefile.am: added strong name utility.
23476         * reflection.h, reflection.c: implemented delayed signing,
23477         locale, version and hash id assembly attributes.
23478
23479 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
23480
23481         * loader.c, metadata.c: load param attributes in signatures.
23482
23483 2002-09-16  Martin Baulig  <martin@gnome.org>
23484
23485         * debug-mono-symfile.c: Added string table with all method names.
23486
23487 2002-09-14  Martin Baulig  <martin@gnome.org>
23488
23489         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
23490         fast method lookup.
23491
23492 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
23493
23494         * reflection.c: record the public key token of referenced assemblies.
23495
23496 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
23497
23498         * image.c, image.h: added functions to get the strong name and the
23499         public key of an assembly.
23500         * pedump.c: use them.
23501
23502 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
23503
23504         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
23505
23506 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
23507
23508         * marshal.c (mono_marshal_get_managed_wrapper): Added
23509         MONO_TYPE_BOOLEAN 
23510
23511 2002-09-11  Martin Baulig  <martin@gnome.org>
23512
23513         * gc.c: Call GC_unregister_disappearing_link() on all links when
23514         finalizing them, this is necessary to aviod a crash in boehm's
23515         finalize handler.
23516
23517 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
23518
23519         * gc.c: handle GetTarget for finalized objects spotted and fixed by
23520         nick@chemlab.org.
23521
23522 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
23523
23524         * icall.c: implemented MonoType::Module.
23525         * reflection.c, reflection.h: mono_module_get_object () from
23526         Tomi Pakarinen <tomi.pakarinen@welho.com>.
23527
23528 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
23529
23530         * icall.c: ignore overridden methods in GetMethods ().
23531         Fix for FieldInfo::SetValue().
23532         * object.c: handle float/double in runtime invoke.
23533
23534 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
23535
23536         * object.c: allow a constructor to be called again on an object.
23537
23538 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
23539
23540         * class.h, class.c: move field layout code to it's own function and
23541         export it. Get an interface id earlier. Move fields in MonoClass
23542         so they are more cache friendly and align the bitfields.
23543         * loader.c: temporary handle get_param_names() for a runtime method.
23544         * reflection.c, reflection.h: more code to handle runtime creation of
23545         types.
23546
23547 2002-09-09  Martin Baulig  <martin@gnome.org>
23548
23549         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
23550         signature with the pinvoke field being set for the actual call.
23551
23552 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
23553
23554         * icall.c: removed some unused icalls. Start of map of glib charsets
23555         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
23556
23557 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
23558
23559         * debug-helpers.c: break infinite loop (found and fixed by
23560         Holger Arnold <harnold@gmx.de>).
23561
23562 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
23563
23564         * icall.c: target may be null in create_delegate.
23565
23566 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
23567
23568         * marshal.c: handle a boolean return type.
23569
23570 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
23571
23572         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
23573
23574 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
23575
23576         * gc.c: fix weakreferences.
23577
23578 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
23579
23580         * icall.c: added icall to get default codepage.
23581
23582 2002-09-03  Dick Porter  <dick@ximian.com>
23583
23584         * threads.h: 
23585         * threads.c: Use MonoThread instead of MonoObject where
23586         apropriate.
23587
23588         Store running thread objects in a hash table, so that we have all
23589         the info to hand when waiting for them to finish
23590         (means we don't need OpenThread() any more, so mingw builds should
23591         be fully functional again.)
23592
23593         * verify.c:
23594         * object.h: Added thread ID to MonoThread
23595
23596 2002-09-03  Martin Baulig  <martin@gnome.org>
23597
23598         * icall.c (System.Reflection.Assembly::get_location): New interncall.
23599
23600 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23601
23602         * icall.c: fixed leak in get_temp_path. Thanks lupus.
23603
23604 2002-09-03  Martin Baulig  <martin@gnome.org>
23605
23606         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
23607         argument to store the end address of the disassembled instruction.
23608
23609         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
23610         here from debug-symfile.h.
23611         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
23612         JIT into this struct.
23613         (MonoSymbolFile): Added `char *image_file' field.
23614         (MonoDebugGetMethodFunc): Removed.
23615         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
23616         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
23617         (mono_debug_find_method): New method.
23618
23619         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
23620         create a full symbol file.
23621         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
23622         and static symbol files.
23623         (mono_debug_find_method): The symbol file keeps an internal method hash,
23624         call this to get a MonoDebugMethodInfo from a MonoMethod.
23625
23626         * debug-symfile.[ch]: Removed.
23627
23628 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
23629
23630         * image.c (do_mono_image_open): Remove linker version check.
23631
23632 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
23633
23634         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
23635         wrappers for instance methods.
23636         
23637 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23638
23639         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
23640
23641 2002-08-28  Dick Porter  <dick@ximian.com>
23642
23643         * Makefile.am: Export HOST_CC for w32 builds
23644
23645 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
23646
23647         * file-io.c process.c: MonoString are null terminated, no
23648         need for mono_string_to_utf16() anymore.
23649
23650 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
23651
23652         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
23653
23654 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
23655
23656         * icall.c, reflection.h: speedup System.MonoType.
23657
23658 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
23659
23660         * reflection.c: allow null as the value of a string argument in
23661         custom attributes constructors.
23662
23663 2002-08-27  Martin Baulig  <martin@gnome.org>
23664
23665         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
23666         `trampoline_address' field.
23667
23668 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
23669
23670         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
23671         check (fixes bug #29486) 
23672
23673 2002-08-27  Martin Baulig  <martin@gnome.org>
23674
23675         * debug-mono-symfile.c: Changed the file format in a way that allows us
23676         open it read-only and to use a specially malloced area for all the
23677         dynamic data.  We can now also generate a symbol file on-the-fly if we're
23678         debugging IL code and there is no MCS generated symbol file for it.
23679
23680 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
23681
23682         * object.c: added a define for a good string and array
23683         creation speedup (not enabled by default because we need to deal with
23684         the synch stuff).
23685
23686 2002-08-26  Martin Baulig  <martin@gnome.org>
23687
23688         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
23689         function to create a dynamic symbol file.  This is used by the
23690         debugger to create a symbol file for IL code on-the-fly.
23691
23692 2002-08-26  Martin Baulig  <martin@gnome.org>
23693
23694         * loader.c (mono_lookup_pinvoke_call): Include the error message
23695         from g_module_error() in the error message.
23696
23697 2002-08-24  Martin Baulig  <martin@gnome.org>
23698
23699         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
23700         function to update the symbol file.  The symbol file is mmap()ed
23701         writable, but private.  This allows us to install the symbol file
23702         together with the assembly.
23703
23704 2002-08-24  Martin Baulig  <martin@gnome.org>
23705
23706         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
23707         but they can read the new symbol file format which mcs is now creating.
23708
23709         * debug-symfile.c (mono_debug_find_source_location): Moved to
23710         debug-mono-symfile.c; this is now operating on the new symbol file.
23711
23712 2002-08-23  Martin Baulig  <martin@gnome.org>
23713
23714         * debug-helpers.c (mono_method_desc_from_method): New function to get
23715         a MonoMethodDesc from a MonoMethod.
23716
23717 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
23718
23719         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
23720         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
23721
23722 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
23723
23724         * string-icalls.[ch]: make helper methods static.
23725
23726 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23727
23728         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
23729         types to it and to SetValueInternal.
23730
23731         * object.c: Moved handle_enum label to its proper place. This was the
23732         f... bug! ;-)
23733
23734         This time i compiled mcs and gtk-sharp and they both work.
23735
23736 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23737
23738         * icall.c: reverted partially my previous patch until 
23739         object.c:set_value handles enums correcly.
23740
23741 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23742
23743         * icall.c:
23744         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
23745         (ves_icall_System_Environment_get_MachineName): removed warning when
23746         compiling under cygwin.
23747
23748 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
23749
23750         * object.c: fixed field_get_value() for reference types.
23751
23752 2002-08-22  Dick Porter  <dick@ximian.com>
23753
23754         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
23755         Don't free a buffer while it's still needed.  Patch from Jonathan
23756         Liger <Jonathan.liger@wanadoo.fr>
23757
23758 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
23759
23760         * icall.c (ves_icall_System_Environment_get_Platform): Add new
23761         internal call.
23762
23763 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
23764
23765         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
23766         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
23767
23768         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
23769         we call unmanaged code which throws exceptions.
23770
23771 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
23772
23773         * appdomain.h: added per-domain entry_assembly.
23774         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
23775         arguments.
23776         * icall.c: Assembly::GetEntryAssembly icall.
23777         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
23778         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
23779
23780 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
23781
23782         * appdomain.h, gc.c: added mono_domain_finalize ().
23783
23784 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23785
23786         * object.c:
23787         (mono_print_unhandled_exception): changed g_warning by g_printerr
23788         because g_log has a 1024 characters limit (yeah, i got a big stack
23789         trace). Don't print exception name, that should be in ToString 
23790         returned string.
23791
23792 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23793
23794         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
23795         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
23796
23797 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23798
23799         * object.c:
23800         (mono_print_unhandled_exception): after previous commit, i realized
23801         that MS calls ToString on the exception. I changed this function to
23802         do that. This way we get stack_trace for free.
23803
23804 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23805
23806         * object.c:
23807         (mono_print_unhandled_exception): invoke Message property instead of
23808         getting 'message' field from Exception. Don't allocate memory for
23809         'trace' and 'message' if not needed.
23810
23811 2002-08-18  Dick Porter  <dick@ximian.com>
23812
23813         * unicode.c: Fix asserts to match Encoder.cs checks
23814
23815 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
23816
23817         * marshal.c: fix unaligned store issue and a few wrong
23818         opcode argument types.
23819
23820 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23821
23822         * icall.c: added GetUninitializedObjectInternal internal call.
23823
23824 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
23825
23826         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
23827         to the right domain.
23828
23829 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
23830
23831         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
23832
23833         * class.c (class_compute_field_layout): set blittable to false for Strings
23834
23835         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
23836
23837 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
23838
23839         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
23840         first chunk of code to create types at runtime. Code to
23841         handle ReflectedType/DeclaringType. Make reflection handles
23842         domain specific.
23843
23844 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
23845
23846         * class.c: set correct name in arrays.
23847
23848 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
23849
23850         * appdomain.c (mono_domain_transfer_object): make it work with
23851         valuetypes. bug fixes.
23852
23853 2002-08-12  Dick Porter  <dick@ximian.com>
23854
23855         * object.h: Rename some parameters to avoid c++ keywords (Patch
23856         from Joseph Wenninger <kde@jowenn.at>)
23857
23858 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
23859
23860         * icall.c: added icall to implement Assembly.GetFile*.
23861
23862 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
23863
23864         * reflection.h, reflection.c: code to embed managed resources.
23865
23866 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
23867
23868         * class.c: move all the type size stuff into
23869         class_compute_field_layout().
23870
23871 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
23872
23873         * class.c: ensure enums have always the correct instance size.
23874         * unicode.c: remove wrong assert.
23875
23876 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
23877
23878         * assembly.c: fix mem corruption issue.
23879         * image.h, image.c: added mono_image_get_resource () to access
23880         managed resources.
23881         * icall.c: implemented Assembly.EntryPoint property and some
23882         Managed Resources related internalcalls.
23883
23884
23885 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
23886
23887         * image.c, image.h: impemented mono_image_get_entry_point ().
23888         * appdomain.c: use mono_image_get_entry_point.
23889
23890 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
23891
23892         * reflection.c: support the object type argument when loading
23893         custom attributes.
23894
23895 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
23896
23897         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
23898         String as return type.
23899
23900 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
23901
23902         * reflection.c: fix encoding of named args for custom attrs to match
23903         the ms implementation. Read them back when instantiating custom
23904         attributes.
23905
23906 2002-08-02  Radek Doulik  <rodo@ximian.com>
23907
23908         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
23909         by Dietmar as quick fix
23910         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
23911         16 as stack size, used on more places as quick fix before Dietmar
23912         will fix it properly
23913
23914 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
23915
23916         * object.h, object.c: added accessors for fields and properties.
23917
23918 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
23919
23920         * class.c, class.h: made mono_class_get_field_from_name ()
23921         loop on parent types.
23922         Added mono_class_get_property_from_name ().
23923
23924 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
23925
23926         * class.c, class.h: move the code to setup the type vtable in its own
23927         function so that it can be reused also for types created at runtime.
23928         Eliminate the "class" identifier from the header file.
23929         * reflection.c: setup the vtable for enums so that we can create
23930         objects for use in SetConstant ().
23931
23932 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
23933
23934         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
23935         instead of the delegate itself as this pointer (bug #28383)
23936
23937 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
23938
23939         * marshal.c (mono_marshal_get_managed_wrapper): added return type
23940         conversions.
23941
23942 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
23943
23944         * loader.c: don't set the pinvoke bit on icalls.
23945
23946 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
23947
23948         * debug-helpers.c (mono_method_full_name): only print a number to
23949         indicate wrapper type (so that the output is more readable in traces).
23950
23951 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
23952
23953         * class.c (mono_class_init): include method override patch from Paolo
23954
23955 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
23956
23957         * icall.c: fixed GetTypeCode().
23958
23959 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
23960
23961         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
23962         use real delegate invoke function to make it work with multicast
23963         delegates (fix bug# 28291).
23964
23965 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
23966
23967         * object.c: load constant strings.
23968
23969 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
23970
23971         * reflection.c: no magic numbers.
23972         * tabledefs.h: security action enum.
23973
23974 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
23975
23976         * assembly.c: fix possible memory corruption.
23977
23978 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
23979
23980         * reflection.h, reflection.c: added support for linking resources.
23981         * verify.c: check we have an updated corlib.
23982
23983 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
23984
23985         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
23986         string arrays.
23987         (mono_marshal_string_array): null terminate unmanaged string arrays.
23988         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
23989
23990 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
23991
23992         * icall.c: Type.GetType () can now return also types from the
23993         calling assembly.
23994
23995 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
23996
23997         * loader.h, loader.c: stack walking support.
23998         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
23999         GetCallingAssembly.
24000
24001 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
24002
24003         * marshal.c: added optimisations for blittable types 
24004
24005         * class.c (mono_array_class_get): do not set blittable attribute on arrays
24006         (mono_class_setup_mono_type): set blittable attribute for single
24007         and double.
24008
24009         * marshal.c (mono_string_utf8_to_builder): impl.
24010         (mono_string_builder_to_utf8): impl.
24011         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
24012
24013 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
24014
24015         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
24016         (mono_marshal_get_managed_wrapper): impl. byref types
24017
24018 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24019
24020         * icall.c:
24021         (search_method): don't display debug message. 
24022
24023 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
24024
24025         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
24026
24027 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
24028
24029         * appdomain.c: set the missing filename when throwing exception.
24030
24031 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
24032
24033         * metadata.c (mono_type_size): code cleanup
24034         (mono_type_stack_size): removed some test code
24035
24036 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
24037
24038         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
24039         mono_get_exception_file_not_found now.
24040
24041         * exception.c (mono_exception_from_name_two_strings): New version
24042         that will call a constructor with two string arguments. 
24043         (mono_get_exception_file_not_found): New helper routine, used to
24044         report file-not-found errors.
24045
24046 2002-07-20  Dick Porter  <dick@ximian.com>
24047
24048         * process.h:
24049         * process.c: Pass file handles to CreateProcess
24050         
24051         * icall.c:
24052         * file-io.h:
24053         * file-io.c: Implemented CreatePipe
24054
24055 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
24056
24057         * metadata.c (mono_get_param_info): set alignment for value types
24058
24059 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
24060
24061         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
24062         Constify mono_domain_assembly_open().
24063         * loader.c: handle null namespace in icalls.
24064
24065 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
24066
24067         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
24068         (emit_str_to_ptr_conv): marshal object as structs
24069
24070         * metadata.c (mono_type_to_unmanaged): marshal object as structs
24071
24072         * marshal.c (mono_marshal_get_runtime_invoke): support value types
24073
24074 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
24075
24076         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
24077         (mono_marshal_get_native_wrapper): we an now return value types
24078
24079 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
24080
24081         * verify.c: more checks implemented.
24082
24083 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
24084
24085         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
24086         (fix bug #27695)
24087         (mono_marshal_get_native_wrapper): allow byref arguments
24088         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
24089         impl. PtrToStringXXX methods
24090         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
24091         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
24092         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
24093         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
24094         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
24095
24096 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
24097
24098         * reflection.c: fix buglet in parsing an assembly name.
24099
24100 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
24101
24102         * marshal.c (emit_ptr_to_str_conv): first impl.
24103
24104 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
24105
24106         * object.c, class.h: cache the vtable in the class as suggested by
24107         vargaz@freemail.hu (Zoltan Varga).
24108
24109 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
24110
24111         * class.h, loader.c: added mono_field_from_token().
24112         * verify.c: first cut of type checking code.
24113
24114 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
24115
24116         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
24117
24118 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
24119
24120         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
24121         (fix bug #27782)
24122         (mono_marshal_get_remoting_invoke): impl.
24123         (mono_delegate_begin_invoke): impl.
24124         (mono_mb_emit_save_args): impl.
24125         (mono_delegate_end_invoke): impl.
24126         (mono_marshal_get_delegate_begin_invoke):
24127         (mono_marshal_get_delegate_end_invoke):
24128         (mono_marshal_get_delegate_invoke): generate a special name for
24129         those methods (including the signature) and associate them whith
24130         the delegate class. 
24131
24132 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
24133
24134         * reflection.[ch]: 
24135         (mono_reflection_type_from_name): now it has a MonoImage parameter
24136         which is used as the default image to search the type in. If the image
24137         is NULL or getting the type from it fails, it defaults to corlib.
24138
24139         * icall.c: changed 1 call to mono_reflection_type_from_name to match
24140         new parameter.
24141
24142 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
24143
24144         * reflection.c: update the parameter table index.
24145
24146 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
24147
24148         * domain.c: don't include the mark byte in the string hash.
24149
24150 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
24151
24152         * icall.cs: icall for Type.GetTypeCode ().
24153         * verify: a couple of fixes and disabled local initialization checks.
24154
24155 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
24156
24157         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
24158
24159         * debug-helpers.c (mono_method_full_name): print the type of the
24160         runtime wrapper
24161
24162         * metadata.c (mono_signature_hash): a hash function for signatures
24163         (mono_signature_hash): better hash algorithm
24164
24165         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
24166
24167         * debug-helpers.c (mono_method_full_name): this can now generate
24168         method names with signatures
24169
24170         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
24171         method dont have this pointers.
24172
24173 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
24174
24175         * reflection.c: fixup typebuilder tokens.
24176         * image.c: fix buglet.
24177         * marshal.h: remove whitespace.
24178         * metadata.h, metadata.c: reinstate code that was removed.
24179         * verify.c: handle catch directives and fix another couple of bugs.
24180
24181 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
24182
24183         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
24184         (mono_marshal_get_native_wrapper): make it comp. with the old code
24185         (mono_marshal_get_native_wrapper): support boolean
24186         (mono_marshal_get_managed_wrapper): support more types
24187
24188 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
24189
24190         * class.c (class_compute_field_layout): compute class->blittable attribute.
24191
24192 2002-07-09  Dick Porter  <dick@ximian.com>
24193
24194         * threads.c: Make the thread cleaning up cope with threads that
24195         call ExitThread()
24196
24197 2002-07-08  Radek Doulik  <rodo@ximian.com>
24198
24199         * reflection.c (method_encode_code): use non-translated values to
24200         compute finally_start, this fixes exception handling on ppc, yay!
24201
24202         * decimal.h (struct signscale): fix endianess
24203
24204 2002-07-07  Radek Doulik  <rodo@ximian.com>
24205
24206         * reflection.c: swap box_val and not val
24207
24208 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
24209
24210         * reflection.c, reflection.h: handle full assembly info in type name.
24211         Handle Type arguments when loading custom attributes.
24212         * icall.c: updated to use new mono_reflection_type_from_name () method.
24213
24214 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24215
24216         * loader.c:
24217         (method_from_memberref): also print assembly name when method not found.
24218
24219 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24220
24221         * icall.c:
24222         (ves_icall_TypeGetProperties): fixed bug #27473. 
24223
24224 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24225
24226         * reflection.c: display image name and token when cannot find the
24227         .ctor for an attribute.
24228
24229 2002-07-05  Martin Baulig  <martin@gnome.org>
24230
24231         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
24232
24233 2002-07-04  Dick Porter  <dick@ximian.com>
24234
24235         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
24236         compile on mingw.  This will cause mingw builds to not wait for
24237         subthreads to terminate after the main thread does.  I've lodged a
24238         bug with the mingw developers for them to wrap OpenThread().
24239
24240 2002-07-03  Dick Porter  <dick@ximian.com>
24241
24242         * threads.c: Store thread IDs instead of handles, because
24243         GetCurrentThread() returns a pseudohandle and therefore stores
24244         useless values.  mono_thread_cleanup() continues checking the
24245         array of threads until it is empty, to cope with subthreads
24246         spawning new threads after the main thread has finished.
24247
24248         * profiler.h:
24249         * profiler.c:
24250         * profiler-private.h: Pass the thread ID to thread profiler
24251         functions, instead of a handle
24252
24253 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
24254
24255         * verify.c: fixes to make it more usable.
24256         * pedump.c: added --verify code to verify IL code in an assembly.
24257
24258 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
24259
24260         * reflection.c: turn errors into warnings to allow compiling corlib.
24261
24262 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
24263
24264         * reflection.c: add special cases to compile corlib.
24265
24266 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
24267
24268         * reflection.c: handle properties with only a set method.
24269
24270 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
24271
24272         * opcodes.h: add enum with opcodes in opval order.
24273
24274 2002-07-01  Dick Porter  <dick@ximian.com>
24275         
24276         * object.h:
24277         * object.c (mono_runtime_run_main): Removed unneeded argument
24278
24279 2002-06-28  Martin Baulig  <martin@gnome.org>
24280
24281         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
24282
24283 2002-06-27  Dick Porter  <dick@ximian.com>
24284
24285         * threads.c: Store the handle in both the parent thread and in the
24286         subthread, to minimise the time between starting a new thread and
24287         storing its ID.
24288
24289 2002-06-26  Dick Porter  <dick@ximian.com>
24290
24291         * appdomain.c (mono_runtime_cleanup): Close the socket library
24292         after all the threads have finished, not before
24293
24294 2002-06-26  Martin Baulig  <martin@gnome.org>
24295
24296         * debug-symfile.c (mono_debug_find_source_location): Added
24297         `guint32 *line_number' argument.  If it's not NULL, store the line number
24298         there and return the file name without the line number.
24299
24300 2002-06-25  Dick Porter  <dick@ximian.com>
24301
24302         * icall.c:
24303         * process.h:
24304         * process.c: Process forking and other support functions
24305
24306 2002-06-25  Dick Porter  <dick@ximian.com>
24307
24308         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
24309         things dont happen when the image is closed.
24310         (mono_image_lookup_resource): Walk the resource section looking
24311         for a particular entry
24312
24313         * cil-coff.h: PE resource section decoding
24314
24315 2002-06-25  Dick Porter  <dick@ximian.com>
24316         
24317         * assembly.h:
24318         * assembly.c: 
24319         (mono_assembly_foreach): Accessor functions to walk the list of
24320         loaded assemblies
24321         (mono_assembly_set_main):
24322         (mono_assembly_get_main): Process methods need to know which
24323         assembly is the "main" one
24324
24325         * object.c (mono_runtime_run_main): Record the main assembly
24326
24327         * debug-helpers.c: Fix typo
24328
24329 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
24330
24331         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
24332         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
24333
24334 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
24335
24336         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
24337
24338 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
24339
24340         * image.c (do_mono_image_open): Initialize reference count,
24341         otherwise we leak the MonoImage.
24342
24343 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
24344
24345         * reflection.c: small tweak to handle self-hosting.
24346
24347 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
24348
24349         * reflection.c: fix type name parse code.
24350
24351 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
24352
24353         * reflection.c: break out of the loop.
24354         * image.c: special case corlib.
24355
24356 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
24357
24358         * reflection.c: add all the custom attrs at the end to ensure the
24359         ctors have been properly initialized when the attributes are defined
24360         in the current assembly.
24361
24362 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
24363
24364         * reflection.c: handle correctly multiple-nested types.
24365
24366 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
24367
24368         * row-indexes.h: fix typos.
24369         * reflection.c: adjust for typos and fix method_def_or_ref
24370         encoding in MethodImpl table.
24371
24372 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
24373
24374         * reflection.c: fix entry point patching (thanks Serge!).
24375
24376 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
24377
24378         * verify.c: add check for System.Exception
24379
24380 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
24381
24382         * image.c, class.c: minifix for code just c&p'ed.
24383         * reflection.c: warning fix.
24384         * object.h, loader.h, domain.c: load also StringBuilder.
24385
24386 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
24387
24388         * marshal.h, marshal.c: some support code to handle complex marshaling.
24389
24390 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
24391
24392         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
24393         Better signatures with vtable error dump.
24394
24395 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
24396
24397         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
24398
24399 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
24400
24401         * icall.c (ves_icall_Type_GetField): impl.
24402
24403 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
24404
24405         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
24406         to retrieve a marshal description blob for a field or param.
24407
24408 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
24409
24410         * reflection.h, reflection.c: change order of nested type emission
24411         to avoid table corruption. The NestedTypes table is sorted.
24412         * icall.c: change order of GetConstructor results to workaround mcs bug.
24413
24414 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
24415
24416         * reflection.h, reflection.c: handle field and param marshal
24417         information.
24418
24419 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
24420
24421         * icall.c, marshal.c marshal.h: more Marshal class implementation.
24422
24423 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
24424
24425         * reflection.c: fix call convention.
24426
24427 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
24428
24429         * reflection.h, reflection.c: mono_image_get_memberref_token()
24430         takes a type instead of a class, now. Added
24431         mono_image_get_array_token() to create tokens for the special
24432         multi-dim array methods.
24433
24434 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
24435
24436         * assembly.c: handle modules (no assembly table). Split
24437         loading references in its own function.
24438         * class.c: handle moduleref resolution scope.
24439         * image.c, image.h: cache module name in image.
24440
24441 2002-06-07  Martin Baulig  <martin@gnome.org>
24442
24443         * reflection.c (mono_image_get_type_info): Only add a class layout entry
24444         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
24445
24446 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
24447
24448         * icall.c: more signature fixes that used uint instead of int.
24449
24450 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
24451
24452         * reflection.c: fixed signature of field refs.
24453
24454 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
24455
24456         * class.c, reflection.c: handle typerefs of nested types
24457         (both on read and when writing files).
24458
24459 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
24460
24461         * icall.c: fix method signatures that tried to workaround the previous
24462         typo, d'oh!
24463
24464 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
24465
24466         * debug-helpers.c: fix typo.
24467
24468 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
24469
24470         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
24471         rewrote the PE/COFF writing code (our programs are understood by the
24472         ms runtime, now).
24473
24474 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
24475
24476         * gc.c, gc.h, icall.c: weakreference support.
24477
24478 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
24479
24480         * Makefile.am, mono-config.c: use $(sysconfdir).
24481
24482 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
24483
24484         * icall.c: changed default precision of Double.ToString() to 15.
24485         Fixed memory leak. Unified with Single.ToString.
24486
24487 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
24488
24489         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
24490
24491 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
24492
24493         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
24494         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
24495         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
24496         and myself.
24497
24498 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
24499
24500         * debug-symfile.c, sysmath.c: yet more compilation fixes.
24501
24502 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
24503
24504         * reflection.c, socket-io.c: more compilation fixes.
24505
24506 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
24507
24508         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
24509         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
24510         unicode.c: warning and compiler compatibility fixes.
24511
24512 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
24513
24514         * class.h, metadata.c: fixed warnings/compilation errors.
24515
24516 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
24517
24518         * Makefile.am, mono-config.c, mono-config.h: configuration file
24519         support routines.
24520         * loader.c, loader.h: make Dll mapping configurable at runtime in the
24521         config file. Export methods to insert and lookup mappings.
24522
24523 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
24524
24525         * reflection.c: handle types and boxed objects in custom attr
24526         constructors.
24527
24528 2002-05-30  Martin Baulig  <martin@gnome.org>
24529
24530         * debug-symfile.c
24531         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
24532
24533 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
24534
24535         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
24536         to lookup the implmap row for a P/Invoke method.
24537         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
24538         P/Invoke method from the runtime on an as needed basis.
24539
24540 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
24541
24542         * metadata.c (mono_metadata_parse_signature): impl.
24543
24544 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
24545
24546         * class.c: handle .pack directive.
24547
24548 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
24549
24550         * object.c: initialize static fields with RVA data.
24551
24552 2002-05-25  Martin Baulig  <martin@gnome.org>
24553
24554         * debug-symfile.c
24555         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
24556
24557 2002-05-24  Martin Baulig  <martin@gnome.org>
24558
24559         * debug-symfile.c
24560         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
24561         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
24562         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
24563
24564 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
24565
24566         * object.c: special case string ctros in invoke.
24567         * gc.c: silly whitespace changes.
24568
24569 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
24570
24571         * threadpool.[ch]: impl. a threadpool that can
24572         be used by mint and mono.
24573
24574 2002-05-22  Martin Baulig  <martin@gnome.org>
24575
24576         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
24577         The first argument is now a `MonoReflectionModuleBuilder *', the return
24578         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
24579         `methods' field to get the method builder.  The `token' argument is the
24580         unfixed token.
24581
24582         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
24583         invalid characters instead of g_assert_not_reached()ing.  This seems
24584         to be the behaviour of mscorlib.
24585
24586 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
24587
24588         * object.c (mono_runtime_invoke_array): applied patch from Rachel
24589         Hestilow to fix bug #25104
24590
24591 2002-05-21  Martin Baulig  <martin@gnome.org>
24592
24593         * debug-symfile.c (mono_debug_find_source_location): New function.
24594         Looks up an IL offset in the line number table and returns the source
24595         location as a string.
24596
24597 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24598
24599         * icall.c:
24600         (mono_double_ToStringImpl): changed %f by %g until we have something
24601         better.
24602
24603 2002-05-21  Nick Drochak  <ndrochak@gol.com>
24604
24605         * icall.c : Use different name for Math.Pow's icall.  Needed to check
24606         parameters first in C#.
24607
24608 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
24609
24610         * icall.c, reflection.h: added icall to get info about an event.
24611
24612 2002-05-20  Radek Doulik  <rodo@ximian.com>
24613
24614         * object.c (mono_value_box): don't use memcpy for boxing on BIG
24615         endian
24616         (mono_value_box): don't use memcpy for small sizes on
24617         architectures with unaligned access
24618
24619 2002-05-20  Martin Baulig  <martin@gnome.org>
24620
24621         * reflection.c (mono_reflection_setup_internal_class): Don't crash
24622         if `tb->parent == NULL'.
24623         (mono_reflection_create_internal_class): New function.  This is
24624         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
24625         for enum types.
24626
24627         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
24628         New interncall.
24629
24630 2002-05-19  Martin Baulig  <martin@gnome.org>
24631
24632         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
24633         argument to get the length, don't default to the array length.
24634
24635 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
24636
24637         * assembly.c (mono_assembly_setrootdir): New function used to
24638         override the MONO_ASSEMBLIES directory.
24639
24640 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
24641
24642         * icall.c: ValueType_GetHashCode() initialize local var.
24643
24644 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
24645
24646         * reflection.c: sort custom attributes table.
24647
24648 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
24649
24650         * reflection.c: support named args in custom attributes (write support).
24651
24652 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
24653
24654         * reflection.c: fix finally position calculation.
24655
24656 2002-05-15  Radek Doulik  <rodo@ximian.com>
24657
24658         * reflection.c: fixed endianess at many places
24659
24660         * icall.c (ves_icall_InitializeArray): comment out debug msg
24661
24662 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
24663
24664         * object.c (mono_unhandled_exception): new function to handle
24665         unhandled exceptions.
24666         (mono_unhandled_exception): call the UnhandledException event.
24667         (mono_runtime_delegate_invoke): impl.
24668
24669 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
24670
24671         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
24672         returns the RVA, not the direct pointer to the data. Handle the case
24673         when the class size is fixed.
24674
24675 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
24676
24677         * reflection.c: fix some endianess issues.
24678
24679 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
24680
24681         * object.c (mono_runtime_invoke): is now able to catch exceptions.
24682
24683         * threads.c (mono_thread_init): added a callback which is invoked
24684         at thread start.
24685
24686 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
24687         
24688         * icall.c: make GetHashCode return non-negative values.
24689
24690 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
24691
24692         * object.c, icall.c, gc.c: revert to address-based hashcode.
24693
24694 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
24695
24696         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
24697
24698 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
24699
24700         * icall.c, class.c: special case <Module>.
24701
24702 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
24703
24704         * icall.c: fix bug in GetNow().
24705
24706 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
24707
24708         * object.c (mono_runtime_class_init): make sure that we call all
24709         static class constructors.
24710
24711 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
24712
24713         * reflection.c: sort methodsemantics table.
24714
24715 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
24716
24717         * reflection.h, reflection.c: honour init locals setting.
24718
24719 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
24720
24721         * icall.c: copied Double ToStringImpl for Single ToStringImpl
24722
24723 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
24724
24725         * reflection.c: support ContructorBuilders in attribute blob creation.
24726
24727 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
24728
24729         * reflection.c: some changes to build a binary that can be run
24730         directly in windows.
24731
24732 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
24733
24734         * loader.c: print a big message when an icall can't be found.
24735
24736 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24737
24738         * string-icalls.c: fix bug 24248.
24739
24740 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
24741
24742         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
24743         icall.c, reflection.h: separate assembly loading by pathname and by
24744         assembly name. Use the MONO_PATH env var to search for assemblies.
24745
24746 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
24747
24748         * assembly.c, image.h: add some support for assemblies
24749         with multiple modules.
24750         * class.c, class.h: export mono_class_from_typeref().
24751         * loader.c: remove duplicated code and use mono_class_from_typeref(),
24752         instead.
24753
24754 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
24755
24756         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
24757         documentation says (the ECMA one is correct).
24758
24759 2002-05-02  Dick Porter  <dick@ximian.com>
24760
24761         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
24762         Don't name the synchronisation mutex.
24763
24764 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
24765
24766         * rand.c
24767         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
24768         Make the prototypes match.
24769         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
24770         Same.
24771
24772         * icall.c
24773         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
24774         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
24775         all systems have tm.tm_zone, so use strftime() with %Z to print
24776         the timezone abreviation into a temp string.
24777
24778         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
24779         rather than mono_array_addr() on a MonoString on Big Endian
24780         machines.
24781
24782 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
24783
24784         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
24785         fix bug 24041
24786
24787 2002-04-30  Dick Porter  <dick@ximian.com>
24788
24789         * socket-io.c: Cope with SOCKET being an integer rather than a
24790         pointer now.
24791
24792         * threads.c: Added Thread_free_internal, to deal with thread
24793         handle cleanup.  Moved calls to handle_store() and handle_remove()
24794         to start_wrapper(), so each can only be called once.  Allocate
24795         synchronisation blocks with GC_malloc(), and use GC finalisation
24796         to close the handles.
24797
24798         * icall.c: added System.Threading.Thread::Thread_free_internal
24799
24800 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
24801
24802         * icall.c: support Environment.Exit, CommandLineArgs().
24803
24804 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
24805
24806         * object.c, object.h: added mono_runtime_run_main () and
24807         mono_runtime_get_main_args () for use in System.Environment.
24808
24809 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
24810
24811         * gc.c: fix thinko, enable actual finalization since the jit is now
24812         fixed.
24813
24814 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
24815
24816         * gc.c, object.c: take into account that an object may be offset wrt the address
24817         returned by GC_malloc().
24818
24819 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
24820
24821         * image.c: handle files without entries in the assembly table (modules).
24822
24823 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
24824
24825         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
24826         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
24827         allowed to be null when it's System.Object class setup.
24828
24829 2002-04-27  Martin Baulig  <martin@gnome.org>
24830
24831         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
24832         if `tb->parent == NULL' rather than crashing.
24833
24834 2002-04-28  Nick Drochak  <ndrochak@gol.com>
24835
24836         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
24837         calling acos() where asin() should have been called.
24838
24839 2002-04-26  Martin Baulig  <martin@gnome.org>
24840
24841         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
24842         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
24843         there's a subdirectory called `System', but we don't want to read that
24844         subdirectory as an assembly.
24845
24846 2002-04-25  Martin Baulig  <martin@gnome.org>
24847
24848         * debug-symfile.c: Reflect latest MonoString changes.
24849
24850 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
24851
24852         * rand.c, rand.h: instance method icalls need to have an explicit
24853         this pointer as first argument in the C implementation.
24854
24855 2002-04-25  Nick Drochak <ndrochak@gol.com>
24856
24857         * icall.c: Fix typo in map for GetNonZeroBytes
24858
24859 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
24860
24861         * string-icalls.c : String does now passes unit tests without any 
24862         errors, the following changes has been made:
24863         
24864         Implemented replace methods.
24865         Renaming of methods to (try) follow the standard.
24866         Fixed compare ordinal
24867         Made all memory allocated directly to function instead of via icall function.
24868         Small performance fix in is_in_array function
24869                         
24870  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
24871
24872         c (mono_string_Internal_ctor_charp_int_int):
24873         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
24874         sindex < 0, throw ArgumentOutOfRangeException instead of
24875         ArgumentNullException.
24876
24877         Added new check for length == 0, however
24878         I need to make it return String.Empty from the C code.
24879         
24880         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
24881         that calculate the length for us here.
24882         
24883         (mono_string_Internal_ctor_sbytep_int_int): Replaced
24884         mono_string_new_utf16 with mono_string_new, since value is utf8.
24885
24886 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
24887
24888         * object.c: register the object for finalization if needed.
24889         Allocate one more char in the string for the terminating 0 char.
24890
24891 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
24892
24893         * class.c, class.h, image.c: check if a type implemenst a destructor.
24894         Use the proper key for array class lookups.
24895         * icall.c: register the icalls in the System.GC class.
24896         * gc.c, gc.h: GC-related functions and icalls.
24897
24898 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24899
24900         * icall.c:
24901         * socket-io.c:
24902         * unicode.c: free some strings gotten from mono_string_to_utf8 and
24903         changed a couple of free () by g_free ().
24904
24905         * decimal.c: one-liner in the comments for decimal2string ().
24906
24907 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
24908
24909         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
24910
24911 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
24912
24913         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
24914         * object.c (mono_runtime_invoke_array) : handle null in params
24915
24916 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
24917
24918         * string-icalls.c: fixed bug in split (one off bug)
24919
24920 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
24921
24922         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
24923         * icalls.c: added String::Equals as internal method
24924
24925 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
24926
24927         * threads.c: fixed bug in the double interlocked functions
24928
24929 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
24930
24931         * threads.c: implemented all of the new interlocked icalls.
24932         * string-icalls.c: fix a bug in insert.
24933         * icalls.c: added the icalls for interlocked, removed old string functions.
24934         
24935 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
24936
24937         * loader.c: fix off-by-one error when reading argument names.
24938
24939 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
24940
24941         * profiler.c: win32 counter implementation (untested).
24942         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
24943         (the latter needs testing and more complete impl. from win32 folks).
24944
24945 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
24946
24947         * object.c: mono_array_new_full workaround mono_array_class_get
24948         problem.
24949
24950 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
24951
24952         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
24953         * object.h (mono_string_chars): Changed casting type.
24954
24955 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
24956
24957         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
24958                            method signatures to use gunichar2 instead of gint16.
24959
24960 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
24961
24962         * object.h, object.c: domain-specific versions of mono_object_new and
24963         mono_array_new.
24964
24965 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
24966
24967         * object.c: changed String layout
24968
24969         * string-icalls.c (mono_string_Internal_ctor_chara): added
24970         internal string constructors.
24971
24972 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
24973
24974         * threads.c: pass 'this' to the thread start routine.
24975
24976 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24977
24978         * string-icalls.c: fix IndexOf and LastIndexOf. Now
24979         InternalCompareStr don't call twice mono_string_cmp_char for the last
24980         character. Improved performance in mono_string_cmp_char.
24981
24982 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
24983
24984         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
24985         code into its own library: libmonoruntime.
24986
24987 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
24988
24989         * object.h, object.c: changed array format so that szarrays do not
24990         require a bounds structure.
24991         * icall.c, appdomain.c: support for new szarray format.
24992
24993 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
24994
24995         * metadata.c: compare also the retuns type when comparing signatures:
24996         we didn't do this as an optimization since really overloaded methods
24997         must differ also in the arguments, but this doesn't work with
24998         low-level IL code (or when using explicit conversion operators: see
24999         bug#23498 for an example).
25000
25001 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
25002
25003         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
25004
25005 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
25006
25007         * icall.c: make MonoType::GetElementType its own icall.
25008
25009 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
25010
25011         * icall.c: remove MonoMethod_get_Name().
25012         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
25013         object.
25014
25015 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
25016
25017         * string-icalls.c: optimized a few methods.
25018
25019 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
25020
25021         * icall.c: added all new string internal calls
25022         * string-icalls.c: added, new string internal call implementation.
25023         * object.c: added mono_string_new_size for allocating a string a size
25024
25025 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
25026
25027         * object.c (mono_object_isinst): use the same code as in the
25028         optimized x86 version.
25029
25030 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
25031
25032         * profiler.c: TSC-based timer code (faster and more accurate).
25033         Not hooked up in configure, yet (set USE_X86TSC to 1).
25034
25035 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
25036
25037         * profiler.c, profiler.h: track time spent compiling methods.
25038         * threads.c: track thread creation/destruction.
25039
25040 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
25041
25042         * profiler.c, profiler.h, profiler-private.h: profiling interface
25043         and sample implementation. Moved here so that it can be used also by
25044         the jit.
25045
25046 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
25047
25048         * reflection.c, reflection.h: keep types and other handles separate in
25049         the hash tables for referred tokens. Add guid for modules.
25050
25051 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
25052
25053         * assembly.c: fix bugs found with valgrind.
25054         * metadata.h, metadata.c: added mono_metadata_guid_heap().
25055
25056 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
25057
25058         * threads: added icall support for getting current domain for
25059                    the thread.
25060  
25061 2002-04-13  Martin Baulig  <martin@gnome.org>
25062
25063         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
25064         (MonoDebugVarInfo): Added `index' field for register based addresses.
25065         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
25066         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
25067         `MonoDebugVarInfo *params' and `guint32 this_offset' with
25068         `MonoDebugVarInfo *this_var'.
25069
25070         * debug-symfile.c (relocate_variable): New static function to write
25071         a location description for a local variable or method parameter.
25072
25073 2002-04-12  Martin Baulig  <martin@gnome.org>
25074
25075         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
25076         stack offset and begin/end scope address of a local variable.
25077         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
25078         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
25079         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
25080
25081         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
25082         Added new relocation types for start/end scope of a local variable.
25083
25084 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
25085
25086         * object.h: add mono_object_domain() macro.
25087         * reflection.c: handle typespecs.
25088         * icall.c: MonoMethod::get_Name() implementation.
25089
25090 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
25091
25092         * icall.c: String::GetHashCode() icall implementation.
25093
25094 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
25095
25096         * icall.c: String::IndexOfAny icall.
25097         * object.c, object.h: make array->max_length more useful.
25098         Intrduced mono_object_class() and mono_string_length() macros.
25099
25100 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25101
25102         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
25103         instead of g_unichar_isdigit.
25104
25105 2002-04-11  Nick Drochak  <ndrochak@gol.com>
25106
25107         * icall.c: Implement a simple Double.ToString().
25108
25109 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
25110
25111         * appdomain.h: only io-layer.h is supposed to be included.
25112         * icall.c: explicitly import environ. Fix warning.
25113
25114 2002-04-10  Nick Drochak  <ndrochak@gol.com>
25115
25116         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
25117                 return true even if it's not Daylight Savings time.
25118                 Only return false for the case where the function isn't
25119                 implemented for a plaform (read Windows).
25120
25121 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
25122
25123         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
25124         data with a mutex.
25125
25126 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
25127
25128         * mempool.c (mono_mempool_alloc): only use g_malloc when
25129         absolutely necessary.
25130
25131 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
25132
25133         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
25134
25135         * class.c (mono_class_vtable): use domain mempool to allocate vtable
25136         (mono_class_proxy_vtable): use domain mempool
25137
25138 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
25139
25140         * appdomain.h, appdomain.c: split initialization that requires the
25141         execution engine support into mono_runtime_init().
25142
25143 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
25144
25145         * class.c (mono_class_init): don't include vtable inside MonoClass
25146         to save some memory, gather some statistics.
25147         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
25148
25149 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
25150
25151         * icall.c: internalcall implementation for ValueType.Equals().
25152
25153 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
25154
25155         * object.c (mono_message_init): moved 
25156         (mono_runtime_exec_main): new arch. independent impl.
25157         (mono_runtime_invoke_array): new method - like
25158         mono_runtime_invoke, but you can pass an array of objects.
25159         (mono_remoting_invoke): new arch. independent impl.
25160         (mono_message_invoke): new arch. independent impl.
25161         (mono_runtime_class_init): new arch. independent impl.
25162         (mono_runtime_object_init): new arch. independent impl.
25163
25164 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
25165
25166         * metadata.c, object.c, reflection.c: documented the exported
25167         functions.
25168
25169 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
25170
25171         * icall.c: simpler code to pass the assembly builder data to corlib.
25172         Implement GetNestedTypes() internalcall.
25173
25174 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
25175
25176         * class.c: warn if a type can't be loaded.
25177
25178 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
25179
25180         * image.h: typedef MonoImageOpenStatus
25181         * types.h: removed unused file
25182         
25183 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
25184
25185         * icall.c: Enum_ToObject accepts enum value arguments.
25186
25187 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
25188
25189         * class.c: move initialization of properties, events and nested
25190         classes, so that they happen for interfaces, too.
25191
25192 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
25193
25194         * icall.c: cleanup some ugly casts in Array_SetValue*.
25195
25196 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
25197
25198         * icall.c: the values array fro enums is of the correct type, now.
25199         Implement (correctly) getFullName instead of assQualifiedName for
25200         MonoType.
25201         * reflection.h, reflection.c: added mono_type_get_name ().
25202
25203 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
25204
25205         * assembly.c, image.h: for each MonoImage, record from wich assembly
25206         it was loaded.
25207         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
25208         Make Type.Assembly work.
25209
25210 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
25211
25212         * debug-symfile.h: use char* instead of gpointer to avoid
25213         unnecessary casts.
25214
25215         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
25216
25217         * icall.c (ves_icall_InternalExecute): impl. FielSetter
25218         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
25219
25220 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
25221
25222         * icall.c (mono_message_init): impl. (code cleanup)
25223         (ves_icall_InternalExecute): impl. FieldGetter
25224
25225         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
25226         defined we call all (non-static)methods through the vtable. 
25227
25228 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
25229
25230         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
25231         finalizer even though the memory is still referenced (and the chunk of
25232         memory is not freed).
25233
25234 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
25235
25236         * assembly.c: fix brokeness.
25237
25238 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
25239
25240         * class.c: kill some warnings. Check explicit interface method
25241         implementation also without considering the namespace.
25242         Load also literal strings in static class data.
25243
25244 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
25245
25246         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
25247         (default_assembly_name_resolver): Make the resolver take the
25248         "base" directory where the assembly was originally defined, so we
25249         can load DLLs that are in the same directory as the assembly that
25250         is being referenced.
25251
25252 2002-03-28  Dick Porter  <dick@ximian.com>
25253
25254         * file-io.h: 
25255         * file-io.c:
25256         * socket-io.c: 
25257         * unicode.h: 
25258         * unicode.c: Warning cleanups
25259
25260 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
25261
25262         * object.h, reflection.h: use the correct type instead of MonoObject.
25263
25264 2002-03-28  Martin Baulig  <martin@gnome.org>
25265
25266         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
25267         (mono_debug_update_symbol_file): Initialize classes if necessary.
25268
25269 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
25270
25271         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
25272         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
25273
25274 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
25275
25276         * assembly.h: fix function prototype.
25277         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
25278         * mono-endian.h: use const cast.
25279
25280 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
25281
25282         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
25283
25284 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
25285
25286         * loader.c: don't assert when a typeref can't be loaded, give
25287         a chance to the runtime to trow an exception instead.
25288         * loader.h: fix warning.
25289
25290 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
25291
25292         * class.c (mono_class_proxy_vtable): added proxy support
25293
25294 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
25295
25296         * icall.c: removed last of PAL calls, added System.Environment
25297         * file-io.h, file-io.c: MonoIO implementation
25298         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
25299
25300 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
25301
25302         * appdomain.c: do not use the byte marker in ldstr table lookup.
25303         * debug-helpers.c: allow two ':' to separate class and method name.
25304         * object.c: allocate arrays bounds with the GC, too.
25305         * verify: add a few more checks.
25306
25307 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
25308
25309         * reflection.c: output also literal strings. Allocate parameter data
25310         with GC_malloc() (thanks, Martin, for catching this!).
25311
25312 2002-03-26  Martin Baulig  <martin@gnome.org>
25313
25314         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
25315         include the `this' offset in the `param_offsets'.
25316
25317 2002-03-25  Martin Baulig  <martin@gnome.org>
25318
25319         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
25320         mono_debug_get_class() function to get the classes. Added new
25321         relocation types for arrays and strings.
25322         (mono_debug_get_class): New static function to search in all
25323         referenced assemblies for a metadata token.
25324
25325         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
25326
25327 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
25328
25329         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
25330         hold gc-allocated objects. Make the string heap a stream like the
25331         others. Removed duplicated code when writing stream info.
25332         Added asserts to catch possible buffer overflows. Set the sorted map
25333         for tables that need sorting. Added some documentation.
25334
25335 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
25336
25337         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
25338         for interned strings and vtables.
25339
25340 2002-03-24  Martin Baulig  <martin@gnome.org>
25341
25342         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
25343         it in the array since it was created with g_slist_prepend().
25344
25345 2002-03-24  Martin Baulig  <martin@gnome.org>
25346
25347         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
25348         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
25349         (mono_debug_method_from_token): Renamed to
25350         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
25351         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
25352
25353         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
25354         relocation types.
25355
25356         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
25357
25358 2002-03-24  Martin Baulig  <martin@gnome.org>
25359
25360         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
25361         (mono_debug_method_from_token): New func.
25362
25363         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
25364         New interncall, calls mono_debug_local_type_from_signature().
25365         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
25366         calls mono_debug_method_from_token().
25367
25368 2002-03-23  Martin Baulig  <martin@gnome.org>
25369
25370         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
25371         specifies the number of bytes to be converted, not the array size.
25372         Return the number of chars, not the number of bytes.
25373         (ves_icall_iconv_get_chars): The `byteCount' argument
25374         specifies the number of bytes to be converted, not the array size.
25375
25376 2002-03-23  Martin Baulig  <martin@gnome.org>
25377
25378         * reflection.h (MonoReflectionSigHelper): New type.
25379
25380         * reflection.c (mono_reflection_sighelper_get_signature_local),
25381         (mono_reflection_sighelper_get_signature_local): New functions.
25382
25383         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
25384         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
25385         interncalls.
25386
25387 2002-03-23  Martin Baulig  <martin@gnome.org>
25388
25389         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
25390         is_writeable is set.
25391         (mono_raw_buffer_update): New function to write the modified map
25392         back to disk.
25393
25394         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
25395
25396         * debug-symfile.c (mono_debug_update_symbol_file): Call
25397         mono_raw_buffer_update() when done writing.
25398
25399 2002-03-23  Martin Baulig  <martin@gnome.org>
25400
25401         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
25402
25403         * debug-symfile.c: Added support for arguments and local variables.
25404
25405 2002-03-23  Dick Porter  <dick@ximian.com>
25406
25407         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
25408         protected by ifdefs, hence breaking the w32 build.
25409
25410 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
25411
25412         * object.c: implement is_interned() the right way.
25413
25414 2002-03-21  Martin Baulig  <martin@gnome.org>
25415
25416         * debug-symfile.[ch]: New files to handle debugging information
25417         files. There's also support to dynamically update these symbol
25418         files to include machine dependent information.
25419
25420 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
25421
25422         * threads.c (mono_thread_create): new function to create thread
25423         from C
25424
25425 2002-03-20  Martin Baulig  <martin@gnome.org>
25426
25427         * icall.c (ves_icall_InternalInvoke): Create a new object if the
25428         method is a constructor.
25429         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
25430         points to ves_icall_InternalInvoke().
25431
25432 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
25433
25434         * file-io.c: Flush shouldn't throw exceptions.
25435
25436 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
25437
25438         * file-io.c: FileStream flush support; FileSetLength now
25439         restores file pointer.
25440
25441 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
25442
25443         * class.c: set image for pointer classes.
25444
25445 2002/03/19  Nick Drochak <ndrochak@gol.com>
25446
25447         * sysmath.c: Forgot one.
25448
25449 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
25450
25451         * sysmath.c: Avoid redefining existing names.
25452
25453 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
25454
25455         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
25456         handled by runtime as icall rather than dllimport from libm.so
25457         * file-io.c, file-io.h: fixed handle argument type.
25458
25459 2002-03-18  Dick Porter  <dick@ximian.com>
25460
25461         * reflection.c (mono_image_get_type_info): rename interface to
25462         iface, because of "#define interface struct" on windows.
25463
25464 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
25465
25466         * class.c, class.h: rename and export mono_ptr_class_get().
25467         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
25468         * reflection.c, reflection.h, icall.c: better/saner type name
25469         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
25470         method signatures.
25471
25472 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
25473
25474         * class.c (mono_class_init): removed hardcoded GHC_SLOT
25475
25476         * icall.c (ves_icall_InternalInvoke): impl.
25477
25478 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
25479
25480         * reflection.c: output the interface map table, too.
25481
25482 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
25483
25484         * class.c (class_compute_field_layout): separate computation of 
25485         static field layout
25486
25487 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
25488
25489         * icall.c: added System.Buffer support.
25490         * file-io.c: moved file icalls from PAL to FileStream.
25491
25492 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
25493
25494         * icall.c (ves_icall_System_Object_GetHashCode): impl.
25495
25496 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
25497
25498         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
25499
25500 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
25501
25502         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
25503
25504 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
25505
25506         * debug-helpers.{c,h}: moved here from monograph some useful functions
25507         to locate a method by name/signature in a class or image. Included
25508         also a small and flexible IL disassembler.
25509
25510 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
25511
25512         * reflection.c: fixup tokens in methods with small header size, too.
25513
25514 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
25515
25516         * object.c (mono_string_to_utf8): remove assert(!error), instead
25517         print a warning. 
25518
25519 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
25520
25521         * icall.c: update to the new mono_Array_class_get interface.
25522
25523 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
25524
25525         * appdomain.c, object.c: Boehm-GC enable.
25526         * icall.c: make get_data_chunk() support split data requests.
25527         Ensure a class is initialized in more cases. Return only the first
25528         property found in GetProperties() or the compiler gets confused. 
25529         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
25530         * reflection.h, reflection.c: add fixup mechanism for field and method
25531         tokens. Initialize assembly->typeref in a single place. Output
25532         properties after events. Support custom attributes for events, too.
25533         Typo fix for paramter custom attrs.
25534
25535 2002-03-07  Martin Baulig  <martin@gnome.org>
25536
25537         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
25538
25539 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
25540
25541         * class.c (mono_array_class_get): fix. for multi. dim. arrays
25542
25543 2002-03-06  Martin Baulig  <martin@gnome.org>
25544
25545         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
25546         non-zero lower bounds. See testcases #F10-#F13.
25547
25548 2002-03-05  Martin Baulig  <martin@gnome.org>
25549
25550         * exception.c (mono_get_exception_argument_out_of_range): New exception.
25551
25552         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
25553         ves_icall_System_Array_GetValue(), only calculate the absolute array position
25554         here.
25555         (ves_icall_System_Array_SetValue): Likewise.
25556         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
25557         as argument and does the actual work. This function is used when copying a
25558         multi-dimensional array.
25559         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
25560         now do all the widening conversions of value types.
25561         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
25562
25563 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
25564
25565         * class.c: remove some magic numbers and use the smbolic names,
25566         instead. Added init_events() to load event info at class init time.
25567         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
25568         and mono_metadata_methods_from_event().
25569         * reflection.h, reflection.c: added support for writing out the evnets
25570         related information.
25571
25572 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
25573
25574         * reflection.h, icall.c: use a different method (GetInterfaces)
25575         to gather interface info and add isbyref, isprimitive and
25576         ispointer to the ves_icall_get_type_info() return value.
25577
25578 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
25579
25580         * class.h: stared adding support for events.
25581         * icall.c: split find_members implementation. Added debug icall to get
25582         the address of an object.
25583         * reflection.c: handle TypeBuilders in mono_type_get_object().
25584
25585 2002-03-01  Martin Baulig  <martin@gnome.org>
25586
25587         * icall.c (ves_icall_System_Array_GetLength): This must throw an
25588         ArgumentOutOfRangeException(), not an ArgumentException().
25589         (ves_icall_System_Array_GetLowerBound): Likewise.
25590         (ves_icall_System_Array_GetValue): Improved argument checking.
25591         (ves_icall_System_Array_SetValue): Improved argument checking.
25592
25593 2002-03-01  Martin Baulig  <martin@gnome.org>
25594
25595         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
25596         called with invalid arguments rather than just dying with g_assert().
25597         (ves_icall_System_Array_SetValue): Likewise.
25598         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
25599         raise a NotImplementedException instead.
25600         (ves_icall_System_Array_GetLength): Added argument checking.
25601         (ves_icall_System_Array_GetLowerBound): Added argument checking.
25602
25603 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
25604
25605         * object.h (mono_assert): new macros mono_assert and
25606         mono_assert_not_reached
25607
25608 2002-02-28  Martin Baulig  <martin@gnome.org>
25609
25610         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
25611         and "System::String::IsInterned" to "System::String::_IsInterned".
25612
25613 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
25614
25615         * icall.c: remove hacks for typebuilder. Added icall to create a
25616         modified type from a tybebuilder.
25617         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
25618         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
25619         to create a backing MonoClass for a TypeBuilder.
25620
25621 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
25622
25623         * class.c, class.h: more refactoring of class init.
25624         Export mono_class_setup_mono_type() and mono_class_setup_parent().
25625
25626 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
25627
25628         * marshal.c, marshal.h: start of marshaling interface.
25629
25630 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
25631
25632         * icall.c: fix order in assembly qualified name icall.
25633
25634 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
25635
25636         * class.c: do not free str, since we store it in the hash table.
25637         * reflection.h: add label field to MonoILExceptionInfo.
25638         * reflection.c: handle references to more than one assembly. Handle
25639         case when there isn't a module created in the assembly.
25640
25641 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
25642
25643         * class.c: Fix typo. Start refactoring of class init code.
25644
25645 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
25646
25647         * appdomain.c: exit with 1 on error.
25648         * class.c: we already have the name in MonoClassField.
25649         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
25650         MonoStreamHeader instead of an offset of image->raw_metadata.
25651
25652 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
25653
25654         * appdomain.c (mono_init): Be even more descriptive about the error.
25655
25656 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
25657
25658         * appdomain.c: give the user an informative message when corlib can't
25659         be loaded.
25660
25661 2002-02-26  Martin Baulig  <martin@gnome.org>
25662
25663         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
25664         New icall to get the time zone data.
25665
25666 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
25667
25668         * reflection.c: set virtual and raw size of section correctly.
25669         * threads.c: transfer domain information to newly created threads.
25670
25671 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
25672
25673         * class.c: when instancing a class in a domain, load the default
25674         vaules for static fields from the constant table. Fix System.Enum to
25675         not be an enum.
25676         * icall.c: implement Object::GetType() internalcall. Implemented
25677         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
25678         Fixed checking of binding flags in find_members().
25679         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
25680         * reflection.c: handle enumerations when writing to the constant
25681         table. Use a different object cache for types.
25682
25683
25684 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
25685
25686         * object.c (mono_object_isinst): fix for arrays
25687
25688         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
25689
25690 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
25691
25692         * object.c: don't use mprotect ()  and fix intern pool hash table
25693         lookup for big endian systems.
25694
25695 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
25696
25697         * icall.c: change type_is_subtype_of () signature.
25698
25699 2002-02-21  Mark Crichton  <crichton@gimp.org>
25700
25701         * rand.c, rand.h: Added random number generator for
25702         System.Security.Cryptography classes.
25703
25704         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
25705
25706         * icall.c: Added System.Security.Cryptography calls.
25707
25708 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
25709
25710         * class.c, icall.c, metadata.c: better support for pointer types.
25711         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
25712         * reflection.c: Add support for getting custom attrs for properties
25713         and simplify some code.
25714
25715 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
25716
25717         * icall.c: change getToken () and add custom attribute GetBlob()helper
25718         method.
25719         * reflection.h: add custom attrs array to the reflection builder structures.
25720         * reflection.c: encode and emit custom attributes for all the relevant
25721         reflection objects. Cache fieldref and methodref tokens. Change
25722         mono_image_create_token() interface to take a MonoDynamicAssembly.
25723         More complete custom attributes decoder. Load custom attributes for
25724         Assembly, Field, Method and Constructor objects, too. Make the
25725         returned array an Attribute[] one, not object[]. Added
25726         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
25727         custom attribute constructor.
25728
25729 2002-02-20  Dick Porter  <dick@ximian.com>
25730
25731         * icall.c:
25732         * rawbuffer.c:
25733         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
25734         problem code out for now).
25735
25736 2002-02-19  Radek Doulik  <rodo@ximian.com>
25737
25738         * object.c (mono_ldstr): use hash table to avoid multiple swapping
25739
25740 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
25741
25742         * icall.c: register the GetCustomAttributes method.
25743         * object.c, object.h: add mono_string_new_len ().
25744         * reflection.h, reflection.c: added mono_runtime_invoke(),
25745         mono_install_runtime_invoke(). Added
25746         mono_reflection_get_custom_attrs () to load custom attributes and
25747         create the attribute objects.
25748
25749 2002-02-19  Dick Porter  <dick@ximian.com>
25750         * threads-dummy-types.c:
25751         * threads-dummy-types.h:
25752         * threads-dummy.c:
25753         * threads-dummy.h:
25754         * threads-pthread-types.c:
25755         * threads-pthread-types.h:
25756         * threads-pthread.c:
25757         * threads-pthread.h:  Deleted obsolete files
25758
25759 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
25760
25761         * class.c (mono_class_vtable): runtime init the class when we
25762         allocate static class data.
25763
25764         * icall.c (ves_icall_System_Array_SetValue): check for null values.
25765
25766         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
25767         and String - but we will need generic marshalling support in the
25768         future. 
25769         (mono_init): set the domain name in a ms compatible way
25770
25771         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
25772         String[].
25773
25774 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
25775
25776         * object.c (mono_array_clone): use alloca() instead of g_malloc  
25777         for sizes
25778
25779         * appdomain.c (mono_domain_unload): impl.
25780
25781 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
25782
25783         * appdomain.c, object.c: fix intern pool implementation.
25784         * class.c: fix alignment code.
25785
25786 2002-02-16  Radek Doulik  <rodo@ximian.com>
25787
25788         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
25789         and s2 > s1, just copy lower bytes to be compatible with little
25790         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
25791         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
25792
25793         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
25794         force big_endian to be 1 for big endian machines 
25795         (ves_icall_iconv_new_decoder): ditto
25796
25797 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
25798
25799         * socket-io.c (convert_sockopt_level_and_name): If the system
25800         doesn't define SOL_IP or SOL_TCP, get them by hand using
25801         getprotobyname() and caching the values (because this could be a
25802         slow operation).
25803         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
25804         Use the appropriate struct when the system does support it. Ie,
25805         not all systems have struct ip_mreqn so use struct ip_mreq when
25806         appropriate.
25807
25808 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
25809
25810         * reflection.c: handle finally clauses.
25811
25812 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
25813
25814         * socket-io.c: use g_snprintf() instead of snprintf.
25815
25816 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
25817
25818         * reflection.c (mono_param_get_objects): Cast second argument to
25819         mono_method_get_param_names to a const char** to silence the
25820         compiler warning.
25821
25822         * appdomain.c (mono_domain_assembly_open): Put parens around the
25823         truth statement in the for-loop.
25824
25825         * unicode.c (iconv_convert): Got rid of a compiler warning about
25826         int i being unused when the system has a new iconv.
25827         (iconv_get_length): Same.
25828
25829         * image.c (load_class_names): Cast the second argument to
25830         g_hash_table_insert() to char* to hush compiler warnings about the
25831         arg being a const.
25832         (mono_image_open): Same here.
25833
25834         * socket-io.c: Don't conditionally include sys/filio.h or
25835         sys/sockio.h here anymore since we now get them from
25836         io-layer/io-layer.h
25837         (inet_pton): If the system doesn't support inet_aton, implement
25838         using inet_addr and also #define INADDR_NONE if it isn't defined
25839         by the system.
25840
25841 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
25842
25843         * metadata.c, metadata.h: added function to get packing and size info
25844         of a typedef.
25845         * reflection.h, reflection.c: handle field RVA data. Save info about
25846         the table layout if needed. Assign typedef indexes to all the types
25847         before dumping the info about them to avoid forward reference problems.
25848
25849 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
25850
25851         * socket-io.c (convert_sockopt_level_and_name): ifdef
25852         SO_ACCEPTCONN because it is not defined on my system (old debian)
25853
25854 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
25855
25856         * opcode.c: use stddef.h to get NULL.
25857
25858 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
25859
25860         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
25861         for FIONBIO, FIONREAD and SIOCATMARK.
25862         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
25863         define INADDR_NONE and besides, inet_addr() is deprecated and
25864         should not be used. Use inet_pton() instead - it also has the
25865         added bonus that it can easily handle IPv6 addresses as well.
25866         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
25867
25868 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
25869
25870         * decimal.c: remove _MSC_VER conditional.
25871
25872 2002-02-13  Dick Porter  <dick@ximian.com>
25873
25874         * socket-io.c: 
25875         * icall.c: Internal calls for Blocking, Select, Shutdown,
25876         GetSocketOption and SetSocketOption
25877
25878 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
25879
25880         * assembly.cs: better resolver: use it instead of some kludgy
25881         code.
25882
25883 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
25884
25885         * reflection.c: the best way to speed-up the compiler is to avoid
25886         infinite loops.
25887
25888 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
25889
25890         * class.c (mono_class_vtable): changed the object layout
25891         (obj->vtable->class). 
25892         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
25893
25894 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
25895
25896         * assembly.c: look for assemblies in the assembly dir, too.
25897
25898 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
25899
25900         * class.c: fix thinko in mono_class_from_type().
25901
25902 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
25903
25904         * exception.h, exception.c: added TypeLoadException.
25905         * object.h, object.c: added mono_array_clone ().
25906         * icall.c: handle throwOnError in AssemblyGetType().
25907         Added Array.Clone().
25908         * opcode.h, opcode.c: use a single value for the opcode val.
25909         Compile fix for non-gcc compilers.
25910
25911 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
25912
25913         * opcodes.c, opcodes.h: export interesting info about opcodes.
25914
25915 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
25916
25917         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
25918         icalls. 
25919
25920         * class.c (class_compute_field_layout): set element_class for enums
25921         (mono_class_create_from_typedef): set element_class for normal classes
25922
25923         * icall.c (ves_icall_System_Enum_get_value): impl.
25924
25925         * class.c (mono_class_create_from_typedef): do not set valuetype
25926         flag for System.ValueType and System.Enum
25927
25928 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
25929
25930         * unicode.c (iconv_convert): fix big endian problem.
25931
25932 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
25933
25934         * class.c: add asserts if we are ever going to scribble over memory.
25935         * socket-io.c: not all systems have AF_IRDA defined.
25936
25937 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
25938
25939         * class.c (class_compute_field_layout): do not consider static
25940         fields to compute alignment
25941
25942 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
25943
25944         * appdomain.c (mono_appdomain_get): impl.
25945         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
25946
25947 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
25948
25949         * icall.c: ignore "file://" prefix when loading an assembly.
25950
25951 2002-01-23  Dick Porter  <dick@ximian.com>
25952
25953         * socket-io.c:
25954         * icall.c:
25955         * Makefile.am: Added socket support
25956
25957 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
25958
25959         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
25960         code back.  This should return the assemblies that are loaded by
25961         the runtime on behalf of an application domain. 
25962
25963         The current implementation is still broken, it just returns every
25964         assembly loaded, but until we get real applications domain this
25965         will do.
25966
25967 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
25968
25969         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
25970         AppDomain object.
25971
25972 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
25973
25974         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
25975         the mono_class_from_name lookup.
25976         (ves_icall_get_parameter_info): ditto.
25977         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
25978         method.
25979         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
25980
25981 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
25982
25983         * class.c: load also nested classes on class init.
25984         System.ValueType instance methods gets passed boxed
25985         values, unless methods in derived classed that get a pointer to the
25986         data.
25987         * icall.c: use better name parsing code in GetType().
25988         * image.c, image.h: add mono_image_loaded ().
25989         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
25990         * reflection.c, reflection.h: added mono_reflection_parse_type().
25991
25992 2002-01-22  Veronica De Santis <veron78@interfree.it>
25993
25994         * icall.c : Added mapping of internal calls for Manual and Auto reset events
25995         * threads.c : Added the implementation of internal calls for events
25996         * threads.h : Added prototypes of internal calls for events
25997         
25998 2002-01-21  Radek Doulik  <rodo@ximian.com>
25999
26000         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
26001
26002 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
26003
26004         * class.c (mono_class_init): set min_align to 1 (instead of 0)
26005         (mono_class_value_size): use min_align
26006
26007 2002-01-20  Dick Porter  <dick@ximian.com>
26008
26009         * threads.h:
26010         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
26011         so it compiles on w32.
26012
26013 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
26014
26015         * metadata.c (mono_type_stack_size): impl.
26016
26017         * class.c (mono_class_get_field): impl. memberref token
26018
26019 2002-01-16 Veronica De Santis <veron78@@interfree.it>
26020
26021         * icall.h : Added the internal calls mapping for CreateMutex_internal
26022                     and ReleaseMutex_internal.
26023         * threads.h : Added the prototype of mutexes internal calls.
26024         * threads.c : Added the implementations of mutexes internal calls.
26025
26026 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
26027
26028         * metaparse.h: removed unused file.
26029         * reflection.c, reflection.h: added stream_data_align () function 
26030         to align data in streams and keep stream aligned. Add support for
26031         exception support in method headers.
26032
26033 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
26034
26035         * unicode.c: make iconv_convert () return the number of bytess written
26036         in the output buffer.
26037
26038 2002-01-15  Dick Porter  <dick@ximian.com>
26039         * threads.c: Make the runtime's idea of infinite timeouts coincide
26040         with the class library's
26041
26042         Fix a particularly egregious bug in mono_thread_cleanup(). That
26043         code was so utterly bogus it must have been written on a Monday.
26044
26045 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
26046
26047         * reflection.h: add subtypes field to TypeBuilder.
26048         * reflection.c: encode constants for literal fields.
26049         Handle subtypes. Fix user string token (and add a zero byte)
26050         at the end.
26051         
26052 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
26053
26054         * class.c (mono_class_init): bug fix: assign slot numbers for
26055         abstract methods.
26056
26057 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
26058
26059         * reflection.c: don't try to output a code RVA for abstract methods.
26060         Small fixes for method header format. Output parameter info to the
26061         ParamDef table. Save method overriding info to MethodImpl table.
26062         Fix property support. Allow typedef.extends to be a type in the
26063         building assembly.
26064         * verify.c: fix off-by-one error.
26065
26066 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
26067
26068         * class.c: fix mono_class_from_mono_type () for szarray types.
26069         Remove unused cache check in mono_class_from_type_spec().
26070         * icall.c: *type_from_name () functions handle simple arrays and byref.
26071         * reflection.c: handle byref and szarray types. Handle methods without
26072         body (gets P/Invoke compilation working). Handle types and fields in
26073         get_token ().
26074         * reflection.h: add rank to MonoTypeInfo.
26075
26076 2002-01-10  Dick Porter  <dick@ximian.com>
26077
26078         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
26079         internal calls
26080
26081 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
26082
26083         * icall.c: initialize class in type_from_handle ().
26084         Loop also in parent classes for get_method ().
26085         * reflection.c: properly encode class and valuetype types.
26086         Start on encoding TypeBuilder types. Handle fieldrefs.
26087         Use correct length when registering a user string.
26088         Handle ConstructorBuilder and MonoMethod in get_token ().
26089         Make mono_type_get_object () aware of cached types.
26090         * object.c: back out change to mono_string_new ().
26091
26092 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
26093         * object.c: mono_string_new should return a NULL when the string 
26094         passed in is NULL -- not try to deference it.
26095         
26096 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
26097
26098         * icall.c: hack to make IsSubType work for TypeBuilders.
26099         * reflection.c: emit constructors before methods.
26100         Retrieve param names in mono_param_get_objects().
26101
26102 2002/01/05  Nick Drochak  <ndrochak@gol.com>
26103
26104         * Makefile.am: fix list of headers and sources so automake 1.5
26105         doesn't complain. Removed \# at end of list.
26106
26107 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
26108
26109         * reflection.c: get token for a method ref. Set return type of
26110         constructor to void.
26111         * loader.c: debug message.
26112         * class.c: typo fix.
26113
26114 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
26115
26116         * icall.c: fix array init with rank > 1. FindMembers
26117         loops in parent class as well.
26118         * image.c: do not insert nested types in name cache.
26119         * reflection.c: warning fix.
26120         * reflection.h: add override method (for interface impl).
26121
26122 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
26123
26124         * metadata.c: fix customattr decoding.
26125
26126 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
26127
26128         * rawbuffer.cs: Added native Win32 implementation, avoids using
26129         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
26130
26131 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
26132
26133         * class.c: make the low-level routines handle the cache.
26134
26135 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
26136
26137         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
26138
26139 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
26140
26141         * class.c: fix mono_array_element_size() for objects.
26142         * class.h, class.c: add properties to MonoClass and load them
26143         at init time.
26144         * icall.c: check with isinst() when assigning a value to an array
26145         instead of requiring the classes to match exactly.
26146         Implemented icall for System.Type::GetType().
26147         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
26148         enums. Handle bindingflags when looking for methods and fields.
26149         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
26150         and mono_metadata_methods_from_property().
26151         * reflection.h, reflection.c: added structures for propreties,
26152         parameters and enums. Implemented mono_property_get_object() and
26153         mono_param_get_objects().
26154
26155 2001-12-18  Dick Porter  <dick@ximian.com>
26156
26157         * file-io.c: Use mono_string_to_utf16() instead of
26158         mono_string_chars()
26159
26160         * object.c: Added mono_string_to_utf16(), which copies the non
26161         NULL-terminated MonoString into a new double-null-terminated
26162         buffer.
26163
26164 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
26165
26166         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
26167
26168 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
26169
26170         * file-io.c: raise exceptions if handle is invalid.
26171
26172 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
26173
26174         * assembly.c: yet another check for mscorlib.
26175         * class.c, class.h: load nesting info for classes.
26176         * icall.c: many new functions to support the Reflection classes.
26177         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
26178         * reflection.h, reflection.c: mono_image_create_token(),
26179         mono_assembly_get_object(), mono_type_get_object(),
26180         mono_method_get_object(), mono_field_get_object(): methods to return
26181         objects that parallel the C representation of assemblies, types,
26182         methods, fields.
26183
26184 2001-12-11  Dick Porter  <dick@ximian.com>
26185
26186         * icall.c:
26187         * file-io.c: Internal calls for file IO.
26188
26189 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
26190
26191         * tabledefs.h: missing FileAttributes.
26192         * verify.h, verify.c: use is_valid_string () to simplify and check for
26193         valid strings more correctly. Fix warnings and speeling.
26194         Check more tables: Filed, File, ModuleRef, StandAloneSig.
26195         Check code: branches, maxstack, method calls.
26196
26197 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
26198
26199         * object.c (mono_object_allocate): removed static, so that the jit
26200         can allocate value types.
26201
26202         * icall.c (ves_icall_System_DateTime_GetNow): impl.
26203
26204 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
26205
26206         * class.c: init enum types right away and register the
26207         token->MonoClass map in mono_class_create_from_typedef ().
26208         * verify.h, verify.c: first cut of the verifier.
26209         * pedump.c: add --verify switch to verify metadata tables.
26210         * tabledefs.h: add some missing enums.
26211
26212 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
26213
26214         * class.c (mono_install_runtime_class_init): impl.
26215         (mono_class_init): renamed mono_class_metadata_init to
26216         mono_class_init, also removed the metadata_inited flag
26217
26218         * object.c (mono_object_isinst): use faster algorithm
26219
26220 2001-11-30  Radek Doulik  <rodo@ximian.com>
26221
26222         * mono-endian.h: reverted last change
26223         added function prototypes
26224
26225         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
26226         add mono-endian.c back
26227
26228         * mono-endian.c: returned back, as Paolo pointed out, it's needed
26229         for unaligned access, I've mistaked it with endianess. I am
26230         sorry.
26231         (mono_read16): fix reverted endianess
26232         (mono_read64): ditto
26233         (mono_read32): ditto
26234
26235 2001-11-30  Dick Porter  <dick@ximian.com>
26236
26237         * exception.c: Implement mono_exception_from_name()
26238
26239 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
26240
26241         * metadata.h, metadata.c: remove params_size and locals_size and their
26242         calculation from the metadata code: they are only usefult to the
26243         interp.
26244
26245 2001-11-29  Radek Doulik  <rodo@ximian.com>
26246
26247         * object.c (mono_ldstr): swap bytes here, it's probably not the
26248         best place, but works for me now, I'll redo it once I know mono
26249         better, also note that I add PROT_WRITE and don't reset back, also
26250         note that it's only affects big endians, so x86 should be OK
26251
26252         * mono-endian.h (read16): use just glib macros for both endians
26253
26254         * mono-endian.c: removed as glib macros are used in in
26255         mono-endian.h so we don't need to care about endianess for read
26256         macros as glib does that for us already
26257
26258 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
26259
26260         * class.h, class.h: take minimum alignment into consideration so
26261         that the fields of a class remain aligned also when in an array.
26262
26263 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
26264
26265         * loader.h, loader.c: add mono_method_get_param_names().
26266         * class.c: 0-init class fields.
26267
26268 2001-11-26  Dick Porter  <dick@ximian.com>
26269
26270         * icall.c:
26271         * threads-types.h:
26272         * threads.c: New file that handles System.Threading on all platforms
26273
26274         * object.c: 
26275         * object.h: Remove the synchronisation struct from MonoObject,
26276         replace it with a pointer that gets initialised on demand
26277
26278         * Makefile.am: Replace all the system-specific threading code with
26279         a single file that uses the new wrapper library
26280
26281 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
26282
26283         * class.c, class.h: add mono_install_trampoline() so that the runtime
26284         can register a function to create a trampoline: removes the ugly
26285         requirement that a runtime needed to export arch_create_jit_trampoline.
26286         * object.h, object.c: added mono_install_handler() so that the runtime
26287         can install an handler for exceptions generated in C code (with
26288         mono_raise_exception()). Added C struct for System.Delegate.
26289         * pedump.c: removed arch_create_jit_trampoline.
26290         * reflection.c: some cleanups to allow registering user strings and
26291         later getting a token for methodrefs and fieldrefs before the assembly
26292         is built.
26293         * row-indexes.h: updates and fixes from the new ECMA specs.
26294
26295 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
26296
26297         * class.h, class.c: add enum_basetype field to MonoClass.
26298         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
26299         to get index in the constant table reated to a field, param or
26300         property.
26301         * reflection.h, reflection.c: handle constructors. Set public-key and
26302         version number of the built assembly to 0.
26303         * row-indexes.h: update from new ECMA spec.
26304
26305 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
26306
26307         * class.h, class.c: add a max_interface_id to MonoClass.
26308         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
26309         since it's used to do that. Added mono_type_type_from_obj().
26310         Make GetType() return NULL instead of segfaulting if the type was not
26311         found. Handle simple arrays in assQualifiedName.
26312         * object.h: add a struct to represent an Exception.
26313         * reflection.c: output call convention in method signature.
26314         Add code to support P/Invoke methods and fixed offsets for fields.
26315
26316 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
26317
26318         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
26319         the value.
26320         * icall.c: use mono_array_addr instead of array->vector: fixes the
26321         reflection image writing.
26322         * reflection.c: init call convention byte to 0 in method signature.
26323         Encode the property signature. Don't output property-related methods
26324         twice. Really process the properties for a type (don't cast a field to
26325         a property, my mom always told me that).
26326         Fix 64 bit issues in pointer alignment in a different and more
26327         readable way.
26328
26329 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
26330
26331         * loader.h: Removed type class from MonoDefaults, added monotype
26332
26333         * loader.c: Loaded MonoType, removed loading of Type
26334
26335         * icall.c (my_mono_new_object): Now returns a System.MonoType,
26336         and fills in System.Type._impl with a RuntimeTypeHandle rather
26337         than the actual MonoClass *
26338
26339         (ves_icall_type_from_handle): change from type_class to
26340         monotype_class
26341
26342         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
26343         implemented
26344
26345         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
26346         implemented
26347
26348         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
26349
26350         (ves_icall_System_Reflection_Assembly_GetType): implemented
26351
26352         (ves_icall_System_MonoType_assQualifiedName): implemented
26353
26354         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
26355
26356 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
26357
26358         * assembly.c (mono_assembly_open): Implement a cache for the
26359         assemblies. 
26360
26361         (mono_assembly_close): only destroy the assembly when the last
26362         reference is gone.
26363         
26364 2001-11-09  Dick Porter  <dick@ximian.com>
26365
26366         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
26367
26368 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
26369
26370         * class.c (mono_class_metadata_init): bug fix: compute the right slot
26371
26372 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
26373
26374         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
26375         from Martin Weindel.
26376         * object.h: add mono_string_chars ().
26377
26378 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
26379
26380         * reflection.c (build_compressed_metadata): Eliminates warnings
26381         and uses 64-bit clean code.
26382
26383         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
26384         (mono_type_equal): Change signature to eliminate warnings.
26385
26386 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
26387
26388         * icall.c, loader.c: remove the internalcall array constructors.
26389         Changes to match the new MonoArray structure.
26390         * object.h, object.c: an array object doesn't allocate an extra
26391         vector. Add mono_array_new_full () to create jagged arrays easily.
26392
26393 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
26394
26395         * metadata.h, metadata.c: add mono_metadata_field_info () to
26396         retreive all the info about a field from vairous tables.
26397         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
26398         * class.h, class.c: augment MonoClassField with more info.
26399         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
26400         policy and load a field's RVA if needed.
26401
26402 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
26403
26404         * class.c (mono_class_metadata_init): create a trampoline for all
26405         virtual functions instead of actually compiling them.
26406
26407 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
26408
26409         * class.h, class.c: include name in MonoClassField.
26410         * class.c: fix fundamental type of System.Object and System.String.
26411         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
26412         tokens in ldtoken.
26413         * icall.c: remove internalcalls for the Reflection stuff that is now
26414         done in C# code.
26415         * loader.c: mono_field_from_memberref () implementation.
26416         * mono-endian.c: thinko (s/struct/union/g).
26417         * object.c, object.h: make the mono_string_* prototypes actually use
26418         MonoString instead of MonoObject.
26419         * reflection.c, reflection.h: updates for changes in the reflection
26420         code in corlib: we use C structures that map to the actual C# classes.
26421         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
26422         fat method header if needed and use the info from the ILGenerator for
26423         methods. Handle fields in types. Misc fixes.
26424
26425 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
26426
26427         * class.c (mono_class_metadata_init): bug fix: always allocate
26428         space for static class data
26429
26430 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
26431
26432         * class.c (mono_compute_relative_numbering): use relative
26433         numbering to support fast runtime type checks.
26434
26435 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
26436
26437         * class.c (mono_class_create_from_typeref): added debugging output
26438         to print class name when MonoDummy is returned instead of real class
26439
26440 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
26441
26442         * class.c (mono_class_metadata_init): interface offset table now
26443         contains pointers into the vtable - this is more efficient for the jit
26444
26445 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
26446
26447         * class.c (mono_class_metadata_init): use a temporary vtable (the
26448         old algorithm only worked for the interpreter, but not for the jit)
26449
26450 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
26451
26452         * loader.c (method_from_memberref): use mono_class_get to get the
26453         class of an array instead of using System.Array directly.
26454         (mono_get_method): also add MEMBERREF methods to the method cache
26455         which usefull for arrays.
26456
26457 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
26458
26459         * pedump.c (arch_compile_method): added to compute vtable entry
26460
26461         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
26462         number of interfaces.
26463         
26464         * class.h: merged MonoArrayClass into MonoClass
26465
26466         * class.c (mono_class_create_from_typedef): compute the vtable size and
26467         allocate space to include the vtable inside MonoClass
26468         (mono_class_metadata_init): initialize the vtable
26469
26470 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
26471
26472         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
26473         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
26474         * image.c: endian fixes by Laurent Rioux.
26475         * object.h, object.c: rename MonoStringObject to MonoString and
26476         MonoArrayObject to MonoArray. Change some function names to conform to
26477         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
26478         guint16* as first argument, so don't use char*.
26479         Provide macros to do the interesting things on arrays in a portable way.
26480         * threads-pthread.c: updates for the API changes and #include <sched.h>
26481         (required for sched_yield()).
26482         * icall.c: updates for the API changes above.
26483         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
26484         platforms that need them.
26485
26486 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
26487
26488         * class.c: set the correct type for all the fundamental
26489         type when loading the class.
26490
26491 2001-10-05  Dick Porter  <dick@ximian.com>
26492
26493         * threads-pthread.c (pthread_mutex_timedlock): Simple
26494         compatibility version for C libraries that lack this call.
26495
26496 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
26497
26498         * class.c: MonoTypes stored in MonoClass are stored as
26499         fundamental MonoTypes when the class represents a
26500         fundamental type (System.Int32, ...).
26501         The TypeHandle return by ldtoken is a MonoType*.
26502         * icall.c: ves_icall_get_data_chunk () write out all the
26503         PE/COFF stuff. Implement ves_icall_define_method (),
26504         ves_icall_set_method_body (), ves_icall_type_from_handle ().
26505         * image.c: properly skip unknown streams.
26506         * loader.h, loader.c: add type_class to mono_defaults.
26507         * metadata.c, metadata.h: export compute_size () as
26508         mono_metadata_compute_size () with a better interface.
26509         Typo and C&P fixes.
26510         * pedump.c: don't try to print the entry point RVA if there is no entry point.
26511         * reflection.c, reflection.h: many cleanups, fixes, output method
26512         signatures and headers, typedef and typeref info, compress the metadata
26513         tables, output all the heap streams, cli header etc.
26514         * row-indexes.h: typo fixes.
26515
26516 2001-10-04  Dick Porter  <dick@ximian.com>
26517
26518         * object.h: Add a synchronisation mutex struct to MonoObject
26519
26520         * object.c (mono_new_object): Initialise the object
26521         synchronisation mutexes
26522
26523         * icall.c: System.Threading.Monitor internal calls
26524         
26525         * threads-pthread.h:
26526         * threads-pthread.c: System.Threading.Monitor internal calls
26527
26528         * threads-types.h: New file, includes the system-specific thread
26529         structures
26530         
26531         * threads-pthread-types.h:
26532         * threads-pthread-types.c: New files, handle pthread-specific
26533         synchronisation types
26534
26535         * threads-dummy-types.h: 
26536         * threads-dummy-types.c: New files of dummy support for
26537         thread-specific types
26538
26539         * metadata.c:
26540         * image.c:
26541         * pedump.c: include mono-endian.h not endian.h
26542         
26543         * Makefile.am: More threads files.
26544         Name mono-endian.h not endian.h
26545
26546 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
26547
26548         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
26549         stuff and implement a few more bits.
26550         * icall.c: a field needs to be dereferenced twice. Do not use the same
26551         name for two variables in the same scope.
26552         * image.c, image.h: cleanups.
26553
26554 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
26555
26556         * class.c (mono_class_metadata_init): bug fix: compute the right size
26557
26558 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
26559
26560         * icall.c: implemented some of the Reflection internalcalls.
26561         * image.c, image.h: start writing out the PE/COFF image.
26562         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
26563         that does the reverse than decode_blob_size ().
26564         * object.c: use mono_metadata_encode_value (). Move here
26565         temporary implementation of mono_string_to_utf8 ().
26566         * rawbuffer.c: make malloc_map static.
26567
26568 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
26569
26570         * metadata.c: fix type comparison for arrays.
26571         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
26572         Added a couple of new classes to monodefaults.
26573         * icall.c: added a couple of Reflection-related internalcalls.
26574         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
26575         Added a byval_arg MonoType to MonoClass.
26576
26577 2001-09-28  Dick Porter  <dick@ximian.com>
26578
26579         * icall.c:
26580         * threads-pthread.h: 
26581         * threads-pthread.c: Implemented internal calls for
26582         LocalDataStoreSlot operations.  Applied mutexes around all shared
26583         data.  Reworked the thread creation and Start() operations to
26584         avoid a race condition.
26585         
26586         * threads-dummy.h:
26587         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
26588
26589 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
26590
26591         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
26592
26593 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
26594
26595         * class.c, loader.c: warn and return NULL instead of erroring out.
26596         * icall.c: added System.AppDomain::getCurDomain().
26597         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
26598
26599 2001-09-25  Dick Porter  <dick@ximian.com>
26600
26601         * threads-pthread.h:
26602         * threads-pthread.c: Implemented timed thread joining and added
26603         System.Threading.Thread::Join_internal internal call
26604
26605         * icall.c: Added System.Threading.Thread::Join_internal internal call
26606
26607         * threads-dummy.h:
26608         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
26609
26610 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
26611
26612         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
26613         mono_string_intern () to implement the semantics of the ldstr opcode
26614         and the interning of System.Strings.
26615         * icall.c: provide hooks to make String::IsIntern and String::Intern
26616         internalcalls.
26617
26618 2001-09-23  Dick Porter  <dick@ximian.com>
26619
26620         * threads-dummy.c: 
26621         * threads-dummy.h: New files of dummy threading routines
26622
26623         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
26624         support code based on system specifics
26625
26626         Rename PTHREAD_LIBS to THREAD_LIBS
26627         
26628 2001-09-23  Dick Porter  <dick@ximian.com>
26629
26630         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
26631         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
26632         internal calls.
26633         (mono_thread_init): Set up a Thread object instance to return when
26634         the main thread calls Thread.CurrentThread
26635         (mono_thread_cleanup): Wait for all subthreads to exit
26636
26637         * icall.c: New internal calls for System.Threading.Thread::Sleep
26638         (including Schedule) and CurrentThread
26639
26640         * threads.h: New file, to insulate thread-specific stuff from the
26641         rest of the code
26642
26643 2001-09-21  Dick Porter  <dick@ximian.com>
26644
26645         * threads-pthread.h: 
26646         * threads-pthread.c: New file, for handling pthreads-style
26647         threading support.  Start() now starts a new thread and executes
26648         the ThreadStart delegate instance.
26649
26650         * icall.c: Added the internalcall for
26651         System.Threading.Thread::Start_internal
26652
26653         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
26654
26655 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
26656
26657         * loader.c: work around the different signatures for delegates
26658         constructors csc generates in compiled code vs the ones compiled in mscorlib.
26659
26660 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
26661
26662         * class.h, class.c: add mono_class_get_field_from_name ().
26663         * *: Fix C comments and other ANSI C issues.
26664
26665 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
26666
26667         * endian.h, assembly.c: fix some endianness issues.
26668
26669 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
26670
26671         * loader.h, load.c: add delegate_class to mono_defaults.
26672         Handle runtime provided methods in mono_get_method ().
26673
26674 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
26675
26676         * loader.c (mono_get_method): use pinvoke for internal call
26677
26678         * icall.c: use pinvoke for internal call
26679
26680         * loader.c (method_from_memberref): set the method name
26681
26682 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
26683
26684         * metadata.c: help the compiler generate better code for
26685         mono_class_from_mono_type ().
26686
26687 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
26688
26689         * class.c (mono_class_metadata_init): delayed computing of the
26690         class size to mono_class_metadata_init ()
26691
26692 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
26693
26694         * class.c, class.h: add an interfaces member to MonoClass.
26695         * image.c, image.h: add assembly_name field to MonoImage
26696         from the assembly table.
26697         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
26698
26699 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
26700
26701         * class.c: Handle Array in mono_class_from_mono_type ().
26702         * metadata.c, pedump.c: some endian fixes.
26703
26704 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
26705
26706         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
26707         * metadata.c: fix small problem introduced with the latest commit.
26708
26709 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
26710
26711         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
26712         We don't need a MonoMetadata pointer anymore to compare signatures in
26713         mono_metadata_signature_equal (), update callers.
26714         Reduced memory usage an number of allocations for MonoMethodHeader and
26715         MonoMethodSignature.
26716
26717 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
26718
26719         * metadata.c: added compare for szarray.
26720
26721 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
26722
26723         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
26724         and add a couple more types to it and mono_defaults. Give an hint on
26725         classes that need implementing in our corlib and are referenced
26726         in mscorlib.
26727
26728 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
26729
26730         * class.h, class.c: keep track if a class is also an Enum.
26731         * loader.c: Implement a couple more types for use in libffi
26732         marshalling. Gives better diagnostics when failing to dlopen
26733         a library. Set method->klass for P/Invoke methods, too.
26734
26735 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
26736
26737         * class.c, class.h: add a MonoType this_arg to MonoClass that
26738         represents a pointer to an object of the class' type that
26739         can be used by the interpreter and later the type cache.
26740         Add best guess alignment info for valuetype objects.
26741
26742 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
26743
26744         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
26745         into MonoType: one less level of indirection and allocation and
26746         simplifies quite a bit of code. Added cache for MonoTypes that are
26747         used frequently, so that we don't need to allocate them all the time.
26748
26749 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
26750
26751         * class.c (mono_class_create_from_typedef): System.Enum is also a
26752         value type, although it does not derive from System.ValueType
26753         (maybe a bug in the ms compiler?)
26754
26755         * metadata.c (mono_type_size): return the right size for value types
26756
26757         * loader.c (mono_get_method): only initialize method header if not abstract
26758
26759         * class.c (mono_class_from_mono_type): use mono_default values. 
26760
26761 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
26762
26763         * *: use MonoClass pointers instead of <type_tokens>
26764         
26765         * class.h: new flag: metadata_inited.
26766
26767         * class.c (mono_class_metadata_init): impl.
26768         (mono_class_instance_size): impl.
26769         (mono_class_data_size): impl.
26770
26771 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
26772
26773         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
26774         MonoClass now has the name and name_space fields. 
26775         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
26776         mono_get_method () takes and optional MonoClass as argument.
26777         Removed mono_typedef_from_name() and added mono_class_token_from_name()
26778         instead that takes advantage of a map from class names to typedef
26779         tokens in MonoImage.
26780
26781 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
26782
26783         * metadata.c: zero is not a valid alignment boundary.
26784         Merge MONO_TYPE_VOID in default decoding code.
26785
26786 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
26787
26788         * image.h: merged MonoMetadata into MonoImage
26789
26790         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
26791         identify the type of elements.
26792
26793 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
26794
26795         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
26796         * cil-coff.h: split MonoMSDOSHeader and add size info.
26797         * image.c: add some consistency checks.
26798         * metadata.c: fix row size computation: one programmer
26799         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
26800         add explanation for the locator routine.
26801         Fix decoding of size in method header.
26802         
26803 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
26804
26805         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
26806         (g_concat_dir_and_file): Bring g_concat_dir_and_file
26807         function from gnome-libs.  This uses the right path separator
26808         based on the OS, and also works around a bug in some systems where
26809         a double slash is not allowed. 
26810         (default_assembly_name_resolver): Use g_concat_dir_and_file
26811         (mono_assembly_open): ditto.
26812
26813 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
26814
26815         * metadata.c (mono_metadata_signature_equal): impl.
26816
26817         * *: void is now a realy MonoType (instead of using NULL)
26818         
26819         * metadata.c (do_mono_metadata_parse_type): use
26820         mono_metadata_parse_type to parse void value.
26821
26822 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
26823
26824         * metadata.c, metadata.h: in the signature and method header store
26825         only the space required for holding the loca vars and incoming arguments.
26826
26827 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
26828
26829         * metadata.c (do_mono_metadata_parse_type): treat void like any
26830         other type (instead of assigning NULL);
26831
26832 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
26833
26834         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
26835
26836 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
26837
26838         * image.c (do_mono_image_open): added a cache for arrays.
26839
26840 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
26841
26842         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
26843         decode a single column from a row in a metadata table and changes
26844         to take advantage of it in the typedef locator (gives a nice speed up).
26845         Store offset info for function params.
26846
26847 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
26848
26849         * image.h (MONO_IMAGE_IS_CORLIB): removed 
26850
26851 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
26852
26853         * assembly.c: how could mono_assembly_close () had ever worked?
26854         * metadata.c, metadata.h: provide offset info for local vars.
26855         Implement mono_type_size () to take care of alignment as well
26856         as size (it was mono_field_type_size in cli/class.c before).
26857
26858 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
26859
26860         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
26861
26862         * assembly.h (CORLIB_NAME): set to corlib.dll
26863
26864         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
26865
26866 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
26867
26868         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
26869         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
26870         tokentype.h: massive namespace cleanup.
26871
26872 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
26873
26874         * metadata.h, metadata.c: decode exception clauses when parsing method header.
26875
26876 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
26877
26878         * metadata.c (mono_metadata_free_type): added check for type !=
26879         NULL (void) before calling mono_metadata_free_type()
26880
26881 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
26882
26883         * metadata.h, row_indexes.h: added header with enumerations to use
26884         to index in the columns from tables in metadata and to decode coded
26885         tokens: we should start using this instead of embedding magic numbers
26886         all over the code.
26887
26888 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
26889
26890         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
26891         Move metadata_t info from cli_image_info_t to MonoImage, where
26892         it's easily accessible. Changed all the uses accordingly.
26893         Added the method and class caches to MonoImage.
26894         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
26895         and mono_metadata_decode_value () signature to be more consistent
26896         with the other parse functions (and simplify code). Taken advantage
26897         of zero-length array allocation with GCC. Removed reduntant (and
26898         wrong) MonoFieldType struct and use MonoParam instead. Changed
26899         mono_metadata_parse_field_type () to use common code for parsing.
26900         Added mono_metadata_typedef_from_field () and
26901         mono_metadata_typedef_from_method () to lookup a typedef index from a
26902         field or method token.
26903         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
26904
26905 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
26906
26907         * metadata.c (mono_metadata_parse_field_type): Implement. 
26908         (do_mono_metadata_parse_type): Split engine from
26909         mono_metadata_parse_type, so that we can create smaller structures
26910         for things that just have one pointer to the MonoType (look at
26911         the MonoFieldType)
26912
26913 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
26914
26915         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
26916         as Jan Gray found out, it is incorrect. 
26917
26918 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
26919
26920         * assembly.c: Implement asssembly loading.  This loads an image
26921         and loads all the referenced assemblies.  Come to think of it, we
26922         could always do lazy loading of the assemblies. 
26923
26924         * image.c (mono_image_open): Keep loaded images in a hashtable.
26925
26926         * image.h (MonoImage): Add reference count.
26927
26928 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
26929
26930         * assembly.c (mono_assembly_open): Keep track of the file name in
26931         case the assembly has no ASSEMBLY table.
26932
26933         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
26934         from get.c here.
26935
26936 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
26937
26938         * metadata.c, metadata.h: decode local vars in method header
26939         parse function. Change callers accordingly.
26940
26941 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
26942
26943         * metadata.h, cil-coff.h: protect against multiple inclusion.
26944         Added some new structures to hold information decoded from metadata:
26945         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
26946         and relevant decoding/free functions.
26947         * metadata.c: implement decoding functions. Add warning for out of bounds
26948         index in mono_metadata_locate(). Implement mono_get_method () to retreive
26949         all the info about a method signature and invocation. Remove check on
26950         uninitialized local var in parse_mh() and fix memory leak.
26951
26952 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
26953
26954         * metadata.h: More macros.
26955
26956         * tokentype.h: New file.
26957
26958 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
26959
26960         * assembly.c: added a consistency check and initialize
26961         some structures with g_new0().
26962         * metadata.c: fixed a couple more bugs in table size computation
26963         and add other checks for out-of bound access to metadata.
26964
26965 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
26966
26967         * metatada.c: fix bugs computing table sizes. Spew a
26968         warning when index in string heap is out of bounds.
26969
26970 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
26971
26972         * metadata.h: Add a couple of macros to manipulate tokens. 
26973
26974 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
26975
26976         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
26977         cli_section_tables).
26978
26979 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
26980
26981         * metadata.c (mono_metadata_user_string): New function, provides
26982         access to the UserString heap. 
26983
26984 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
26985
26986         * metadata.c: Add inline documentation.
26987
26988 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
26989
26990         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
26991         files. 
26992
26993 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
26994
26995         * typeattr.h: New file, TypeAttribute flags. 
26996
26997 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
26998
26999         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
27000         mono_assembly_ensure_section): Section loading code.
27001         (load_section_tables): Load the sections.
27002
27003         * mono/metadata/metadata.c (mono_metadata_locate_token,
27004         mono_metadata_locate): Functions to locate the information
27005         definition given a token or a table and an index.
27006         (mono_metadata_compute_table_bases): New.
27007         (compute_size): New function to compute the sizes of the various
27008         tables.
27009
27010         * mono/metadata/metadata.h: Finish listing the different index
27011         types. 
27012
27013         * mono/metadata/pedump.c: Improve to dump new information.
27014
27015 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
27016
27017         * mono/metadata/metadata.c: Entered all the tables matching
27018         Beta2. 
27019
27020         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
27021
27022
27023