2008-06-20 Zoltan Varga <vargaz@gmail.com>
[mono.git] / mono / metadata / ChangeLog
1 2008-06-20  Zoltan Varga  <vargaz@gmail.com>
2
3         * loader.c (mono_loader_init): Make this callable multiple times.
4         (mono_dllmap_insert): Call mono_loader_init () so this works even before
5         the runtime is initialized. Fixes #401755.
6
7 2008-06-19  Dick Porter  <dick@ximian.com>
8
9         * socket-io.c (convert_socketflags): Ignore SocketFlags.Partial.
10         Fixes bug 349688.
11
12 2008-06-19  Dick Porter  <dick@ximian.com>
13
14         * socket-io.c:
15         * icall-def.h: Implement Socket generic Send() and Receive()
16         methods.  Fixes bug 395168.
17
18 2008-06-19  Kornél Pál  <kornelpal@gmail.com>
19
20         * icall-def.h, icall.c: Add ves_icall_System_Reflection_Module_GetHINSTANCE.
21
22         Contributed under MIT/X11 license.
23
24 2008-06-18  Martin Baulig  <martin@ximian.com>
25
26         * mono-debug.h (MONO_DEBUGGER_VERSION): Split into
27         `MONO_DEBUGGER_MAJOR_VERSION' and `MONO_DEBUGGER_MINOR_VERSION';
28         set to 80.0.  The debugger <-> runtime interface is now frozen as
29         well.   
30
31         * mono-debug.c
32         (mono_debug_debugger_version): Bump to 4.
33
34 2008-06-18  Martin Baulig  <martin@ximian.com>
35
36         * debug-mono-symfile.c
37         (load_symfile): Don't check the minor version.
38
39         * debug-mono-symfile.h: Bump the version number to 50.0.
40
41 2008-06-18  Martin Baulig  <martin@ximian.com>
42
43         * debug-mono-symfile.c
44         (load_symfile): Treat `MONO_SYMBOL_FILE_MINOR_VERSION' as a
45         minimum required version.
46
47 2008-06-17 Rodrigo Kumpera  <rkumpera@novell.com>
48
49         * reflection.c (mono_custom_attrs_from_property): Fix support for
50         retriveving cattrs of dynamic inflated generic types.
51
52         * reflection.c (mono_custom_attrs_from_event): Same.
53
54         * reflection.c (mono_custom_attrs_from_field): Same;
55
56         * reflection.c (typebuilder_setup_events): Same cattrs of events.
57
58         * loader.c (-mono_metadata_get_corresponding_field_from_generic_type_definition):
59         Moved to metadata.c.
60
61         * metadata.c: New functions to retrive the equivalent field, event
62         of property from the generic type definition.
63
64         * metadata-internals.h: Added new functions from metadata.c.
65
66 2008-06-17 Rodrigo Kumpera  <rkumpera@novell.com>
67
68         * reflection.c (mono_custom_attrs_from_builders): Mark MonoCustomAttrInfo
69         to cached in a mempool is used.
70
71         * metadata.c (free_generic_class): In some situations field generic_info type
72         is not properly dup'ed and leads to double free'ing.
73
74         Fixes #400643.
75
76 2008-06-17  Mark Probst  <mark.probst@gmail.com>
77
78         * marshal.c (mono_marshal_get_static_rgctx_invoke): Also handle
79         this arguments (will be needed later for generic methods).
80         Collect stats.
81
82 2008-06-17  Mark Probst  <mark.probst@gmail.com>
83
84         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal):
85         Create a static RGCTX invoke wrapper for methods which require it.
86
87 2008-06-17  Mark Probst  <mark.probst@gmail.com>
88
89         * object.c, class-internals.h: New function for checking whether
90         an individual field is special static.
91
92 2008-06-15  Zoltan Varga  <vargaz@gmail.com>
93
94         * metadata.c (mono_metadata_get_generic_param_row): Use bsearch instead of
95         linear search since the table is sorted.
96
97         * gc.c (mono_gc_cleanup): Abort the finalizer thread more gracefully.
98         Fixes #324180.
99
100 2008-06-14  Zoltan Varga  <vargaz@gmail.com>
101
102         * appdomain.c (unload_thread_main): Applied patch from Tim Howard 
103         (timh@ict.om.org). Remove the timeouts when waiting for appdomains to unload.
104
105         * gc.c (mono_domain_finalize): Allow an infinite timeout.
106
107         * threads.c (mono_threads_abort_appdomain_threads): Ditto.
108         
109         * threads.c (mono_thread_request_interruption): Get rid of locking, use
110         InterlockedCompareExchange to query and modify 
111         thread->interruption_requested.
112
113         * object-internals.h (struct _MonoThread): Change interruption_requested
114         to a gint32 so it can be modified by atomic operations. Add 
115         'critical_region_level' from the managed side, change small_id to a guint32,
116         add new set of 'unused' fields.
117
118         * appdomain.c: Bump corlib version.
119
120 2008-06-13  Zoltan Varga  <vargaz@gmail.com>
121
122         * class.c (mono_class_from_name): Search modules as well. Fixes
123         #322332.
124
125 2008-06-13  Mark Probst  <mark.probst@gmail.com>
126
127         * generic-sharing.c: Code for maintaining the MRGCTX and MRGCTX
128         templates.  Templates are generalized with an additional type_argc
129         argument.  RGCTX templates have type_argc==0, MRGCTX templates
130         have type_argc>0.
131
132         * domain-internals.h, domain.c: New hash table for looking up
133         MRGCTXs.
134
135         * metadata.c, metadata-internals.h: Rename hash and equal
136         functions for MonoGenericInst's and make them public.
137
138         * class-internals.h: New data structures for the MRGCTX.  Macros
139         for distinguishing slots in the RGCTX and the MRGCTX.
140
141 2008-06-13  Mark Probst  <mark.probst@gmail.com>
142
143         * object.c (mono_method_get_imt_slot): Put the same methods of
144         different instantiations of the same generic interface in the same
145         IMT slots, to make generic sharing simpler.
146
147 2008-06-12 Rodrigo Kumpera  <rkumpera@novell.com>
148
149         * metadata-internals.h: Added mono_metadata_field_info_with_mempool.
150
151         * metadata.c (mono_metadata_field_info_with_mempool): Added.
152         This function works just like mono_metadata_field_info, but
153         accept a mempool as argument to be used allocating memory.
154
155         * marshal.c (mono_marshal_load_type_info): Use new function
156         to load marshal data into image mempool.
157
158 2008-06-12 Rodrigo Kumpera  <rkumpera@novell.com>
159
160         * class.c (mono_class_inflate_generic_type_with_mempool):
161         This function allows to inflate a generic type using
162         a mempool.
163
164         * class.c (inflate_generic_type): Take a mempool as argument
165         and use it to do type dup'ing.
166
167         * class.c (mono_class_setup_fields): Field type for generic
168         generic classes are allocated from the image mempool.
169
170         * metadata.c (free_generic_class): Inflated field type is
171         now allocated in the image mempool.
172
173 2008-06-12 Rodrigo Kumpera  <rkumpera@novell.com>
174
175         * threads.c (thread_cleanup): Free MonoThread::name.
176
177 2008-06-12  Marek Habersack  <mhabersack@novell.com>
178
179         * appdomain.c (ensure_directory_exists): avoid unnecessary
180         mkdir(2) calls when the shadow directory already exists.
181         (mono_make_shadow_copy): copy also satellite assemblies from the
182         private bin directories.
183
184 2008-06-11  Zoltan Varga  <vargaz@gmail.com>
185
186         * threads.c (mono_thread_get_stack_bounds): Align the stack in all cases.
187         
188         * threads.c (mono_thread_get_stack_bounds): Align the stack address to
189         a page boundary. Fixes #396219.
190
191 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
192
193         * marshal.c (mono_marshal_load_type_info): Add a memory barrier
194         due to double-checked locking.
195
196 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
197
198         * assembly.c (build_assembly_name): Release memory on failure.
199
200         * assembly.c (mono_assembly_name_parse_full): Release memory on failure.
201
202 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
203
204         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Release
205         memory on failure.
206
207 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
208
209         * icall.c (ves_icall_System_Reflection_AssemblyName_ParseName): Release
210         memory on failure.
211
212 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
213
214         * loader.c (field_from_memberref): Check if field signature type is equal
215         to the non-inflated type of the field. Fixes #398980.
216
217 2008-06-11  Zoltan Varga  <vargaz@gmail.com>
218
219         * assembly.c (mono_assembly_load_from_full): Call 
220         mono_assembly_load_friends () outside the assemblies lock, since it can
221         acquire the loader lock. Fixes #323696.
222
223         * reflection.c (resolve_object): Inflate the inst with the context for
224         FieldOnTypeBuilderInst. Fixes #399010.
225
226 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
227
228         * reflection.c (mono_image_get_field_on_inst_token): Don't
229         inflate the field to encode it's signature. If it's a
230         VAR or MVAR it should stay that way in the signature.
231         Fixes #399047.
232
233 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
234
235         * reflection.c (resolve_object): Release memory of inflated types.
236
237 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
238
239         * loader.c (mono_method_get_signature_full): Remove assert about
240         loading a methodspec to a generic method. We have such methods, such as
241         System.Threading.Interlocked::CompareExchange<T>.
242         This assert was removed since it crashes the verifier when it checks
243         methods calling CompareExchange<T>.
244
245 2008-06-10  Marek Safar  <marek.safar@gmail.com>
246
247         * icall.c (ves_icall_MonoMethod_GetGenericArguments): Creates an instance
248         of Type array and not MonoType.
249
250 2008-06-10  Marek Habersack  <mhabersack@novell.com>
251
252         * profiler.c: fix a segfault on shutdown. Patch from Paolo Molaro
253         <lupus@ximian.com>
254
255 2008-06-10  Martin Baulig  <martin@ximian.com>
256
257         * debug-mono-symfile.h
258         (MONO_SYMBOL_FILE_MINOR_VERSION): Bump to 6.  There were no
259         changes to the file format, but we were generating incorrect
260         source file indices in the line number table due to a bug, which
261         made backtraces report an incorrect source file.
262
263 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
264
265         * mono-debug.c: Moved mono_debug_free_method_jit_info from
266         mini/debug-mini.c to here.
267
268         * mono-debug.c (il_offset_from_address): Free memory from find_method.
269
270         * mono-debug.h: Export mono_debug_free_method_jit_info, users should
271         use it to release structs returned by mono_debug_find_method.
272
273 2008-06-10  Zoltan Varga  <vargaz@gmail.com>
274
275         * class.c (mono_class_setup_vtable): Call setup_methods even for interfaces
276         since it needs to set method->slot for all interface methods.
277
278 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
279
280         * class-internals.h: Forgot to add.
281
282 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
283
284         * class-internals.h: Added MONO_PROP_DYNAMIC_CATTR.
285
286         * reflection.c (lookup_custom_attr): Added a MonoImage argument.
287         Lookup the custom attributes from property_hash.
288
289         * reflection.c (mono_save_custom_attrs): Save the custom attributes
290         in property_hash. Allocate all data using the image mempool.
291
292         * reflection.c: Removed dynamic_custom_attrs. Changed all checks
293         for dynamic_custom_attrs to checks if the image is dynamic.
294
295 2008-06-09  Zoltan Varga  <vargaz@gmail.com>
296
297         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Free the
298         assemblies array.
299         
300         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Avoid calling
301         runtime functions while holding the domain assemblies lock.
302
303 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
304
305         * verify.c: Reapplied the last bit of the reverted changes.
306
307 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
308
309         * verify.c: Reapplied more of the reverted changes.
310
311 2008-06-09  Martin Baulig  <martin@ximian.com>
312
313         * debug-mono-symfile.c (load_symfile): Check the major version
314         first; if it's wrong, don't print the minor version in the error message.
315
316 2008-06-09  Zoltan Varga  <vargaz@gmail.com>
317
318         * appdomain.c (set_domain_search_path): Make this use the domain assemblies
319         lock instead of the domain lock to avoid deadlocks, since the thread might
320         already hold the loader lock.
321
322         * threads.c (start_wrapper): Call mono_monitor_init_tls ().
323         (mono_thread_attach): Ditto.
324
325         * monitor.c: Use a TLS variable for holding the current thread id instead
326         of calling pthread_self ().
327         (mono_monitor_init_tls): New internal function to initialize the TLS
328         variable.
329         (mono_monitor_try_enter_internal): Put the owner == id check after the
330         owner == 0 check.
331
332         * object-internals.h (_G_BOOLEAN_EXPR): Redefine this glib macro to avoid
333         missed optimizations when using gcc-4.3.
334
335 2008-06-08 Rodrigo Kumpera  <rkumpera@novell.com>
336
337         * reflection.c (mono_dynamic_image_free): Free the memory
338         used by MonoGenericParam in MonoDynamicImage::gen_param.
339
340         * reflection.c (mono_reflection_setup_generic_class): Allocate
341         container from mempool.
342
343         * reflection.c (mono_reflection_initialize_generic_parameter): Allocate
344         container from mempool.
345
346 2008-06-07  Zoltan Varga  <vargaz@gmail.com>
347
348         * threads.c (mono_set_pending_exception): New internal function to set the
349         pending exception of the current thread.
350         (mono_thread_get_and_clear_pending_exception): Check for 
351         thread->pending_exception as well.
352
353         * object-internals.h (struct _MonoThread): Add 'pending_exception' field.
354
355         * boehm-gc.c (mono_gc_base_init): Set GC_no_dls before calling GC_init () since
356         it can trigger a collection.
357
358 2008-06-06  Martin Baulig  <martin@ximian.com>
359
360         Merged the `debugger-kahalo' branch.
361
362         * mono-debug.h
363         (MONO_DEBUGGER_VERSION): Bumped to 72.
364
365         * debug-mono-symfile.h
366         (MonoSymbolFileMethodIndexEntry): Removed.
367         (MonoSymbolFileMethodEntry): New public typedef.
368         (MonoSymbolFileOffsetTable): Added `_is_aspx_source'.
369         (MonoSymbolFileSourceEntry): Remove everything except `index' and
370         `data_offset'.
371         (MonoSymbolFileMethodEntry): Removed.
372         (MonoSymbolFileLexicalBlockEntry): Removed.
373         (MonoSymbolFileLineNumberEntry): Removed.
374         (MonoDebugLexicalBlockEntry): Removed.
375         (MonoDebugMethodInfo): Replaced `entry' by `guint32 entry_offset';
376         removed `num_il_offsets' and `il_offsets'.
377         (MonoSymbolFile): Replace `version' with `major_version' and
378         `minor_version'.
379         (MONO_SYMBOL_FILE_VERSION): Replace with
380         `MONO_SYMBOL_FILE_MAJOR_VERSION' and
381         `MONO_SYMBOL_FILE_MINOR_VERSION'.
382
383         * debug-mono-symfile.c
384         (mono_debug_symfile_lookup_location): Add support for the new line
385         number table format.
386
387 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
388
389         * metadata.c (free_generic_class): Release the inflated
390         MonoClass of dynamic generic classes if it's not a generic
391         type definition.
392
393 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
394
395         * verify.c: Reapplied more of the reverted changes.
396
397 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
398
399         * reflection.c (lookup_custom_attr): Clean the cached flag or
400         nobody will free it. Fixes a memleak in MonoCustomAttrs::IsDefinedInternal
401         for SRE types.
402
403 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
404
405         * verify.c: Reapplied a small part of the reverted changes.
406
407 2008-06-07  Zoltan Varga  <vargaz@gmail.com>
408
409         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
410
411         * monitor.c (mono_monitor_try_enter_internal): Add NULL check which was 
412         previously in managed code.
413         (mono_monitor_exit): Ditto.
414         (ves_icall_System_Threading_Monitor_Monitor_exit): Removed, not needed anymore.
415
416         * icall-def.h: Rename the Enter/Exit icalls to simply Enter/Exit to match
417         the managed definition.
418
419 2008-06-06 Rodrigo Kumpera  <rkumpera@novell.com>
420
421         * verify.c: Revert changes to see if it helps with weird buildbot crashes.
422
423 2008-06-06  Zoltan Varga  <vargaz@gmail.com>
424
425         * monitor.c: Redefine GetCurrentThreadId () with a macro on !win32.
426         
427         * monitor.c: Add some micro optimizations.
428
429         * icall.c (type_from_typename): Handle 'bool'.
430
431 2008-06-06 Rodrigo Kumpera  <rkumpera@novell.com>
432
433         * verify.c: Implement constructor verification per P III 1.8.1.4.
434         Fixes #396716.
435
436 2008-06-06  Zoltan Varga  <vargaz@gmail.com>
437
438         * assembly.c (mono_assembly_loaded_full): Avoid calling the search hooks while
439         holding the assemblies lock here too.
440
441 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
442
443         * verify.c: Kill stack_top function.
444
445 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
446
447         * verify.c: Kill stack_get function.
448
449 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
450
451         * verify.c (mono_method_verify): Last change broke the build. Fixed.
452
453 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
454
455         * verify.c (verify_type_compatibility_full): Make SZARRAY checks
456         more reliable.
457
458         * verify.c (mono_method_verify): Inflate params and locals to avoid
459         mismatch when checking for compatibility.
460
461 2008-06-05  Jonathan Chambers  <joncham@gmail.com>
462
463         * metadata.c (mono_string_from_bstr): Fix BSTR marshalling.
464         Length prefix should be size in bytes. Fix bug #339530.
465         
466         * metadata.c (mono_string_to_bstr): Fix BSTR marshalling.
467         Length prefix should be size in bytes. Fix bug #339530.
468
469         Code is contributed under MIT/X11 license.
470
471 2008-06-05  Bill Holmes <billholmes54@gmail.com>
472
473         * decimal.c:  Adding MSVC implementation to my_g_bit_nth_msf.
474
475         Contributed under MIT/X11 license.
476
477 2008-06-05  Martin Baulig  <martin@ximian.com>
478
479         * mono-debug-debugger.c
480         (mono_debugger_check_breakpoints): Reflect latest runtime changes.
481
482 2008-06-05  Zoltan Varga  <vargaz@gmail.com>
483
484         * assembly.c (mono_assembly_load_from_full): Avoid calling the search hooks
485         while holding the assemblies lock to prevent deadlocks. Handle the case
486         where the search hook returns NULL but the assembly was still loaded.
487         Fixes #323696.
488
489         * appdomain.c (set_domain_search_path): Acquire the domain lock since we
490         modify domain state.
491
492 2008-06-05  Andreas Färber  <andreas.faerber@web.de>
493
494         * boehm-gc.c: Add DTrace probes gc-{begin,end}.
495         * Makefile.am (pedump_LDADD): Post-process object files and
496         add dtrace-generated object file, if necessary.
497
498         Code is contributed under MIT/X11 license.
499
500 2008-06-04 Rodrigo Kumpera  <rkumpera@novell.com>
501
502         * reflection.c (mono_dynamic_image_free): Free MonoDynamicImage::public_key.
503
504 2008-06-04 Rodrigo Kumpera  <rkumpera@novell.com>
505
506         * class.c (mono_type_get_full): Add a work-around for generic type definitions.
507
508 2008-06-04  Mark Probst  <mark.probst@gmail.com>
509
510         * threads.c: Try to free everything from the delayed free table
511         when shutting down threads, and set the variable to NULL after the
512         table is freed so that calling
513         mono_thread_hazardous_try_free_all() when shutting down the root
514         domain doesn't crash.
515
516 2008-06-04 Rodrigo Kumpera  <rkumpera@novell.com>
517
518         * class.c (mono_type_retrieve_from_typespec): Add an argument to inform
519         the caller if resulting type was inflated.
520
521         * class.c (mono_class_create_from_typespec): Free the MonoType if it
522         was inflated.
523
524         * class.c (mono_type_get_full): Free the MonoType if it was inflated.
525
526
527 2008-06-04  Zoltan Varga  <vargaz@gmail.com>
528
529         * decimal.c (rescale128): Rework the code a bit so it no longer crashes the
530         class library tests.
531
532         * icall.c (ves_icall_InternalInvoke): Applied patch from Andy Hume 
533         (andyhume32@yahoo.co.uk). Add more useful exception messages. Fixes
534         #396989.
535
536 2008-06-04  Mark Probst  <mark.probst@gmail.com>
537
538         * domain.c, domain-internals.h: The JIT infos are now freed by the
539         JIT info table code.  They are freed immediately if there only a
540         single JIT info table in circulation.  If there is more, the free
541         is delayed via a queue.
542
543         * threads.c, threads-types.h: New hazard pointer function for
544         freeing all freeable delayed items in one sitting.
545
546 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
547
548         * reflection.c (typebuilder_setup_fields): Use mempool for allocations.
549
550         * reflection.c (typebuilder_setup_properties): Same.
551
552         * reflection.c (typebuilder_setup_events): Same.
553
554 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
555
556         * reflection.c (mono_custom_attrs_from_builders): Receive a MonoMemPool
557         and use it for allocating memory.
558
559         * reflection.c (mono_marshal_spec_from_builder): Same.
560
561         * reflection.c: Change code to use new signatures.
562
563         * metadata.c (mono_metadata_type_dup): Add a FIXME note.
564
565 2008-06-03  Zoltan Varga  <vargaz@gmail.com>
566
567         * decimal.c (rescale128): Put back one line which was accidently commented
568         out.
569         
570         * decimal.c (rescale128): Disable the code added by the last patch, as it seems
571         to cause crashes.
572
573 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
574
575         * reflection.c (mono_reflection_generic_class_initialize): Name must
576         be always malloc'ed so we can free it later on. Do this for field, property
577         and event.
578
579         * metadata.c (free_generic_class): Free field, property and event names.
580
581 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
582
583         * reflection.c (fieldbuilder_to_mono_class_field): Use mono_metadata_type_dup
584         instead of g_memdup.
585
586         * reflection.c (typebuilder_setup_fields): Same.
587
588 2008-06-03  Zoltan Varga  <vargaz@gmail.com>
589
590         * decimal.c (rescale128): Optimize this function a bit more.
591
592 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
593
594         * metadata.c (free_generic_class): Release some memory from
595         SRE generic classes.
596
597 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
598
599         * reflection.c (mono_image_get_generic_field_token): No reference
600         to name is kept, free it.
601
602         * reflection.c (mono_reflection_generic_class_initialize): Free
603         more memory of the inflated field.
604
605 2008-06-03  Zoltan Varga  <vargaz@gmail.com>
606
607         * decimal.c (mono_decimalDiv): Moved equality checks here from managed
608         code.
609
610 2008-06-02 Rodrigo Kumpera  <rkumpera@novell.com>
611
612         * reflection.c (mono_dynamic_image_free): Release memory used by
613         MonoDynamicImage::array_methods elements.
614
615         * reflection.c (assembly_add_win32_resources): Release memory after
616         encoding.
617
618 2008-06-02  Zoltan Varga  <vargaz@gmail.com>
619
620         * decimal.c (log2_32): Use an optimized version for this function too.
621         
622         * decimal.c (log2_64): Fix this on 32 bit machines.
623
624 2008-06-02 Rodrigo Kumpera  <rkumpera@novell.com>
625
626         * class.c (mono_dup_array_type): Implement allocation using a mempool.
627
628         * class.c (mono_metadata_signature_deep_dup): Same.
629
630         * metadata.c (mono_metadata_signature_dup_full): Added, allow dup'ng with
631         a mempool.
632
633         * metadata.c (mono_metadata_signature_dup): Delegate to the _full version.
634
635         * metadata.c (mono_metadata_type_dup): Remove asserts and FIXME.
636
637         * metadata-internals.h: Added mono_metadata_signature_dup_full.
638
639         * class-internals.h: Update signatures to take a MonoMemPool.
640
641 2008-06-02  Dick Porter  <dick@ximian.com>
642
643         * icall.c (ves_icall_System_ComponentModel_Win32Exception_W32ErrorMessage): 
644         * icall-def.h: Add
645         System.ComponentModel.Win32Exception.W32ErrorMessage, using the
646         FormatMessage API to get the error text.  Fixes bug 321827.
647
648 2008-06-02  Zoltan Varga  <vargaz@gmail.com>
649
650         * decimal.c: Add some micro optimizations to make decimal operations faster.
651
652 2008-06-01 Rodrigo Kumpera  <rkumpera@novell.com>
653
654         * reflection.c (method_encode_clauses): Take a mempool
655         as parameter and use it to allocate the clause array.
656
657         * reflection.c (mono_image_get_field_on_inst_token): Free
658         the inflated type after encoding it.
659
660         * reflection.c (mono_dynamic_image_free): Free each element
661         of MonoDynamicImage::gen_params.
662
663         * reflection.c (reflection_methodbuilder_to_mono_method):
664         Allocate the generic param array from the mempool.
665         Allocate signature params from the mempool.
666
667         * reflection.c (mono_reflection_generic_class_initialize):
668         Free inflated fields after been used.
669
670 2008-05-30 Rodrigo Kumpera  <rkumpera@novell.com>
671
672         * icall.c: Reapply the memory leak fixes as they no
673         longer make mono crash.
674
675 2008-05-30 Rodrigo Kumpera  <rkumpera@novell.com>
676
677         * reflection.c (mono_type_get_object): Don't store the suplied
678         MonoType with type_hash. A caller which pass a type that
679         was mono_metadata_type_dup'ed cannot free it reliably, as type_hash
680         might end with a pointer to freed memory.
681         The solution is to use byval_arg or this_arg from the associated
682         MonoClass of the supplied type.
683
684 2008-05-29  Zoltan Varga  <vargaz@gmail.com>
685
686         * icall.c: Revert the rest of the last change as it breaks the build too.
687
688 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
689
690         * icall.c: Revert a leak fix as it's breaking the build.
691
692 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
693
694         * appdomain.c (mono_make_shadow_copy): Fix another leak of dir_name.
695
696 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
697
698         * appdomain.c (mono_make_shadow_copy): We leaked dir_name.
699
700 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
701
702         * icall.c: Fix some memory leaks.
703
704 2008-05-29  Dick Porter  <dick@ximian.com>
705
706         * threadpool.c (mono_thread_pool_remove_socket): Always remove the
707         async socket operations from the pending list when a socket
708         closes.  Leaving it until the threadpool services the event
709         exposes a race condition when a socket descriptor is reused.
710         Fixes bug 377589.
711
712 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
713
714         * object.c: Fix negative index check for array alocation.
715
716 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
717
718         * icall.c, marshal.c: Delegate wrappers should skip visibility.
719         This check is performed by the verifier for IL created delegates
720         and by Delegate::CreateDelegate for programatically created ones.
721         Fixes #372406.
722
723 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
724
725         * sockey-io.c (ves_icall_System_Net_Sockets_Socket_Select_internal):
726         Fix code to use mono_array_size_t instead of int.
727
728         Based on patch by Luis F. Ortiz.
729         Contributed under X11 license.
730         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
731
732 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
733
734         * icall.c: Added ves_icall_System_Array_GetLongLength and
735         ves_icall_System_Array_CreateInstanceImpl64. Both allow handling big
736         arrays.
737
738         * icall.h: Export both new functions.
739
740         Based on patch by Luis F. Ortiz.
741         Contributed under X11 license.
742         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
743
744 2008-05-28  Martin Baulig  <martin@ximian.com>
745
746         The debugger now requires exactly r103463.
747
748         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 71.
749         This version is not supported by the debugger, wait for 72.
750
751 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
752
753         * object.h: Changed array related functions to use
754         mono_array_size_t instead of guint32. Forgot to commit this file.
755
756         Patch by Luis F. Ortiz.
757         Contributed under X11 license.
758         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
759
760
761 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
762
763         * object.h: Don't use G_MAXINT32 or G_MAXUINT32 as old glibs
764         don't define it. Use the number literal instead.
765
766 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
767
768         * icall.c: Changed array related functions to use
769         mono_array_size_t instead of guint32.
770
771         * icall.c (ves_icall_System_Array_GetLength): Check for length
772         overflow under MONO_BIG_ARRAYS.
773
774         Based on patch by Luis F. Ortiz.
775         Contributed under X11 license.
776         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
777
778 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
779
780         * object.c: Add 64bits bounds check for arrays under MONO_BIG_ARRAYS.
781
782         Based on patch by Luis F. Ortiz.
783         Contributed under X11 license.
784         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
785
786 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
787
788         * object.c, object.h: Changed array related functions to use
789         mono_array_size_t instead of guint32.
790
791         Patch by Luis F. Ortiz.
792         Contributed under X11 license.
793         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
794
795 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
796
797         * object.h: Introduced mono_array_size_t typedef. This must be used
798         in all places an array length is expected. This is 64bits wide if
799         MONO_BIG_ARRAYS is enabled.
800
801         Patch by Luis F. Ortiz.
802         Contributed under X11 license.
803         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
804
805 2008-05-27  Zoltan Varga  <vargaz@gmail.com>
806
807         * security-manager.c class.c: Set the class exception info by calling
808         mono_class_set_failure ().
809
810         * class.c (mono_class_get_exception_data): New accessor function.
811         (mono_class_set_failure): Store exception_data in the property hash.
812
813         * class-internals.h (struct _MonoClass): Store 'exception_data' outside
814         the struct as a property.
815
816         * loader.c (mono_get_method_full): Store the lookup result for method
817         tokens in method_cache, the others in methodref_cache to decrease the memory
818         usage of hash tables.
819
820         * image.c (mono_image_close): Destroy method_cache and methodref_cache.
821         (mono_image_init): method_cache is lazy inited now.
822
823         * metadata-internals.h (struct _MonoImage): Change method_cache to
824         a MonoValueHashTable, add a separate methodref_cache.
825
826 2008-05-27  Eyal Alaluf <eyala@mainsoft.com>
827
828         * number-formatter.h: Fix tables to avoid arithemtic overflow in
829           Double.ToString as exposed by Bug #383531.
830
831 2008-05-26  Zoltan Varga  <vargaz@gmail.com>
832
833         * number-formatter.h: Make some tables static.
834
835         * class.c (mono_method_set_generic_container): New accessor function.
836         (mono_method_get_generic_container): Ditto.
837
838         * class-internals.h (struct _MonoMethod): Remove rarely used 
839         'generic_container' field, store it in the property hash instead. Add 
840         'is_generic' boolean field instead.
841
842         * image.c (mono_image_init): Initialize property_hash.
843         (mono_image_close): Destroy property_hash.
844
845         * metadata-internals.h (struct _MonoImage): Add 'property_hash' hash table to
846         hold rarely used fields of runtime structures belonging to this image.
847
848         * class.c loader.c verify.c icall.c reflection.c: Use the new accessor functions
849         to get/set method->generic_container.
850
851         * loader.c (mono_get_method_from_token): Avoid loading the method header for
852         generic methods.
853
854 2008-05-25  Zoltan Varga  <vargaz@gmail.com>
855
856         * class.c (mono_class_inflate_generic_method_full): Don't increase
857         mono_stats.inflated_method_count for methods found in the cache.
858
859         * threads.c (mono_thread_request_interruption): Add a comment about 
860         QueueUserAPC ().
861
862 2008-05-24  Zoltan Varga  <vargaz@gmail.com>
863
864         * class.c (setup_interface_offsets): Use sizeof (guint16) when allocating the
865         interface_offsets_packed table.
866         
867         * class.c (mono_class_init): Remove some dead code.
868
869         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Call
870         mono_class_setup_vtable () when CAS is active to detect security problems.
871
872 2008-05-23 Rodrigo Kumpera  <rkumpera@novell.com>
873
874         * verify.c (mono_delegate_type_equal): Handle VAR, MVAR and GENERICINST.
875
876         * verify.c (mono_delegate_signature_equal): Don't compar number of generic
877         parameters as it's irrelevant for delegate checking.
878
879 2008-05-23  Zoltan Varga  <vargaz@gmail.com>
880
881         * class-internals.h class.c: Correct the name of the 'mono_no_setup_vtable_in_class_init' variable.
882
883         * class.c (mono_class_init): Control the creation of a generic vtable using
884         a global which is true by default, but set to false by the runtime startup code.
885         
886         * class.c (mono_class_init): Avoid constructing a generic vtable in most cases.
887         Disabled for now since it breaks the embedding API.
888         Move the setup of class->methods for arrays to mono_class_setup_methods ().
889         (mono_class_setup_methods): Add a memory barrier.
890
891         * object.c (mono_class_create_runtime_vtable): Add code to handle the case
892         when mono_class_init () doesn't compute the generic vtable.
893         
894 2008-05-23  Massimiliano Mantione  <massi@ximian.com>
895         * profiler.c: Added mono_profiler_install_statistical_call_chain,
896         mono_profiler_stat_get_call_chain_depth and mono_profiler_stat_call_chain
897         to support call chains (backtrace) in the stat profiler.
898         * profiler.c, profiler-private.h: Likewise.
899
900 2008-05-22  Mark Probst  <mark.probst@gmail.com>
901
902         * generic-sharing.c: Init generic class when a method of it is
903         requested via a runtime generic context.
904
905 2008-05-22  Zoltan Varga  <vargaz@gmail.com>
906
907         * class.c (mono_class_init): Add a comment about trying to avoid calling this.
908
909         * reflection.c (mono_type_get_object): Add a FIXME.
910
911         * loader.c (find_method_in_class): Use mono_class_get_method_by_index ().
912
913         * class.c (mono_class_get_method_by_index): New helper function, returning an
914         entry in the class->methods array.
915
916 2008-05-21  Zoltan Varga  <vargaz@gmail.com>
917
918         * class.c (mono_class_init): Only do the array optimization for szarrays. 
919         Avoid creating a generic vtable for generic instances as well.
920         (mono_class_get_method_from_name_flags): Don't search in the metadata for
921         generic instances.
922
923 2008-05-21 Rodrigo Kumpera  <rkumpera@novell.com>
924
925         * loader.c (mono_get_method_constrained): Inflate the signature
926         with class context. Fix #325283.
927
928 2008-05-21  Zoltan Varga  <vargaz@gmail.com>
929
930         * object.c (mono_class_create_runtime_vtable): Add a comment.
931
932         * class.c (get_implicit_generic_array_interfaces): Call mono_class_init ()
933         where needed.
934         (setup_interface_offsets): Handle the case when this is called twice for arrays.
935         (mono_class_setup_vtable_general): Add an assert.
936         (mono_class_init): Avoid creating a generic vtable for arrays.
937
938         * class.c (mono_generic_class_get_class): Don't call setup_interface_offsets ()
939         here, let mono_class_init () do that.
940
941         * class.c (mono_class_init): Avoid calling mono_class_setup_methods () for
942         interfaces in mscorlib.
943
944         * class.c (mono_class_setup_vtable): Avoid calling setup_methods () for
945         interfaces. Add some comments.
946         (mono_class_init): Call mono_class_setup_methods () here since it is no
947         longer called by mono_class_setup_vtable ().
948
949         * object.c (mono_class_proxy_vtable): Null out entries in pvt->vtable which are
950         not set in class->vtable.
951         (mono_class_create_runtime_vtable): Reenable the disabled code.
952
953         * object.c (mono_class_create_runtime_vtable): Disable the last change for
954         now as it causes some test failures.
955
956         * object.c (mono_class_create_runtime_vtable): Avoid creating a generic vtable
957         if using the vtable trampoline. Also remove some strange code which put the
958         generic methods themselves into the vtable slots. Remove the AOT init_vtable
959         stuff as it is no longer needed.
960
961 2008-05-19 Rodrigo Kumpera  <rkumpera@novell.com>
962
963         * pedump.c: Give make --verify all option check code as well.
964         Using --verify code won't check for metadata now.
965
966 2008-05-19  Martin Baulig  <martin@ximian.com>
967
968         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 70.
969
970         * mono-debug.c
971         (_mono_debug_using_mono_debugger): New global variable; it's set
972         directly by the debugger, so mono_debug_using_mono_debugger() also
973         works after attaching.
974
975 2008-05-18 Rodrigo Kumpera  <rkumpera@novell.com>
976
977         * object.c (mono_class_create_runtime_vtable): Use memory barriers
978         as we do double checked locking on MonoClass::runtime_info and
979         MonoClassRuntimeInfo::domain_vtables.
980
981 2008-05-18  Zoltan Varga  <vargaz@gmail.com>
982
983         * debug-helpers.c (print_field_value): Fix a warning.
984
985 2008-05-16  Zoltan Varga  <vargaz@gmail.com>
986
987         * object.c (mono_object_get_virtual_method): Fix a crash if method->slot is not
988         set in the AOT case.
989
990 2008-05-16 Rodrigo Kumpera  <rkumpera@novell.com>
991
992         * class.c (mono_class_setup_vtable_general): Use memory barriers
993         as we do double checked locking on MonoClass::vtable.
994
995 2008-05-16 Rodrigo Kumpera  <rkumpera@novell.com>
996
997         * reflection.c (resolve_object): Inflate only if the generic context
998         is not null. Fixes #389886.
999
1000 2008-05-15  Jonathan Chambers  <joncham@gmail.com>
1001
1002         * metadata.c (emit_marshal_string): Free return strings using mono_marshal_free
1003         instead of g_free.
1004
1005         Code is contributed under MIT/X11 license.
1006
1007 2008-05-14 Rodrigo Kumpera  <rkumpera@novell.com>
1008
1009         * class.c: Revert unrelated change.
1010
1011 2008-05-14 Rodrigo Kumpera  <rkumpera@novell.com>
1012
1013         * verify.c (check_is_valid_type_for_field_ops): Type on stack can be
1014         a generic instantiation, use mono_class_from_mono_type instead of playing
1015         with MonoType directly.
1016
1017 2008-05-14 Rodrigo Kumpera  <rkumpera@novell.com>
1018
1019         * class.c: Added mono_class_has_parent_and_ignore_generics. Visibility
1020         checks must ignore generic instantiations, so mono_class_has_parent is not
1021         suitable. Fixes #390128.
1022
1023 2008-05-14  Zoltan Varga  <vargaz@gmail.com>
1024
1025         * reflection.c (mono_image_create_token): Add a 'register_token' argument, and use
1026         it to avoid registering tokens during metadata generation. Fixes #390023.
1027
1028 2008-05-14  Kornél Pál  <kornelpal@gmail.com>
1029
1030         * coree.c: Rename dwOldProtect to OldProtect that makes naming convention
1031         consistent.
1032
1033         Contributed under MIT/X11 license.
1034
1035 2008-05-14  Kornél Pál  <kornelpal@gmail.com>
1036
1037         * domain.c (mono_init_internal): Enable LoadLibrary support. Load EXE image
1038         even when get_runtimes_from_exe didn't load it that allows mono_fixup_exe_image
1039         to fixup the EXE image.
1040         (mono_cleanup): Use mono_close_exe_image.
1041         (mono_close_exe_image): New function.
1042         * image.c: Include "marshal.h".
1043         (mono_image_open_from_module_handle): Add ref_count argument. Return the image.
1044         (mono_image_open_full, mono_image_close): Fix LoadLibrary/FreeLibrary reference
1045         counting when the image is loaded outside of mono_image_open_full. Set status
1046         based on GetLastError.
1047         * coree.c: Include required headers. Add init_from_coree.
1048         (_CorDllMain): Support fix in mono_image_open_full, mono_image_close. Call
1049         mono_assembly_open only when the image has vtfixups. Set init_from_coree.
1050         (_CorExeMain): Set init_from_coree.
1051         (CorExitProcess): Only call ExitProcess for now.
1052         (CorBindToRuntimeEx): New stub implementation.
1053         (CorBindToRuntime): New function.
1054         (MonoFixupCorEE): Fixup CorBindToRuntime and CorBindToRuntimeEx.
1055         (MonoFixupExe): ILONLY executables require no fixups.
1056         (mono_set_act_ctx): New function to set activation context.
1057         (mono_load_coree): Use init_from_coree. Call mono_set_act_ctx.  
1058         * coree.h: Move STATUS_SUCCESS and STATUS_INVALID_IMAGE_FORMAT to header.
1059         Declare mono_module_handle, coree_module_handle, mono_get_module_file_name,
1060         mono_load_coree, mono_fixup_exe_image and mono_image_open_from_module_handle
1061         as MONO_INTERNAL.
1062         * domain-internals.h: Add mono_close_exe_image.
1063
1064         Contributed under MIT/X11 license.
1065
1066 2008-05-13 Rodrigo Kumpera  <rkumpera@novell.com>
1067
1068         * metadata.c (mono_metadata_compute_size): Correctly calculate field
1069         size for generic param and event tables. Fixes #388977.
1070
1071 2008-05-13  Zoltan Varga  <vargaz@gmail.com>
1072
1073         * loader.c (mono_method_signature): Use memory barriers because of the double
1074         checked locking pattern.
1075
1076         * threads.c (remove_and_abort_threads): Stop and wait for threads which are
1077         aborting or aborted as well. Fixes #376391.
1078         
1079         * threads.c (mono_thread_execute_interruption): Avoid depending on no longer
1080         existing runtime state in the Suspend handler during shutdown.
1081
1082 2008-05-12  Zoltan Varga  <vargaz@gmail.com>
1083
1084         * threads.c (mono_thread_request_interruption): Add some FIXMEs.
1085
1086         * threads.c (mono_thread_suspend_all_other_threads): Add support for threads 
1087         which are starting up or shutting down.
1088
1089         * threads.c (mono_threads_set_shutting_down): Don't return a value since
1090         this function never returns if the runtime is already shutting down.
1091
1092         * icall.c (ves_icall_System_Environment_Exit): Update after 
1093         mono_threads_set_shutting_down () signature change.
1094         
1095 2008-05-09 Rodrigo Kumpera  <rkumpera@novell.com>
1096
1097         * class.c: Added can_access_instantiation to verify if the instantiation
1098         is visible. Fix access check for nested types as they returned TRUE
1099         before doing type and generic instantiation visibility checks.
1100
1101 2008-05-08 Rodrigo Kumpera  <rkumpera@novell.com>
1102
1103         * reflection.c (mono_reflection_create_generic_class): The created type
1104         must have a different container from its TypeBuilder. Otherwise they
1105         will end sharing generic arguments, which is wrong.
1106
1107         Due to the sharing, making a generic instance of the created type using
1108         the TypeBuider generic arguments resulted in the generic type definition
1109         been returned, which is wrong as well.
1110
1111         As a bonus the code was leaking the type_params array. This memory should
1112         be allocated from the image mempool.
1113
1114         This fixes bug #354047.
1115
1116 2008-05-08 Rodrigo Kumpera  <rkumpera@novell.com>
1117
1118         * metadata-internals.h: Move MONO_SECMAN_FLAG macros from mini/declsec.h
1119         to here         as they are now used in assembly.c new code.
1120         Added a skipverification flag to MonoAssembly.
1121         New internal function mono_assembly_has_skip_verification.
1122
1123         * assembly.c: New function mono_assembly_has_skip_verification. It checks
1124         if an assembly has a version 2.0 SkipVerification security attribute. Fixes
1125         part of #387274.
1126
1127 2008-05-07  Zoltan Varga  <vargaz@gmail.com>
1128
1129         * object.c (mono_object_get_virtual_method): Inflate the resulting method if
1130         needed. Fixes #387034.
1131
1132         * class.c (mono_class_inflate_generic_type): Avoid a crash if context is NULL.
1133
1134 2008-05-06  Miguel de Icaza  <miguel@novell.com>
1135
1136         * assembly.c (mono_assembly_load_reference): Prevent crash while
1137         disassembling Silverlight 2.0 executables while we still do not
1138         have GACed libraries.
1139
1140 2008-05-07  Zoltan Varga  <vargaz@gmail.com>
1141
1142         * reflection.c: Special case generic type definitions as well. Fixes #383444.
1143
1144 2008-05-06  Zoltan Varga  <vargaz@gmail.com>
1145
1146         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Fix handling
1147         of the dynamic case. Fixes #387404.
1148
1149 2008-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
1150
1151         *verify.c (mono_verifier_is_class_full_trust): If under
1152         verify_all and the verifier mode was not set, only
1153         gac and corlib types are fulltrust. This makes --verify-all
1154         usable to detect unverifiable code, which is the expected
1155         use case.
1156
1157 2008-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
1158
1159         * verify.h: Ops, commited the header with debug
1160         enabled.
1161
1162 2008-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
1163
1164         * verify.c (merge_stack): Use the new value on unverifiable
1165         stack merges.
1166
1167         * verify.c (verify_type_compatibility_full): Comparison
1168         of nullable types can't use mono_class_is_assignable_from.
1169
1170         * verify.c, verify.h: Added MONO_VERIFY_REPORT_ALL_ERRORS
1171         that makes all verification errors be reported.
1172
1173         * pedump.c: Pass MONO_VERIFY_REPORT_ALL_ERRORS to
1174         mono_method_verify.
1175
1176 2008-05-05  Robert Jordan  <robertj@gmx.net>
1177
1178         * marshal.c (mono_marshal_get_thunk_invoke_wrapper):
1179         support for value types. See #386415.
1180
1181         * object.c: comments.
1182
1183         Code is contributed under MIT/X11 license.
1184
1185 2008-05-05  Martin Baulig  <martin@ximian.com>
1186
1187         * debug-mono-symfile.h
1188         (MONO_SYMBOL_FILE_COMPATIBILITY_VERSION): Removed; dropped support
1189         for old pre-terrania symbol files.
1190
1191 2008-05-05  Andreas Färber  <andreas.faerber@web.de>
1192
1193         * mono-config.c: Add ppc64 architecture.
1194
1195         Code is contributed under MIT/X11 license.
1196
1197 2008-05-05  Andreas Färber  <andreas.faerber@web.de>
1198
1199         * object.c (mono_create_ftnptr, mono_get_addr_from_ftnptr):
1200           PPC64 uses function descriptors as well.
1201
1202         Code is contributed under MIT/X11 license.
1203
1204 2008-05-04  Zoltan Varga  <vargaz@gmail.com>
1205
1206         * object.c (compute_class_bitmap): Ignore literal static fields.
1207
1208         * sgen-gc.c (mono_gc_base_init): Print some help when the MONO_GC_DEBUG env
1209         var has an invalid format.
1210         (describe_ptr): Add some sanity checks for the vtable.
1211         (add_nursery_frag): Clear unused nursery fragments.
1212         (major_collection): Clear all remaining nursery fragments.
1213
1214 2008-05-03  Robert Jordan  <robertj@gmx.net>
1215
1216         * image.c, metadata-internals.h: add thunk_invoke_cache.
1217
1218         * marshal.c, marshal.h: implement
1219         mono_marshal_get_thunk_invoke_wrapper ().
1220
1221         * object.c, object.h: implement mono_method_get_unmanaged_thunk ().
1222
1223         Code is contributed under MIT/X11 license.
1224
1225 2008-05-02 Rodrigo Kumpera  <rkumpera@novell.com>
1226
1227         * verify.c (do_leave): Empty the stack.
1228
1229 2008-05-02 Rodrigo Kumpera  <rkumpera@novell.com>
1230
1231         * class.c (mono_class_is_assignable_from): Variance
1232         doesn't work between reference and value types. For example,
1233         given type C<T+>, C<int32> is not assignable to C<object>.
1234         Break the argument checking loop on first error. 
1235
1236 2008-05-02  Atsushi Enomoto  <atsushi@ximian.com>
1237
1238         * icall.c : base64_to_byte_array() needs some more strict
1239           check for sequence of '=' characters. Patch by Santa
1240           Marta (http://deee.g.hatena.ne.jp/santamarta).
1241
1242           Contributed under MIT/X11 license.
1243           (see http://www.lingr.com/room/mono-jp/archives/2008/04/20)
1244
1245 2008-05-02  Jonathan Chambers  <joncham@gmail.com>
1246
1247         * domain.c: Disable LoadLibrary support to fix Win32 build.
1248
1249         Code is contributed under MIT/X11 license.
1250
1251 2008-05-02  Zoltan Varga  <vargaz@gmail.com>
1252
1253         * sgen-gc.c: Add support for clearing nursery memory when a tlab is allocated,
1254         to help with cache behaviour.
1255
1256 2008-05-01  Miguel de Icaza  <miguel@novell.com>
1257
1258         * appdomain.c (mono_domain_from_appdomain): Add new accessor
1259         method. 
1260
1261 2008-05-01  Zoltan Varga  <vargaz@gmail.com>
1262
1263         * sgen-gc.c: Implement thread-local allocation and a managed allocation routine.
1264
1265 2008-05-01  Dick Porter  <dick@ximian.com>
1266
1267         * process.c (process_get_fileversion): Only pass 16 bits of
1268         language ID to VerLanguageName.  Fixes bug 381204.
1269
1270 2008-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
1271
1272         * verify.c (mono_method_verify): Fix the comparison
1273         operator for code bounds check.
1274
1275 2008-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
1276
1277         * verify.c (mono_method_verify): Check the bounds of
1278         all access of the code array.
1279
1280 2008-04-29  Kornél Pál  <kornelpal@gmail.com>
1281
1282         * appdomain.c: Use HAVE_SYS_UTIME_H that fixes MSVC build.
1283
1284 2008-04-28  Zoltan Varga  <vargaz@gmail.com>
1285
1286         * image.c (mono_image_strong_name_position): Fix return value when the rva is
1287         not valid.
1288
1289 2008-04-28  Kornél Pál  <kornelpal@gmail.com>
1290
1291         * loader.c (mono_get_method_from_token, mono_method_signature): Add
1292         support for METHOD_IMPL_ATTRIBUTE_NATIVE.
1293         * domain.c (mono_init_internal): Load and fixup mscoree.dll on startup and
1294         fixup main EXE images when using mono.exe for mixed-mode assembly support.
1295         * domain-internals.h: Add MonoLoadFunc, mono_install_runtime_load and
1296         mono_runtime_load.
1297         * appdomain.c: Add mono_install_runtime_load, mono_runtime_load to support
1298         runtime initialization from metadata.
1299         * assembly.c: Remove obsolete ceGetModuleFileNameA.
1300         (mono_set_rootdir): Use mono_get_module_file_name.
1301         (mono_assembly_load_from_full): Call mono_image_fixup_vtable for module
1302         handles.
1303         * cil-coff.h: Add MonoVTableFixup. Update mono_cli_rva_image_map signature.
1304         * metadata-internals.h: Add is_module_handle to _MonoImage on Windows.
1305         * image.c (mono_cli_rva_image_map): Use MonoImage instead of
1306         MonoCLIImageInfo. Add support for module handles.
1307         (load_cli_header): Update mono_cli_rva_image_map signature.
1308         (load_metadata_ptrs): Update mono_cli_rva_image_map signature.
1309         (mono_image_strong_name_position): Use mono_cli_rva_image_map.
1310         (mono_image_rva_map): Add support for module handles.
1311         (mono_image_ensure_section_idx): Add support for module handles.
1312         (mono_image_close): Add support for module handles.
1313         (do_load_header): Add support for module handles.
1314         (mono_image_open_from_module_handle): New function for internal use.
1315         (mono_image_open_full): Load normal images using LoadLibrary on Windows.
1316         (mono_image_load_module): Call mono_image_fixup_vtable for module handles.
1317         (mono_image_load_file_for_image): Call mono_image_fixup_vtable for module
1318         handles.
1319         (mono_image_fixup_vtable): New function for mixed-mode assembly support.
1320         * image.h: Add mono_image_fixup_vtable.
1321         * coree.c: New file for mscoree.dll functions and mixed-mode assembly
1322         support.
1323         * coree.h: New file.
1324         * marshal.c (mono_marshal_get_native_wrapper): Throw exception for
1325         unsupported native code.
1326         (mono_marshal_set_callconv_from_modopt): New function splitted from
1327         mono_marshal_get_managed_wrapper.
1328         (mono_marshal_get_managed_wrapper): Use
1329         mono_marshal_set_callconv_from_modopt.
1330         (mono_marshal_get_vtfixup_ftnptr): New function for mixed-mode assembly support.
1331         * marshal.h: Add mono_marshal_get_vtfixup_ftnptr.
1332         * gc.c (mono_gc_init): Don't wait for the finalizer thread on Windows because
1333         that results in a deadlock when the runtime is loaded in _CorDllMain.
1334         * Makefile.am: Add coree.c and coree.h.
1335
1336         Contributed under MIT/X11 license.
1337
1338 2008-04-28  Mark Probst  <mark.probst@gmail.com>
1339
1340         * generic-sharing.c: Search for type arguments in array element
1341         types as well.
1342
1343 2008-04-28  Mark Probst  <mark.probst@gmail.com>
1344
1345         * class-internals.h, generic-sharing.c: New, small runtime generic context.
1346
1347         * metadata-internals.h, domain.c, image.c: Less bookkeeping is required for the new RGCTX.
1348
1349         * object.c: Don't setup the RGCTX when the vtable is created,
1350         because we're setting it up lazily now.
1351
1352 2008-04-26  Zoltan Varga  <vargaz@gmail.com>
1353
1354         * sgen-gc.c: Make the 'desc' variables an mword instead of a guint32 to fix 
1355         64 bit support.
1356
1357 2008-04-24 Rodrigo Kumpera  <rkumpera@novell.com>
1358
1359         * verify.c (verify_class_for_overlapping_reference_fields): 
1360         If class is under fulltrust allow reference types to overllap
1361         if they have the same RVA.
1362
1363 2008-04-24 Rodrigo Kumpera  <rkumpera@novell.com>
1364
1365         * pedump.c: Added new flag valid-only, that makes the verifier
1366         behaves just like --security=validil. It won't fail type load
1367         due to unverifiable restrictions.
1368
1369 2008-04-23 Rodrigo Kumpera  <rkumpera@novell.com>
1370
1371         * class-internals.h (struct MonoMethod): Added a verification_success
1372         field to cache verifier executions. Reduced MonoMethod:slot size by
1373         one bit.
1374
1375 2008-04-23  Zoltan Varga  <vargaz@gmail.com>
1376
1377         * sgen-gc.c (OBJ_RUN_LEN_SIZE): Make this and other macros take a 'desc' argument
1378         instead of a 'vt' argument to save an indirection and to allow these to be used
1379         for valuetypes.
1380         (scan_vtype): New helper function to scan an area using a gc descriptor.
1381         (mono_gc_wbarrier_value_copy): Implement this.
1382         (handle_remset): Add support for REMSET_VTYPE.
1383         (find_in_remset_loc): Ditto.
1384         (mono_gc_base_init): Allow some debugging options to be controlled through the
1385         use of the MONO_GC_DEBUG env variable.
1386         (mono_gc_alloc_obj): Add support the 'collect-before-allocs' debug option.
1387         (collect_nursery): Add support for the 'check-at-minor-collection' debug option.
1388
1389 2008-04-23  Martin Baulig  <martin@ximian.com>
1390
1391         * domain.c (mono_domain_create): Move the call to
1392         mono_debug_domain_create() down, after allocating the domain id.
1393
1394 2008-04-23 Rodrigo Kumpera  <rkumpera@novell.com>
1395
1396         verify.c (verify_class_for_overlapping_reference_fields): Skip
1397         static fields while verifying for overlapping fields as they
1398         don't matter at all.
1399
1400 2008-04-23  Marek Habersack  <mhabersack@novell.com>
1401
1402         * domain-internals.h: added a declaration of
1403         mono_make_shadow_copy.
1404
1405         * assembly.c (mono_assembly_open_full): shadow copying of
1406         assemblies moved to here, so that all the assemblies within the
1407         application domain's private binary directories can be
1408         processed. Fixes bug #380546
1409
1410         * appdomain.c (mono_make_shadow_copy): make_shadow_copy renamed to
1411         mono_make_shadow_copy and made non-static. The decision whether
1412         to shadow-copy an assembly is made based on its location - it's
1413         copied if it's in one of the private application domain binary
1414         directories and its different to the target file in the shadow
1415         directory. Fixes bug #380546
1416
1417 2008-04-22  Zoltan Varga  <vargaz@gmail.com>
1418
1419         * reflection.c (fixup_method): Handle {Method|Constructor}OnTypeBuilderInst.
1420
1421         * object-internals.h: Add MonoReflection{Method|Constructor}OnTypeBuilderInst
1422         types.
1423
1424         * reflection.c (mono_image_create_token): Handle 
1425         Method/ConstructorOnTypeBuilderInst.
1426         (resolve_object): Ditto.
1427         (inflate_mono_method): Receive the inflated class instead of a MonoGenericClass
1428         so it can be called from resolve_object. Also handle the case when the inflated
1429         class already has its methods setup.
1430
1431 2008-04-21  Martin Baulig  <martin@ximian.com>
1432
1433         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 69.
1434
1435 2008-04-20  Geoff Norton  <gnorton@novell.com>
1436
1437         * icall.c: Fix the _NSGetEnviron define to prevent an impropoer
1438         pointer dereference.
1439
1440 2008-04-15  Marek Habersack  <mhabersack@novell.com>
1441
1442         * appdomain.c (try_load_from): if IOMAP is in effect, call the
1443         portability API to look up the assembly file. Fixes behavior in
1444         situations when the application has a bin/ directory, but the
1445         assembly search patch refers to Bin/ (and thus the requested file
1446         name is Bin/SomeLibrary.dll). Fixes bug #379888
1447
1448 2008-04-15 Rodrigo Kumpera  <rkumpera@novell.com>
1449
1450         verify.c (mono_type_is_generic_argument): Extracted this check
1451         from a dozen places to here.
1452
1453         verify.c: Fixed all issues related to boxing generic arguments
1454         and their constraints.
1455
1456 2008-04-14 Rodrigo Kumpera  <rkumpera@novell.com>
1457
1458         verify.c (mono_class_interface_implements_interface): Fix win32 build.
1459
1460 2008-04-14  Zoltan Varga  <vargaz@gmail.com>
1461
1462         * reflection.c (mono_custom_attrs_construct): Fix crash when the cattr type
1463         isn't finished yet. Fixes #363447.
1464
1465 2008-04-13  Zoltan Varga  <vargaz@gmail.com>
1466
1467         * class.c (mono_bounded_array_class_get): Fix the name of bounded array types.
1468         Fixes #346419.
1469
1470 2008-04-13  Jb Evain  <jbevain@novell.com>
1471
1472         * domain.c: update the 2.1 profile versions.
1473         Merged from the Moonlight 2 branch.
1474
1475 2008-04-12  Zoltan Varga  <vargaz@gmail.com>
1476
1477         * assembly.c (mono_assembly_load_from_full): Do the check for loading other
1478         mscorlibs for the non-refonly case as well.
1479
1480         * image.c (do_mono_image_load): Remove the mscorlib check, it is already done
1481         in mono_assembly_load_from_full (). Fixes #378924.
1482
1483 2008-04-11  Geoff Norton  <gnorton@novell.com>
1484
1485         * icall.c: The global extern environ doesn't exist on Mac.  We
1486         need to call NSGetEnviron instead.
1487
1488 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
1489
1490         verify.c: Add generic method constraint verification.
1491
1492 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
1493
1494         class.c (mono_class_inflate_generic_method_full): Add a long
1495         explanation to the is_mb_open hack. Remove the FIXME.
1496
1497 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
1498
1499         * verify.c (mono_method_verify): Mark all unknown opcodes
1500         as invalid. Mark jmp as unverifiable.
1501
1502 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
1503
1504         * verify.c: Add code to do type constraint verification on class instances.
1505
1506         * verify.c (mono_verifier_verify_class): Use the type constraint 
1507         verification code.
1508
1509 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
1510
1511         * class.c (mono_class_get_field_default_value): Don't pass cindex
1512         as hint to mono_metadata_get_constant_index. The local is not initialized
1513         and should contain garbage most of the time. This could only work
1514         with a lot of luck.
1515
1516 2008-04-09 Rodrigo Kumpera  <rkumpera@novell.com>
1517
1518         * tokentype.h: Add MONO_TOKEN_GENERIC_PARAM.
1519
1520 2008-04-09 Rodrigo Kumpera  <rkumpera@novell.com>
1521
1522         * class-internals.h: Add generic_param_token to MonoClass::sizes union.
1523
1524         * class.c (mono_class_from_generic_parameter): Save the token of the
1525         generic param in MonoClass::sizes.generic_param_token.
1526
1527         * reflection.c (mono_custom_attrs_from_class): If the class type is
1528         VAR or MVAR retrieve the attributes of the generic param.
1529
1530 2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
1531
1532         * class.c (mono_class_init): Do class verification if the verifier
1533         is enabled.
1534
1535 2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
1536
1537         * verify-internal.h: Added mono_verifier_verify_class.
1538
1539         * verify.c: Added mono_verifier_verify_class. It checks for
1540         classes with explicit layout that have overlapping reference fields.
1541
1542         * pedump.c: Init the verifier state prior to verification. Fixed
1543         command line arguments.
1544
1545 2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
1546
1547         * Makefile.am: Added verify-internals.h, hopefully fix the build.
1548
1549 2008-04-08  Zoltan Varga  <vargaz@gmail.com>
1550
1551         * verify-internals.h: Fix a warning.
1552
1553 2008-04-07 Rodrigo Kumpera  <rkumpera@novell.com>
1554
1555         * verify-internals.h: New header with the verifier configuration
1556         extracted from mini.c.
1557
1558         * verify.c: Implemented the new functions exported by verify-internals.h.
1559
1560 2008-04-07 Rodrigo Kumpera  <rkumpera@novell.com>
1561
1562         * verify.c: Add proper verification of ckfinite.
1563
1564 2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
1565
1566         * verify.c (do_conversion): Improved error message to something
1567         more meanfull.
1568
1569         * verify.c (check_is_valid_type_for_field_ops): Fix to work
1570         with primitive types.
1571
1572 2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
1573
1574         * verify.c: Added tail prefix checking. Marked icall
1575         as unverifible.
1576
1577 2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
1578
1579         * verify.c: Fix the detection of branches to the middle
1580         of an instruction.
1581
1582 2008-04-03 Rodrigo Kumpera  <rkumpera@novell.com>
1583
1584         * verify.c: Implemented verification of volatile. and
1585         unaligned. prefix. Check if a type is valid after retrieving it.
1586
1587 2008-04-01  Dick Porter  <dick@ximian.com>
1588
1589         * process.c (process_get_fileversion): If there's no string block,
1590         set the file language to en_US.  Fixes the other new part of bug
1591         374600.
1592
1593 2008-03-29 Rodrigo Kumpera  <rkumpera@novell.com>
1594
1595         * class.c: New functions mono_method_can_access_field_full and
1596         mono_method_can_access_method_full. They perform type visibility
1597         and type site check.
1598
1599         * class-internal.h: Added exported functions.
1600
1601         * verify.c: Use new functions to implement proper visibility checks.
1602
1603 2008-03-29  Zoltan Varga  <vargaz@gmail.com>
1604
1605         * mono-config.h: Add missing G_BEGIN_DECLS/G_END_DECLS. Fixes #375188.
1606
1607 2008-03-28  Dick Porter  <dick@ximian.com>
1608
1609         * process.c (process_get_fileversion): Use the first language ID
1610         we see, rather than insisting on an invariant language.  Fixes bug
1611         374600.
1612
1613 2008-03-28  Zoltan Varga  <vargaz@gmail.com>
1614
1615         * reflection.c (calc_section_size): Use add_stream_zero to align the size of
1616         the streams to fix reading of invalid memory later.
1617
1618         * metadata.h (MonoType): Use 'MonoTypeEnum' instead of int for the 'type' field
1619         to ease debugging.
1620
1621 2008-03-26  Zoltan Varga  <vargaz@gmail.com>
1622
1623         * marshal.c (signature_dup): Use mono_metadata_signature_alloc ().
1624         (cominterop_method_signature): Ditto. Fix the size passed to memcpy.
1625
1626 2008-03-26  Massimiliano Mantione  <massi@ximian.com>
1627         * threads.h: Added MonoThreadManageCallback type and
1628         mono_thread_set_manage_callback prototype
1629         * object-internals.h: In _MonoThread, renamed unused6 to manage_callback
1630         (used to store the mono_thread_manage callback).
1631         * threads.c: Added mono_thread_set_manage_callback, and handle
1632         "MonoThread->manage_callback" in build_wait_tids.
1633
1634 2008-03-26  Dick Porter  <dick@ximian.com>
1635
1636         * process.c (process_get_fileversion): Set FileVersionInfo strings
1637         to Empty when the resource doesn't have the particular info.
1638         Fixes bug 355717.
1639
1640 2008-03-25 Rodrigo Kumpera  <rkumpera@novell.com>
1641
1642         * verify.c (mono_method_verify): Proper prefix validation.
1643
1644 2008-03-25  Zoltan Varga  <vargaz@gmail.com>
1645
1646         * icall.c (ves_icall_InternalInvoke): Return exceptions thrown by the icall
1647         itself in a separate argument instead of throwing them. Fixes #373448.
1648
1649         * appdomain.c: Bump corlib version.
1650
1651 2008-03-24 Rodrigo Kumpera  <rkumpera@novell.com>
1652
1653         * verify.c: Implemented readonly prefix and verify controled mutability pointers.
1654
1655 2008-03-20  Kornél Pál  <kornelpal@gmail.com>
1656
1657         * file-io.c, filewatcher.c, threadpool.c, threads.c: Removed Windows
1658         version macros.
1659
1660 2008-03-20  Mark Probst  <mark.probst@gmail.com>
1661
1662         * generic-sharing.c, class-internals.h: Code for putting
1663         reflection types into the runtime generic context.
1664
1665 2008-03-19 Rodrigo Kumpera  <rkumpera@novell.com>
1666
1667         * icall.c (ves_icall_get_method_info): Return correct values for the call convention.
1668         Fixes #340662. 
1669
1670
1671 2008-03-17 Rodrigo Kumpera  <rkumpera@novell.com>
1672
1673         * verify.c (VerifyContext): Added instruction prefix data to the struct.
1674
1675         * verify.c (is_compatible_boxed_valuetype): Don't check if the type is a valuetype, been boxed is enough.
1676
1677         * verify.c (do_invoke): Support constrained callvirt form. Grouped similar checks together.
1678
1679         * verify.c (do_cast): Let the result value keep the boxed status.
1680
1681         * verify.c (mono_method_verify): Add proper support for prefixed and implement contrained.
1682
1683 2008-03-17  Jb Evain  <jbevain@novell.com>
1684
1685         * reflection.c: when running on a 2.0 runtime, emit
1686         unconditionally the #~ header version as 2.0, and the
1687         CLI header version as 2.5, for symmetry's sake with csc.
1688
1689 2008-03-16  Zoltan Varga  <vargaz@gmail.com>
1690
1691         * class.c: Remove the unused cache_interface_offsets stuff.
1692
1693         * class.c loader.c domain.c verify.c metadata.c debug-helpers.c threadpool.c
1694         profiler.c: Fix warnings.
1695
1696 2008-03-16  Mark Probst  <mark.probst@gmail.com>
1697
1698         * generic-sharing.c, class-internals.h: Support for putting
1699         methods into the runtime generic context.
1700
1701 2008-03-16  Zoltan Varga  <vargaz@gmail.com>
1702
1703         * class.c (mono_class_setup_fields): Ignore calls made to this function for
1704         classes which are generic instances of not-yet finished typebuilders. Fixes
1705         #351172.
1706
1707         * reflection.c (fixup_method): Add support for FieldOnTypeBuilderInst.
1708
1709 2008-03-15  Zoltan Varga  <vargaz@gmail.com>
1710
1711         * metadata-internals.h (MonoDynamicImage): Add 'generic_def_objects' hash table.
1712
1713         * class-internals.h (MonoMethodInflated): Remove the rarely used reflection_info
1714         field, replace it with a hash table in MonoDynamicImage.
1715
1716         * reflection.c (inflate_mono_method): Access the generic definition object from
1717         image->generic_def_objects instead of imethod->reflection_info.
1718
1719         * reflection.c (mono_reflection_bind_generic_method_parameters): Ditto. 
1720
1721         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition): Ditto.
1722         
1723         * image.c (mono_image_close): Move the dynamic image freeing code to a separate
1724         function in reflection.c so it is easier to keep in sync with the dynamic image
1725         creation code.
1726
1727         * reflection.c (mono_dynamic_image_free): New internal function, extracted from
1728         mono_image_close ().
1729
1730 2008-03-15  Mark Probst  <mark.probst@gmail.com>
1731
1732         * class.c (mono_class_generic_sharing_enabled): Disable generic
1733         sharing for all architectures except AMD64 and x86 to fix build.
1734
1735 2008-03-14 Rodrigo Kumpera  <rkumpera@novell.com>
1736
1737         * verify.c: Use the generic definition MonoGenericContext when available.
1738         Remove code for checking generics instance compatibility in favor of
1739         mono_class_is_assignable_from.
1740
1741 2008-03-14  Mark Probst  <mark.probst@gmail.com>
1742
1743         * marshal.c, marshal.h, metadata-internals.h, image.c,
1744         wrapper-types.h: New wrapper for invoking a shared static method
1745         without having to pass the runtime generic context argument.
1746
1747 2008-03-14 Rodrigo Kumpera  <rkumpera@novell.com>
1748
1749         * icall-def.h: Add missing function PerformanceCounterCategory::GetInstanceNames.
1750
1751 2008-03-14  Zoltan Varga  <vargaz@gmail.com>
1752
1753         * reflection.c (mono_image_get_field_on_inst_token): Add caching.
1754         
1755         * reflection.c (mono_image_get_field_on_inst_token): New helper function to
1756         create a token from a FieldOnTypeBuilderInst.
1757         (mono_image_create_token): Handle FieldOnTypeBuilderInst.
1758         (resolve_object): Ditto.
1759
1760         * object-internals.h (MonoReflectionFieldOnTypeBuilderInst): New structure
1761         mirroring System.Reflection.Emit.FieldOnTypeBuilderInst.
1762
1763 2008-03-14  Martin Baulig  <martin@ximian.com>
1764
1765         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 68.
1766
1767         * debug-mono-symfile.h
1768         (MONO_SYMBOL_FILE_VERSION): Bump to 41.
1769         (MONO_SYMBOL_FILE_COMPATIBILITY_VERSION): New #define.
1770
1771 2008-03-10  Martin Baulig  <martin@ximian.com>
1772
1773         * debug-mono-symfile.h
1774         (MonoSymbolFileMethodAddress): Removed `num_lexical_blocks' and
1775         `lexical_block_table_offset'.
1776         (MonoDebugMethodInfo): Removed `num_lexical_blocks' and
1777         `lexical_blocks'.
1778         (MonoSymbolFile): Added `version'.
1779
1780         * mono-debug.h
1781         (MonoDebugLexicalBlockEntry): Removed.
1782         (MonoDebugMethodJitInfo): Removed `num_lexical_blocks' and
1783         `lexical_blocks'.
1784
1785         * mono-debug.c (mono_debug_add_method): Don't compute lexical
1786         blocks here; the debugger now does this internally.
1787
1788 2008-02-27  Martin Baulig  <martin@ximian.com>
1789
1790         * object.c (mono_runtime_exec_main): Call
1791         `mono_debugger_event (MONO_DEBUGGER_EVENT_REACHED_MAIN)' and
1792         `mono_debugger_event (MONO_DEBUGGER_EVENT_MAIN_EXITED)' here.
1793
1794 2008-03-12 Rodrigo Kumpera  <rkumpera@novell.com>
1795
1796         * verify.c (verify_type_compatibility_full): Allow native int to be converted
1797         to native pointer in non-strict mode. Required to "(IntPtr)null" work.
1798
1799 2008-03-12 Rodrigo Kumpera  <rkumpera@novell.com>
1800
1801         * verify.c (verify_ldftn_delegate): Accept a sealed type when using
1802         ldftn with a virtual method.
1803
1804 2008-03-13  Geoff Norton  <gnorton@novell.com>
1805
1806         * decimal.c:  Only include memory.h if the platform has it.
1807
1808 Wed Mar 12 12:11:06 CET 2008 Paolo Molaro <lupus@ximian.com>
1809
1810         * assembly.c, class.c, metadata-internals.h: make sure public key
1811         tokesns are compared in a case-insensitive way. Also, all
1812         the lookups in the GAC use a lowercase public key token
1813         (gaacutil already does the lowercasing on install). Fixes
1814         bug #369541.
1815
1816 2008-03-11 Rodrigo Kumpera  <rkumpera@novell.com>
1817
1818         * verify.c (mono_delegate_signature_equal): Do proper variance check on arguments
1819         and return value.
1820
1821 Tue Mar 11 17:41:38 CET 2008 Paolo Molaro <lupus@ximian.com>
1822
1823         * image.c: when someone loads a mscorlib from a file, return the
1824         currently loaded mscorlib (fixes bug #369253).
1825
1826 Tue Mar 11 16:47:32 CET 2008 Paolo Molaro <lupus@ximian.com>
1827
1828         * class.c: handle types with no parents by forcing them to have
1829         System.Object as a parent and marking them as broken (this currently
1830         allows the first part of bug #369173 to work as well, likely because
1831         we don't check for typeload exceptions everywhere yet).
1832
1833 Tue Mar 11 15:23:54 CET 2008 Paolo Molaro <lupus@ximian.com>
1834
1835         * class.c: more complete check that types belong to corlib
1836         (fixes second part of bug #369173).
1837
1838 2007-03-10  Bill Holmes  <billholmes54@gmail.com>
1839
1840         * generic-sharing.c:  Including glib.h for the MSVC builds to define
1841           "inline" to "__inline" before including mono-membar.h.
1842           
1843         * mono-perfcounters.c:  Adding HAVE_SYS_TIME_H check for MSVC builds.
1844           Rename "Unknown" to "CatTypeUnknown" to avoid name collisions for 
1845           MSVC builds.
1846
1847         Contributed under MIT/X11 license.
1848
1849 2008-03-10 Rodrigo Kumpera  <rkumpera@novell.com>
1850
1851         * verify.c (do_invoke_method): Remove return type validation.
1852
1853         * verify.c (do_ret): Do return type validation at return site instead of
1854         call site.
1855
1856 2008-03-10 Rodrigo Kumpera  <rkumpera@novell.com>
1857
1858         * verify.c (do_invoke_method): Mark callvirt to static methods unverifiable.
1859
1860         * verify.c: Some todos cleaned and improved a few error messages.
1861
1862 2008-03-08  Zoltan Varga  <vargaz@gmail.com>
1863
1864         * class.c (mono_class_setup_mono_type): Improve the test for corlib.
1865
1866 2008-03-07  Zoltan Varga  <vargaz@gmail.com>
1867
1868         * class.c (mono_class_setup_mono_type): Handle types whose name clashes with
1869         system types correctly.
1870
1871         * exception.h exception.c (mono_exception_from_token_two_strings): New helper
1872         function.
1873
1874 2008-03-06  Zoltan Varga  <vargaz@gmail.com>
1875
1876         * assembly.c (build_assembly_name): Fix a warning.
1877
1878 Thu Mar 6 19:43:41 CET 2008 Paolo Molaro <lupus@ximian.com>
1879
1880         * marshal.c: ldfld_remote and stfld_remote needs just one wrapper as
1881         the called function takes an object type argument. Fixes storing or
1882         valuetypes across remoting as well as reducing memory usage.
1883         * image.c, metadata-internals.h: remove now unused ldfld_remote and
1884         stfld_remote wrapper caches.
1885
1886 2008-03-06  Zoltan Varga  <vargaz@gmail.com>
1887
1888         * icall.c (mono_lookup_internal_call): Update the exception message when an icall
1889         is not found.
1890
1891         * reflection.c (mono_image_register_token): New helper function to save
1892         a token->object mapping.        
1893
1894         * icall.c (ves_icall_ModuleBuilder_RegisterToken): New icall to access it from
1895         managed code.
1896
1897         * reflection.c (_mono_reflection_parse_type): Distinguish between vectors and
1898         one dimension arrays. Fixes #367670.
1899         (mono_reflection_get_type_internal): Ditto.
1900
1901 Tue Mar 4 19:04:02 CET 2008 Paolo Molaro <lupus@ximian.com>
1902
1903         * marshal.c: mono_load_remote_field_new() always returns object.
1904         so use the proper signature (fixes bug #366445).
1905
1906 2008-03-04  Zoltan Varga  <vargaz@gmail.com>
1907         
1908         * class-internals.h (MonoMethod): Remove unused uses_this flag, 
1909         add an 'inline_failure' flag instead.
1910
1911 2008-03-04  Mark Probst  <mark.probst@gmail.com>
1912
1913         * domain-internals.h, domain.c: Replaced MonoGenericSharingContext
1914         with a new structure, MonoGenericJitInfo, in the MonoJitInfo.  It
1915         contains the location of "this", used for exception handling.
1916
1917 2008-03-04  Zoltan Varga  <vargaz@gmail.com>
1918
1919         * class.c (mono_class_layout_fields): Set the min alignment of small structs to
1920         their size on all platforms for perf reasons.
1921
1922 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
1923
1924         * reflection.h: Move mono_reflection_is_valid_dynamic_token to
1925         object-internal.h
1926
1927         * object-internal.h: Same.
1928
1929 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
1930
1931         * reflection.h: Fix the build I just broke.
1932
1933 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
1934
1935         * reflection.c (mono_reflection_is_valid_dynamic_token): New function,
1936         Test if a token is valid, this remove explicit usage of 
1937         MonoDynamicImage::tokens from the verifier code.
1938
1939         * reflection.h: Added mono_reflection_is_valid_dynamic_token.
1940
1941         * verify.c (token_bounds_check): Use mono_reflection_is_valid_dynamic_token
1942         instead of direct access to MonoDynamicImage::tokens.
1943
1944 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
1945
1946         * verify.c (token_bounds_check): Fix the build I just broke.
1947
1948 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
1949
1950         * verify.c (token_bounds_check): Fix bounds check for dynamic images.
1951
1952         * verify.c (verifier_load_method): Fixed the errors message.
1953
1954         * verify.c (mono_method_verify): Fixed a debug message.
1955
1956 Thu Feb 28 19:49:45 CET 2008 Paolo Molaro <lupus@ximian.com>
1957
1958         * icall-def.h, domain.c, mono-perfcounters-def.h, mono-perfcounters.c,
1959         mono-perfcounters.h, class-internals.h: support for predefined
1960         writable counters, query of categories and counters, bugfixes.
1961
1962 2008-02-28 Rodrigo Kumpera  <rkumpera@novell.com>
1963
1964         * verify.c (do_refanytype): Verify the refanytype opcode.
1965
1966         * verify.c (mono_method_verify): Use do_refanytype.
1967
1968 2008-02-28 Rodrigo Kumpera  <rkumpera@novell.com>
1969
1970         * verify.c (do_mkrefany): Verify the mkrefany opcode.
1971
1972         * verify.c (mono_method_verify): Use do_mkrefany.
1973
1974 Wed Feb 27 19:49:16 CET 2008 Paolo Molaro <lupus@ximian.com>
1975
1976         * Makefile.am, icall-def.h, icall.c, mono-perfcounters-def.h,
1977         mono-perfcounters.c, mono-perfcounters.h: basic performance counter
1978         implementation.
1979
1980 2008-02-27  Zoltan Varga  <vargaz@gmail.com>
1981
1982         * marshal.c (mono_marshal_get_synchronized_wrapper): Fix the code which throws
1983         the type load exception.
1984
1985 2008-02-27 Rodrigo Kumpera  <rkumpera@novell.com>
1986
1987         * verify.c: Added a few FIXME for method signatures
1988
1989         * verify.c (do_invoke_method): Use mono_method_get_signature_full instead
1990         of mono_method_get_signature and get vararg call working. Removed unused
1991         checks for return value.
1992
1993         * verify.c (do_refanyval): Verify the refanyval opcode.
1994
1995         * verify.c (mono_method_verify): Implemented verification of arglist and
1996         use do_refanyval.
1997
1998 2008-02-27  Zoltan Varga  <vargaz@gmail.com>
1999
2000         * class.c (mono_class_setup_methods): Move the check for synchronized methods on
2001         vtypes to marshal.c.
2002
2003         * marshal.c (mono_marshal_get_synchronized_wrapper): Do the vtype check here so
2004         it works for AOT as well.
2005
2006 Tue Feb 26 17:46:32 CET 2008 Paolo Molaro <lupus@ximian.com>
2007
2008         * monitor.c, threads.c, threadpool.c: replace the use of GetTickCount ()
2009         with mono_msec_ticks () which is monotonic and doesn't cause bugs when
2010         the system time is adjusted.
2011
2012 Tue Feb 26 17:40:10 CET 2008 Paolo Molaro <lupus@ximian.com>
2013
2014         * icall.c, icall-def.h: use the new time functions (fixes the
2015         non-monotonic behaviour of TickCount).
2016
2017 2008-02-26  Zoltan Varga  <vargaz@gmail.com>
2018
2019         * reflection.c (mono_custom_attrs_from_builders): Revert the last change as
2020         it breaks the build.
2021         
2022         * reflection.c (mono_custom_attrs_from_builders): Assert instead of a crash if the
2023         cattr is not finished yet.
2024
2025 2008-02-25 Rodrigo Kumpera  <rkumpera@novell.com>
2026
2027         * verify.c: Proper token validation for field, method and type.
2028
2029 2008-02-25 Rodrigo Kumpera  <rkumpera@novell.com>
2030
2031         * loader.c (field_from_memberref): Generate a loader error if the type is not found.
2032
2033         * loader.c (method_from_memberref): Generate type load error instead of method missing
2034         if the type is not found.
2035
2036 2008-02-23  Zoltan Varga  <vargaz@gmail.com>
2037
2038         * marshal.c (mono_marshal_emit_managed_wrapper): Avoid generating invalid IL if
2039         some of the conversions caused the generation of a marshal directive exception.
2040
2041 2008-02-21 Rodrigo Kumpera  <rkumpera@novell.com>
2042
2043         verify.c: Report which exception should be thrown by the JIT.
2044         Added a lot of FIXME notes.
2045
2046 2008-02-22  Mark Probst  <mark.probst@gmail.com>
2047
2048         * generic-sharing.c: Runtime generic context slots are not
2049         instantiated on init anymore.  Instead, provide function to do the
2050         instantiating on demand.
2051
2052         * class-internals.h: Added vtable to runtime generic context.
2053         Macros for encoding direct and indirect slot offsets in one
2054         guint32.
2055
2056 2008-02-21  Mark Probst  <mark.probst@gmail.com>
2057
2058         * object.c, generic-sharing.c: Moved some generic sharing code
2059         from object.c to generic-sharing.c.
2060
2061         * generic-sharing.c: Added support for extensible runtime generic
2062         context.
2063
2064         * metadata-internals.h: Two new hash tables in MonoImage for
2065         extensible runtime generic context support.
2066
2067         * domain.c: Unregister generic vtables upon domain unloading.
2068
2069         * image.c: Destroy new hash tables upon image unloading.
2070
2071         * metadata.c: Unregister generic subclasses upon image unloading.
2072
2073         * class-internals.h: New data structure for runtime generic
2074         context template.  New fields in the runtime generic context for
2075         extensible part.
2076
2077         * Makefile.am: Added generic-sharing.c.
2078
2079 2008-02-21 Rodrigo Kumpera  <rkumpera@novell.com>
2080
2081         icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): If
2082         there is a pending loader exception, raise it.
2083
2084         icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
2085         same.
2086
2087         icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken): 
2088         same.
2089
2090         Fixes #363450.
2091
2092 2008-02-20  Zoltan Varga  <vargaz@gmail.com>
2093
2094         * icall.c (ves_icall_Type_GetPacking): Handle dynamic types.
2095
2096         * assembly.c (mono_assembly_load_from_full): Fix a leak in the previous patch.
2097         
2098         * assembly.c (mono_assembly_load_from_full): Return the non-refonly corlib for
2099         ref-only requests for compatibility with MS.
2100
2101 2008-02-20  Raja R Harinath  <harinath@hurrynot.org>
2102
2103         * reflection.c (mono_custom_attrs_from_method): Don't silently
2104         return an empty list for generic method instances.
2105         (mono_custom_attrs_from_param): Likewise.
2106
2107 2008-02-20  Rodrigo Kumpera  <rkumpera@novell.com>
2108             Raja R Harinath  <harinath@hurrynot.org>
2109
2110         Fix #354757
2111         * class-internals.h (struct _MonoMethodInflated.is_mb_open): Add.
2112         * class.c (mono_class_inflate_generic_method_full): Initialize it
2113         when a fully-open method is instantiated.
2114         * metadata.c (inflated_method_equal, inflated_method_hash): Update
2115         to new field.
2116         * reflection.c (inflate_mono_method): Don't create a temporary context.
2117
2118 2008-02-20  Raja R Harinath  <harinath@hurrynot.org>
2119
2120         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
2121         Compute correct value, to prepare for imethod->reflection_info going away.
2122
2123 2008-02-19  Zoltan Varga  <vargaz@gmail.com>
2124
2125         * class.c (mono_class_setup_vtable_general): Ignore static methods in interfaces.
2126
2127 2008-02-18 Rodrigo Kumpera  <rkumpera@novell.com>
2128
2129         * verify.c: Implement skip visibility flag.
2130
2131 2008-02-18 Rodrigo Kumpera  <rkumpera@novell.com>
2132
2133         * verify.h: Added MONO_VERIFY_SKIP_VISIBILITY and struct MonoVerifyInfoExtended
2134         which contains an extra field to tell the kind of exception that should be thrown.
2135
2136         * verify.c: Use MonoVerifyInfoExtended instead of MonoVerifyInfo.
2137
2138 2008-02-17  Raja R Harinath  <harinath@hurrynot.org>
2139
2140         * loader.c (mono_method_get_param_names): Initialize 'klass' after
2141         'method' is updated.
2142
2143 2008-02-11  Zoltan Varga  <vargaz@gmail.com>
2144
2145         * class.c (mono_class_layout_fields): Set class->min_align for classes using
2146         explicit layout as well. Fixes #360375.
2147
2148 2008-02-11  Geoff Norton  <gnorton@novell.com>
2149
2150         * loader.c: Guard and dereference against inflated generic methods
2151
2152 2008-02-10  Gert Driesen  <drieseng@users.sourceforge.net>
2153
2154         * class.c: Include Retargetable spec in assembly name.
2155         * assembly.c: Always include PublicKeyToken spec in assembly name
2156         (with value "null" if assembly is not signed), and include
2157         Retargetable spec.
2158         * icall-def.h: Added icall for Assembly.get_fullname.
2159         * icall.c: Added icall returning the fullname of an assembly.
2160
2161 2008-02-09  Zoltan Varga  <vargaz@gmail.com>
2162
2163         * class.c (mono_class_setup_vtable_general): Add a missing call to
2164         mono_class_setup_methods () which is needed in the AOT case.
2165
2166 2008-02-08 Rodrigo Kumpera  <rkumpera@novell.com>
2167
2168         * verify.c (mono_type_get_stack_name): Added. Return the name for the
2169         stack type of the given MonoType.
2170
2171         * verify.c (verify_type_compatibility_full): Handle the void type.
2172
2173         * verify.c (is_compatible_boxed_valuetype): Changed to fit the
2174         way stack merging works.
2175
2176         * verify.c (store_local): Improved verification message.
2177
2178         * verify.c (do_branch_op): If the merging is invalid, the method
2179         is unverifiable and not invalid. Improved error message.
2180
2181         * verify.c (merge_stacks): Properly merge a boxed valuetype and
2182         a reference type diferent than System.Object. Improved error
2183         message.
2184
2185 2008-02-07 Rodrigo Kumpera  <rkumpera@novell.com>
2186
2187         * verify.c (mono_type_is_enum_type): Added. Test if a type is an enum.
2188
2189         * verify.c (mono_type_get_underlying_type_any): Added. Return the underlying
2190         type of an enum even if the argument is byref.
2191
2192         * verify.c: Replace all explicit uses of enumtype and enum_basetype
2193         to calls to mono_type_is_enum_type and mono_type_get_underlying_type_any.
2194
2195         * verify.c: Check for an enum in all cases of MONO_TYPE_GENERICINST.
2196
2197         *verify.c (verify_type_compatibility_full): Make enum types
2198         compatible with their base types.
2199
2200         * verify.c (is_compatible_boxed_valuetype): Added. Check if both
2201         types are compatible for the special case of a boxed valuetype and
2202         System.Object.
2203
2204         * verify.c (verify_stack_type_compatibility): The function
2205         is_compatible_boxed_valuetype was extracted from here.
2206
2207         * verify.c (push_arg): Only set ctx->has_this_store if the method
2208         is not static.
2209
2210         * verify.c (do_ldelem): Fixed a typo in an error message and added
2211         strict check for mixing int32 and native int as the array type
2212         and ldelem type.
2213
2214         * verify.c (merge_stacks): Consider boxed valuetypes in the
2215         compatibility checks.
2216
2217 2008-02-07  Massimiliano Mantione  <massi@ximian.com>
2218         * profiler.h: (MonoGCEvent): Added start-stop the world events.
2219
2220 2008-02-06  Massimiliano Mantione  <massi@ximian.com>
2221         *class.c: use_new_interface_vtable_code: renamed the env var to have
2222         a "MONO_" prefix, and fix the logic to enable it by default.
2223
2224 2008-02-06  Massimiliano Mantione  <massi@ximian.com>
2225         *class.c:
2226         mono_class_setup_vtable_general: rewrote the way in which interface
2227         methods are added to vtables. Makes bug-77127.exe pass, and hopefully
2228         makes the code more maintainable.
2229         For now the old code is still there, and can be activated setting
2230         the env var "USE_NEW_INTERFACE_VTABLE_CODE".
2231
2232 2008-02-06 Rodrigo Kumpera  <rkumpera@novell.com>
2233
2234         * verify.c: guarded some debug functions around and #ifdef.
2235
2236         * verify.c (merge_stacks): implement proper PIII 1.8.1.3 stack state merging.
2237
2238 2008-02-06  Zoltan Varga  <vargaz@gmail.com>
2239
2240         * marshal.c (mono_marshal_get_runtime_invoke): Revert the direct_wrapper
2241         changes for now since they seem to break too many things.
2242
2243 2008-02-05  Mark Probst  <mark.probst@gmail.com>
2244
2245         * marshal.c, marshal.h (mono_marshal_find_bitfield_offset,
2246         mono_marshal_find_nonzero_bit_offset): Added macro and function
2247         for finding the byte- and bit-offset of a bitfield within a
2248         struct.
2249
2250 2008-02-05  Zoltan Varga  <vargaz@gmail.com>
2251
2252         * marshal.c (mono_marshal_get_ptr_to_struct): Make the signature non-pinvoke.
2253         (mono_marshal_get_struct_to_ptr): Ditto.
2254
2255         * marshal.c (mono_marshal_get_runtime_invoke): Fix the signature of 
2256         cctor_signature.
2257
2258 2008-02-03  Zoltan Varga  <vargaz@gmail.com>
2259
2260         * marshal.c (mono_marshal_get_runtime_invoke): Fix sharing of runtime wrappers
2261         between methods for non-corlib types.
2262
2263 2008-02-02  Geoff Norton  <gnorton@novell.com>
2264
2265         * loader.c (mono_method_get_param_names): Populate the parameter name for 
2266         generic parameters as well. (Fixes #342536)
2267
2268 2008-01-31 Rodrigo Kumpera  <rkumpera@novell.com>
2269
2270         * verify.c (is_valid_bool_arg): Allow boxed values and null literals as well.
2271
2272         * verify.c (do_invoke_method): Fix for calling with byref structs.
2273
2274         * verify.c (do_cast): push a boxed value type based on the type token and not
2275         the type of stack.
2276
2277 2008-01-31  William Holmes  <billholmes54@gmail.com>
2278
2279         * process.c (process_module_string_read): Check the size returned form 
2280           VerQueryValue to avoid out of memory exception. 
2281
2282 2008-01-30  Zoltan Varga  <vargaz@gmail.com>
2283
2284         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
2285         Handle properly modules which are not in the moduleref table. Fixes
2286         #356938.
2287
2288 2008-01-29  Zoltan Varga  <vargaz@gmail.com>
2289
2290         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Remove
2291         the dynamic case which is now in managed code.
2292         (ves_icall_System_Reflection_Assembly_GetTypes): Ditto.
2293
2294         * marshal.c (mono_string_to_bstr): Fix a warning.
2295         (init_com_provider_ms): Ditto.
2296
2297         * appdomain.c (ves_icall_System_AppDomain_createDomain): Add some FIXMEs.
2298
2299         * exception.c (mono_get_exception_out_of_memory): New helper function.
2300
2301 2008-01-28  Jonathan Chambers  <joncham@gmail.com>
2302
2303         * marshal.c: Add support for BSTR marshalling
2304         using other COM systems.
2305
2306         Code is contributed under MIT/X11 license.
2307
2308 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
2309
2310         * object.c (mono_runtime_invoke_array): reverted previous
2311         commit as it breaks the build.
2312
2313 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
2314
2315         * object.c (mono_runtime_invoke_array): Verify arguments for
2316         invalid types. Fixes #348522.
2317
2318 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
2319
2320         * verify.c: added IL_CODE_CALL_NONFINAL_VIRTUAL to track calls to
2321         non-final virtual calls using call. 
2322
2323         * verify.c (do_invoke): fixed some TODOs.
2324
2325         * verify.c (push_arg): set has_this_store for "ldarga 0".
2326
2327 2008-01-27  Zoltan Varga  <vargaz@gmail.com>
2328
2329         * reflection.c (reflection_methodbuilder_to_mono_method): Allow DynamicMethods
2330         which belong to an inflated class. Fixes #356531.
2331
2332 2008-01-26  Robert Jordan  <robertj@gmx.net>
2333
2334         * file-io.c: Implement and use wrappers for GetFileAttribute|Ex ()
2335         which resort to FindFirstFile when a certain error condition
2336         (ERROR_SHARING_VIOLATION) occured. Fixes bug #325212.
2337         Code is contributed under MIT/X11 license.
2338
2339 2008-01-24  Jonathan Chambers  <joncham@gmail.com>
2340
2341         * marshal.c (emit_marshal_string): Fix out string marshalling
2342         to use specified encoding. Fixes #323900.
2343
2344         Code is contributed under MIT/X11 license.
2345
2346 2008-01-24  Raja R Harinath  <harinath@hurrynot.org>
2347
2348         * class.c (mono_class_inflate_generic_method_full): Don't modify
2349         iresult->context after cache check.
2350
2351 2008-01-23  Zoltan Varga  <vargaz@gmail.com>
2352
2353         * class.c (mono_class_inflate_generic_method_full): Change the
2354         struct assignments to memcpy for better visibility and add some comments.
2355
2356 2008-01-23  Dick Porter  <dick@ximian.com>
2357
2358         * threads.c (mono_threads_set_shutting_down): Simplify shutdown
2359         procedure, and make it work on windows.
2360
2361 2008-01-22  Zoltan Varga  <vargaz@gmail.com>
2362
2363         * object-internals.h (MonoReflectionGenericClass): Make the 'generic_type' field
2364         a MonoReflectionTypeBuilder since it is always of that type.
2365
2366         * reflection.c (mono_type_get_object): Remove an unneccesary check.     
2367
2368         * reflection.c (mono_generic_class_get_object): Simplify this a bit.
2369
2370         * reflection.c (mono_reflection_bind_generic_parameters): Ditto.
2371         
2372         * icall.c (ves_icall_MonoGenericClass_GetParentType): Ditto.
2373
2374         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Ditto.
2375
2376         * reflection.c (mono_reflection_create_runtime_class): Remove already created
2377         instantiations from the type cache.
2378
2379 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
2380
2381         * verify.c (do_ldstr): fixed token verification. previous code was 100% broken.
2382
2383         * verify.c (do_unbox_value): push a controled mutability managed pointer.
2384
2385 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
2386
2387         * verify.c (do_ldstr): added, verifies if the #US token is valid.
2388
2389         * verify.c (mono_method_verify): removed old TODO
2390
2391 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
2392
2393         * verify.c (do_newobj): add visibility check.
2394
2395 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
2396
2397         * verify.c (do_load_function_ptr): add visibility check.
2398
2399 2008-01-21  Massimiliano Mantione  <massi@ximian.com>
2400         *class.c:
2401         mono_generic_class_get_class: hook profiler events.
2402         mono_field_get_offset: added to support heap-shot in the new profiler.
2403         *class.h: exported mono_field_get_offset.
2404         * reflection.c:
2405         mono_reflection_setup_internal_class: hook profiler events.
2406
2407 2008-01-20  Zoltan Varga  <vargaz@gmail.com>
2408
2409         * marshal.c (mono_marshal_emit_native_wrapper): Add a 'check_exceptions' 
2410         argument here too and use it to avoid checking for pending exceptions if 
2411         possible.
2412
2413 2008-01-20  Gert Driesen  <drieseng@users.sourceforge.net>
2414
2415         * assembly.c (build_assembly_name): add arg for passing the assembly
2416         flags. Do not consider a PublicKey with value "null" valid.
2417         (mono_assembly_name_parse_full): added boolean argument that will be
2418         set if the assembly name contains a PublicKeyToken spec. Added support
2419         for the Retargetable spec for which only Yes or No are allowed as valid
2420         value. Consider assembly name invalid if Retargetable spec is set, but
2421         either version, culture or public key (token) are not specified.
2422         * metadata-internals.h: sync signature of mono_assembly_name_parse_full
2423         with implementation in assembly.c.
2424         * icall.c (fill_reflection_assembly_name): also copy assembly flags
2425         from MonoAssemblyName.
2426         (ves_icall_System_Reflection_AssemblyName_ParseName): use newly
2427         introduced argument for mono_assembly_name_parse_full to know if the
2428         assembly name has a PublicKeyToken spec, and if it has instruct
2429         fill_reflection_assembly_name to use default value for keyToken (if
2430         PublicKeyToken is null).
2431
2432 2008-01-18  Rodrigo Kumpera  <rkumpera@novell.com>
2433
2434         * verify.c (mono_method_verify): fixed ovf ops with
2435         float values. They are unverifiable now.
2436
2437 2008-01-18  Rodrigo Kumpera  <rkumpera@novell.com>
2438
2439         * class.c (set_failure_from_loader_error): add BadImageException to the
2440         list of exceptions that can cause a type to fail to load.
2441
2442         * class.c (mono_class_get_exception_for_failure): same.
2443
2444 2008-01-17  Rodrigo Kumpera  <rkumpera@novell.com>
2445
2446         * verify.c (in_any_exception_block): added, check if offset
2447         is part of any exception handling clause.
2448
2449         * verify.c (get_stack_type): added VAR and MVAR types.
2450
2451         * verify.c (do_stobj): better error messages.
2452
2453         * verify.c (do_cpobj): added, check cpobj.
2454
2455         * verify.c (do_initobj): added, check initobj.
2456
2457         * verify.c (do_sizeof): added, check sizeof.
2458
2459         * verify.c (do_localloc): added, check localloc.
2460
2461         * verify.c: adde proper verification for cpobj, initobj, sizeof and localloc.
2462
2463 2008-01-17  Zoltan Varga  <vargaz@gmail.com>
2464
2465         * method-builder.c (mono_mb_emit_native_call): Get rid of the unused
2466         save_lmf/restore_lmf opcodes.
2467
2468         * threads.c (mono_threads_install_notify_pending_exc): New function to
2469         install a callback notifying the JIT there is a pending exception on a thread.
2470         (mono_thread_request_interruption): Call the new callback.
2471         (mono_thread_get_and_clear_pending_exception): New function to return the
2472         exception pending on a thread.
2473
2474         * marshal.c (mono_marshal_get_icall_wrapper): Add a check_exceptions argument
2475         to turn off checking for pending exceptions.
2476         (mono_marshal_get_native_wrapper): Ditto.
2477
2478 2008-01-16  Zoltan Varga  <vargaz@gmail.com>
2479
2480         * threads-types.h: Get rid of the unnecessary extern declarations.
2481
2482 2008-01-16  Gert Driesen  <drieseng@users.sourceforge.net>
2483
2484         * icall.c (ves_icall_Type_GetField): if NonPublic flag is set, only
2485         return field from parent class if not private.
2486         (ves_icall_Type_GetFields_internal): if NonPublic flag is set, only
2487         returns fields from parent class if they are not private.
2488         (method_nonpublic): added function to determine if a given method
2489         should be considered non-public. Returns false for private methods
2490         on parent class, and internal methods from parent on the 1.0 profile.
2491         (ves_icall_Type_GetMethodsByName): if NonPublic flag is set, then
2492         use method_nonpublic function to determine whether method should be
2493         returned.
2494         (property_accessor_public): use newly introduced method_nonpublic
2495         function to determine whether accessor is non-public. 
2496         (ves_icall_MonoType_GetEvent): If NonPublic flag is set, only return
2497         event from parent class if not private. Only return static event if
2498         Static flag is set, and only return static event from parent class if
2499         FlattenHierarchy flag is set.
2500         (ves_icall_Type_GetEvents_internal): If NonPublic flag is set, only
2501         include non-private events from parent class.
2502
2503 2008-01-16  Zoltan Varga  <vargaz@gmail.com>
2504
2505         * icall.c (ves_icall_System_NumberFormatter_GetFormatterTables): Fix a
2506         warning.
2507
2508 2008-01-16  Wade Berrier <wberrier@novell.com>
2509
2510         * security.c: Add assembly.h header to appease some warnings
2511
2512 2008-01-16  Dick Porter  <dick@ximian.com>
2513
2514         * process.c (process_module_string_read): Remove trailing null
2515         when saving string.
2516
2517 2008-01-16  Mark Probst  <mark.probst@gmail.com>
2518
2519         * class-internals.h: A new data structure describing the layout of
2520         a runtime generic context (MonoRuntimeGenericContextTemplate).
2521
2522         * metadata-internals.h: Added a hash table to MonoDomain that maps
2523         from open generic classes to their runtime generic context
2524         templates.
2525
2526         * object.c: Building of the runtime generic context, including
2527         proper handling of generic type arguments of superclasses.
2528         Building of the runtime generic context according to the template.
2529
2530 2008-01-15  Zoltan Varga  <vargaz@gmail.com>
2531
2532         * class.c (mono_class_setup_fields): Set field.count for generic instances.
2533         Fixes #350856.
2534
2535         * image.c (do_mono_image_open): Pass TRUE as last_exists to 
2536         mono_portability_find_file (). Fixes #325466.
2537         (mono_image_get_public_key): Fix a warning.
2538
2539 2008-01-14  Zoltan Varga  <vargaz@gmail.com>
2540
2541         * class.c (mono_class_from_name): Fix comments for NULL-ness of image parameter.
2542         Fixes #353550.
2543         (mono_class_from_name_case): Ditto.
2544
2545 2008-01-13  Eyal Alaluf <eyala@mainsoft.com>
2546
2547         * icall-def.h number-formatter.h icall.c: Implemented a cross app-domain
2548           common storage for the tables used in the System/NumberFormatter class.
2549
2550 2008-01-13  Zoltan Varga  <vargaz@gmail.com>
2551
2552         * marshal.c (mono_marshal_get_runtime_invoke): Fix a typo.
2553
2554 2008-01-11  Rodrigo Kumpera  <rkumpera@novell.com>
2555
2556         * verify.c (get_boxable_mono_type): check if the token is valid.
2557
2558         * verify.c (set_stack_value): changed to add an error if an
2559         invalid type is set on stack. Changed all callers due to signature change.
2560
2561         * verify.c (do_stobj): implement stobj validation.
2562
2563 2008-01-11  Zoltan Varga  <vargaz@gmail.com>
2564
2565         * reflection.c (reflection_methodbuilder_to_mono_method): No need to
2566         set container->is_method, it was set earlier.
2567
2568         * metadata.c (type_in_image): Handle MVARs which belong to not finished
2569         generic methods.
2570
2571         * reflection.c (mono_reflection_initialize_generic_parameter): Set
2572         is_method of the generic container to TRUE for methods.
2573
2574 2008-01-10  Zoltan Varga  <vargaz@gmail.com>
2575
2576         * metadata.c (type_in_image): Handle type parameters properly.
2577
2578         * class-internals.h (MonoGenericParam): Add an 'image' argument to track
2579         memory ownership of this structure.
2580
2581 2008-01-10  Rodrigo Kumpera  <rkumpera@novell.com>
2582
2583         * verify.c (get_boxable_mono_type): make typedref types been just
2584         unverifiable. check for void type.
2585
2586         * verify.c (do_unbox_any): added, verify opcode unbox.any.
2587
2588         * verify.c (do_load_function_ptr): accept method spec tokens.
2589
2590 2008-01-10  Zoltan Varga  <vargaz@gmail.com>
2591
2592         * marshal.c (mono_class_native_size): Always set *align even if this is called
2593         recursively.
2594
2595 2008-01-09  Zoltan Varga  <vargaz@gmail.com>
2596
2597         * verify.c (mono_verify_corlib): Remove this as it was not used and was 
2598         out-of-date.
2599
2600 2008-01-09  Rodrigo Kumpera  <rkumpera@novell.com>
2601
2602         * verify.c: removed some old unused tables. A huge bunch of small fixes
2603         to things found while testing the verifier with mono basic.
2604
2605         * verify.c (dump_stack_value): dump null literal flag to.
2606
2607         * verify.c (verify_type_compatibility_full): fix comparison
2608         for types that have a generic super type.
2609
2610         * verify.c (verify_stack_type_compatibility): fix compatibility
2611         between null literals and reference types. fix compatibility between
2612         boxed valuetypes and object. fix corner case test for enums.
2613
2614         * verify.c (do_cmp_op): proper verification of cgt.un in case
2615         of reference types.
2616
2617         * verify.c (do_invoke_method): fix error message.
2618
2619         * verify.c (do_store_indirect
2620
2621         * verify.c (check_is_valid_type_for_field_ops): proper verification
2622         of managed pointers to valuetypes and boxed valuetypes. proper verification
2623         of null literals.
2624
2625         * verify.c (do_unbox_value): expect valuetypes to be always boxed. don't
2626         allow token to be a reference type.
2627
2628         * verify.c (do_cast): proper handling of boxes valuetypes.
2629
2630         * verify.c (do_stelem): proper handling of storing a boxed valuetype
2631         in object[].
2632
2633         * verify.c (mono_method_verify): pass the opcode to do_cmp_op
2634         to handle cgt.un properly. Implement add/mul/sub ovf opcodes.
2635         fixed the decoding of unbox_any
2636
2637 2008-01-08  Zoltan Varga  <vargaz@gmail.com>
2638
2639         * boehm-gc.c (mono_gc_deregister_root): Fix the size passed to libgc.
2640
2641 2008-01-08  Rodrigo Kumpera  <rkumpera@novell.com>
2642
2643         * verify.c (do_newobj): do delegate verification.
2644
2645         * verify.c (verify_delegate_compatibility): perform delegate
2646         verification.
2647
2648         * verify.c (verify_ldftn_delegate): perform tests related to
2649         ldftn delegates.
2650
2651         * verify.c (mono_delegate_signature_equal): perform the
2652         slightly diferent signature comparison required by delegates.
2653
2654         * metadata.c (mono_metadata_type_equal_full): added and exported
2655         as MONO_INTERNAL. This is a version of mono_metadata_type_equal that
2656         allows signature only comparison.
2657
2658         * metadata-internal.h (mono_metadata_type_equal_full): added and exported
2659         as MONO_INTERNAL.
2660
2661 2008-01-07  Rodrigo Kumpera  <rkumpera@novell.com>
2662
2663         * verify.c: added a bunch of stack_slot_* functions to
2664         make access to stack slot type easier. This is required to
2665         allow optional flags, like null literal, boxed value and
2666         this pointer.
2667         All access paths to IlStackDesc::stype have been changed 
2668         to use these new funcions.
2669         Removed a bunch of unused functions and cleared all warnings.
2670         This patch introduces the usage of the this pointer and 
2671         boxed value flags.
2672
2673 2008-01-07  Zoltan Varga  <vargaz@gmail.com>
2674
2675         * boehm-gc.c (mono_gc_deregister_root): Fix win32 build.
2676
2677 2008-01-06  Zoltan Varga  <vargaz@gmail.com>
2678
2679         * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Change signature to
2680         match managed version.
2681
2682         * appdomain.c: Bump corlib version.
2683         
2684         * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Check for a null
2685         argument.
2686
2687 2008-01-06  Gert Driesen  <drieseng@users.sourceforge.net>
2688
2689         * icall.c (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies)
2690         Set public key token to zero-length byte array if assembly is not
2691         strongnamed.
2692
2693 2008-01-05  Zoltan Varga  <vargaz@gmail.com>
2694
2695         * icall.c (ves_icall_System_Array_SetValueImpl): Use a write barrier when
2696         writing a vtype array elem.
2697
2698 2007-01-05  Gert Driesen  <drieseng@users.sourceforge.net>
2699
2700         * assembly.c (build_assembly_name): return FALSE if length of token is
2701         not 16 (if not "null").
2702         (mono_assembly_name_parse_full): return FALSE if value of version,
2703         culture, token or key is 0.
2704         * icall.c (fill_reflection_assembly_name): add boolean arguments to
2705         specify whether public key and public key token must be set to default
2706         value (zero-length byte array) if not available. Set versioncompat to
2707         SameMachine. If public key is available or the default is set, then
2708         set PublicKey flag.
2709         (ves_icall_System_Reflection_Assembly_FillName): if no public key
2710         is available, use empty byte array as default value. On the 2.0
2711         profile, use default value for public key token if not set.
2712         (ves_icall_System_Reflection_InternalGetAssemblyName): on the 1.0
2713         profile, use default value for public key if not set. On the 2.0
2714         profile, use default value for public key token if not set.
2715         (ves_icall_System_Reflection_AssemblyName_ParseName): do not set
2716         default values for public key and public key token.
2717
2718 2008-01-05  Zoltan Varga  <vargaz@gmail.com>
2719
2720         * object-internals.h (MonoReflectionAssemblyName): Add 'processor_architecture'
2721         field to keep it in synch with the managed object.
2722
2723         * marshal.c (emit_marshal_object): Add support for byref marshalling of
2724         delegates. Fixes #351520.
2725
2726         * sgen-gc.c (conservatively_pin_objects_from): Tell valgrind that the pin queue
2727         contains defined memory.
2728         
2729         * sgen-gc.c: Fix 64 bit warnings. Fix some typos. Update GC stats in mono_stats.
2730
2731         * sgen-gc.c (build_nursery_fragments): Handle half-constructed objects correctly.
2732         
2733         * sgen-gc.c (check_consistency): New helper function to do a consistency check
2734         of the GC data structures.
2735
2736         * gc-internal.h: Moved the REGISTER/UNREGISTER macros here from os/gc_wrapper.h.
2737
2738         * *.c: Include metadata/gc-internal.h instead of os/gc_wrapper.h.
2739         
2740         * object.c (mono_array_full_copy): Fix detection of whenever to use a write
2741         barrier.
2742         (mono_array_clone_in_domain): Ditto.
2743         (mono_array_clone_in_domain): Ditto.
2744
2745         * threads.c (start_wrapper): Register the thread start argument as a GC root.
2746         (cache_culture): Use a write barrier.
2747
2748         * icall.c (ves_icall_System_Array_SetValueImpl): Call a write barrier.
2749         (ves_icall_get_property_info): Ditto.
2750
2751         * object.h (MONO_STRUCT_SETREF): New macro.
2752
2753         * class-internals.h (MonoStats): Add some GC statistics.
2754
2755         * boehm-gc.c null-gc.c: Define mono_gc_deregister_root ().
2756
2757 2008-01-04  Andreas Faerber  <andreas.faerber@web.de>
2758
2759         * exception.c (mono_exception_from_name_two_strings):
2760         Break from loop after method is found.
2761
2762 2008-01-04  Dick Porter  <dick@ximian.com>
2763
2764         * process.c (process_module_string_read): Rename variable to
2765         reflect correct usage, after fixing bug 345972.
2766
2767 2008-01-03  Rodrigo Kumpera  <rkumpera@novell.com>
2768
2769         * verify.c (mono_type_create_fnptr_from_mono_method): 
2770         created a MonoType function pointer instance to be used during
2771         verification. The verifier releases this memory at end.
2772
2773         * verify.c (mono_method_is_constructor): extracted repeated
2774         checks for constructor into a single class.
2775
2776         * verify.c (do_push_field): use new extracted method
2777         for constructor check.
2778
2779         * verify.c (do_newobj): same.
2780
2781         * verify.c (do_ldftn): renamed to do_load_function_ptr
2782         and make it verify ldvirtftn too.
2783
2784         * verify.c (mono_method_verify: proper verification
2785         of ldvirtftn. release created MonoMethod instances.
2786
2787 2007-12-31  Rodrigo Kumpera  <rkumpera@novell.com>
2788
2789         * verify.c (token_bounds_check): added.
2790
2791         * verify.c (do_ldftn): added.
2792
2793         * verify.c (mono_method_verify): proper verificartion of ldftn.
2794
2795 2007-12-31  Rodrigo Kumpera  <rkumpera@novell.com>
2796
2797         * metadata.c (mono_metadata_decode_row): Assert if index is bigger
2798         than the table row count. It's the resposibility of the caller to
2799         make the bounds check and raise the correct error.
2800
2801         * metadata.c (mono_metadata_decode_row_col): Same.
2802
2803         * loader.c (mono_get_method_from_token): perform bounds check
2804         on token for methoddef table.
2805
2806 2007-12-29  Miguel de Icaza  <miguel@novell.com>
2807
2808         * icall.c
2809         (ves_icall_System_CurrentSystemTimeZone_GetTimeZoneData): Turn the
2810         assert into a negative result, the managed code already coped with
2811         that.
2812
2813         Some folks on Windows reported this error. 
2814
2815 2007-12-28  Gert Driesen  <drieseng@users.sourceforge.net>
2816
2817         * appdomain.c: Bump corlib version.
2818         * icall.c:
2819         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies): Use
2820         CultureInfo.CreateCulture to create CultureInfo for name.
2821         (fill_reflection_assembly_name): Use CultureInfo.CreateCulture to
2822         create CultureInfo for name. Fixes bug #347174.
2823
2824 2007-12-27  Rodrigo Kumpera  <rkumpera@novell.com>
2825
2826         * verify.c: added IL_CODE_FLAG_STACK_INITED and IL_CODE_STACK_MERGED
2827         flags.
2828
2829         * verify.c (is_valid_branch_instruction): allow branching to the
2830         first instruction of the protected block.
2831
2832         * verify.c (is_valid_cmp_branch_instruction): same.
2833
2834         * verify.c (stack_init): use IL_CODE_FLAG_STACK_INITED flag to
2835         avoid double initialization.
2836
2837         * verify.c (merge_stacks): use IL_CODE_STACK_MERGED to
2838         detect which cases the eval stack should just be copied.
2839
2840         * verify.c (mono_method_verify): check if the eval stack
2841         is empty when entering a protected block.
2842
2843 2007-12-27  Rodrigo Kumpera  <rkumpera@novell.com>
2844
2845         * verify.c: added is_clause_in_range, is_clause_inside_range,
2846         is_clause_nested and verify_clause_relationship. They perform
2847         the verifications stated in P1 12.4.2.7.
2848
2849         * verify.c (mono_method_verify): remove some unused variables,
2850         add the new exception clause checks, add instruction border
2851         checks for protected block start/end, improved some error 
2852         messages and fixed a bug in the way invalid instruction access
2853         is detected.
2854
2855 2007-12-26  Zoltan Varga  <vargaz@gmail.com>
2856
2857         * boehm-gc.c (mono_gc_register_thread): Use the new GC_register_my_thread () routine
2858         from GC 7.0 if available.
2859
2860         * object.c: Remove an unused define.
2861         
2862         * object.c (mono_class_compute_gc_descriptor): Fix a warning.
2863
2864         * boehm-gc.c (mono_gc_make_descr_for_array): Implement.
2865
2866         * null-gc.c (mono_gc_make_descr_for_array): Implement.
2867
2868         * object.c (mono_class_compute_gc_descriptor): Remove an #ifdef SGEN_GC.
2869
2870         * gc-internal.h: Change the signature of mono_gc_make_descr_for_string ()
2871         to take the same arguments as the other make_descr functions.
2872
2873         * boehm-gc.c null-gc.c: Add implementation for make_descr functions.
2874
2875         * objects.c: Get rid of the MAKE_DESCRIPTOR macros, call make_descr functions
2876         directly.
2877
2878         * boehm-gc.c (mono_gc_base_init): Moved the setting of GC_stackbottom here from
2879         mini.c.
2880
2881         * object.c (mono_class_compute_gc_descriptor): Move the GC_init_gcj_malloc () 
2882         call to boehm-gc.c.
2883
2884         * boehm-gc.c (mono_gc_register_root): Fix a warning.
2885
2886         * null-gc.c (mono_gc_register_root): Fix a warning.
2887
2888         * reflection.c (ALLOC_REFENTRY): Use mono_gc_alloc_fixed for boehm as well.
2889
2890         * boehm-gc.c (mono_gc_register_root): Moved definition here from gc_wrapper.h.
2891         (mono_gc_base_init): Call GC_init ().
2892
2893         * null-gc.c: Define mono_gc_register_root () as a no-op.
2894
2895         * domain.c appdomain.c: Call mono_gc_base_init () instead of MONO_GC_PRE_INIT ().
2896
2897 2007-12-24  Rodrigo Kumpera  <rkumpera@novell.com>
2898
2899         * verify.c: add prototype for merge_stacks at top
2900
2901         * verify.c (do_switch): added.
2902
2903         * verify.c (merge_stacks): on some cases the stack merging
2904         was not happening properly. Unequal stack sizes at merge
2905         points should be invalid.
2906
2907         * verify.c (mono_method_verify): added more debug info on stack state.
2908         verify switch properly.
2909
2910 2007-12-24  Zoltan Varga  <vargaz@gmail.com>
2911
2912         * method-builder.h: New file, moved the mono_mb_ declarations here from 
2913         marshal.h.
2914
2915         * boehm-gc.c marshal.c: Include method-builder.h.
2916
2917         * marshal.c: Use mono_mb_emit_branch_label () in a few places.
2918
2919         * marshal.c: Remove some code which is now in method-builder.c.
2920
2921 2007-12-23  Zoltan Varga  <vargaz@gmail.com>
2922
2923         * method-builder.c: New file, extraction of the method builder functionality 
2924         from marshal.c.
2925
2926         * marshal.c: Move the mb functions into method-builder.c.
2927
2928         * marshal.h marshal.c: Export some mono_mb_... functions.
2929
2930         * marshal.c: Use mono_mb_get_label () and mono_mb_patch_branch () in all places.
2931
2932         * loader.c (field_from_memberref): Remove the dynamic case, it is handled in
2933         the caller.
2934
2935         * class.c (mono_class_get_full): Check the token type in the dynamic case.
2936
2937         * loader.c (mono_field_from_token): Ditto.      
2938
2939         * loader.c (mono_get_method_from_token): Change the check so it checks memberref
2940         type as well.
2941         
2942         * loader.c (mono_get_method_from_token): Check the token type in the dynamic case.
2943         Fixes #342565.
2944
2945         * class-internals.h: Add new loader error type MONO_EXCEPTION_BAD_IMAGE plus
2946         a helper function for setting it.
2947
2948         * loader.c (mono_loader_error_prepare_exception): Handle MONO_EXCEPTION_BAD_IMAGE.
2949
2950         
2951         * assembly.c: Significally simplify code now that referenced assemblies are 
2952         loaded lazily. Get rid of the 'loading' hashtables. Hopefully fixes #347629.
2953
2954         * threads.h: Don't include  the internal threads-types.h header file. Fixes
2955         #349952.
2956
2957 2007-12-21  Rodrigo Kumpera  <rkumpera@novell.com>
2958
2959         * verify.c: added enum value IL_CODE_FLAG_WAS_TARGET, to represent
2960         instructions that were target of branches or are at protected block boundaries.
2961
2962         * verify.c (in_same_block): handle filter clauses.
2963
2964         * verify.c (is_valid_branch_instruction): added. checks the target of
2965         instructions br or brtrue/false.
2966
2967         * verify.c (is_valid_cmp_branch_instruction): added. checks the target of
2968         binary branch instructions such as beq and bge.
2969
2970         * verify.c (init_stack_with_value): renamed to init_stack_with_value_at_exception_boundary
2971         and made it pin the instruction as been part of the exception block.
2972
2973         * verify.c (do_boolean_branch_op): use is_valid_branch_instruction instead
2974         of in_same_block.
2975
2976         * verify.c (do_branch_op): use is_valid_cmp_branch_instruction instead
2977         of in_same_block.
2978
2979         * verify.c (do_ret): ret from a protected block is unverifiable and
2980         not invalid.
2981
2982         * verify.c (do_static_branch): verify br and br.s instructions.
2983
2984         * verify.c (merge_stacks): add extra param to support detection
2985         of branches in the middle of instructions.
2986         
2987         * verify.c (mono_method_verify): verify branches and exception blocks
2988         that target the middle of instructions. Proper verification of br and br.s.
2989
2990 2007-12-21  Zoltan Varga  <vargaz@gmail.com>
2991
2992         * reflection.c (reflection_methodbuilder_from_ctor_builder): Initialize
2993         skip_visibility field.
2994         (reflection_methodbuilder_from_dynamic_method): Ditto.
2995
2996         * object.c (mono_class_compute_gc_descriptor): Remove more unused icall
2997         registrations. Fixes #348193.
2998
2999         * threads.h: Move the internal mono_thread_get_pending_exception () to
3000         threads-types.h and rename it to mono_thread_get_undeniable_exception ().
3001
3002 2007-12-20  Zoltan Varga  <vargaz@gmail.com>
3003
3004         * object.c (mono_class_compute_gc_descriptor): Remove unused GC_gcj_fast_malloc
3005         icall registration. Fixes #348193.
3006
3007         * marshal.c (mono_marshal_get_runtime_invoke): Put all runtime invoke wrappers
3008         for corlib classes into object. Fixes #349621.
3009
3010 2007-12-20  Gert Driesen  <drieseng@users.sourceforge.net>
3011
3012         * icall.c (property_accessor_nonpublic): new function to determine
3013         whether an accessor allows a property to be considered non-public.
3014         Returns false for private accessor(s) from parent class, and internal
3015         accessor(s) from parent on 2.0 profile (and higher).
3016         (ves_icall_Type_GetPropertiesByName): Use newly introduced function
3017         to determine whether property should be included if NonPublic flag
3018         is set. Fixes bug #349078.
3019
3020 2007-12-20  Rodrigo Kumpera  <rkumpera@novell.com>
3021
3022         * verify.c (init_stack_with_value): added.
3023
3024         * verify.c (mono_method_verify): extracted common
3025         code for exception initialization into init_stack_with_value.
3026
3027         * verify.c (mono_method_verify): initialize the exception
3028         for handler clauses as well.
3029
3030         * verify.c (mono_method_verify): fix the exception clause
3031         ordering rules, it should use handler end offset and not
3032         start offset.
3033
3034 Thu Dec 20 12:27:24 CET 2007 Paolo Molaro <lupus@ximian.com>
3035
3036         * rawbuffer.c: remove useless warning.
3037
3038 Thu Dec 20 12:10:38 CET 2007 Paolo Molaro <lupus@ximian.com>
3039
3040         * threads.h, threads-types.h: move functions to the correct header
3041         (fixes bug#349952).
3042
3043 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
3044
3045         * verify.c (mono_method_verify): proper verification
3046         of exception handling clauses ranges and fallthru in
3047         and out of protected blocks.
3048
3049 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
3050
3051         * verify.c (mono_method_verify): fixed compilation issue.
3052
3053 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
3054
3055         * verify.c (mono_method_verify): a printf slipped in, changed
3056         to use verifier debug macro.
3057
3058 2007-12-18  Rodrigo Kumpera  <rkumpera@novell.com>
3059
3060         * verify.c (is_correct_leave): check for filter clauses.
3061
3062         * verify.c (do_filter): added.
3063
3064         * verify.c (mono_method_verify): property verification of leave.
3065
3066
3067 2007-12-18  Mark Probst  <mark.probst@gmail.com>
3068
3069         * threads.c: Disable calls to _wapi_thread_signal_self() to fix
3070         Win32 build, until we figure out how to do the proper thing on
3071         Win32.
3072
3073 2007-12-17  Zoltan Varga  <vargaz@gmail.com>
3074
3075         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Fix a crash introduced
3076         by the previous patch.
3077         
3078         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Avoid calling
3079         the assembly resolve handler for refonly assemblies.
3080
3081 2007-12-17  Mark Probst  <mark.probst@gmail.com>
3082
3083         * threads.c, thread-types.h, icall.c: New shutdown safeguards.
3084         Make sure only one thread is allowed to commence shutdown, and
3085         don't allow new threads to be started once shutdown is in
3086         progress.
3087
3088 2007-12-14  Rodrigo Kumpera  <rkumpera@novell.com>
3089
3090         * verify.c (is_correct_endfilter): added.
3091
3092         * verify.c (is_unverifiable_endfilter): added.
3093
3094         * verify.c (do_endfilter): added.
3095
3096         * verify.c (mono_method_verify): property verification of endfilter
3097         and fixed a corner case or endfinally.
3098
3099 2007-12-13  Rodrigo Kumpera  <rkumpera@novell.com>
3100
3101         * verify.h: new flags to support fail fast of unverifiable code and
3102         do non-strict verification. Non-strict verification is required to
3103         have MS runtime compatibility. There are a huge amount of unverifiable
3104         code that it accepts as verifiable. The strict mode verifies the code
3105         as the specs says.
3106         Non-strict mode will be required in cases where code needs to be
3107         accepted as verifiable but fails under strict mode.
3108
3109         * pedump.c: added support to fail fast and non-strict verification.
3110
3111         * verify.c: added support for both fail fast and non-strict verification.
3112
3113 2007-12-12  Rodrigo Kumpera  <rkumpera@novell.com>
3114
3115         * verify.c (is_correct_endfinally): added.
3116
3117         * verify.c (mono_method_verify): property verification of endfinally.
3118
3119 2007-12-11  Rodrigo Kumpera  <rkumpera@novell.com>
3120
3121         * verify.c (in_any_block): check for filter clauses.
3122
3123         * verify.c (is_correct_rethrow): added.
3124
3125         * verify.c (mono_method_verify): property verification of rethrow.
3126
3127         * metadata.h: added MONO_OFFSET_IN_FILTER macro.
3128
3129 2007-12-11  Rodrigo Kumpera  <rkumpera@novell.com>
3130
3131         * verify.c (do_throw): added.
3132
3133         * verify.c (mono_method_verify): property verification of throw
3134
3135 2007-12-11  Zoltan Varga  <vargaz@gmail.com>
3136
3137         * assembly.c (mono_assembly_load_reference): Try an assembly resolve for ref-only
3138         assemblies. Fixes #346425.
3139
3140 2007-12-10  Zoltan Varga  <vargaz@gmail.com>
3141
3142         * reflection.c (mono_reflection_get_token): Call mono_image_create_token () for
3143         FieldBuilders.
3144
3145         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Fix a warning.
3146
3147         * class.c (mono_lookup_dynamic_token_class): Add a 'valid token' argument to
3148         prevent asserts when this is called with a token which might not be valid.
3149
3150         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Call
3151         lookup_dynamic_token_class with valid_token == FALSE.
3152
3153         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.       
3154
3155         * icall.c (ves_icall_System_Reflection_Module_ResolveStringToken): Ditto.
3156
3157         * icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
3158         
3159 2007-12-10  Mark Probst  <mark.probst@gmail.com>
3160
3161         * gc.c: Don't delay threadpool thread finalization unless Mono is
3162         shutting down.
3163
3164 Mon Dec 10 11:06:23 CET 2007 Paolo Molaro <lupus@ximian.com>
3165
3166         * threads.c: turn an assert into a non-fatal warning.
3167
3168 2007-12-09  Robert Jordan  <robertj@gmx.net>
3169
3170         * icall.c (GetVirtualMethod): Add missing argument validation.
3171
3172 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
3173
3174         * verify.c (do_cast): added.
3175
3176         * verify.c (mono_method_verify): property verification of castclass and isinst.
3177
3178
3179 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
3180
3181         * verify.c (mono_type_from_opcode): added opcodes for stelem.X.
3182
3183         * verify.c (do_stelem): added.
3184
3185         * verify.c (mono_method_verify): property verification of stelem.X.
3186
3187 2007-12-07  Mark Probst  <mark.probst@gmail.com>
3188
3189         * class.c, class-internals.h: Introduce an environment variable
3190         (MONO_GENERIC_SHARING) through which the extent of generic code
3191         sharing can be controlled (share all classes, share only corlib
3192         classes, or share nothing).
3193
3194         * object.c: Only create runtime generic context for classes for
3195         which sharing is enabled.
3196
3197 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
3198
3199         * verify.c (do_ldelem): refactor it to work with ldelem.any.
3200
3201         * verify.c (mono_method_verify): property verification of ldelem.any.
3202
3203 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
3204
3205         * verify.c (get_indirect_op_mono_type): renamed to mono_type_from_opcode,
3206         added ldelem.X opcodes.
3207
3208         * verify.c (do_ldelema): fixed possible invalid usage of MonoType.
3209
3210         * verify.c: proper verification of ldelem.X 
3211
3212 2007-12-06  Zoltan Varga  <vargaz@gmail.com>
3213
3214         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Allow interface cctors to be called too.
3215
3216 2007-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
3217
3218         * verify.c (mono_method_verify): null literal requires special handling,
3219         the value pushed on stack need to be flagged as so.
3220
3221         * verify.c (do_ldelema): Verify ldelema properly.
3222
3223 2007-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
3224
3225         * verify.c: Verify ldlen properly.
3226
3227 2007-12-05  Zoltan Varga  <vargaz@gmail.com>
3228
3229         * icall.c (ves_icall_MonoField_GetValueInternal): Check that the field belongs
3230         to the target object's type. Fixes #346160.
3231
3232 2007-12-05  Dick Porter  <dick@ximian.com>
3233
3234         * threadpool.c (socket_io_add_poll): Asynchronous connect() on
3235         Solaris needs the same workaround as BSD-derived systems.  Fixes
3236         bug 323524, patch by Burkhard Linke
3237         <burkhard.linke@CeBiTec.Uni-Bielefeld.DE>
3238
3239 2007-12-04  Gert Driesen  <drieseng@users.sourceforge.net>
3240
3241         * process.c: When ProcessStartInfo.ErrorDialog is true, pass window
3242         handle to use when error dialog is shown; otherwise, update mask
3243         to show no error dialog when an error occurs.
3244
3245 2007-12-03  Zoltan Varga  <vargaz@gmail.com>
3246
3247         * icall.c (ves_icall_MonoField_GetRawConstantValue): New icall.
3248
3249         * class.c (mono_class_get_field_default_value): New helper function to initialize
3250         field->def_type and field->data.
3251
3252 2007-11-30  Zoltan Varga  <vargaz@gmail.com>
3253
3254         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Use the delegate trampoline instead of
3255         the general one.
3256
3257         * object.c (mono_runtime_create_delegate_trampoline): New helper function.
3258
3259         * marshal.c: Avoid depending on delegate->method_info being set.
3260
3261         * object.c (mono_delegate_ctor): Avoid initializing delegate->method_info.
3262         
3263         * object.c (mono_delegate_ctor): Set delegate->method.
3264
3265         * object-internals.h (struct _MonoDelegate): Add 'method' field.
3266
3267         * appdomain.c: Bump corlib version.
3268
3269 2007-11-27  Raja R Harinath  <harinath@gmail.com>
3270
3271         * metadata.c (mono_generic_inst_equal_full): Short-circuit
3272         equality check if we're comparing canonicalized MonoGenericInsts.
3273
3274 2007-11-23  Zoltan Varga  <vargaz@gmail.com>
3275
3276         * class.c (generic_array_methods): Call mono_class_setup_methods () before
3277         accessing class->methods.
3278
3279 2007-11-22  Dick Porter  <dick@ximian.com>
3280
3281         * threads.c: Ensure that the synch_cs is set before trying to use
3282         it.
3283
3284 Thu Nov 22 12:34:04 CET 2007 Paolo Molaro <lupus@ximian.com>
3285
3286         * profiler.c: r89126 broke the statistial profiler, unbreak.
3287
3288 2007-11-22  Martin Baulig  <martin@ximian.com>
3289
3290         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 66.
3291
3292         * mono-debug.c
3293         (mono_debug_debugger_version): Bump to 3.
3294         (mono_debug_init): Hook `mono_debugger_class_loaded_methods_func'
3295         -> mono_debugger_class_initialized().
3296
3297         * mono-debug-debugger.c
3298         (mono_debugger_add_type): Renamed into mono_debugger_class_initialized().
3299
3300         * class.c
3301         (mono_debugger_start_class_init_func): Removed.
3302         (mono_debugger_class_loaded_methods_func): Added.
3303         (mono_class_setup_methods): Call it here.
3304
3305 2007-11-22  Martin Baulig  <martin@ximian.com>
3306
3307         * mono-debug.c
3308         (mono_debug_add_delegate_trampoline): New public method.
3309         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_DELEGATE_TRAMPOLINE'.
3310
3311         * mono-debug.h
3312         (MonoSymbolTable): Added `global_data_table'.
3313         (MonoDebuggerTypeKind): Removed.
3314
3315 2007-11-21  Zoltan Varga  <vargaz@gmail.com>
3316
3317         * marshal.c (mono_marshal_get_generic_array_helper): Skip visibility checks for
3318         these methods.
3319
3320         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3321         
3322 Tue Nov 20 23:10:41 CET 2007 Paolo Molaro <lupus@ximian.com>
3323
3324         * object.c: some fields don't have a valid rva: ignore them (bug #343083).
3325
3326 2007-11-20  Martin Baulig  <martin@ximian.com>
3327
3328         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 65.
3329
3330         * mono-debug-debugger.c
3331         (mono_debugger_insert_method_breakpoint): Moved here from debug-mini.c
3332         (mono_debugger_remove_breakpoint): Likewise.
3333         (mono_debugger_check_breakpoints): Likewise.
3334         (mono_debugger_register_class_init_callback): New public method.
3335         (mono_debugger_remove_class_init_callback): Likewise.
3336         (mono_debugger_add_type): Likewise.
3337
3338         * mono-debug-debugger.h
3339         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_CLASS_INITIALIZED'.
3340
3341 Tue Nov 20 20:54:12 CET 2007 Paolo Molaro <lupus@ximian.com>
3342
3343         * class.c: more interface implementations needed for the
3344         array enumerator (fixes bug #341112).
3345
3346 2007-11-18  Gert Driesen  <drieseng@users.sourceforge.net>
3347
3348         * icall.c: Renamed arguments for ves_icall_System_Enum_ToObject to
3349         fix ParamName of ArgumentNullExceptions.
3350
3351 2007-11-17  Miguel de Icaza  <miguel@novell.com>
3352
3353         * reflection.c (mono_reflection_encode_sighelper): Generate the
3354         modopts and modreqs.   I have a useless test that crashes monodis,
3355         but that shows the code working.
3356
3357 2007-11-17  Zoltan Varga  <vargaz@gmail.com>
3358
3359         * boehm-gc.c (create_allocator): Fix size calculation for the string allocator.
3360         (mono_gc_get_managed_allocator): Enable the string allocator on amd64.
3361
3362 2007-11-15  Dick Porter  <dick@ximian.com>
3363
3364         * threads.c (ves_icall_System_Threading_Thread_Join_internal):
3365         When joining a thread, it's the thread that's calling Join that
3366         gets WaitSleepJoin state not the target.  Fixes the standalone
3367         test case in bug 334740, and hopefully the whole bug too.
3368
3369 2007-11-15  Dick Porter  <dick@ximian.com>
3370
3371         * process.c: Read file version info from the files pointed at by
3372         process modules, not the current process.  Fixes bug 315969.
3373
3374         Use windows typedef names in some places to fix warnings on the
3375         windows build.
3376
3377 2007-11-15  Mark Probst  <mark.probst@gmail.com>
3378
3379         * image.c, metadata-internals.h: Added a generic_class_cache hash
3380         to MonoImage for looking up generic classes when sharing generics.
3381
3382 Thu Nov 15 16:11:30 CET 2007 Paolo Molaro <lupus@ximian.com>
3383
3384         * sgen-gc.c: warning cleanups.
3385
3386 2007-11-15  Zoltan Varga  <vargaz@gmail.com>
3387
3388         * icall.c (ves_icall_Type_GetPropertiesByName): Implement proper hiding of
3389         inherited properties.
3390
3391 2007-11-14  Mark Probst  <mark.probst@gmail.com>
3392
3393         * object.c, class-internals.h: Added more information to the
3394         runtime generic context.
3395
3396 2007-11-13  Zoltan Varga  <vargaz@gmail.com>
3397
3398         * marshal.c (mono_marshal_get_delegate_invoke): Take a delegate as argument
3399         instead of just the target method. Generalize the abstract method handling to
3400         handle any non-static method.
3401
3402         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
3403         mono_marshal_get_delegate_invoke () signature change.
3404
3405 2007-11-13  Mark Probst  <mark.probst@gmail.com>
3406
3407         * class.c, class-internals.h: Made
3408         mono_type_get_basic_type_from_generic () public.  Fixed member
3409         access check for shared generics.
3410
3411         * loader.c: Don't insert field into field cache if it's part of a
3412         non-inflated generic class.
3413
3414         * domain.c, domain-internals.h: The generic sharing context is now
3415         part of the jit info data structure.  Added two accessor
3416         functions.
3417
3418 2007-11-12  Zoltan Varga  <vargaz@gmail.com>
3419
3420         * marshal.c (mono_marshal_get_runtime_invoke): Create a non-shared wrapper for
3421         the array Get/Set/Address methods, since the JIT inlines them.
3422
3423         * metadata-internals.h (MonoImage): Add 'runtime_invoke_direct_cache'.
3424
3425         * image.c (mono_image_close): Free runtime_invoke_direct_cache.
3426         (mono_image_init): Initialize runtime_invoke_direct_cache.      
3427
3428         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
3429         mono_marshal_get_delegate_invoke signature change.
3430
3431         * marshal.c (mono_marshal_get_delegate_invoke): Receive the target_method as
3432         an additional argument. Add support for invoking abstract methods.
3433
3434         * metadata-internals.h (MonoImage): Add 'delegate_abstract_invoke_cache'.
3435
3436         * image.c (mono_image_close): Free delegate_abstract_invoke_cache.      
3437
3438 2007-11-09  Mark Probst  <mark.probst@gmail.com>
3439
3440         * class.c: Do field layout for open generic classes as well.
3441
3442 2007-11-09  Mark Probst  <mark.probst@gmail.com>
3443
3444         * gc.c, gc-internal.h: Don't finalize threadpool threads with
3445         other objects, because the threadpool is still around.  Put them
3446         in a list instead and after finalizing all other objects in the
3447         root domain shut down the thread pool and then finalize the
3448         threads.  Fixes bug #337383.
3449
3450         * threads.c, thread-types.h: New mono_thread_create_internal()
3451         function for marking a thread with the threadpool flag before it
3452         started.  Set synch_cs to NULL after freeing it.
3453
3454         * threadpool.c: Mark threadpool threads before they start.
3455
3456 Thu Nov 8 15:31:21 CET 2007 Paolo Molaro <lupus@ximian.com>
3457
3458         * reflection.h, reflection.c: don't export random functions
3459         and lazy load dbnull and missing objects.
3460
3461 2007-11-07  Jonathan Chambers <joncham@gmail.com>
3462
3463         * class.c: Initialize COM types if COM interfaces
3464         are present (not just COM classes).
3465         
3466         Code is contributed under MIT/X11 license.
3467
3468 2007-11-07  Massimiliano Mantione  <massi@ximian.com>
3469         * reflection.c:
3470         create_dynamic_mono_image: hook module profiler events (dynamic case).
3471         mono_image_basic_init: hook assembly profiler events (dynamic case).
3472
3473 2007-11-07  Massimiliano Mantione  <massi@ximian.com>
3474         * profiler.c:
3475         simple_appdomain_unload: completely terminate the profiler
3476         instead of only processing the statistical samples.
3477         simple_shutdown: make sure this is really called exactly once,
3478         even in multithreaded applications, and always listen to
3479         appdomain events.
3480         * gc.c (mono_domain_finalize): don't call mono_profiler_appdomain_event
3481         here, the "[un]load" functions will do it.
3482         Fixes bugs #333791 and #325261.
3483
3484 2007-11-07  Geoff Norton  <gnorton@novell.com>
3485
3486         * socket-io.c:  Use the configure defines for HAVE_SOCKADDR_IN(6)_SIN_LEN
3487         rather than depend on __APPLE__.
3488
3489 2007-11-07  Mark Probst  <mark.probst@gmail.com>
3490
3491         * icall.c: Safety checks in InitializeArray.  Fixes bug #324535.
3492
3493 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com> 
3494
3495         * object.c: Fix mono_string_to_utf8 to handle NULL values inside the
3496         UTF16 MonoString. Fix the crash from bug #335488
3497
3498 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com>
3499
3500         * marshal.c: Correct (for non-Win32 OS) length != size in 
3501         mono_string_from_bstr. Fix #339530.
3502
3503 2007-11-06  Geoff Norton  <gnorton@novell.com>
3504
3505         * socket-io.c: Apple requires sin(6)_len to be set for getnameinfo
3506         to succeed
3507
3508 2007-11-05  Kornél Pál  <kornelpal@gmail.com>
3509
3510         * process.c: Added run-time GetProcessId API detection for Windows.
3511
3512 2007-11-04  Miguel de Icaza  <miguel@novell.com>
3513
3514         * reflection.c  (mono_param_get_objects): If a parameter has the
3515         attribute [System.Runtime.InteropServices.Optional] we should
3516         set the DefaultValue of the ParameterInfo to be
3517         System.Reflection.Missing instead of DBNull.
3518
3519         See bug #339013.
3520
3521         (mono_get_reflection_missing_object): New method,
3522         returns the System.Reflection.Missing.Value singleton instance.
3523
3524 2007-11-03  Atsushi Enomoto  <atsushi@ximian.com>
3525
3526         * culture-info-table.h : regenerated.
3527
3528 2007-11-02  Jonathan Chambers <joncham@gmail.com>
3529
3530         * icall.c: Use GetEnvironmentStrings on windows
3531         so we are using the same environment block as 
3532         GetEnvironmentVariable/SetEnvironmentVariable. Fixes
3533         #333740.
3534         
3535         Code is contributed under MIT/X11 license.
3536
3537 2007-10-31  Martin Baulig  <martin@ximian.com>
3538
3539         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 64.
3540
3541         * mono-debug-debugger.h
3542         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_TRAMPOLINE'.
3543
3544 2007-10-30  Zoltan Varga  <vargaz@gmail.com>
3545
3546         * reflection.c (mono_custom_attrs_from_class): Add support for dynamic inflated 
3547         classes.
3548
3549 2007-10-30  Atsushi Enomoto  <atsushi@ximian.com>
3550
3551         * culture-info-table.h : regenerated.
3552
3553 2007-10-30  Robert Jordan  <robertj@gmx.net>
3554
3555         * icall-def.h, icall.c:
3556         Add ves_icall_Remoting_RemotingServices_GetVirtualMethod ().
3557
3558         Code is contributed under MIT/X11 license.
3559
3560 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
3561
3562         * class.c (mono_class_setup_vtable): Find the inflated methods in the
3563         inflated class instead of inflating them again.
3564         
3565         * class.c (mono_class_setup_vtable): Inflate the override methods in the 
3566         dynamic case.
3567
3568         * class.c (mono_generic_class_get_class): Set klass->property.count as well.
3569         Call setup_supertypes () after klass->parent is set.
3570         (mono_class_setup_properties): Enable this to work on dynamic generic classes.
3571
3572         * reflection.c (mono_type_get_object): Only return a MonoGenericClass object
3573         for inflated instances of not yet created dynamic generic classes.
3574         (ctorbuilder_to_mono_method): Handle the case when this is called multiple
3575         times from inflated_method.
3576         (methodbuilder_to_mono_method): Ditto.
3577
3578 Mon Oct 29 21:02:53 CET 2007 Paolo Molaro <lupus@ximian.com>
3579
3580         * gc.c: code cleanup and removed old untested option of not creating the
3581         finalizer thread.
3582
3583 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
3584
3585         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Avoid
3586         creating a jump trampoline for dynamic methods.
3587
3588 2007-10-29 Rodrigo Kumpera <rkumpera@novell.com>
3589
3590         * reflection.c (mono_image_create_token): Correctly encode methods and constructors of
3591         generic TypeBuilders when called from another method of the same type (bug #335131).
3592
3593
3594 2007-10-27  Zoltan Varga  <vargaz@gmail.com>
3595
3596         * reflection.c (methodbuilder_to_mono_method): Revert the last change as it
3597         doesn't seem to work perfectly.
3598         
3599         * reflection.c (ctorbuilder_to_mono_method): Handle the case when this is
3600         called multiple times.
3601         (methodbuilder_to_mono_method): Ditto.
3602         (resolve_object): Inflate FieldBuilder's.
3603
3604 Fri Oct 26 19:38:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
3605
3606         * string-icalls.c, string-icalls.h, appdomain.c: patch from
3607         Tyler Larson <mono-devel@tlarson.com> to fix the handling of
3608         RemoveEmptyEntries in the string.Split implementation (bug #322375).
3609
3610 2007-10-26  Dick Porter  <dick@ximian.com>
3611
3612         * appdomain.c (MONO_CORLIB_VERSION): Bump version because of
3613         Thread initialisation changes
3614
3615 2007-10-26 Rodrigo Kumpera <rkumpera@novell.com>
3616
3617         * verify.c: fix compatibility check between arrays and System.Array
3618
3619 2007-10-26  Zoltan Varga  <vargaz@gmail.com>
3620
3621         * reflection.c (mono_reflection_get_custom_attrs_info): Handle MonoGenericClass
3622         too. Fixes #336999.
3623
3624 2007-10-25  Zoltan Varga  <vargaz@gmail.com>
3625
3626         * object.c (mono_value_box): Use typed allocation here.
3627
3628 2007-10-23  Zoltan Varga  <vargaz@gmail.com>
3629
3630         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Create a jump
3631         trampoline instead of compiling the method right away.
3632
3633         * class-internals.h object.c: Add a JIT callback to create a jump trampoline.
3634
3635 2007-10-21  Zoltan Varga  <vargaz@gmail.com>
3636
3637         * class.c (mono_generic_class_get_class): Avoid setting klass->size_inited and
3638         related fields for dynamic classes. Fixes #334493.
3639
3640 2007-10-20  Zoltan Varga  <vargaz@gmail.com>
3641
3642         * class.c (mono_generic_class_get_class): Set klass->field.count as well.
3643         
3644         * class.c (mono_class_layout_fields): Use 1 instead of TRUE for consistency.
3645
3646         * class.c (mono_class_layout_fields): Set size_inited for generic classes as well.
3647         (mono_class_setup_vtable): Obtain overrides for dynamic generic classes correctly.
3648
3649         * class.c (mono_class_setup_methods): Handle dynamic inflated classes correctly.
3650
3651         * reflection.c (create_generic_typespec): Initialize klass->generic_container
3652         if needed.
3653         (reflection_methodbuilder_to_mono_method): Set container->is_method to TRUE.
3654
3655 2007-10-18  Jonathan Chambers <joncham@gmail.com>
3656
3657         * marshal.c: Use correct key when removing item
3658         from ccw_hash.
3659         
3660         Code is contributed under MIT/X11 license.
3661
3662 2007-10-17  William Holmes  <billholmes54@gmail.com>
3663
3664         *marshal.c: Adding a case to marshal booleans to U1
3665
3666         Code is contributed under MIT/X11 license.
3667
3668 2007-10-18  Zoltan Varga  <vargaz@gmail.com>
3669
3670         * class.c (mono_class_from_name): Search the modules compromising dynamic
3671         assemblies. Fixes #331601.
3672
3673 2007-10-16  Zoltan Varga  <vargaz@gmail.com>
3674
3675         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Throw an
3676         exception if the type name contains an assembly component. Fixes #334203.
3677
3678         * reflection.c (mono_reflection_get_type_with_rootimage): Search all the
3679         modules inside dynamic assemblies. Fixes #334200.
3680         
3681         * reflection.c: Set image->public_key and image->public_key_length;
3682
3683         * metadata-internals.h (MonoDynamicImage): Add public_key and public_key_len
3684         fields.
3685
3686         * image.c (mono_image_get_public_key): Handle dynamic assemblies. Fixes #334173.        
3687         
3688 2007-10-16  Mark Probst  <mark.probst@gmail.com>
3689
3690         * metadata.c: Implemented correct comparing of generic classes.
3691         An inflated generic class can be equal to a non-inflated one if it
3692         is inflated with generic type variables as type arguments.  Fixes
3693         bug #333798.
3694
3695 2007-10-15  Dick Porter  <dick@ximian.com>
3696
3697         * monitor.c (mono_monitor_try_enter_internal): Set thread state to
3698         WaitSleepJoin while it is waiting to acquire a lock.  Fixes bug
3699         81646.
3700
3701         * threads.c: Turn the thread synch_lock into a CRITICAL_SECTION,
3702         instead of a monitor lock.  This means that monitor_try_enter and
3703         co can set the thread state safely.
3704         (ves_icall_System_Threading_Thread_Interrupt_internal): Always set
3705         thread_interrupt_requested, so interrupt actually works.
3706
3707         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal,
3708         ves_icall_System_Net_Sockets_Socket_Select_internal): Use thread
3709         state accessor function
3710
3711 2007-10-15  Martin Baulig  <martin@ximian.com>
3712
3713         * mono-debug.h
3714         (MONO_DEBUGGER_VERSION): Bump to 63 to make it impossible to use
3715         the debugger with the current runtime.
3716
3717 Mon Oct 15 10:20:56 CEST 2007 Paolo Molaro <lupus@ximian.com>
3718
3719         * object.c, object-internals.h: added the ability to set a single
3720         trampoline for all the slots in a vtable.
3721
3722 Fri Oct 12 17:50:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
3723
3724         * marshal.c: deal with a possible race condition during multicast
3725         delegate invocation.
3726
3727 Fri Oct 12 13:31:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
3728
3729         * class.c: ensure value type methods don't have the synchronized
3730         flag set.
3731
3732 Fri Oct 12 08:10:59 CEST 2007 Paolo Molaro <lupus@ximian.com>
3733
3734         * string-icalls.c, string-icalls.h: reverted unapproved patch that
3735         breaks the build.
3736
3737 2007-10-11  Joel Reed  <joelwreed@comcast.com>
3738
3739         * string-icalls.c, string-icalls.h: modify System_String_InternalSplit
3740         to take an options parameter so that empty entries can be removed during
3741         the split procedure. Patch from: Tyler Larson <mono-devel@tlarson.com>
3742
3743 Thu Oct 11 20:16:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
3744
3745         * marshal.c: make sure we don't store the signature from a dynamic
3746         method into the runtime invoke cache (bug #327189).
3747
3748 Thu Oct 11 18:22:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
3749
3750         * marshal.c: make sure the wrapper methods are properly initialized.
3751
3752 2007-10-11  Mark Probst  <mark.probst@gmail.com>
3753
3754         * metadata.c, metadata-internals.h: Generalized
3755         mono_type_stack_size() to mono_type_stack_size_internal() which
3756         takes an additional argument specifying whether it allows open
3757         types.
3758
3759 2007-10-10  Rodrigo Kumpera  <rkumpera@novell.com>
3760
3761         * verify.c (do_invoke_method): handle typedbyref params
3762         correctly and check for unverifiable return values.
3763
3764         * verify.c (do_newobj): fix a warning.
3765
3766 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
3767
3768         * verify.c: don't tread typedbyref as allways unverifable,
3769         so uses, like (ld/st)loc.0 are valid. verify for the cases
3770         that it matters, like boxing related operations.
3771
3772 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
3773
3774         * verify.c: add verification of the newobj opcode. verification
3775         of delegate instantation still missing due ldftn and virldftn not
3776         pushing the function type on stack
3777
3778 2007-10-08  Mark Probst  <mark.probst@gmail.com>
3779
3780         * class-internals.h: Runtime generic context data structure
3781         definition.
3782
3783         * object.c: Initialization of runtime generic context at runtime
3784         vtable creation time.
3785
3786 2007-10-08  Massimiliano Mantione  <massi@ximian.com>
3787         * class.c (mono_class_create_from_typedef,
3788         mono_class_from_generic_parameter, mono_ptr_class_get,
3789         mono_fnptr_class_get, mono_bounded_array_class_get)
3790         * domain.c (mono_domain_create, mono_domain_free)
3791         * assembly.c (mono_assembly_load_from_full, mono_assembly_close)
3792         * image.c (do_mono_image_load, mono_image_close):
3793         Hooked up load-unload profiler events.
3794
3795 Mon Oct 8 11:38:04 CEST 2007 Paolo Molaro <lupus@ximian.com>
3796
3797         * domain.c: track statistics about the actual amount of native code
3798         allocated.
3799
3800 Sat Oct 6 10:01:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
3801
3802         * class.c: the valuetype enumerators don't have the additional
3803         supertypes interfaces.
3804
3805 Fri Oct 5 20:33:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
3806
3807         * class.c: need more interfaces setup for the IEnumerator<T>
3808         object created for arrays (tests/ienumerator-interfaces.2.cs).
3809
3810 2007-10-05  Zoltan Varga  <vargaz@gmail.com>
3811
3812         * class.c (mono_ldtoken): Handle methodspec tokens as well. Fixes #331097.
3813
3814 2007-10-05  Alp Toker  <alp@atoker.com>
3815
3816         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
3817         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
3818         #315863.
3819
3820 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
3821
3822         * verify.c (verify_type_compatibility_full): verification of
3823         compatibility improved, validates correctly non-strict checks between
3824         native int and I4 types different than (unsigned)int32.
3825
3826         * verify.c (do_store_indirect): added, do all verification of
3827         ldind.X opcodes. 
3828
3829         * verify.c (get_load_indirect_mono_type): renamed to
3830         get_indirect_op_mono_type, as it now returns the MonoType for 
3831         ldind.X and stind.X opcodes.
3832
3833 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
3834
3835         * reflection.c: Fix the encoding of generic type definition for
3836         TypeBuilders.
3837
3838         * reflection.c (mono_image_typedef_or_ref_full: do the same thing as
3839         mono_image_typedef_or_ref but allows to specify if typespec lookups should
3840         be made. Typespec check is done prior to typeref cache lookup.
3841
3842         * reflection.c (mono_image_typedef_or_ref): now just delegate to
3843         mono_image_typedef_or_ref_full.
3844
3845         * reflection.c (encode_generic_class): encode the generic class
3846         directly instead of calling encode_type.
3847
3848         * reflection.c (encode_type): encode the generic type definition
3849         MonoClass as a generic instantiation.
3850
3851         * reflection.c (create_typespec): cache typespec tokens in
3852         the assembly->typespec cache. Don't create typespec for a generic
3853         instance MonoClass. Create typespec for the generic type defintion.
3854
3855         * reflection.c (create_generic_typespec): encode the generic
3856         class directly instead of calling encode_type.
3857
3858         * reflection.c (mono_image_create_token): encode the generic
3859         type definition not using a typespec for MonoType instances.
3860
3861
3862 2007-10-04  Raja R Harinath  <rharinath@novell.com>
3863
3864         Fix #328812
3865         * class.c (mono_image_init_name_cache): Don't return nested
3866         'protected internal' classes.
3867         (mono_class_from_name_case): Likewise.
3868
3869 2007-10-04  Atsushi Enomoto  <atsushi@ximian.com>
3870
3871         * icall-def.h, icall.c : get_bundled_machine_config() is now the
3872           common function used by both DefaultConfig in System.dll and
3873           InternalConfigurationHost in System.Configuration.dll.
3874
3875 Wed Oct 3 17:26:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
3876
3877         * class.c: automatically add to vectors only a few essential explicit
3878         generic interfaces. The rest of the interfaces that arrays should
3879         provide are currently implicitly added (but still not lazily, see the
3880         design in the discussion of bug#325495 for the details of what is
3881         needed for that). Additionally, implicit interfaces are assigned the
3882         same vtable slot as the explicit interfaces (as they are compatible):
3883         this enables huge memory savings since we don't need to instantiate
3884         as many memthods and as large vtables anymore. Also, Since
3885         GetEnumerator<T> returns an instance of a type that is required to
3886         support a similarly large set of interfaces as arrays, we add
3887         implicit interfaces and interface offset sharing support to those
3888         types, too. This change adds all the required interfaces so that
3889         the anonarray.cs test case in the bug report works (we don't add
3890         all the interfaces to arrays of arrays 3-level deep and more because
3891         of the memory requirements explained in the bug and since they are much
3892         less common: the lazy-loading support will enabled them to work, too).
3893
3894 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
3895
3896         * verify.c (merge_stacks): major clean up, all type compatibility
3897         checks are done by verify_type_compatibility. This fix my earlier lack
3898         of understanding of the CLR type system and merge_stacks no longer looks
3899         scary.
3900
3901         * verify.c: fixed some bad spelling.
3902
3903 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
3904
3905         * verify.c (mono_type_from_stack_slot): added. returns the MonoType for
3906         a given stack slock.
3907         
3908         * verify.c: killed verify_type_compat in favor of verify_type_compatibility and
3909         verify_type_compatibility_full. This removed a near indentical function and fixed
3910         handling of Int32 and IntPtr across all opcodes.
3911
3912 Tue Oct 2 15:24:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
3913
3914         * class.c: only vectors have the additional generic interfaces.
3915
3916 2007-10-01  Jonathan Chambers <joncham@gmail.com>
3917
3918         * mono-config.c: Use g_strcasecmp instead of
3919         strcasecmp like everywhere else to fix
3920         compilation with MSVC.
3921         
3922         Code is contributed under MIT/X11 license.
3923
3924 Mon Oct 1 14:39:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
3925
3926         * object.c, object-internals.h: refactored the IMT code to enable
3927         building a single slot at a time and lazily creating the IMT trampolines
3928         and thunks.
3929
3930 2007-09-29  Zoltan Varga  <vargaz@gmail.com>
3931
3932         * loader.c (inflate_generic_signature): Allocate inflated signatures from the heap.
3933
3934         * metadata.c (mono_metadata_free_inflated_signature): Free the signature itself too.
3935         Fixes #328501.
3936         
3937 2007-09-29  Raja R Harinath  <harinath@gmail.com>
3938
3939         * loader.c (method_from_methodspec): Rearrange to avoid
3940         un-necessary exposition.  Don't assert out if the method's
3941         declaring type is a generic type definition.
3942
3943 2007-09-28  Martin Baulig  <martin@ximian.com>
3944
3945         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 61.
3946
3947 Fri Sep 28 20:15:47 CEST 2007 Paolo Molaro <lupus@ximian.com>
3948
3949         * class-internals.h: optimize field layout of MonoClass to
3950         requires less cachelines at runtime and save a few bytes on 64 bit
3951         systems.
3952
3953 2007-09-28  Jb Evain  <jbevain@novell.com>
3954
3955         * reflection.c: when encoding type names in custom attributes,
3956         if the type is a closed generic type, its generic arguments
3957         have to be serialized as AssemblyQualifiedName, so that when
3958         they are deserialized, it's possible to re-create them properly.
3959         Fixes #329450.
3960
3961
3962 Fri Sep 28 19:19:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
3963
3964         * object.c, class-internals.h: added delegate-creation counter.
3965
3966 Fri Sep 28 18:07:53 CEST 2007 Paolo Molaro <lupus@ximian.com>
3967
3968         * class.c: cleanup of the code that synthetizes interfaces for
3969         arrays in 2.0: saves quit a bit of corlib mempool memory.
3970         Code to fix bug #325495 ifdeffed out for now until the issues
3971         with memory usage and O(n^2) behaviour are fixed.
3972
3973 Fri Sep 28 17:19:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
3974
3975         * marshal.c: when possible, do not duplicate the name of the methods
3976         in the method builder and in the generated MonoMethod.
3977
3978 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
3979         * verify.c: added support for type checking ldind_* opcodes.
3980
3981 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
3982
3983         * class-internals.h (struct _MonoGenericClass): new field is_tb_open
3984         which is used to distinguish the fully open instantiation of a TypeBuilder
3985         with the rest. This temporary hack is required to restore the property that
3986         the fully open instantiation is the same type of the generic type definition.
3987
3988         * class-internals.h (mono_generic_class_is_generic_type_definition):
3989         new function as part of the internal API.
3990
3991         * class.c (inflate_generic_type): return NULL when the generic inst is
3992         fully open. The fully open generic type is now the same as the generic type
3993         definition for non TypeBuilder types.
3994
3995         * class.c (mono_generic_class_get_class): removed assert since it is
3996         no longer valid, gklass->cached_class can point to the generic type definition.
3997
3998         * class.c (mono_generic_class_is_generic_type_definition): new.
3999
4000         * metadata.c (mono_generic_class_hash): added is_tb_open field
4001         to the hash calculation.
4002
4003         * metadata.c (free_generic_class): if the generic class is associated
4004         with the generic type definition, its field will come from the mempool and
4005         must not be freed.
4006
4007         * metadata.c (mono_metadata_is_type_builder_generic_type_definition):
4008         new, this function identifies the corner case of a TypeBuilder fully open
4009         instantiation.
4010
4011         * metadata.c (mono_metadata_lookup_generic_class): use is_tb_open
4012         for lookup. Set gclass->cached_class to be the container class in case of
4013         the fully open instantiation of non TypeBuilder types.
4014
4015         * metadata.c (_mono_metadata_generic_class_equal): use is_tb_open
4016         to compare generic classes.
4017
4018         * reflection.c (method_encode_methodspec): remove assert that
4019         no longer is valid.
4020
4021         * reflection.c (mono_reflection_generic_class_initialize): add
4022         an aditional assert to ensure the proper type is used.
4023
4024 2007-09-26  Rodrigo Kumpera  <rkumpera@novell.com>
4025
4026         * verify.c: disabled all debug spew by default, define MONO_VERIFIER_DEBUG
4027         to enjoy it.
4028
4029 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
4030
4031         * verify.c (push_arg): Fixed support for ldarga
4032         * verify.c (set_stack_value): Removed superfluous parameter, fixed the
4033         MonoType used as first arg in case of instance calls.
4034
4035 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
4036
4037         * verify.c: Support for verifying VAR and MVAR types, 
4038
4039 2007-09-25  Zoltan Varga  <vargaz@gmail.com>
4040
4041         * icall.c (ves_icall_get_property_info): Set the reflected type of the
4042         accessors correctly.
4043
4044 Tue Sep 25 14:56:03 CEST 2007 Paolo Molaro <lupus@ximian.com>
4045
4046         * threads.c: support OSX and other systems in
4047         mono_thread_get_stack_bounds (bug #328026).
4048
4049 2007-09-25  Martin Baulig  <martin@ximian.com>
4050
4051         * mono-debug.h
4052         (MonoDebugVarInfo): Replace `MonoClass *klass' with `MonoType *type'.
4053
4054 2007-09-24  Martin Baulig  <martin@ximian.com>
4055
4056         * mono-debug.h
4057         (MonoDebugClassEntry): Moved the definition of this struct into
4058         mono-debug.c to make it private.
4059
4060         * mono-debug.c
4061         (MonoDebugClassEntry): Removed `symfile_id'; since we now use one
4062         type table per symbol file, we don't need to store the symfile id
4063         any longer.
4064
4065 2007-09-24  Martin Baulig  <martin@ximian.com>
4066
4067         Create one type table per symbol file, since a `MonoClass *' gets
4068         invalid when its image is unloaded.
4069
4070         * mono-debug.h (MonoSymbolTable): Removed `type_table'.
4071         (MonoDebugHandle): Added `type_table'.
4072
4073 Mon Sep 24 17:25:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
4074
4075         * mempool.c, mempool.h: added mono_mempool_new_size () API
4076         to be able to specify a smaller initial size for the pool.
4077         Adjusted the code to slowly increase pool size before using
4078         the previous default size.
4079         * image.c: use a small initial size for image mempools.
4080
4081 2007-09-23  Zoltan Varga  <vargaz@gmail.com>
4082
4083         * marshal.c (emit_marshal_array): Generate valid IL for byref array case.
4084         Fixes ##320990.
4085
4086         * icall.c (ves_icall_System_Reflection_Assembly_get_ManifestModuleInternal): 
4087         Rename this to ves_icall_System_Reflection_Assembly_GetManifestModuleInternal.
4088
4089 2007-09-22  Zoltan Varga  <vargaz@gmail.com>
4090
4091         * metadata.c (mono_type_create_from_typespec): Remove an invalid
4092         free. Fixes #327438.
4093
4094 2007-09-21  Raja R Harinath  <harinath@gmail.com>
4095
4096         * metadata.c (type_in_image) <MONO_TYPE_SZARRAY>: Handle arrays of
4097         generic instantiations, etc.
4098         <MONO_TYPE_ARRAY>: Likewise.
4099
4100 2007-09-21  Martin Baulig  <martin@ximian.com>
4101
4102         * mono-debug.h (MonoSymbolFilePriv, MonoDebugHandlePriv): Removed;
4103         these structs were never defined.
4104         (MonoDebugHandle): Removed the `_priv' field, it was never used.
4105
4106 2007-09-21  Martin Baulig  <martin@ximian.com>
4107
4108         * mono-debug.h (MonoDebugVarInfo): Add `MonoClass *klass'.
4109
4110 Fri Sep 21 14:39:45 CEST 2007 Paolo Molaro <lupus@ximian.com>
4111
4112         * image.c: removed the guid hash tables: we can get the same info
4113         without the additional memory usage hit (partially fixes also bug #327052).
4114
4115 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
4116
4117         * profiler.h, profiler-private.h, profiler.c: add a new profiler
4118         event to handle unloading methods. After the event is called, the
4119         corresponding MonoMethod* must be considered invalid.
4120         * loader.c (mono_free_method): call the new mono_profiler_method_free
4121         event.
4122
4123 2007-09-20  Mark Probst  <mark.probst@gmail.com>
4124
4125         * domain-internals.h: New flag in MonoJitInfo which marks shared
4126         generic methods.  New hash table (shared_generics_hash) in
4127         MonoDomain to keep track of shared generic methods.  Prototypes
4128         for functions to register and lookup shared generic methods.
4129
4130         * domain.c: Support for registering and looking up shared generic
4131         methods via a hash table (shared_generics_hash) in MonoDomain.
4132
4133         * class-internals.h: New exception to signal failure of shared
4134         compilation of a generic method.  New counters for generics
4135         sharing in MonoStats.
4136
4137 Thu Sep 20 16:59:36 CEST 2007 Paolo Molaro <lupus@ximian.com>
4138
4139         * image.c, metadata-internals.h: don't keep a file descriptor open
4140         for loaded assemblies (bug#325988).
4141
4142 2007-09-19  Raja R Harinath  <rharinath@novell.com>
4143
4144         * metadata.c (signature_in_image): New.  Carve out of type_in_image.
4145         (ginst_in_image, gclass_in_image): Simplify.  Change signature to
4146         use the corresponding datatypes.
4147         (type_in_image): Update to changes.
4148         (CleanForImageUserData): Simplify.
4149         (steal_gclass_in_image): Carved out of old 'gclass_in_image'.
4150         Avoid quadratic behaviour in handling the "stolen" list by
4151         separating the filter predicate out, and by prepending the stolen
4152         items rather than appending them.
4153         (steal_ginst_in_image): Likewise.
4154         (mono_metadata_clean_for_image): Update to changes.
4155
4156 2007-09-19  Martin Baulig  <martin@ximian.com>
4157
4158         * domain.c (mono_cleanup): Call mono_debug_cleanup() here.
4159
4160 2007-09-19  Martin Baulig  <martin@ximian.com>
4161
4162         * mono-debug.c (mono_debug_cleanup): Don't call
4163         mono_debugger_cleanup(); this is now called earlier from mini_cleanup().
4164
4165 2007-09-19  Raja R Harinath  <harinath@gmail.com>
4166
4167         Fix crash on 'make run-test' in mcs/errors
4168         * metadata.c (type_in_image): New.  Carve out of ginst_in_image.
4169         Avoid more potential allocations in mono_class_from_mono_type.
4170         (ginst_in_image): Update to changes.
4171         (gclass_in_image): Rearrange slightly.
4172
4173 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
4174
4175         * class.c (mono_class_init): Move the code that sets up class->methods to 
4176         mono_class_setup_methods () for inflated generic classes too. Ditto for properties.
4177
4178         * metadata.c (mono_metadata_get_inflated_signature): New function to return a
4179         canonical instance of an inflated generic signature.
4180         (mono_type_create_from_typespec): Remove an invalid free.
4181
4182         * loader.c (mono_method_get_signature_full): Use mono_metadata_get_inflated_signature.  
4183
4184 2007-09-18  Marek Habersack  <mhabersack@novell.com>
4185
4186         * domain-internals.h: added a declaration of the
4187         mono_assembly_load_full_nosearch internal function.
4188
4189         * assembly.c (mono_assembly_load_with_partial_name): use
4190         mono_try_assembly_resolve return value properly.
4191         (mono_assembly_load_full_nosearch): copied the function body from
4192         mono_assembly_load_full, without the code to invoke assembly
4193         search hooks.
4194         (mono_assembly_load_full): calls the above new function and if the
4195         assembly is not resolved, invokes the search hooks.
4196
4197         * appdomain.c (mono_runtime_init): restore the global postload
4198         assembly search handlers.
4199
4200 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
4201
4202         * class.c (mono_class_init): Make sure class->methods and class->properties
4203         are never NULL in the generics case.
4204
4205         * metadata.c (free_generic_class): Enable this again, skip the dynamic case.
4206
4207 2007-09-17  Zoltan Varga  <vargaz@gmail.com>
4208
4209         * metadata.c (free_generic_class): Disable some code to fix the build.
4210
4211         * domain.c (mono_cleanup): Fix a crash introduced by a previous patch.
4212
4213         * marshal.c (mono_marshal_get_xappdomain_dispatch): Allocate a piece of data
4214         from the image mempool.
4215
4216         * metadata.c (free_generic_class): Free more data from the inflated class.
4217
4218         * class.c (mono_class_from_generic_parameter): Allocate memory from the mempool.
4219
4220         * metadata.c (mono_metadata_parse_generic_param): Allocate memory from the image
4221         mempool.
4222         (mono_type_create_from_typespec): Ditto.
4223
4224         * domain.c (get_runtimes_from_exe): Add an out parameter to return the opened
4225         MonoImage to the caller.
4226         (mono_init_internal): Save the opened image in a global variable.
4227         (mono_cleanup): Close the image opened in get_runtimes_from_exe.
4228
4229         * reflection.c (resolve_object): Fix a leak.
4230
4231         * metadata.c: Fix the freeing of data in the generics caches.
4232         
4233         * metadata.c (free_generic_inst): Comment this out to fix the build.
4234         (free_generic_class): Ditto.
4235
4236         * metadata.c: Free cached generic methods, instantinations and classes when
4237         they are removed from the caches.
4238         (mono_metadata_free_type): Free the type itself.
4239
4240         * class.c: Free the result of mono_class_inflate_generic_type () in a few
4241         places.
4242
4243 Mon Sep 17 16:14:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
4244
4245         * boehm-gc.c: restrict managed allocs to __thread supporting
4246         architectures.
4247
4248 2007-09-16  Zoltan Varga  <vargaz@gmail.com>
4249
4250         * class.c (mono_class_inflate_generic_type): Add a comment describing memory ownership.
4251         (mono_generic_class_get_class): Fix a leak.
4252
4253         * metadata.c (do_mono_metadata_parse_type): Remove an unneccesary call to
4254         mono_metadata_free_type ().
4255         (mono_metadata_inflate_generic_inst): Fix a leak.
4256
4257 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
4258
4259         * mono-debug.c (free_header_data): Fix a leak missed earlier.
4260
4261         * metadata.c (mono_metadata_parse_array_full): Allocate memory from the image
4262         mempool.
4263
4264         * mono-debug.c (mono_debug_close_image): Fix call to 
4265         g_hash_table_remove ().
4266
4267 Fri Sep 14 19:36:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
4268
4269         * icall-def.h: redirect all the string ctor to the managed
4270         CreateString () methods.
4271         * string-icalls.c, string-icalls.h: removed dead code for string
4272         ctors and icalls.
4273
4274 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
4275
4276         * mono-debug.c: Fix memory leaks.
4277
4278 2007-09-14  Jonathan Chambers <joncham@gmail.com>
4279
4280         * threads-types.h: Implement mono_hazard_pointer_set and 
4281         mono_hazard_pointer_clear macros using do/while(0) to fix
4282         compilation with MSVC.
4283         
4284         Code is contributed under MIT/X11 license.
4285
4286 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
4287
4288         * gc.c (ves_icall_System_GCHandle_GetAddrOfPinnedObject): Use a return value of
4289         -2 to communicate to managed code that the handle is not pinned. Fixes #82848.
4290
4291 Fri Sep 14 14:04:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
4292
4293         * icall-def.h, string-icalls.c: get rid of old, no longer used, string
4294         icalls.
4295
4296 Fri Sep 14 11:41:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
4297
4298         * boehm-gc.c, gc-internal.h, object.c: allow strings to be
4299         managed-code allocated as well.
4300
4301 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
4302
4303         * class.c (mono_class_is_assignable_from): Add support for generic variance.
4304
4305 Thu Sep 13 11:55:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
4306
4307         * boehm-gc.c: fixed the build after the AOT changes.
4308
4309 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
4310
4311         * wrapper-types.h: Add an ALLOC wrapper type.
4312
4313         * gc-internals.h boehm-gc.c null-gc.c sgen-gc.c: Add functions needed by AOT to
4314         reference managed allocator methods.
4315
4316 2007-09-12  Marek Safar  <marek.safar@gmail.com>
4317
4318         * icall.c (ves_icall_MonoType_GetGenericArguments): Create an instance
4319         of Type array and not MonoType, a fix suggested by Hari.
4320         
4321 2007-09-12  Jonathan Chambers <joncham@gmail.com>
4322
4323         * domain-internals.h, domain.c : Remove delegate_invoke_impl_with_target_hash
4324         and delegate_invoke_impl_no_target_hash from _MonoDomain struct.
4325         
4326         Code is contributed under MIT/X11 license.
4327
4328 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
4329
4330         * domain.c, object.c, mono-config.c, object-internals.h: Fixed  #82416.
4331
4332 2007-09-12  Marek Habersack  <mhabersack@novell.com>
4333
4334         * image.c (do_mono_image_open): if assembly file fails to open and
4335         MONO_IOMAP is in effect, try to find the path in a
4336         case-insensitive way.
4337
4338         * appdomain.c (mono_runtime_init): do not install postload hooks -
4339         tests show that MS.NET doesn't use anything of that sort to
4340         trigger the AppDomain.AssemblyResolve event.
4341         (mono_try_assembly_resolve): renamed from try_assembly_resolve and
4342         made non-static.
4343         (mono_runtime_init): init portability helpers here.
4344
4345         * assembly.c (mono_assembly_load_with_partial_name): if other   
4346         attempts fail, trigger the AppDomain.AssemblyResolve event handler
4347         to resolve the assembly.
4348
4349         * domain-internals.h: added mono_try_assembly_resolve and marked
4350         it as internal.
4351
4352 2007-09-11  Jb Evain  <jbevain@novell.com>
4353
4354         * object-internals.h (MonoReflectionDynamicMethod): add
4355         a `MonoReflectionType *owner` field. The owner is used
4356         * reflection.c:
4357         (mono_reflection_create_dynamic_method): use the owner of the dynamic
4358         method as the class declaring the dynamic method.
4359         (reflection_methodbuilder_from_dynamic_method): copy the owner of the
4360         dynamic method to the declaring type of the methodbuilder.
4361
4362 2007-09-11  Mark Probst  <mark.probst@gmail.com>
4363
4364         * icall.c (ves_icall_InternalInvoke): Enforce CoreCLR security
4365         rules for calling methods via reflection.
4366
4367 2007-09-11  Zoltan Varga  <vargaz@gmail.com>
4368
4369         * reflection.c (resolve_object): Add support for MonoGenericClass. 
4370         Inflate MonoType's.
4371
4372 Tue Sep 11 16:08:08 CEST 2007 Paolo Molaro <lupus@ximian.com>
4373
4374         * gc-internal.h, boehm-gc.c, null-gc.c, sgen-gc.c: allow the GC to
4375         provide a managed method that does fast allocations without needing
4376         a managed->unmanaged transition. Boehm GC implementation currently
4377         enabled for ptrfree objects on sane architectures.
4378
4379 Tue Sep 11 16:00:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
4380
4381         * marshal.c, marshal.h: exported a couple of useful functions and
4382         added mono_mb_get_label () to easily handle backward branches.
4383
4384 2007-09-10  Zoltan Varga  <vargaz@gmail.com>
4385
4386         * reflection.c (resolve_object): Inflate generic methods. Fixes #82782.
4387
4388 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
4389
4390         * loader.c (find_method): Fixed the regression introduced while
4391         fixing bug #81466.
4392
4393 2007-09-09  Zoltan Varga  <vargaz@gmail.com>
4394
4395         * class.c (mono_lookup_dynamic_token_class): Pass along the context here as
4396         well.
4397         
4398         * class.c loader.c metadata.c object.c class-internals.h object-internals.h
4399         icall.c reflection.c: Pass a MonoGenericContext argument to 
4400         mono_lookup_dynamic_token ().
4401
4402         * reflection.c (resolve_object): Handle GenericTypeParameterBuilder. Fixes
4403         #82744.
4404         
4405 2007-09-09  Robert Jordan  <robertj@gmx.net>
4406
4407         * object.c (mono_class_proxy_vtable): Don't create remoting trampolines
4408         for generic methods.
4409
4410         * object.c (mono_object_get_virtual_method): Handle generic methods.
4411         Fixes bug #78882.
4412
4413         Code is contributed under MIT/X11 license.
4414
4415 Sat Sep 8 18:16:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
4416
4417         * image.c: fix locking in mono_image_load_file_for_image ().
4418
4419 Thu Sep 6 19:48:00 CEST 2007 Paolo Molaro <lupus@ximian.com>
4420
4421         * reflection.c, icall.c, icall-def.h: the methodinfos name field is
4422         used only as a cache: added an icall to fill it.
4423
4424 2007-09-16  Rodrigo Kumpera  <rkumpera@novell.com>
4425
4426         * reflection.h: exposed mono_reflection_free_type_info
4427         * reflection.c (mono_reflection_get_type_internal): type_args is always freed
4428         since mono_reflection_bind_generic_parameters makes a copy of it.
4429         * reflection.c (free_type_info): subinfos should be freed.
4430         * reflection.c (free_type_info): renamed to mono_reflection_free_type_info and 
4431         made non static.
4432         * icall.c (type_from_name and ves_icall_System_Reflection_Assembly_InternalGetType):
4433         replaced explicit cleanup of MonoTypeNameParse struct with a call to mono_reflection_free_type_info,
4434         this fixes #82695 and #81726.
4435    
4436
4437 2007-09-03  Atsushi Enomoto  <atsushi@ximian.com>
4438
4439         * process.h, process.c:  added support for user profile/info in
4440           ProcessStartInfo. For now only Windows works.
4441
4442 Fri Aug 31 17:30:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
4443
4444         * metadata.c: consider the generic arguments when comparing
4445         signatures (bug #82614).
4446
4447 Thu Aug 30 18:34:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
4448
4449         * cil-coff.h, image.c: updated assembly loader to cope with the
4450         PE32+ 64 bit file format.
4451
4452 Thu Aug 30 16:47:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
4453
4454         * assembly.c, class.c, domain.c, loader.c: remove useless
4455         inclusion of cil-coff.h.
4456
4457 2007-08-29  Jonathan Chambers  <joncham@gmail.com>
4458
4459         * marshal.c (cominterop_get_ccw): Walk up interface hierarchy
4460         if interface is marked with CoClassAttribute. 
4461    
4462         Code is contributed under MIT/X11 license.
4463
4464 Wed Aug 29 19:27:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
4465
4466         * sgen-gc.c: ensure no object from the to space is copied again or finalized
4467         if it's seen twice in major collections.
4468
4469 Wed Aug 29 18:46:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
4470
4471         * sgen-gc.c: big objects are not copied to the gray area, but they
4472         need to be considered for scanning, too, if they are brought alive
4473         by an object ready for finalizations or a survived one.
4474
4475 Wed Aug 29 18:43:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
4476
4477         * sgen-gc.c: properly account the number of disappearing links when
4478         they are nullified.
4479
4480 Wed Aug 29 18:37:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
4481
4482         * sgen-gc.c: share the code to scan the registered roots between the
4483         different types of collections.
4484
4485 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
4486
4487         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunModuleConstructor): New icall.
4488
4489 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
4490
4491         * object.c (mono_class_proxy_vtable): Use max_interface_id instead of
4492         class->max_interface_id in a one place. Fixes transparentproxy.exe test on ia64.
4493
4494 2007-08-28  Mark Probst  <mark.probst@gmail.com>
4495
4496         * security-manager.c (mono_security_manager_get_methods):
4497         LinkDemandSecurityException now has 2 arguments instead of 3.
4498
4499 2007-08-27  Zoltan Varga  <vargaz@gmail.com>
4500
4501         * class.c (mono_class_layout_fields): Only do the struct alignment hack on
4502         platforms which need it.
4503
4504 Mon Aug 27 18:29:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
4505
4506         * sgen-gc.c: unregister thread data structures with a pthread_key_t
4507         dtor.
4508
4509 Mon Aug 27 18:27:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
4510
4511         * threads.c: free the thread static data on thread exit.
4512
4513 Mon Aug 27 10:55:54 CEST 2007 Paolo Molaro <lupus@ximian.com>
4514
4515         * class.c: walk the hierarchy to find the generic definition for
4516         a class (fixes runtime part of bug #82498).
4517
4518 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
4519
4520         * assembly.c (mono_assembly_close): Move the closing of the referenced assemblies to
4521         ...
4522
4523         * image.c (mono_image_close): Here. Hopefully fixes #82510.
4524
4525 2007-08-24  Mark Probst  <mark.probst@gmail.com>
4526
4527         * monodiet.c (handle_cattrs): Fixed a custom attr leak.
4528
4529 2007-08-24  Robert Jordan  <robertj@gmx.net>
4530
4531         * appdomain.c: don't perform the ':'->';' substitution on Win32.
4532
4533 2007-08-24  Jb Evain  <jbevain@novell.com>
4534
4535         * class.c (mono_type_get_name_recurse): fix AssemblyQualifiedName
4536         for byref types.
4537
4538 2007-08-24  Mark Probst  <mark.probst@gmail.com>
4539
4540         * threads.c: Make sure a thread gets cleaned up only once.  Fixes
4541         #82286.
4542
4543 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
4544
4545         * assembly.c: Fix a warning.
4546         
4547 2007-08-23  Marek Habersack  <mhabersack@novell.com>
4548
4549         * appdomain.c: parse the <runtime> section looking for the probing
4550         element with the 'privatePath' attribute, which sets additional
4551         directories in which the runtime should look for assemblies.
4552
4553 2007-08-23  Robert Jordan  <robertj@gmx.net>
4554
4555         * marshal.c (Marshal_ReAllocHGlobal) : Fix GlobalReAlloc's flags.
4556         Fixes #82499.
4557
4558 2007-08-23  Martin Baulig  <martin@ximian.com>
4559
4560         * mono-debug.[ch]: Rename mono_debug_init_corlib() into
4561         _mono_debug_init_corlib() and remove it from the header file.
4562
4563 2007-08-23  Martin Baulig  <martin@ximian.com>
4564
4565         * mono-debug-debugger.c
4566         (mono_debugger_unhandled_exception): Ignore `ThreadAbortException';
4567         don't notify the debugger about it.
4568
4569         * mono-debug-debugger.h
4570         (MonoDebuggerEvent): Removed `THREAD_ABORT'.
4571
4572 2007-08-23  Robert Jordan  <robertj@gmx.net>
4573
4574         * icall-def.h, process.*: implemented Get|SetPriorityClass icalls.
4575         Code is contributed under MIT/X11 license.
4576
4577 Wed Aug 22 18:35:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
4578
4579         * sgen-gc.h, sgen-gc.c: abstracted most of the OS-specific code.
4580
4581 2007-08-22  Martin Baulig  <martin@ximian.com>
4582
4583         * mono-debug.c: Store debugging info on a per-domain basis and
4584         free it on domain unload.  Add support for unloading symbol files.
4585
4586         * mono-debug.h
4587         (MonoDebugList): New typedef.
4588         (MonoSymbolTable):
4589         - add `data_tables and `type_table'.
4590         - replace 'symbol_files' and `num_symbol_files' with a
4591           `MonoDebugList *'.
4592         (mono_debug_data_table): Removed.
4593         (mono_debug_list_add): New public function.
4594         (mono_debug_list_remove): New public function.
4595         (mono_debug_init_1): Renamed into mono_debug_init_corlib().
4596         (mono_debug_init_2_memory): Renamed into
4597         mono_debug_open_image_from_memory().
4598         (mono_debug_close_image): New public function.
4599         (mono_debug_domain_create): Likewise.
4600         (mono_debug_domain_unload): Likewise.
4601         (MONO_DEBUGGER_VERSION): Bump to 60.
4602
4603         * mono-debug-debugger.h
4604         (MonoDebuggerEvent):
4605         - remove `RELOAD_SYMTABS' and `METHOD_COMPILED'.
4606         - rename `ADD_MODULE' into `LOAD_MODULE'; add `UNLOAD_MODULE'.
4607         - add `DOMAIN_CREATE' and `DOMAIN_UNLOAD'.
4608         - rename `THREAD_CREATED' and `THREAD_EXITED' into
4609           `GC_THREAD_CREATED' and `GC_THREAD_EXITED'.
4610         - re-add `THREAD_CREATED' and `THREAD_EXITED'; with different
4611           meaning.
4612         (mono_debugger_add_symbol_file): Removed.
4613         (mono_debugger_add_type): Removed.
4614         (mono_debugger_lookup_type): Removed.
4615         (mono_debugger_lookup_assembly): Removed.
4616
4617         * domain.c
4618         (mono_domain_create): Call mono_debug_domain_create().
4619         (mono_init_internal): Call mono_debug_init_corlib().
4620
4621         * assembly.c
4622         (mono_assembly_close): Call mono_debug_close_image().
4623
4624 Wed Aug 22 17:26:02 CEST 2007 Paolo Molaro <lupus@ximian.com>
4625
4626         * sgen-gc.c: use the mono-mmap facilitites instead of hard-coding the
4627         mmap call.
4628
4629 Wed Aug 22 17:17:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
4630
4631         * sgen-gc.c: ensure section->pin_queue_end is initialized
4632         correctly when non pinning objects in the section have been found.
4633
4634 2007-08-22  Marek Habersack  <mhabersack@novell.com>
4635
4636         * appdomain.c (set_domain_search_path): cope with PrivateBinPath
4637         containing a list of directories separated by ':'. MSDN docs say
4638         the directories should be separated with ';'. Part of a bugfix for
4639         bug #81446
4640
4641 2007-08-21  Rodrigo Kumpera  <rkumpera@novell.com>
4642
4643         * class.c (mono_type_retrieve_from_typespec) : fixed the return type
4644         it should MonoType and not MonoClass.
4645
4646 2007-08-21  Atsushi Enomoto  <atsushi@ximian.com>
4647
4648         * culture-info-table.h : regenerated.
4649
4650 2007-08-20  William Holmes  <billholmes54@gmail.com>
4651
4652         *file-io.c: Added ves_icall_System_IO_MonoIO_ReplaceFile
4653          to call ReplaceFile Kernel32 on windows or in io-layer.
4654         *file-io.h: Added deceleration for ves_icall_System_IO_MonoIO_ReplaceFile
4655         *icall-def.h: Register ves_icall_System_IO_MonoIO_ReplaceFile
4656          as an internal call.
4657
4658         Code is contributed under MIT/X11 license.
4659
4660 2007-08-20  Jb Evain  <jbevain@novell.com>
4661
4662         * class-internals: add definitions for MONO_EXCEPTION_METHOD_ACCESS
4663         and MONO_EXCEPTION_FIELD_ACCESS.
4664
4665         * debug-helpers.[c|h]: new mono_field_full_name function.
4666
4667 2007-08-20  Mark Probst  <mark.probst@gmail.com>
4668
4669         * class.c: Removed class_security_level() and moved it to
4670         security-core-clr.c.
4671
4672         * security-core-clr.c, security-core-clr.h: class_security_level()
4673         is now public and renamed to mono_security_core_clr_class_level().
4674         It also looks for security attributes in the classes a class is
4675         nested in.
4676
4677 2007-08-20  Mark Probst  <mark.probst@gmail.com>
4678
4679         * security-core-clr.c, security-core-clr.h: CoreCLR security
4680         utility functions.
4681
4682         * Makefile.am: Added security-core-clr.[ch].
4683
4684         * security-manager.c, security-manager.h: Functions and enum for
4685         setting and getting the security mode.
4686
4687         * class.c: CoreCLR security checks.
4688
4689 Mon Aug 20 12:38:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
4690
4691         * icall-def.h, process.c, process.h: implemented icall to get
4692         user/system processor times.
4693
4694 2007-08-17  Mark Probst  <mark.probst@gmail.com>
4695
4696         * domain.c, threads.c, class-internals.h, domain-internals.h: New
4697         reader-lock-free jit_info_table.
4698
4699 2007-08-17  Zoltan Varga  <vargaz@gmail.com>
4700
4701         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_CUSTOM.
4702
4703         * marshal.c (mono_marshal_type_size): Ditto. Fixes #82465 and #82466.   
4704
4705         * object-internals.h (MonoException): Add missing _data member.
4706
4707 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
4708
4709         * loader.c (find_method, find_method_in_class): Fixed bug #81466,
4710         checking that only methods with matching qname or fqname are picked
4711         from implemented interfaces.
4712
4713 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
4714
4715         * verify.c (do_newarr):added, do type verification of
4716         newarr ops, push the right value on the eval stack.
4717         * verify.c (mono_method_verify): use do_newarr
4718
4719
4720 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
4721
4722         * verify.c (do_ldobj_value, do_unbox_value and do_box_value):
4723         factored the common code into get_boxable_mono_type, which
4724         is now using mono_type_get_full, this fixed byref related tests.
4725
4726 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
4727
4728         * class.c: added mono_type_get_full, this function has the same
4729         behavior of mono_class_get_full but the returned MonoType has
4730         all metadata of the associated token in case of a typespec token.
4731         * class.c: added mono_type_retrieve_from_typespec, used by 
4732         mono_type_get_full to retrieve the token type.
4733         * class.c (mono_class_create_from_typespec): changed to use
4734         mono_type_retrieve_from_typespec.
4735         * class.c (mono_ldtoken): changed to use mono_type_get_full
4736         for MONO_TOKEN_TYPE_(DEF|REF|SPEC).
4737         * class-internals.h: exported mono_type_get_full for internal use.
4738
4739 2007-08-16  Jb Evain  <jbevain@novell.com>
4740
4741         * domain.c (supported_runtimes): add entry for
4742         the 'moonlight' runtime version.
4743
4744 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
4745
4746         * verify.c (mono_method_verify): small typo sliped in.  
4747
4748 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
4749
4750         * verify.c (do_unbox_value): added, do type verification of
4751         unboxing ops
4752         * verify.c (mono_method_verify): use do_unbox_value
4753
4754
4755 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
4756
4757         * verify.c (dump_stack_value): fixed typo, was printing string
4758         instead of object on stack.
4759         * verify.c (do_box_value): moved the byref check up as it leads
4760         to invalid code and should be done earlier.
4761         * verify.c: improved error messages for and ldobj
4762
4763 2007-08-15  William Holmes  <billholmes54@gmail.com>
4764
4765         * marshal.c (emit_marshal_custom): Omit the call to 
4766           marshal_native_to_managed when calling native to managed 
4767           and the argument is specified as an out argument.
4768
4769         Code is contributed under MIT/X11 license.
4770
4771 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
4772
4773         * verify.c: fixed the type checks for generics, function pointers and vectors.
4774         Added type verification for ldobj and ldtoken. The verifier
4775         would segfault if header or signature of a method contained references
4776         to non-existant types.
4777
4778 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
4779
4780         * marshal.c (cominterop_get_ccw): Patch from
4781         Bill Holmes to no walk up interface hierarchy. 
4782         All parent methods should be present in the interface for COM.
4783    
4784         Code is contributed under MIT/X11 license.
4785
4786 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
4787
4788         * marshal.c (emit_marshal_com_interface): Patch from
4789         Bill Holmes to handle COM Interfaces as return values
4790         for native->managed calls.
4791    
4792         Code is contributed under MIT/X11 license.
4793
4794 2007-08-14  Jonathan Chambers  <joncham@gmail.com>
4795
4796         * marshal.c (cominterop_get_idispatch_for_object): Implement
4797         for runtime callable wrappers.
4798    
4799         Code is contributed under MIT/X11 license.
4800
4801 2007-08-13  Rodrigo Kumpera  <rkumpera@novell.com>
4802
4803         * pedump.c (main): changed from mono_init to mono_init_from_assembly
4804         so 2.0 types are accessible
4805
4806
4807 2007-08-13  Miguel de Icaza  <miguel@novell.com>
4808
4809         * domain.c (mono_init_internal): Call mono_assembly_load_friends
4810         once we load mscorlib.   Due to the order in which we initialize,
4811         the mono_assembly_load_full routine that loads mscorlib did not
4812         load friends.   We now load it once we load the
4813         mono_defaults.internals_visible_class class. 
4814
4815         * assembly.c: Expose the mono_load_friend_assemblies method.
4816
4817 2007-08-11  Rodrigo Kumpera  <rkumpera@novell.com>
4818
4819         * verify.c: improved the handling of boxing, better
4820         type checking for unary ops and conversion. Fix bug
4821         regarding managed pointer compatibility checking
4822
4823 2007-08-11  Zoltan Varga  <vargaz@gmail.com>
4824
4825         * icall.c (ves_icall_System_Array_SetGenericValueImpl): New icall.
4826
4827         * threads.c threads-types.h: Export mono_thread_get_stack_bounds.
4828
4829 2007-08-09  Raja R Harinath  <rharinath@novell.com>
4830
4831         * reflection.c (dup_type): Remove.
4832         * class.c (dup_type): Remove.
4833         (mono_metadata_signature_deep_dup): Use 'mono_metadata_type_dup'
4834         instead of the dodgy 'dup_type'.
4835         (inflate_generic_type): Likewise.  Fix the VAR/MVAR cases to
4836         handle the case where 'dup_type' needed the second argument.
4837
4838 2007-08-08  Zoltan Varga  <vargaz@gmail.com>
4839
4840         * domain.c: Fix a warning.
4841
4842 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
4843
4844         * class.c (mono_class_setup_vtable_general): Fixed bug #77127,
4845         checking that methods with the same fqname are not overridden
4846         with a method from an ancestor.
4847
4848 2007-08-07  Zoltan Varga  <vargaz@gmail.com>
4849
4850         * threads.c (free_thread_static_data_helper): Avoid a crash if
4851         thread->static_data is not yet set.
4852
4853 2007-08-07  Jonathan Chambers  <joncham@gmail.com>
4854
4855         * marshal.c: Use correct image when emitting
4856         native wrapper for COM calls.
4857    
4858         Code is contributed under MIT/X11 license.
4859
4860 2007-08-07  Atsushi Enomoto  <atsushi@ximian.com>
4861
4862         * icall-def.h, security.c, security.h :
4863           added icall wrapper to ProtectedMemory.[Unprotect|Protect]Data().
4864
4865 2007-08-07  Martin Baulig  <martin@ximian.com>
4866
4867         * mono-debug-debugger.h
4868         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD'.
4869
4870         * domain.c (mono_domain_free): Call
4871         `mono_debugger_event (MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD)'.
4872
4873 2007-08-06  Rodrigo Kumpera  <rkumpera@novell.com>
4874
4875         * verify.c (check_underflow, check_overflow): error message now returns IL offset
4876         * verify.c (in_same_block): code should test if either offset is inside the clauses
4877         * verify.c (mono_method_verify): push the exception into the eval stack of exception
4878         and filter blocks
4879
4880 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
4881
4882         * image.c (mono_image_close): Fix a leak.
4883
4884         * object.c (mono_runtime_invoke_array): Avoid using alloca.
4885
4886         * icall.c (ves_icall_FieldInfo_SetValueInternal): Ditto.        
4887
4888 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
4889
4890         * domain.c, threads.c, threads-types.h: fix memory retention issue
4891         with thread static variables not being cleared on domain unload.
4892         Reuse thread static slots after domain unload.
4893
4894 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
4895
4896         * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
4897         nullable type.
4898
4899         * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
4900         now done in mono_runtime_invoke_array.
4901
4902         * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the 
4903         receiver is a nullable type.
4904
4905         * class.c (mono_class_is_assignable_from): Handle the case when klass is a 
4906         generic parameter.
4907
4908 2007-08-03  Jonathan Chambers  <joncham@gmail.com>
4909
4910         * marshal.c: Implement COM Objects as return type for 
4911         managed->unmanaged calls. Added Release calls for COM Object
4912         out/return values in managed->unmanaged calls.
4913
4914         Code is contributed under MIT/X11 license.
4915
4916 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
4917
4918         * threads.h, threads-type.h: move the hazard pointer declarations
4919         to the private header.
4920
4921 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
4922
4923         * file-io.c, appdomain.c: memory leak fixes.
4924
4925 2007-08-02  Dick Porter  <dick@ximian.com>
4926
4927         * socket-io.c
4928         (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
4929         SO_REUSEADDR setting into io-layer/sockets.c.
4930
4931 2007-08-01  Zoltan Varga  <vargaz@gmail.com>
4932
4933         * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
4934         from Object when called on a generic parameter. Fixes #82211.
4935
4936 2007-08-01  Dick Porter  <dick@ximian.com>
4937
4938         * file-io.c (convert_share): Test FileShare values bit-by-bit.
4939         Fixes bug 79250 yet again.
4940
4941 2007-07-30  Martin Baulig  <martin@ximian.com>
4942
4943         Merged the `debugger-dublin' branch.
4944
4945         * mono-debug.h
4946         (MonoDebugDataTable): New typedef.
4947         (MonoDebugMethodAddressList): New typedef.
4948         (MonoDebugWrapperData): Removed.
4949         (MonoDebugSymbolTable): Removed `current_data_table',
4950         `current_data_table_size', `current_data_table_offset'.
4951         (MonoDebugDataItemType): Moved into mono-debug.c.
4952         (MonoDebugMethodJitInfo): Remove `address'.
4953         (mono_debug_data_table): New global variable.
4954         (mono_debug_lookup_method_addresses): New public function.
4955         (mono_debug_find_method): Take a `MonoMethod *', not a
4956         `MonoDebugMethodInfo *'.
4957
4958         * mono-debug.c: Drop support for the old symbol tables.
4959
4960 2007-06-28  Martin Baulig  <martin@ximian.com>
4961
4962         * mono-debug.c (mono_debug_debugger_version): New public variable.
4963
4964 2007-07-31  William Holmes  <billholmes54@gmail.com>
4965
4966         * metadata.c Changed mono_type_create_from_typespec to not insert
4967           the type into the hash map until after
4968           do_mono_metadata_parse_type has completed.
4969         Fixes Bug #82194
4970         Code is contributed under MIT/X11 license.
4971
4972 2007-07-31  Zoltan Varga  <vargaz@gmail.com>
4973
4974         * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
4975         generic parameter. Fixes #82211.
4976
4977 2007-07-27  Jb Evain  <jbevain@novell.com>
4978
4979         * pedump.c (dump_metadata, dump_metadata_header): dump
4980         versions contained in the metadata header.
4981
4982 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
4983
4984         * threads.c: register small_id_table with the GC.
4985
4986 2007-07-27  Mark Probst  <mark.probst@gmail.com>
4987
4988         * threads.c, threads.h, class-internals.h, object-internals.h:
4989         Hazard pointers, to be used by lock-free parallel algorithms.
4990
4991 2007-07-26  Dick Porter  <dick@ximian.com>
4992
4993         * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
4994         routine on non-windows platforms, as I've not managed to think of
4995         a non-kludgy way of doing this.  Finishes off bug 78739.
4996
4997 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
4998
4999         * object.c: properly setup interface_bitmap in proxy vtables.
5000
5001 2007-07-25  Marek Habersack  <mhabersack@novell.com>
5002
5003         * appdomain.c (get_shadow_assembly_location): do not use TickCount
5004         to create unique shadow copy target directories, use the domain's
5005         serial number instead. Each domain gets a unique target directory
5006         that way.
5007
5008         * domain.c (mono_domain_create): added code to increment domain
5009         shadow copy serial number and cache the value in the current
5010         domain structure.
5011
5012         * domain-internals.h (struct _MonoDomain): added a new field -
5013         shadow_serial to hold the serial number used in generation of
5014         shadow-copy directories. This is to make sure that the directory
5015         name is unique for each and every domain created. We avoid a race
5016         condition with overriding assemblies already in use by other app
5017         domains.
5018
5019 2007-07-24  Rodrigo Kumpera  <rkumpera@novell.com>
5020
5021         * class.c (mono_bounded_array_class_get): fixed memory leak when 
5022         binding generic parameters.
5023
5024 2007-07-24  Raja R Harinath  <rharinath@novell.com>
5025
5026         * metadata.c (do_mono_metadata_parse_generic_class): Use
5027         mono_metadata_lookup_generic_class.  Don't g_assert on a metadata
5028         error.
5029
5030 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
5031
5032         * loader.c, class-internals.h, reflection.c: removed the per-method
5033         generics hashtable: we use the global one through the call of
5034         mono_class_inflate_generic_method ().
5035
5036 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
5037
5038         * class.c, metadata.c, class-internals.h: introduce yet another
5039         generics global cache for inflated methods (fixes 98% of the perf
5040         issue in bug #81806).
5041
5042 2007-07-23  Raja R Harinath  <rharinath@novell.com>
5043
5044         Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
5045         * metadata.c (mono_metadata_lookup_generic_inst): Kill.
5046         (mono_metadata_get_generic_inst): New.  Given a list of MonoType*,
5047         return a MonoGenericInst containing (a copy) of those types.
5048         (mono_metadata_inflate_generic_inst): Update to changes.
5049         (mono_metadata_parse_generic_inst): Likewise.
5050         (mono_get_shared_generic_inst): Likewise.
5051         * reflection.c (mono_class_bind_generic_parameters): Likewise.
5052         (mono_reflection_bind_generic_method_parameters): Likewise.
5053         * metadata-internals.h: Likewise.
5054         * icall.c (free_generic_context): Kill.
5055         (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
5056
5057         * reflection.c (reflection_methodbuilder_to_mono_method): Use
5058         mono_metadata_type_dup.
5059         * marshal.c (mono_mb_create_method): Likewise.
5060
5061         * metadata.c (mono_metadata_type_dup): Rename from
5062         mono_metadata_type_dup_mp.  Take an optional mempool instead of a
5063         MonoImage.  Handle a few more cases, esp. when no mempool is given.
5064         * marshal.c, metadata-internals.h: Update to changes.
5065
5066 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
5067
5068         * class.c: fixed a small leak for array classes and removed warning.
5069
5070 2007-07-22  Zoltan Varga  <vargaz@gmail.com>
5071
5072         * loader.c (mono_method_get_param_token): Make this work on generic methods.
5073         Return 0x8000000 for return parameters. Fixes #82161.
5074
5075 2007-07-21  Marek Habersack  <grendello@gmail.com>
5076
5077         * appdomain.c (get_shadow_assembly_location): append the current
5078         ticks value to the path. Avoids overwriting the same assemblies by
5079         several threads at the same time.
5080
5081 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
5082         and Raja R Harinath  <rharinath@novell.com>
5083
5084         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
5085         Simplify slightly.
5086         (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
5087         property for testing if a method is a generic method definition.
5088
5089 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
5090
5091         * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
5092
5093 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
5094
5095         * verify.c: used function from private branch, reverted to the one in class.h 
5096
5097 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
5098
5099         * verify.c: a typo slipped in and the code wont compile
5100
5101 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
5102
5103         * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
5104         disabled box instruction as it is doing the wrong thing
5105         improved stack dump messages, now it is easier to debug type related issues
5106
5107
5108 2007-07-19  Juraj Skripsky  <js@hotfeet.ch>
5109
5110         * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak. 
5111
5112 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
5113
5114         * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from 
5115         TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
5116         grouped with class and valuetype. This change will simply 
5117         the code as it should be handled just like unmanaged pointers.
5118
5119 2007-07-19  Mark Probst  <mark.probst@gmail.com>
5120
5121         * class.c (concat_two_strings_with_zero): Fixed a silly bug.
5122
5123 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
5124
5125         * verify.c: several stack merge issues fixed, reference comparisons now
5126         check the type size. strict type check now works correctly.
5127         added more uses of IS_MANAGED_POINTER macro.
5128         fixed issues pointed by running the test suite against .net.
5129         
5130
5131 2007-07-19  Mark Probst  <mark.probst@gmail.com>
5132
5133         * class.c, loader.c, class-internals.h: Removed the
5134         MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
5135         defines.
5136
5137         * icall.c: Better error checking in some internal reflection
5138         methods.
5139
5140 2007-07-18  William Holmes  <billholmes54@gmail.com>
5141
5142         * filewatcher.c : removed unused variable 'filename' in 
5143           ves_icall_System_IO_FSW_SupportsFSW
5144
5145 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
5146
5147         * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
5148         obsolete, removed.
5149
5150 2007-07-15  Zoltan Varga  <vargaz@gmail.com>
5151
5152         * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
5153         
5154         * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
5155
5156 2007-07-14  Zoltan Varga  <vargaz@gmail.com>
5157
5158         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
5159         Implement generics support.
5160         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
5161
5162         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
5163         type_args and method_args arguments.
5164         (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
5165         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
5166         (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
5167
5168 2007-07-13  Rodrigo Kumpera  <rkumpera@novell.com>
5169
5170         * reflection.c: patch from Thong Nguyen to fix atribute resolution.
5171           It adds a rootimage parameter to mono_reflection_get_type_internal,
5172           adds new function mono_reflection_get_type_with_rootimage and use
5173           the rootimage to resolve the types instead of the current image
5174
5175 2007-07-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5176
5177         * culture-info-table.h: Forgot to update after r78304.
5178
5179 2007-07-13  Raja R Harinath  <rharinath@novell.com>
5180
5181         * class.c (mono_class_is_open_constructed_type)
5182         <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
5183
5184 2007-07-12  Rodrigo Kumpera  <rkumpera@novell.com>
5185
5186         * class.c (mono_bounded_array_class_get):  method fails if used with
5187         an incomplete TypeBuilder enum (no basetype field), fixed it by 
5188         avoiding calculating the size for such array as it cannot be instantiated.
5189         Fix bug #82015
5190
5191 2007-07-12  Raja R Harinath  <rharinath@novell.com>
5192
5193         * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
5194         field.
5195         * metadata.c, reflection.c: Update to changes.
5196
5197 2007-07-11  Rodrigo Kumpera  <rkumpera@novell.com>
5198
5199         * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
5200         mono_class_is_valid_enum, they are used to valide a enum when loading.
5201         * reflection.c: used new functions to throw TypeLoadException when and
5202         invalid enum is build with TypeBuilder. Fixes #82018
5203   
5204 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
5205
5206         * object.c: forgot commit of mono_class_setup_methods () to access
5207         iface->methods.
5208         * object-internals.h: added a few more handy fields to
5209         MonoIMTCheckItem.
5210
5211 2007-07-11  Zoltan Varga  <vargaz@gmail.com>
5212
5213         * object.c (build_imt): Call mono_class_setup_methods () before accessing 
5214         iface->methods.
5215
5216 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
5217
5218         * class-internals.h, object-internals.h, object.c: IMT-based
5219         interface invocation core from Massimiliano Mantione
5220         (massi@ximian.com) with a reworked arch-specific interface,
5221         bsearch implementation and a few bugfixes and memory savings by me.
5222
5223 2007-07-10  Rodrigo Kumpera  <rkumpera@novell.com>
5224
5225         * class.c (mono_class_create_from_typedef): mono would segfault if 
5226         an enum did not have a __value field. It now throws a TypeLoadException
5227         for such cases. Fix bug #82022
5228
5229 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
5230
5231         * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
5232
5233 2007-07-09  Mark Probst  <mark.probst@gmail.com>
5234
5235         * class.c (mono_class_init): If a class is already inited but has
5236         an exception_type set, return FALSE, not TRUE.  Fixes: 82050.
5237
5238 2007-07-09  Mark Probst  <mark.probst@gmail.com>
5239
5240         * class.c: Properly handle the case of an unimplemented interface
5241         method.  Fixes: 81673.
5242
5243 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
5244
5245         * class-internals.h, object.c: cleanup patch from massi: use
5246         MonoVTable->interface_bitmap since the vtable interfaces offset array
5247         is going away.
5248
5249 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
5250
5251         * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
5252         GetMDStreamVersion icall instead.
5253
5254 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
5255
5256         * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
5257         not use mono_dl_build_path() with a full library name: makes
5258         fallbacks to libgaim and libfam work.
5259
5260 2007-07-06  William Holmes  <billholmes54@gmail.com>
5261
5262         * assembly.c: Added a continue statement in probe_for_partial_name when
5263          parse_assembly_directory_name fails.  Fixes : 82002
5264
5265 2007-07-06  Rodrigo Kumpera  <rkumpera@novell.com>
5266
5267         * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
5268         and added a verification  for TYPEDBYREF.
5269         * verify.c (verify_stack_type_compatibility): fix handling of byref types,
5270         make native int interchangeable with int32 and some small cleanup and formating.
5271         * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
5272         handle byref of byref.
5273         * verify.c (push_local): handle byref of byref.
5274         * verify.c (do_binop): invalid mix of values is unverifiable
5275         * verify.c (do_invoke_method): fixed the handling of bad params on stack and
5276         added visibility checks
5277         * verify.c (field related method): added visibility checks
5278         * verify.c (do_push_field): cannot take the address of a temporary valuetype field
5279
5280 2007-07-06  Zoltan Varga  <vargaz@gmail.com>
5281
5282         * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
5283         string.
5284
5285 2007-07-05  Zoltan Varga  <vargaz@gmail.com>
5286
5287         * profiler.c (mono_profiler_load): Fix an off-by-one error.
5288
5289         * marshal.c (emit_marshal_string): When returning a string from managed code,
5290         allways make a copy even for unicode strings. Fixes #81990.
5291
5292 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
5293
5294         * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
5295         of byref generic inst types (bug #81997).
5296
5297 2007-07-03  Rodrigo Kumpera  <rkumpera@novell.com>
5298
5299         * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
5300         * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
5301
5302 2007-07-02  Zoltan Varga  <vargaz@gmail.com>
5303
5304         * marshal.c (emit_marshal_string): Add support for unicode strings in
5305         MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
5306
5307 2007-07-02 Rodrigo Kumpera  <rkumpera@novell.com>
5308
5309         * verify.c: field load/store are now verified, missing only access checks now
5310
5311 2007-06-28  Martin Baulig  <martin@ximian.com>
5312
5313         * mono-debug.c (mono_debug_debugger_version): New public variable.
5314
5315 2007-06-24  Gert Driesen  <drieseng@users.sourceforge.net>
5316
5317         * locales.c: When constructing DateTimeFormat or NumberFormat for
5318         MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
5319         MonoCultureInfo contructed from the current locale is always
5320         read-only and has UseUserOverride set to true. All MonoCultureInfo
5321         instances returned for GetCultures have both IsReadOnly and
5322         UseUserOverride set to true. Fixes part of bug #81930.
5323
5324 2007-06-22  Jonathan Chambers  <joncham@gmail.com>
5325
5326        * icall-def.h: Update System.__ComObject icalls
5327        * marshal.c: Avoid managed transition (and object creation)
5328        when looking up COM interface in RCW.
5329        * marshal.h: Ditto.
5330        
5331        Code is contributed under MIT/X11 license.
5332
5333 2007-06-22  Zoltan Varga  <vargaz@gmail.com>
5334
5335         * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
5336         to avoid crashes during assembly unloading.
5337
5338 2007-06-22  Raja R Harinath  <rharinath@novell.com>
5339
5340         Fix MethodInfo.IsGenericMethodDefinition
5341         * reflection.c (mono_reflection_bind_generic_method_parameters):
5342         Rearrange code to ensure we always uses a generic method definition.
5343         * class.c (mono_class_inflate_generic_method_full): Set
5344         'generic_container' field only for generic method definitions.
5345         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
5346         Use presense of 'generic_container' field as indication of being a
5347         generic method definition.
5348
5349 2007-06-21  Zoltan Varga  <vargaz@gmail.com>
5350
5351         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5352
5353         * object-internals.h: Reflect changes in the layout of the managed Delegate
5354         class.
5355         
5356         * object-internals.h reflection.c icall-def.h: Applied patch from Robert
5357         Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
5358         runtime memory used by the dynamic method. Fixes #77146.
5359
5360 2007-06-21  Dick Porter  <dick@ximian.com>
5361
5362         * file-io.h: 
5363         * file-io.c (convert_share): Cope with FileShare.Delete.  Patch
5364         from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
5365         81767.
5366
5367 2007-06-21  Raja R Harinath  <rharinath@novell.com>
5368
5369         * reflection.c (method_encode_methodspec): Add a tripwire.
5370         * class.c (inflate_generic_type): The fully open generic type is
5371         not the same as the generic type definition.
5372
5373 2007-06-21  Martin Baulig  <martin@ximian.com>
5374
5375         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
5376
5377         * mono-debug-debugger.h
5378         (MonoDebuggerBreakpointInfo): Removed.
5379         (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
5380         (mono_debugger_remove_breakpoint): Likewise.
5381         (mono_debugger_breakpoint_callback): Likewise.
5382         (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
5383
5384 2007-06-21  Raja R Harinath  <rharinath@novell.com>
5385
5386         * metadata.c (mono_metadata_lookup_generic_class): The fully open
5387         generic type is not the same as the generic type definition.
5388         * class.c (mono_generic_class_get_class): Likewise.
5389
5390 2007-06-20  Geoff Norton  <gnorton@customerdna.com>
5391
5392         * icall.c: The second argument to 
5393         System.Reflection.MethodBase.GetMethodFromHandleInternalType
5394         is a MonoType not a MonoClass.
5395
5396 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
5397
5398         * verify.c: support for function pointers in the verifier
5399
5400 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
5401
5402         * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
5403
5404 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
5405
5406         * assembly.c: removed Mono.Data.SqliteClient from the list of
5407         forward-compatible assemblies as it breaks the ABI (bug #81899).
5408
5409 2007-06-19  Raja R Harinath  <rharinath@novell.com>
5410
5411         * metadata.c (mono_metadata_lookup_generic_class): Protect cache
5412         lookup/update with the loader lock.
5413         * reflection.c (mono_class_bind_generic_parameters): No need to
5414         protect mono_metadata_lookup_* with the loader lock.
5415         * class.c (inflate_generic_type): Likewise.
5416         
5417         * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
5418         on a generic instantiated type.
5419
5420 2007-06-18  Rodrigo Kumpera <kumpera@gmail.com>
5421
5422         *verify.c: produce meanfull error messages on verification error
5423         *verify.c: fixed some cases of verification errors reported as validation errors
5424         *pedump.c: fixed the error name array, now it shows validation errors properly
5425         *verify.h: fixed the contant that should be used for verification errors
5426
5427 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
5428
5429         * metadata.c, image.c, metadata-internals.h: part of the fixes needed
5430         for bug #77596, 81858 and 80743 (generics data structures on domain
5431         unload).
5432
5433 2007-06-15  Raja R Harinath  <rharinath@novell.com>
5434
5435         Avoid allocating 'MonoGenericContext' on the heap.
5436         * class-internals (_MonoMethodInflated::context): Make field
5437         inline, not a pointer.
5438         * loader.c (method_from_methodspec): Allocate 'new_context' on the
5439         stack.  Use the context embedded within the inflated method as the
5440         hash key, rather than 'new_context'.
5441         * class.c (inflate_generic_context): Simplify.  Return a struct
5442         rather than allocating on the heap.
5443         (mono_class_inflate_generic_method_full): Update to changes.  Now,
5444         doesn't salt away a copy of the context -- simplifying the
5445         lifetime rules of a 'MonoGenericContext *'.
5446         (mono_method_get_context): Return pointer to embedded context.
5447         (setup_generic_array_ifaces): Allocate temporary context on stack.
5448         * reflection.c (inflate_mono_method): Likewise.
5449         (mono_reflection_bind_generic_method_parameters): Likewise.
5450         Use the context embedded within the inflated method as the hash key.
5451
5452         Avoid a source of allocation of 'MonoGenericContext'.
5453         * class-internals.h (_MonoGenericClass::context): Combine 'inst'
5454         and 'cached_context' fields into embedded 'MonoGenericContext' field.
5455         * class.c: Update to changes.
5456         (mono_generic_class_get_context): Simplify drastically.  Now just
5457         returns a pointer to the field.
5458         * metadata-internals.h (mono_metadata_generic_context_hash): Mark
5459         argument as a const pointer.
5460         (mono_metadata_generic_context_equal): Likewise.
5461         * metadata.c, loader.c, icall.c, reflection.c, verify.c:
5462         Update to changes.
5463
5464 2007-06-14  Rodrigo Kumpera  <kumpera@gmail.com>
5465
5466         * verify.c improved the handling of brtrue/brfalse, factored out common code
5467
5468 2007-06-14  Raja R Harinath  <rharinath@novell.com>
5469
5470         Kill MonoGenericMethod.
5471         * class-internals.h (MonoGenericContext::method_inst): Rename from
5472         'gmethod' and convert to a MonoGenericInst.
5473         (MonoGenericMethod): Remove.
5474         * metadata.h (MonoGenericMethod): Note that the name is obsolete.
5475         * loader.c (method_from_methodspec): Update to changes.  Use a
5476         MonoGenericContext as the key to the hashtable.
5477         * metadata.c (mono_metadata_generic_context_equal): Rename from 
5478         'mono_metadata_generic_method_equal' and take MonoGenericContext.
5479         (mono_metadata_generic_context_hash): Likewise from
5480         'mono_metadata_generic_method_hash'.  Change hash function.
5481         (mono_metadata_load_generic_params): Update to changes.
5482         (mono_get_shared_generic_method): Remove.
5483         * metadata-internals.h (mono_get_shared_generic_method): Remove.
5484         * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
5485         (inflate_generic_context): Likewise.
5486         (mono_class_inflate_generic_method_full): Likewise.
5487         (setup_generic_array_ifaces): Likewise.
5488         (mono_class_create_from_typespec): Likewise.
5489         * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
5490         (method_encode_methodspec): Update callsite.
5491         (reflection_methodbuilder_to_mono_method): Update to changes.
5492         (mono_reflection_bind_generic_method_parameters): Likewise.  Use a
5493         MonoGenericContext as the key to the hashtable.
5494         (inflate_mono_method): Update to changes.
5495
5496         * class-internals.h (MonoGenericMethod::container): Remove.
5497         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
5498
5499 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
5500
5501         * profiler-private.h, profiler.c, profiler.h: added API to profile
5502         exception events.
5503
5504 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
5505
5506         * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments 
5507
5508 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
5509
5510         * verify.c: method invocation is now validated, now we verify parameter types on stack.
5511         Fixed overflow and underflow not aborting the verification process.
5512
5513 2007-06-13  Mark Probst  <mark.probst@gmail.com>
5514
5515         * class-internals.h (MonoStats): Added stats entries for dynamic
5516         code allocations.
5517
5518 2007-06-12  Zoltan Varga  <vargaz@gmail.com>
5519
5520         * loader.c (mono_free_method): Free header->locals and header->clauses.
5521
5522         * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
5523         dynamic case.
5524
5525         * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
5526
5527         * class.c (setup_interface_offsets): Allocate memory from the image mempool.
5528
5529 2007-06-12  Raja R Harinath  <rharinath@novell.com>
5530
5531         * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
5532         the tables.
5533
5534 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
5535
5536         *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
5537
5538 2007-06-11  Raja R Harinath  <harinath@gmail.com>
5539
5540         MonoGenericMethod on a diet
5541         * class-internals.h (_MonoMethodInflated::reflection_info): Move
5542         here ...
5543         (_MonoGenericMethod::reflection_info): ... from here.
5544         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
5545         Update to changes.
5546         * reflection.c (inflate_mono_method): Likewise.
5547         (mono_reflection_bind_generic_method_parameters): Likewise.
5548
5549 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
5550
5551         *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
5552         *verify.c: factored long ldarg forms to share code with short forms
5553
5554 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
5555
5556         *verify.c: fixed code formating factored some duplicate code
5557         into a new function
5558
5559         *verify.h: fixed binary incompatibility introduced earlier
5560
5561         *pedump.c: fixed formating
5562
5563 2007-06-11  Raja R Harinath  <harinath@gmail.com>
5564
5565         Fix assertion when disassembling Mono.C5.dll
5566         * loader.c (method_from_methodspec): Avoid inflating a method
5567         twice with the same context.  If the methodref is inflated, use
5568         the declaring method instead.
5569
5570         * class.c (mono_class_from_generic_parameter): Fix case similar to
5571         bug #81830 handled below, but for method containers.
5572
5573 2007-06-10  Raja R Harinath  <harinath@gmail.com>
5574
5575         * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
5576         get_shared_generic_class.  Directly inflate the instance.
5577         [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
5578         (inflate_generic_class): Delete.
5579         (get_shared_generic_class): Delete.  Move setting of
5580         'cached_class' and 'cached_context' ...
5581         * metadata.c (mono_metadata_lookup_generic_class): ... here.
5582
5583         * metadata.c (mono_metadata_lookup_generic_class): Change
5584         signature to take the components of a MonoGenericClass rather than
5585         an allocated MonoGenericClass.  Change semantics to be intern-like.
5586         * reflection.c (mono_class_bind_generic_parameters): Update to
5587         changes.  Make locking region tighter.
5588         * class.c (inflate_generic_class): Update to changes.
5589         (get_shared_generic_class): Likewise.
5590         * metadata-internals.h: Likewise.
5591
5592         * reflection.c (mono_class_bind_generic_parameters): Take and
5593         return a MonoClass*, not a MonoType*.  Add 'is_dynamic' parameter.
5594         (mono_reflection_bind_generic_parameters): Use
5595         'mono_class_bind_generic_parameters' rather than duplicate the code.
5596         * class.c (mono_bounded_array_class_get): Update to changes.
5597         * object-internals.h: Likewise.
5598
5599         * reflection.c (mono_class_bind_generic_parameters): Only support
5600         parameterizing generic type definitions.  Remove support for other
5601         open types.
5602
5603 2007-06-08  Zoltan Varga  <vargaz@gmail.com>
5604
5605         * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
5606
5607         * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
5608         in the dynamic case.
5609
5610 2007-06-08  Gert Driesen  <drieseng@users.sourceforge.net>
5611
5612         * threads.c: When cleaning up thread, reset the Background bit.
5613         Fixes bug #81720.
5614
5615 2007-06-08  Jonathan Chambers  <joncham@gmail.com>
5616
5617        * metadata.c: Move variable declarations to top of scope.
5618        * verify.c: Move variable declarations to top of scope.
5619
5620        Code is contributed under MIT/X11 license.
5621
5622 2007-06-08  Raja R Harinath  <rharinath@novell.com>
5623
5624         * reflection.c (mono_class_bind_generic_parameters): Replace
5625         open-coded loop with mono_metadata_inflate_generic_inst.
5626
5627         * class.c (get_shared_generic_class): Don't call
5628         mono_get_shared_generic_inst.  Use the container's own
5629         'class_inst'.
5630
5631         * metadata.c (mono_metadata_load_generic_params): Move
5632         initialization of 'context' field here from ...
5633         * class.c (mono_class_create_from_typedef): ... here, and ...
5634         * loader.c (mono_get_method_from_token): ... here.
5635
5636         * class.c (get_shared_generic_class): Rename from
5637         mono_get_shared_generic_class and make static.
5638         (mono_get_shared_generic_inst): Move to metadata.c.
5639         * loader.c (mono_get_shared_generic_method): Likewise.
5640         * class-internals.h, metadata-internals.h: Update to changes.
5641
5642         Fix #81830
5643         * class.c (mono_class_from_generic_parameter): Don't assume a
5644         generic container owner exists.  Generic containers from monodis
5645         don't have any.
5646
5647 2007-06-06  Rodrigo Kumpera  <kumpera@gmail.com>
5648
5649         * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
5650         * verify.h: new typedefs to returns the non-verifiable status
5651         * verify.c: initial implementation of generics, stack merging and object compatibility check
5652
5653 2007-06-06  Mark Probst  <mark.probst@gmail.com>
5654
5655         * class.c, image.c, class-internals.h (MonoImage): class_cache is
5656         a MonoInternalHashTable again (fixed bug in internal hash table
5657         code).
5658
5659 2007-06-06  Mark Probst  <mark.probst@gmail.com>
5660
5661         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
5662         MonoInternalHashTable again (fixed bug in internal hash table
5663         code).
5664
5665 2007-06-06  Mark Probst  <mark.probst@gmail.com>
5666
5667         * class.c, image.c, class-internals.h, domain.c,
5668         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
5669         changes.  Have to figure out what makes them break the SWF
5670         regression.
5671
5672 2007-06-04  Mark Probst  <mark.probst@gmail.com>
5673
5674         * class.c, image.c, class-internals.h (MonoImage): class_cache is
5675         a MonoInternalHashTable now.
5676
5677 2007-06-04  Mark Probst  <mark.probst@gmail.com>
5678
5679         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
5680         MonoInternalHashTable now.
5681
5682 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
5683
5684         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
5685         invoke_impl code.
5686
5687         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
5688
5689         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
5690         dependent trampoline.
5691
5692         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5693
5694         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
5695
5696 2007-05-29  Robert Jordan  <robertj@gmx.net>
5697
5698         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
5699
5700 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
5701
5702         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
5703
5704 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
5705
5706        * marshal.c: Fix interface lookup loops for
5707        cominterop_get_com_slot_for_method and 
5708        cominterop_get_method_interface. Only need to lookup
5709        if type is a class, else use interface type method is on.
5710
5711        Code is contributed under MIT/X11 license.
5712
5713 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
5714
5715         * reflection.c: HasSecurity can be present even if no specially 
5716         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
5717         SecurityAttribute). Fix CAS regression tests on buildbot.
5718
5719 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
5720
5721        * appdomain.c: Add configure checks for header files.
5722        * image.c: Add configure checks for header files.
5723        * file-io.c: Add configure checks for header files.
5724        * debug-mono-symfile.c: Add configure checks for header files.
5725        * threadpool.c: Add configure checks for header files.
5726        * console-io.c: Add configure checks for header files.
5727        * profiler.c: Add configure checks for header files.
5728        * rawbuffer.c: Add configure checks for header files.
5729        * icall.c: Add configure checks for header files.
5730        * rand.c: Add configure checks for header files.
5731        * socket-io.c: Add configure checks for header files.
5732
5733        Code is contributed under MIT/X11 license.
5734
5735 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
5736
5737         * reflection.c (mono_custom_attrs_from_builders): Remove the 
5738         assertion as it breaks the build.
5739         
5740         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
5741
5742         * reflection.c (lookup_custom_attr): Make a copy here too.
5743
5744         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
5745         dynamic images.
5746
5747         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
5748         images.
5749
5750         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
5751         info.
5752
5753 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
5754
5755         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
5756         (load_cattr_value): Ditto.
5757
5758 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
5759
5760         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
5761
5762 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
5763
5764         * threads.c: In "start_wrapper", set apartment_state to MTA if
5765         apartment_state is Unknown and we're running on 2.0 profile or
5766         higher.
5767         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
5768         to main method, then set apartment_state to Unknown on 1.0 profile,
5769         and MTA on 2.0 profile.
5770
5771 2007-05-16  Jb Evain  <jb@nurv.fr>
5772
5773         * class-internals.h (MonoDefaults): Add an attribute_class and
5774           customattribute_data_class.
5775         * domain.c (mono_init_internal): Populate them.
5776         * reflection.c: Use them to remove duplicates. Make a vew
5777         MonoClass variables `static'.
5778
5779 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
5780
5781         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
5782         step in implementing IMT, so that all isinst checks now can go
5783         through the bitmap.
5784         This was needed because vtables for TransparentProxy need to look
5785         like the vtable of the "target" class, so they need to point to
5786         its interface bitmap directly.
5787
5788         * object.c: inside "mono_class_create_runtime_vtable" and
5789         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
5790
5791 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
5792
5793         * object-internals.h
5794           culture-info.h : added territory field in MonoCulture and
5795           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
5796         * locales.c : fill territory field above too.
5797         * culture-info-table.h : regenerated.
5798
5799 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
5800
5801         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
5802         Fixes #81599.
5803
5804 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
5805
5806         * object.c: Always initialize apartment, even if 
5807         there is no custom attributes on entry point.
5808         
5809         Code is contributed under MIT/X11 license.
5810
5811 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
5812
5813         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
5814         * metadata.c: If no encoding is set, check for unicode
5815         on class.
5816         
5817         Code is contributed under MIT/X11 license.
5818
5819 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
5820
5821         * threads.c: Handle if mono_thread_current returns NULL 
5822         
5823         Code is contributed under MIT/X11 license.
5824
5825 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
5826
5827         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
5828         in start_wrapper. Added mono_thread_init_apartment_state and
5829         mono_thread_cleanup_apartment_state.
5830         * object.c: Initialize thread apartment state on main thread
5831         by checking for STAThreadAttribute on entry point.
5832         * object-internals.h: Add apartment_state field to MonoThread.
5833         * threads-types.h: Add unmanaged definition of 
5834         System.Threading.ApartmentState, MonoThreadApartmentState.
5835         
5836         Code is contributed under MIT/X11 license.
5837         
5838 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
5839
5840         * class.c: Fix windows build.
5841         * class-internals.h: Fix windows build.
5842         
5843         Code is contributed under MIT/X11 license.
5844
5845 2007-05-08  Robert Jordan  <robertj@gmx.net>
5846
5847         * process.c (CreateProcess_internal):
5848         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
5849         .CreateNoWindow was specified. Fixes #81496.
5850
5851 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
5852
5853         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
5854         step in implementing IMT, replaced it with two compact arrays
5855         (interfaces_packed and interface_offsets_packed) and a bitmap that
5856         is used for isinst checks (interface_bitmap).
5857
5858         * class.c: (compare_interface_ids): compare function to pass to
5859         bsearch when looking for an interface with a given id.
5860         (mono_class_interface_offset): reimplemented using bsearch on
5861         interfaces_packed, getting the offset from interface_offsets_packed.
5862         (print_implemented_interfaces): utility debugging function.
5863         (setup_interface_offsets): reworked to initialize interfaces_packed,
5864         interface_offsets_packed and interface_bitmap.
5865
5866         * object.c: replaced all accesses to "MonoClass.interface_offsets"
5867         with uses of interfaces_packed and interface_offsets_packed.
5868
5869 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
5870
5871         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
5872         mono_class_interface_offset prototype to wrap all accesses to
5873         "MonoClass.interface_offsets".
5874
5875         * class.c: Implemented mono_class_interface_offset, and wrapped all
5876         accesses to "MonoClass.interface_offsets".
5877
5878         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
5879         "MonoClass.interface_offsets".
5880
5881 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
5882
5883         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
5884         GetMethodFromHandle overloads (bug #78637).
5885
5886 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
5887
5888         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
5889         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
5890
5891 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
5892
5893         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
5894         #81498.
5895
5896         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
5897         gracefully.
5898         (mono_custom_attrs_from_index): Ditto.
5899
5900         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
5901         Fixes #81501.
5902
5903 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
5904
5905         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
5906         is now allocated from a mempool.
5907
5908 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
5909
5910         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
5911         caller holds threads_lock, leading to deadlocks. Fixes #81476.
5912
5913 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
5914
5915         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
5916         mono_loader_clear_error () too late. Fixes #81463.
5917
5918 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
5919
5920         * culture-info-table.h : regenerated.
5921
5922 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
5923
5924         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
5925         is missing.
5926
5927 2007-04-25  Dick Porter  <dick@ximian.com>
5928
5929         * Makefile.am: Put the mingw enforced-optimisation back into the
5930         PLATFORM_WIN32 section.
5931
5932 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
5933
5934         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
5935         patch.
5936
5937         * image.c (mono_image_load_module): New API function to load a module reference.
5938
5939         * image.c (load_modules): Load modules lazily. Fixes #80812.
5940
5941         * class.c (mono_class_from_typeref): Use mono_image_load_module.
5942         
5943         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
5944
5945         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
5946         to mono_image_load_module_dynamic.
5947
5948 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
5949
5950         * marshal.c: Fix calling convention for CCW on non-windows
5951         platforms. STDCALL on windows, CDECL everywhere else to work 
5952         with XPCOM and MainWin COM.
5953         
5954         Code is contributed under MIT/X11 license.
5955
5956 2007-04-23  Martin Baulig  <martin@ximian.com>
5957
5958         Fix #80969.
5959
5960         * loader.c
5961         (method_from_memberref): Added `gboolean *used_context' argument.
5962         (mono_get_method_from_token): Likewise.
5963         (mono_get_method_full): Don't insert the method in the cache when
5964         `used_context' is true.
5965
5966 2007-04-23  Raja R Harinath  <rharinath@novell.com>
5967
5968         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
5969
5970         * reflection.c (mono_reflection_bind_generic_parameters): Don't
5971         create new MonoTypes for returned types.
5972         * class.c (mono_generic_class_get_class): Export mono-internal.
5973         * class-internals.h: Update to changes.
5974
5975 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
5976
5977         * threadpool.c, threadpool.h, icall-def.h: patch from
5978         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
5979
5980 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
5981
5982         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
5983         
5984         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
5985
5986         * threads.c (mono_thread_get_stack_bounds): New helper function.
5987
5988         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
5989         Correctly compute stack bounds when attaching. Fixes #81394.
5990
5991 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
5992
5993         * reflection.c: fix handling of doubles in custom attributes
5994         for the arm-fpa format (bug #81368).
5995
5996 2007-04-18  Raja R Harinath  <rharinath@novell.com>
5997
5998         * reflection.c (assembly_add_win32_resources): Mildly relax an
5999         bounds check to let the end pointer point just past the end of the
6000         allocated buffer.  (may fix #81384)
6001
6002 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
6003
6004         * culture-info-table.h : regenerated.
6005
6006 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
6007
6008         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
6009         the thread is aborted early.
6010
6011 2007-04-05  Dick Porter  <dick@ximian.com>
6012
6013         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
6014         FindFirstFile()/FindNextFile() to find entries.  This lets the
6015         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
6016         81038.
6017
6018         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
6019         the parameters of
6020         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
6021
6022 2007-04-04  Martin Baulig  <martin@ximian.com>
6023
6024         * debug-helpers.c
6025         (mono_method_desc_full_match): Add support for nested classes.
6026
6027 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
6028
6029         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
6030
6031 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
6032
6033         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
6034         waiting for too many threads.
6035
6036 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
6037
6038         * environment.c: Fix return value check on uname so we can get the 
6039         executing version on Solaris operating systems.
6040
6041 2007-03-28  Jb Evain  <jbevain@gmail.com>
6042
6043         * class.c (mono_type_get_name_recurse): Complete the
6044         fix for the creation of assembly qualified names for
6045         pointer types. Fixes #81208.
6046
6047 2007-03-27  Dick Porter  <dick@ximian.com>
6048
6049         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
6050         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
6051         changed.
6052
6053         * threads.c
6054         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
6055         the value of ReleaseMutex().
6056
6057 2007-03-27  Dick Porter  <dick@ximian.com>
6058
6059         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
6060         in little-endian order, not network endian, so must be converted
6061         to host endian here.  Fixes bug 80593.
6062
6063 2007-03-22  Jb Evain  <jbevain@gmail.com>
6064
6065         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
6066         qualified names for pointer types. Fixes #81208.
6067
6068 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
6069
6070         * marshal.c: Add support for PreserveSigAttribute. 
6071         
6072         Code is contributed under MIT/X11 license.
6073
6074 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
6075
6076         * process.c: Fix endianness issues. Fixes #81126.
6077
6078         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
6079         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
6080
6081         * image.c (mono_image_lookup_resource): Make this work on big-endian
6082         machines.Change API contract so the caller needs to free the return value.
6083         
6084         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
6085         API change.
6086         
6087 2007-03-14  Martin Baulig  <martin@ximian.com>
6088
6089         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
6090         mono_type_get_desc() as well.
6091
6092 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
6093
6094         * icall.c:  Fix environ access in VS.  
6095         
6096 2007-03-13  Alp Toker  <alp@atoker.com>
6097
6098         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
6099         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
6100         #63841.
6101
6102 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
6103
6104         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
6105         circular references among dynamic methods. Fixes #81091.
6106
6107         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
6108
6109 2007-03-09  Martin Baulig  <martin@ximian.com>
6110
6111         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
6112
6113 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
6114
6115         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
6116         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
6117         
6118         Code is contributed under MIT/X11 license.
6119         
6120 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
6121
6122         * loader.c: Reapply patch for bug #79424.
6123
6124 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
6125
6126         * metadata.c (mono_type_to_unmanaged): Only convert object to
6127         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
6128
6129 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
6130
6131         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
6132         (and incorrectly set) is_reference field from MonoGenericInst.
6133
6134 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
6135
6136         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
6137         a little earlier.
6138
6139         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
6140
6141         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
6142
6143 2007-03-05  Miguel de Icaza  <miguel@novell.com>
6144
6145         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
6146         FileOptions.1 value to mean "temporary", map that to
6147         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
6148
6149         Fixes 80688
6150
6151 2007-03-03  Marek Habersack  <mhabersack@novell.com>
6152
6153         * appdomain.c: implement MS .Net style shadow copying. Copies of
6154         the assemblies are made in a subdirectory of the dynamic base
6155         directory, the assembly names are preserved.
6156         Copy .mdb and .config files along with the assemblies being shadowed.
6157
6158 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
6159
6160         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
6161         (emit_marshal_handleref): Ditto.
6162
6163         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
6164         on Visual C++. Fixes #80671.
6165
6166 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
6167
6168         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
6169         for clone operations.
6170
6171 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
6172
6173         * marshal.c: Fix warnings.
6174
6175 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
6176
6177         * loader.c: allow case-insensitive matching of the dll name
6178         in dllmap handling when prefixed with "i:".
6179
6180 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
6181
6182         * threads.c: Fix #ifdef for dummy_apc function for VS.
6183
6184 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
6185
6186         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
6187
6188 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
6189         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
6190         giving precedence to the methods with a fully qualified name
6191         (InterfaceName.MethodName) when building the interface sections
6192         of the vtable.
6193
6194 2007-02-16  Dick Porter  <dick@ximian.com>
6195
6196         * threadpool.c (append_job): Fix fast-path array handling, so it's
6197         less likely the array will grow exponentially when the load is
6198         heavy.
6199
6200 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
6201
6202         * metadata-internals.h, loader.c: fix dllmap lookup order
6203         for non-function maps, too, and prepare for fallback code.
6204
6205 2007-02-12  Robert Jordan  <robertj@gmx.net>
6206
6207         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
6208         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
6209         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
6210         GlobalFree. Fixes a part of bug #77075.
6211
6212 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
6213
6214         * loader.c: implemented typedef parent in field memberref.
6215
6216 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
6217
6218         * marshal.c: Fix warnings and remember to call Release on
6219         IUnknown of RCW.
6220         
6221         Code is contributed under MIT/X11 license.
6222
6223 2007-02-10  Miguel de Icaza  <miguel@novell.com>
6224
6225         * class-internals.h: Add MonoHandleRef definition, and
6226         handleref_class to mono_defaults. 
6227
6228         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
6229         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
6230
6231         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
6232         (do nothing on this stage)
6233         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
6234         (emit_marshal_handleref): New method, used for argument handling
6235         of HandleRefs. 
6236
6237 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
6238
6239         * class.c (mono_class_setup_parent): Lazily init com types.
6240         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
6241         init com types.
6242         * object.c (mono_remote_class_vtable): Lazily init com types.
6243         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
6244         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
6245         * domain-internals.h: Expose mono_init_com_types.
6246         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
6247         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
6248         Add support for COM Callable Wrapper marshalling.
6249         * marshal.h: Add icall definitions.
6250         * gc.c: Handle freeing of CCWs in finalizer code.
6251         
6252         Code is contributed under MIT/X11 license.
6253
6254 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
6255
6256         * reflection.c: changed all the signature encoding code to use
6257         a variable-sized buffer.
6258
6259 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
6260
6261         * marshal.c: locking fixes: never take the loader lock
6262         or other runtime locks when holding the marshal lock
6263         (fixes bug#80664).
6264
6265 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
6266
6267         * marshal.c: make the delegate function pointer mapping
6268         work for the moving GC.
6269
6270 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
6271
6272         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
6273         for bug #80618.
6274
6275 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
6276
6277         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
6278         gmodule.
6279
6280 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
6281
6282         * threadpool.c: made the code moving-GC safe.
6283
6284 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
6285
6286         * assembly.c, boehm-gc.c, class-internals.h, class.c,
6287         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
6288         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
6289         warning cleanup.
6290         * reflection.c: warning cleanup, some threading and moving GC fixes.
6291
6292 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
6293
6294         * class.c, loader.c: create the needed Set/Get/Address array methods
6295         as well as the .ctors in mono_class_init (), fixes bug #80567.
6296
6297 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
6298
6299         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
6300         we doesn't decrease its alignment. Should fix the sparc build.
6301
6302 2007-01-24  Dick Porter  <dick@ximian.com>
6303
6304         * socket-io.c
6305         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
6306         Create the returned object if we need to ignore an unsupported
6307         socket option.  Fixes a segfault reported by Atsushi.
6308
6309 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
6310
6311         * class.c, object.c: restrict GC-tracked fields to
6312         UIntPtr fields used inside corlib, so we provide better
6313         type info to the GC and also allow broken packing as in
6314         bug #80580.
6315
6316 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
6317
6318         * sgen-gc.c: removed duplicated function.
6319
6320 2007-01-19  Miguel de Icaza  <miguel@novell.com>
6321
6322         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
6323         value that means that the value is not supported, but that we
6324         should not return a failure, but instead report this as a
6325         successful operation.
6326
6327 2007-01-19  Raja R Harinath  <rharinath@novell.com>
6328
6329         Fix tests/bug79956.2.il
6330         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
6331         (mono_generic_class_get_class): If the generic definition in an
6332         enum, copy over other fields related to it.
6333
6334 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
6335
6336         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
6337         genericinst enums (bug #79215).
6338
6339 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
6340         * class.c: Fix bug 80307.
6341
6342 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
6343
6344         * image.c: if the file table is not present, try to load
6345         all the modules, since we don't have info about them
6346         having or not metadata (bug #80517).
6347         * assembly.c: allow mono_assembly_load_references () to
6348         work for netmodules.
6349
6350 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
6351
6352         * image.c, metadata-internals.h, object.c: execute module
6353         cctors when running on the 2 runtime if present (bug #80487).
6354
6355 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
6356
6357         * icall.c: optimized InitializeArray() on bigendian.
6358
6359 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
6360
6361         * icall.c: fix for the broken ARM FPA double format.
6362
6363 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
6364
6365         * icall.c: handle endian issues for r4 and r8 types, too, in
6366         the InitializeArray() icall.
6367
6368 2007-01-15  Miguel de Icaza  <miguel@novell.com>
6369
6370         * loader.c (mono_loader_error_prepare_exception): Clear the error
6371         once we have extracted the information from it, do this before we
6372         call into the JIT's class loading mechanisms.
6373
6374         * object.c (mono_class_create_runtime_vtable): Do not clear the
6375         loader error before calling mono_class_get_exception_for_failure
6376         as the loader error is needed inside
6377         mono_class_get_exception_for_failure to throw the error (thinko).
6378
6379         Fixes #80521
6380         
6381 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
6382
6383         * reflection.c: align fields rva data so it's faster to load at
6384         runtime.
6385
6386 2007-01-12  Raja R Harinath  <rharinath@novell.com>
6387
6388         Prepare to simplify GenericMethod handling.
6389         * class-internals.h (mono_method_get_context): New accessor function.
6390         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
6391         rather than directly accessing '->context' field.
6392
6393         * class-internals.h (_MonoGenericParam.method): Move ...
6394         (_MonoGenericContainer): ... here.  Add into union with klass field.
6395         * class.c, icall.c, loader.c, metadata.c, reflection.c:
6396         Update to changes.
6397
6398 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
6399
6400         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
6401         the wrapper type enum and reduce relocations.
6402
6403 2007-01-12  Raja R Harinath  <rharinath@novell.com>
6404
6405         * reflection.c (inflate_mono_method): Reuse method instantiation
6406         from the generic method, if available.
6407
6408 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
6409
6410         * marshal.c (emit_marshal_variant): Fix conv_arg
6411         type in last commit, based on whether parameter is byref.
6412         
6413 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
6414
6415         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
6416         marshalling.
6417         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
6418         MONO_TYPE_OBJECT back for VARIANT support.
6419
6420 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
6421
6422         * marshal.c, marshal.h, icall-def.h: Implement 
6423         Marshal.ReAllocCoTaskMem.
6424
6425 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
6426
6427         * marshal.c: memory retention fixes: use the proper
6428         image cache for runtime_invoke method lookups.
6429
6430 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
6431
6432         * mempool.c: added code to help debug mempool allocations.
6433
6434 2007-01-11  Dick Porter  <dick@ximian.com>
6435
6436         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
6437         support (experimenting with faking it with IP_MTU_DISCOVER for
6438         systems that don't have IP_DONTFRAGMENT.)
6439         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
6440         icall.
6441
6442         * icall-def.h: new System.Net.Sockets.Disconnect icall.
6443
6444         * socket-io.h: Add new fields to MonoSocketAsyncResult
6445         corresponding to the new ones in Socket.cs.
6446
6447 2007-01-11  Raja R Harinath  <rharinath@novell.com>
6448
6449         Fix IronPython regression mentioned in #80249
6450         * metadata.c (do_mono_metadata_parse_generic_class): Clear
6451         'cached_context' field, since it may have been initialized as a
6452         side-effect of metadata parsing.
6453
6454         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
6455         (_MonoGenericClass.cached_class): Move here and rename from lone
6456         remaining field of ...
6457         (_MonoInflatedGenericClass): ... this.  Remove.
6458         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
6459         to changes.
6460
6461         Fix mcs/tests/test-128.cs regression.
6462         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
6463         2007-01-10 change below.
6464         [MONO_TYPE_OBJECT]: Recurse into array case.
6465
6466 2007-01-11  Raja R Harinath  <harinath@gmail.com>
6467
6468         * class-internals.h (mono_get_inflated_generic_class): Remove.
6469         * class.c (mono_get_inflated_generic_class): Remove.
6470         (mono_generic_class_get_class): Rename from
6471         mono_class_create_generic.
6472         (mono_class_from_mono_type) [GENERICINST]: Use it.
6473         * reflection.c, metadata.c: Update to changes.  Use
6474         'mono_class_from_mono_type'.
6475
6476 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
6477
6478         * reflection.c: use passed type when encoding an array element
6479         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
6480
6481 2007-01-09  Robert Jordan  <robertj@gmx.net>
6482
6483         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
6484         result arguments (someDelegate.EndInvoke (unrelatedAres)).
6485         Fixes bug #80392.
6486
6487 2007-01-09  Raja R Harinath  <rharinath@novell.com>
6488
6489         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
6490
6491         * object.c (set_value): Avoid aliasing between type->data.klass
6492         and type->data.generic_class.
6493
6494         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
6495
6496 2007-01-08  Raja R Harinath  <rharinath@novell.com>
6497
6498         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
6499         between type->data.klass and type->data.generic_class.
6500
6501 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
6502
6503         * marshal.c: In MS.NET, StringBuilder objects are not copied by
6504         value in out parameters.
6505
6506 2007-01-08  Raja R Harinath  <rharinath@novell.com>
6507
6508         Simplify invariant for MonoGenericClass::klass field.
6509         * class.c (mono_class_create_generic): Verify 'klass' is null.
6510         * metadata.c (do_mono_metadata_parse_generic_class): Don't
6511         initialize 'klass' field.
6512
6513 2007-01-05  Raja R Harinath  <rharinath@novell.com>
6514
6515         Ongoing work to avoid redundant data and simplify invariants.
6516         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
6517         'generic_class', and change type to a GenericInst.
6518         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
6519         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
6520
6521 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
6522
6523         * class.c : skip io-layer under PLATFORM_WIN32.
6524
6525 2007-01-03  Tor Lillqvist  <tml@novell.com>
6526
6527         Fix #80305: In a bundled executable, look in the bundled exe
6528         assembly to determine the runtime version. Add the possibility to
6529         bundle also the machine.config file.
6530         
6531         * assembly.c (mono_assembly_open_from_bundle): Make
6532         non-static. Allow being called even if we have no bundled
6533         assemblies, and return NULL right away in that case.
6534
6535         * domain-internals.h: Declare mono_assembly_open_from_bundle()
6536         here.
6537
6538         * domain.c (app_config_parse): Take an assembly exe file name as
6539         parameter instead of a config file name. Check for a bundled
6540         config file for that assembly by calling
6541         mono_config_string_for_assembly_file() (see below) before looking
6542         for one in the file system.
6543         (get_runtimes_from_exe): Corrsponding change to call of
6544         app_config_parse().
6545         (get_runtimes_from_exe): Check for bundled assembly exe file first
6546         by calling mono_assembly_open_from_bundle(). If no bundled
6547         assembly exe file is found, call mono_image_open() as before to
6548         look it up in the file system.
6549
6550         * mono-config.c: Add variable bundled_machinec_onfig.
6551         (mono_config_string_for_assembly_file): New function.
6552         (mono_config_for_assembly): Move code snippet that looks for a
6553         bundled assembly .config file into the above new function. Call
6554         it.
6555         (mono_register_machine_config, mono_get_machine_config): New
6556         functions to set and retrieve
6557
6558         * assembly.h: Declare mono_register_machine_config().
6559
6560         * mono-config.h: Declare mono_get_machine_config() and
6561         mono_config_string_for_assembly_file().
6562
6563         * icall.c: No declaration of environ necessary on Win32. It is
6564         declared (as a macro expanding to a function call) in stdlib.h.
6565         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
6566         New internal mono function. Returns the value of
6567         mono_get_machine_config() as a Mono string.
6568
6569         * icall-def.h: Add get_bundled_machine_config().
6570
6571 2007-01-04  Raja R Harinath  <rharinath@novell.com>
6572
6573         Remove redundant field
6574         * class-internals.h (_MonoGenericContext.container): Remove field.
6575         * loader.c (mono_method_get_signature_full): Don't parse a
6576         "container" for a signature parse when the signature is inflated
6577         immediately.
6578         (method_from_methodspec): Likewise, for a generic_inst.
6579         * class.c, metadata.c, reflection.c: Update to changes.
6580
6581 2006-01-04  Raja R Harinath  <rharinath@novell.com>
6582
6583         * class-internals.h (_MonoGenericClass): Rename 'context' field to
6584         'cached_context', and change semantics -- it starts off NULL, and
6585         is initialized on demand.
6586         * class.c (mono_generic_class_get_context): New accessor to
6587         replace 'context' field accesses.
6588         (mono_class_get_context): New helper.
6589         (*): Update to changes.
6590         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
6591
6592 2007-01-03  Miguel de Icaza  <miguel@novell.com>
6593
6594         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
6595         before the memcpy.   Fixes Marshal2 regression.
6596
6597 2007-01-02  Jb Evain  <jbevain@gmail.com>
6598
6599         * blob.h: add a MONO_TYPE_ENUM definition
6600         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
6601         fix the encoding of arrays of enums in custom attributes.
6602
6603         Fixes #79666.
6604
6605 2007-01-01  Miguel de Icaza  <miguel@novell.com>
6606
6607         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
6608         string is null terminated, but only cut the string short if it
6609         overflows the buffer.   
6610         
6611         (mono_string_to_byvalstr): Also fix this routine.   The code here
6612         was not properly terminating a string (it was only terminated
6613         because of the previous catch-all memset). 
6614
6615         I left the memset, because I do not know if applications expect
6616         the runtime to clear this region. 
6617
6618         Fixes #79944.
6619
6620         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
6621         Clear the error before returning to unmanaged code to prevent the
6622         runtime from being confused later on (fixes  80420).
6623         (ves_icall_type_from_name): Always call mono_loader_clear_error
6624         after parsing a type that could have failed.
6625         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
6626
6627         * loader.c (mono_loader_clear_error): Fix indentation.
6628
6629 2006-12-28  Martin Baulig  <martin@ximian.com>
6630
6631         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
6632
6633 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
6634
6635         * reflection.c: patch from Rolf Bjarne Kvinge to fix
6636         getting a token for an EnumBuilder.
6637
6638 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
6639
6640         * reflection.c: be more careful in case resource generation
6641         fails to create the data array.
6642
6643 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
6644
6645         * sgen-gc.c: write barrier for clone and fix unregister handles.
6646
6647 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
6648
6649         * reflection.c: some fixes needed in the generics code for the moving GC.
6650
6651 2006-12-22  Robert Jordan  <robertj@gmx.net>
6652
6653         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
6654         account. Fixes bug #80299.
6655
6656 2006-12-21  Raja R Harinath  <rharinath@novell.com>
6657
6658         Fix WaitHandle usage in delegates.
6659         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
6660         * object.c (mono_wait_handle_new): Use the property set method to
6661         initialize the handle.
6662         (mono_wait_handle_get_handle): New.
6663         * threadpool.c (mono_async_invoke): Use it.
6664         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
6665         Likewise.
6666         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
6667
6668 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
6669
6670         * marshal.c (emit_marshal): Call emit_marshal_variant and
6671         emit_marshal_com_interface when applicable.
6672         (emit_marshal_variant, emit_marshal_com_interface): Add
6673         methods for this case and remove if's from emit_marshal_object.
6674         
6675 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
6676
6677         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
6678
6679 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
6680
6681         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
6682         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
6683         and GlobalFree on Windows. Remove FIXME.
6684
6685 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
6686
6687         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
6688         implementation for managed objects.
6689
6690 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
6691
6692         * object.c: implemented code to be used for checking
6693         that no reference field overlaps with non-references.
6694
6695 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
6696
6697         * threadpool.c: fix queue code to be compatible with the
6698         moving GC.
6699
6700 2006-12-18  Miguel de Icaza  <miguel@novell.com>
6701
6702         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
6703         in structures by throwing ArgumentNullException.
6704
6705         (emit_marshal_safehandle): Also when they are null parameters.
6706
6707         (emit_marshal_safehandle): Add support for ref
6708         SafeHandles parameters
6709
6710 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
6711
6712         * profiler.c: updated to use the mono-dl API instead of
6713         gmodule.
6714
6715 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
6716
6717         * profiler.c: updated to use the mono-dl dynamic loading
6718         API instead of gmodule.
6719
6720 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
6721
6722         * profiler.c: use readlink, older versions of glib don't have
6723         g_file_read_link ().
6724
6725 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
6726
6727         * profiler.c: try to detect the path to mono if libc fails to provide
6728         a useful name (bug #80286).
6729
6730 2006-12-16  Raja R Harinath  <rharinath@novell.com>
6731
6732         Fix #80242
6733         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
6734         instance, use the generic type definition instead.
6735         (ves_icall_Type_GetNestedTypes): Likewise.
6736         * class.c (mono_class_create_generic): Always set the
6737         nested_classes of a generic instance to NULL, even if the generic
6738         type definition has nested types.
6739
6740 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
6741
6742         * marshal.c (mono_string_from_bstr): Revert previous Windows change
6743         and fix on Linux.
6744         
6745 2006-12-15  Miguel de Icaza  <miguel@novell.com>
6746
6747         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
6748         my arguments were in the wrong order.   I also fixed the Windows
6749         version which seems to have had the same issue.
6750
6751         (mono_free_bstr): On Unix, this is g_free.
6752         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
6753         conversions (for the tests in corlib to pass).
6754
6755 2006-12-14  Miguel de Icaza  <miguel@novell.com>
6756
6757         * marshal.c (emit_ptr_to_object_conv): For now, ignore
6758         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
6759         exception if a ref SafeHandle in a struct has changed).
6760         
6761         (emit_struct_conv): Do not perform layout checks for classes
6762         derived from SafeHandle, as those are specially handled. 
6763
6764         (emit_object_to_ptr_conv): Add support for
6765         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
6766
6767         (emit_marshal_safehandle): Implement conversion of return values
6768         of safehandles (MARSHAL_ACTION_CONV_RESULT).
6769         
6770         * threads.c: WaitHandle now is compiled with two different handles
6771         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
6772         for 2.0.
6773         
6774         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
6775         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
6776         these routines to cope with both kinds of fields.
6777
6778 2006-12-12  Miguel de Icaza  <miguel@novell.com>
6779
6780         * metadata.c (mono_type_to_unmanaged): Handle the case where
6781         type->data.klass is a SafeHandle, and in that case, return the
6782         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
6783         MONO_MARSHAL_CONV_SAFEHANDLE. 
6784
6785 2006-12-11  Miguel de Icaza  <miguel@novell.com>
6786
6787         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
6788         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
6789         calling emit_marshal_object.
6790
6791         (emit_marshal_safehandle): Implement marshalling of
6792         SafeHandle parameters (no ref support yet).
6793
6794         (MarshalAction): Document the defines as I implement
6795         them for SafeHandle.
6796
6797         (emit_marshal_object): indentation police.
6798
6799         * class-internals.h: Define MonoSafeHandle.
6800         Add safehandle_class to MonoDefaults type.
6801
6802         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
6803         list of classes to check for fields. 
6804
6805         * domain.c (mono_init_internal): Add SafeHandle to the list of
6806         mono_defaults loaded.
6807
6808 2006-12-15  Raja R Harinath  <rharinath@novell.com>
6809
6810         Fix #80253
6811         * reflection.c (mono_reflection_bind_generic_parameters): If the
6812         generic type definition is a type builder, ensure that it is fully
6813         initialized before instantiating it.  Kill some dead code.
6814
6815 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
6816
6817         * object.c: clear the loader_error () before loading
6818         more metadata stuff (bug #80258).
6819
6820 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
6821
6822         * icall.c, icall-defs.h: type modifiers icalls for
6823         parameters and properties.
6824
6825 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
6826
6827         * object.c, icall.c: fixed warnings.
6828
6829 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
6830
6831         * marshal.c: fixed a couple of leaks and coding style in a few places.
6832
6833 2006-12-08  Dick Porter  <dick@ximian.com>
6834
6835         * process.c: Cope with NULL ProcessStartInfo arguments on windows
6836         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
6837         80173.
6838
6839 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
6840
6841         * process.c: ProcessStartInfo may have only filename set and
6842         arguments can be NULL.
6843
6844 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
6845
6846         * icall.c: fix leak found by Robert Jordan.
6847
6848 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
6849
6850         * marshal.c, marshal.h: generate managed method to access an element
6851         of a multi-dimensional array.
6852
6853 2006-11-30  Paolo Molaro (lupus@ximian.com)
6854
6855         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
6856
6857 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
6858
6859         * icall.c: back out GetFields () fix until the serialization code is
6860         fixed to not depend on the incorrect behaviour.
6861
6862 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
6863
6864         * profiler.c: provide defaults if none are set.
6865
6866 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
6867
6868         * Makefile.am, attrdefs.h: new public header file with
6869         constants for attributes for use by embedders.
6870
6871 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
6872
6873         * icall.c: GetFields () fix for bug #80064.
6874
6875 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
6876
6877         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
6878         removed long unused icalls.
6879
6880 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
6881   
6882         * marshal.c: 
6883                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
6884                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
6885                 can be generated without a delegate class.
6886                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
6887         
6888         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
6889
6890 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6891
6892         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
6893         #80069.
6894
6895 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
6896
6897         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
6898         icall-def.h: added icalls needed by System.GC.
6899
6900 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
6901
6902         * loader.c: ensure the class in catch clauses is handled
6903         correctly for generics methods (fixes bug#79980).
6904
6905 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
6906
6907         * monitor.h, monitor.c: added mono_locks_dump () function
6908         to help debug deadlocks involving managed locks.
6909
6910 2006-11-13  Dick Porter  <dick@ximian.com>
6911
6912         * file-io.c (get_file_attributes): If the file is a symlink try
6913         and get the stat data for the target, but also add the
6914         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
6915         the specs for the windows symlink support, but will probably have
6916         to be reworked when I have test data from a vista machine.  Fixes
6917         bug 79887.
6918
6919 2006-11-13  Dick Porter  <dick@ximian.com>
6920
6921         * gc.c (mono_domain_finalize): 
6922         * marshal.c (mono_delegate_begin_invoke): 
6923         * threadpool.c (socket_io_init, mono_thread_pool_init)
6924         (mono_thread_pool_finish): 
6925         * monitor.c (mono_monitor_try_enter_internal): 
6926         * threads.c (mono_thread_resume, mono_thread_init)
6927         (mono_thread_suspend_all_other_threads)
6928         (mono_thread_execute_interruption): 
6929         * appdomain.c (mono_domain_unload): Check for NULL error returns
6930         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
6931         75733.
6932
6933 2006-11-11  Miguel de Icaza  <miguel@novell.com>
6934
6935         * process.c
6936         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
6937         Only close the handle if the value of the handle is not
6938         INVALID_HANDLE_VALUE.  This just makes the process a bit more
6939         robust.
6940
6941         Improvement for #75733, so that we do not run into this problem. 
6942
6943         
6944         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
6945         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
6946         internal variables.  Fixes #79462 
6947         
6948
6949 2006-11-09  Dick Porter  <dick@ximian.com>
6950
6951         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
6952         Use poll() not select().  Fixes bug 79397.
6953
6954 2006-11-09  Raja R Harinath  <rharinath@novell.com>
6955
6956         Fix #79872
6957         * assembly.c (mono_assembly_load_from_full): Check that the given
6958         image has an assembly manifest.
6959
6960 2006-11-09  Ankit Jain  <jankit@novell.com>
6961
6962         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
6963         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
6964         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
6965
6966 2006-11-07  Dick Porter  <dick@ximian.com>
6967
6968         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
6969         Put the old resolver behaviour back for pre-2.0 profiles.
6970
6971 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
6972
6973         * threadpool.c: precise GC and locking fixes.
6974
6975 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
6976
6977         * class.c: don't load types that have an explicit unaligned
6978         managed reference. Provide better info in the TypeLoad exception.
6979         Part of the fix for bug #79744.
6980         * object.c: use the correct check for class type load issues.
6981
6982 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
6983
6984         * class.c: enforce alignment of fields with managed references
6985         even when Pack=1 is forced by the user (bug #77788).
6986
6987 2006-11-03  Dick Porter  <dick@ximian.com>
6988
6989         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
6990         If the address reverse lookup fails, return it as the hostname
6991         anyway.  Fixes bug 79721.
6992
6993 2006-11-03  Dick Porter  <dick@ximian.com>
6994
6995         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
6996         Fix build on Windows.
6997
6998 2006-11-02  Dick Porter  <dick@ximian.com>
6999
7000         * icall-def.h: 
7001         * object-internals.h: 
7002         * exception.c (mono_get_exception_thread_interrupted): 
7003         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
7004         Fixes bug 74525.
7005
7006         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
7007         Check for pending Thread.Interrupt.
7008
7009 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
7010         * loader.c: Fixed bug 79684.
7011
7012 2006-10-27  Dick Porter  <dick@ximian.com>
7013
7014         * file-io.c (get_file_attributes): Force symlinks to directories
7015         to be returned as a regular file.  Fixes bug 79733.
7016 2006-10-26  Dick Porter  <dick@ximian.com>
7017
7018         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
7019         CreateFile to open a directory then we need to set the
7020         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
7021
7022 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
7023
7024         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
7025         friends.
7026
7027 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
7028
7029         * sgengc.c: small cleanup of timer code.
7030
7031 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
7032
7033         * sgen-gc.c: fix some warnings and start adding support for
7034         complete object removal on domain unload.
7035
7036 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
7037
7038         * assembly.c: build_assembly_name should not consider a version
7039         number without build or revision number invalid. Fixes bug #79715.
7040
7041 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
7042
7043         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
7044         call kernel32 function OutputDebugString directly.
7045         
7046         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
7047         
7048 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
7049
7050         * reflection.c: small cleanup, using a function to insert a MonoString
7051         in the string heap.
7052
7053 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
7054
7055         * reflection.c: moving GC fixes.
7056
7057 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
7058
7059         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
7060         all the objects with finalizers belonging to an unloading appdomain.
7061
7062 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
7063
7064         * sgen-gc.c: added ability to allocate even when the nursery is fully
7065         pinned and fixed a couple of bugs.
7066
7067 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
7068
7069         * threads.h: Revert the last change for now.
7070
7071         * threads.h (mono_thread_get_pending_exception): Rename this to
7072         mono_thread_get_undeniable_exception ().
7073
7074 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
7075
7076         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
7077         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
7078         when fname does not refer to valid assembly. This result in a more
7079         meaningful error message.
7080         * exception.c: added mono_get_exception_bad_image_format2 which 
7081         constructs a BadImageFormatException using the ctor taking a custom
7082         message and the file name. Passing in a NULL msg results in a default
7083         message.
7084         * exception.h: define mono_get_exception_bad_image_format2 function.
7085         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
7086         when file name pointed to an invalid IL image. Use 
7087         mono_get_exception_file_not_found2 to construct FileNotFoundException,
7088         as this results in a more meaningful error message.
7089
7090 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
7091
7092         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
7093         #79465.
7094
7095 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
7096
7097         * metadata.c (mono_type_size): Change the align parameter to guint32 for
7098         consistency with the other _size functions.
7099         (mono_type_stack_size): Ditto.
7100
7101         * class.c object.c icall.c: Fix warnings caused by the above change.
7102
7103         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
7104
7105         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
7106
7107         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
7108
7109 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
7110
7111         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
7112         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
7113         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
7114         threadpool.h, threads-types.h: mark more internal functions.
7115
7116 2006-10-11  Dick Porter  <dick@ximian.com>
7117
7118         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
7119         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
7120         reproduce the bug even before applying the fix.)
7121
7122 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
7123
7124         * reflection.c: allow retrieving attributes for arguments in generic
7125         methods (bug #79241).
7126
7127 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
7128
7129         * debug-mono-symfile.c: properly check fopen () result (found by
7130         coverity).
7131
7132 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
7133
7134         * reflection.c: make error message clearer and fixed two
7135         issuelets found by Coverity.
7136
7137 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
7138
7139         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
7140
7141 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
7142
7143         * object-internals.h, gc-internal.h, profiler-private.h:
7144         mark internal functions.
7145
7146 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
7147
7148         * reflection.c: put data in the text section.
7149         * icall.c: recognize more types in type_from_typename ().
7150         * process.c, marshal.c: added some GC FIXMEs.
7151
7152 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
7153
7154         * loader.c: check for NULL before initializing.
7155
7156 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
7157
7158         * gc.c (finalizer_thread): Use a non-alertable wait here.
7159
7160         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
7161         until the correct solution is found.
7162
7163 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
7164
7165         * reflection.c (mono_module_get_object): Avoid an assert when operating on
7166         modules with no metadata. Fixes #79596.
7167
7168         * image.c (load_metadata_ptrs): Put back the error message when
7169         the #- heap is encountered since the support is not complete yet.
7170
7171 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
7172
7173         * gc.c: do not allow the user to SuppressFinalize () a
7174         delegate because it would leak the trampoline if present.
7175
7176 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
7177
7178         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
7179         PropertyPtr table.
7180
7181 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
7182
7183         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
7184
7185         * metadata.c (mono_metadata_get_param_attrs): Ditto.
7186
7187         * row-indexes.h: Add definitions for *Ptr tables.
7188
7189         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
7190
7191         * metadata.c (mono_metadata_translate_token_index): New helper function to
7192         translate table indexes used in uncompressed metadata.
7193         (mono_metadata_decode_table_row): Ditto.
7194         (mono_metadata_decode_table_row_col): Ditto.
7195
7196         * metadata.c: Add table schema for *Ptr tables.
7197
7198         * class.c loader.c: Use the new helper function to access the affected metadata
7199         tables.
7200         
7201         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
7202         #38532.
7203         
7204 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
7205
7206         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
7207         sequences which can be unbounded in size. Fixes #79583.
7208
7209 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
7210
7211         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
7212         static initialization.
7213
7214         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
7215
7216         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
7217
7218         * domain.c (mono_domain_free): Free up type_init_exception_hash.
7219
7220         * object.c (mono_runtime_class_init): Implement correct semantics when a static
7221         ctor fails, i.e. throw the same exception on subsequent accesses.
7222         
7223 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
7224
7225         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
7226         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
7227         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
7228         Handle marshalling of interfaces and VARIANTs contained in structs.
7229         
7230         Code is contributed under MIT/X11 license.
7231         
7232 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
7233
7234         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
7235         
7236         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
7237         mempool.
7238
7239 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7240
7241         * console-io.c: ignore previous SIGINT handler.
7242
7243 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
7244
7245         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
7246         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
7247         #79460, #79461, #79485.
7248
7249         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
7250
7251         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
7252         #79217.
7253
7254 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
7255
7256         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
7257         could be generated from it.
7258
7259 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
7260
7261         * rand.c: fix read loop to correctly handle EINTR.
7262
7263 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
7264
7265         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
7266         internal calls are defined to keep methods closer to the declaring
7267         type and allow a significant reduction in runtime relocations and
7268         memory usage.
7269
7270 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
7271
7272         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
7273         exception message to have FileNotFoundException use the default
7274         assembly load error message. Fixes bug #79426.
7275         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
7276
7277 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7278
7279         * threadpool.c: (start_thread_or_queue) use the root domain when
7280         creating the thread instead of the async object one.
7281
7282 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
7283
7284         * class.c, object.c, class-internals.h, reflection.c:
7285         for arrays, store element_size inside MonoClass (speedup
7286         for array object creation).
7287
7288 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
7289
7290         * icall.c: fixed CodeBase to use the file name and not the module
7291         name (bug #79365).
7292
7293 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
7294
7295         * mono-debug.c, mono-debug.h: export find_method as
7296         mono_debug_find_method ().
7297
7298 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
7299
7300         * debug-helpers.c, class-internals.h: added a few functions useful
7301         when debugging under gdb.
7302
7303 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7304
7305         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
7306         characters that need special handling.
7307
7308 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
7309
7310         * mono-config.c: make the os/cpu specification more flexible,
7311         allowing lists and negation.
7312
7313 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
7314
7315         * marshal.c: COM Interop fixes. Handle case where method->klass.
7316         is interface. Handle BSTR/MonoString when null. Use CDECL as 
7317         calling convention on non-windows platforms. This is for
7318         compatibility with XPCOM and MainWin COM.
7319         
7320         Code is contributed under MIT/X11 license.
7321         
7322
7323 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
7324
7325         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
7326         correctly. Fixes #79217.
7327
7328         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
7329
7330 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
7331
7332         * mono-config.c: allow both an os and cpu attribute for dllmap
7333         and dllentry elemnets to enable a single config file to be used
7334         for multiple architectures.
7335
7336 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
7337
7338         * loader.c: MonoLoaderError was cleared too soon on load failure.
7339         Fixes bug #79424.
7340
7341 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
7342
7343         * icall.c: use the defining class vtable when accessing a
7344         static field, not a pobblibly derived class.
7345
7346 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
7347
7348         * icall.c string-icalls.c: Remove references to unicode.h.
7349
7350         * unicode.h unicode.c Makefile.am: Remove these unused source files.
7351
7352         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
7353
7354         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
7355         indicating the image where custom marshaller types should be looked up.
7356         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
7357         custom marshallers, instead of corlib. Fixes #79425.
7358
7359 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
7360
7361         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
7362
7363 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
7364
7365         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
7366         Implement Environment.ProcessorCount.
7367         
7368         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
7369         Implement Environment.ProcessorCount.
7370         
7371         * icall.c: 
7372         Add Environment.ProcessorCount icall.
7373         
7374         Patch by Jason McFall.
7375
7376 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7377
7378         * assembly.c: don't append .exe/.dll when the filename already contains
7379         one of those extensions.
7380
7381 2006-09-12  Martin Baulig  <martin@ximian.com>
7382
7383         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
7384         to array interfaces.
7385
7386 2006-09-11  Martin Baulig  <martin@ximian.com>
7387
7388         * reflection.c (mono_image_build_metadata): Create the
7389         MethodImpl's after emitting all types and methods, so we don't
7390         need another fixup pass for them.
7391
7392 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
7393
7394         * class.c (mono_class_from_name_case): Fix regression introduced by the last
7395         change.
7396
7397 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
7398
7399         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
7400         unload.
7401
7402 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
7403
7404         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
7405         args is not set. Fixes #78926.
7406
7407 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
7408
7409         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
7410
7411         * image.c (load_class_names): Move this to class.c, and rename it to 
7412         'mono_image_init_name_cache'.
7413         (load_modules): Fix a warning.
7414
7415         * class.c icall.c image.c: Initialize image->name_cache lazily.
7416
7417         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
7418         on its name using information in the AOT file.
7419
7420         * class.c (mono_class_from_name): Use the new hook function.
7421
7422 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
7423
7424         * reflection.c (mono_param_get_objects): Handle enum default parameter values
7425         correctly.
7426
7427         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
7428         Fixes #79289.
7429         
7430 2006-09-06  Martin Baulig  <martin@ximian.com>
7431
7432         * icall.c (mono_lookup_internal_call): Small fix.
7433
7434 2006-09-05  Raja R Harinath  <rharinath@novell.com>
7435
7436         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
7437         double g_free.
7438
7439 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
7440
7441         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
7442         when --debug is specified.
7443
7444 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
7445
7446         * class.c (setup_generic_array_ifaces): Fix a warning.
7447
7448 2006-09-04  Miguel de Icaza  <miguel@novell.com>
7449
7450         * Temporarily remove the patch to assemly.c that checks the
7451         assembly versions as it breaks our gacutil.
7452
7453 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
7454
7455         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
7456
7457         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
7458         a net 1.0 runtime.
7459
7460         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
7461         created using the default ctor. Fixes #79152.
7462         (mono_string_builder_to_utf16): Ditto.
7463
7464 2006-09-01  Martin Baulig  <martin@ximian.com>
7465
7466         Fix handling of the generic array interfaces.
7467
7468         * class-internals.h
7469         (MonoDefaults): Removed `generic_array_class' and added
7470         `generic_ilist' class.
7471
7472         * class.c
7473         (mono_bounded_array_class_get): Add the new generic array interfaces.
7474         (setup_generic_array_ifaces): New static method; create vtable
7475         entries for each method in the generic array interfaces.
7476
7477         * metadata.c
7478         (select_container): Allow "parent-less" generic methods.
7479
7480         * marshal.c
7481         (mono_marshal_get_generic_array_helper): New public method.
7482
7483         * icall.c
7484         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
7485         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
7486         moved the interncall into System.Array.
7487
7488 2006-09-01  Raja R Harinath  <rharinath@novell.com>
7489
7490         A few more cases of avoiding work on types with ->byref set.
7491         Has the real fix for #79238
7492         * icall.c (is_generic_parameter): New helper.
7493         (ves_icall_Type_GetGenericParameterPosition): Use it.
7494         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
7495         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
7496         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
7497         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
7498         reference types.
7499         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
7500         reference types.
7501         (ves_icall_Type_get_IsGenericInstance): Likewise.
7502         (ves_icall_Type_get_IsGenericType): Likewise.
7503
7504 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
7505
7506         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
7507         class if possible.
7508
7509         * mempool.h (mono_mempool_get_allocated): New helper function.
7510
7511         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
7512         change.
7513
7514         * mempool.c: Fix warnings and the calculation of stats.
7515
7516         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
7517
7518         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
7519
7520         * loader.c (mono_get_method_from_token): Update method_count stat.
7521
7522         * class-internals.h (MonoStats): Add some stats.
7523
7524 2006-08-31 Robert Jordan  <robertj@gmx.net>
7525
7526         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
7527         with managed variants.
7528         All code is contributed under the MIT/X11 license.
7529         
7530 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
7531
7532         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
7533         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
7534
7535         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
7536
7537         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
7538         with cycles in classes.
7539
7540         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
7541
7542         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
7543         missing a [MarshalAs] directive. Fixes #79203.
7544
7545         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
7546         klass->marshal_info. Fixes #79217.
7547
7548 2006-08-30  Martin Baulig  <martin@ximian.com>
7549
7550         Committing a patch from Joachim Ante <joe@otee.dk>:
7551         Add support for binary data symbol stores.
7552
7553         * debug-mono-symfile.c
7554         (mono_debug_open_mono_symbol_file): Renamed into
7555         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
7556         arguments.
7557
7558         * mono-debug.c
7559         (mono_debug_open_image): Added `raw_contents' and `size' args.
7560         (mono_debug_init_2_memory): New public function.
7561
7562 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
7563
7564         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
7565
7566 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7567
7568         * appdomain.c: implement support for ShadowCopyFiles.
7569
7570 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
7571
7572         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
7573         when value is NULL (and should remove CID #51).
7574
7575 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7576
7577         * image.c: moved 2 functions to ../utils.
7578
7579 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
7580
7581         * gc.c: cope with the target object of a GC handle being NULL
7582         (bug #78877).
7583
7584 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
7585
7586         * class.c: recursively check parent's explicit implementations
7587         of interface methods (fixes bug #79125).
7588
7589 2006-08-19  Miguel de Icaza  <miguel@novell.com>
7590
7591         * filewatcher.c: Avoid warnings when building, do not redefine
7592         constants that are defined.
7593
7594         Remove warnings.
7595
7596 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7597
7598         * image.c: don't fail when the link points to an absolute path.
7599
7600 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
7601
7602         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
7603         Fix CID #3.
7604
7605 2006-08-17  Miguel de Icaza  <miguel@novell.com>
7606
7607         * image.c (full_path): A new method used to obtain the actual path
7608         of an assembly even in the presence of symbolic links.  
7609
7610         This is necessary for the case where we are running a binary that
7611         has been GACed, but we are using the "published" path name
7612         ($prefix/mono/1.0/blah.exe) which happens to point to the real
7613         file in the GAC.
7614
7615         This was the source of the failure for the `xsp' command with the
7616         recent AppDomain changes, as far as the runtime was concerned,
7617         there were two different assemblies: $prefix/mono/1.0/blah.exe and
7618         $prefix/mono/gac/blah/version/blah.exe.
7619
7620         (do_mono_image_open): use full path
7621
7622 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
7623
7624         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
7625
7626 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
7627
7628         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
7629         domain_id is supplied. Fix CID #241 and corlib's unit tests.
7630
7631 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
7632
7633         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
7634         small structures. Fixes #78990.
7635
7636 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
7637
7638         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
7639
7640         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
7641
7642 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7643
7644         * appdomain.c:
7645         * marshal.c: don't load all the assemblies from a domain into newly
7646         created ones. The new domains might have different rules and load
7647         assemblies from different locations. Fixes bug #76757.
7648
7649         Patch by Lluis. Conflicts resolved by Brian Crowell.
7650
7651 2006-08-16  Alp Toker  <alp@atoker.com>
7652
7653         * socket-io.c: First half of the fix for #79084.
7654         Set sa_size to the length of the content, not that of the struct.
7655         Don't add NULL suffix to the content, this should be done in
7656         managed code if needed.
7657
7658 2006-08-14  Raja R Harinath  <rharinath@novell.com>
7659
7660         Fix part of #79012
7661         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
7662         mono_metadata_parse_type returns NULL.
7663
7664 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
7665
7666         * normalization-tables.h : new file for string normalization data.
7667         * locales.c, locales.h, icall.c :
7668           added load_normalization_resource() for string normalization,
7669           and icall as well.
7670         * Makefile.am : added normalization-tables.h to the sources.
7671
7672 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
7673
7674         * marshal.c: Add more helper functions to reduce code duplication and use them
7675         everywhere.
7676
7677 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
7678
7679         * marshal.c: Fix non-x86 stdcall warnings.
7680         
7681         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
7682         them everywhere.
7683
7684 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
7685
7686         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
7687         type check on multi-dimensional arrays. Fixes #79000.
7688
7689 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
7690
7691         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
7692         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
7693         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
7694         * class-internals.h: add is_com_object to class structure.
7695         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
7696         null checks to COM object marshalling. Fix .ctor call on RCW.
7697         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
7698         
7699         All code is contributed under the MIT/X11 license.
7700
7701 2006-08-09  Dick Porter  <dick@ximian.com>
7702
7703         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
7704         racing mono_monitor_allocator_lock() somewhere, so don't delete
7705         the critical section for now.  Found by running and exiting
7706         monodevelop.
7707
7708 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
7709
7710         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
7711         (ves_icall_System_ComObject_FindInterface): Ditto.
7712         (ves_icall_System_ComObject_CacheInterface): Ditto.
7713
7714         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
7715         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
7716
7717 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7718
7719         * threadpool.c: treat pipes from process asynchronous reads as sockets
7720         when reading from them, so we get select/poll or epoll to wait for
7721         data.
7722
7723 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
7724
7725         * loader.c: Fix a typo (CID #233) in the null check.
7726
7727 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
7728
7729         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
7730         Hopefully fixes #78949.
7731         
7732         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
7733         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
7734         bytes. Fixes #78972.
7735
7736 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7737
7738         * filewatcher.c: we need to set errno here.
7739
7740 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7741
7742         * filewatcher.c: let Win32Exception get the error value.
7743
7744 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7745
7746         * filewatcher.c: translate errno into win32 errors for Win32Exception
7747         to know what happened.
7748
7749 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
7750
7751         * threadpool.c: Fix more warnings.
7752
7753         * assembly.c (search_loaded): Fix warnings.
7754
7755         * threadpool.c (mono_thread_pool_finish): Fix warnings.
7756         (mono_async_invoke): Ditto.
7757
7758 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
7759
7760         * object.c (mono_remote_class_vtable): Need to create proxy vtable
7761         entries for __ComObject type in addition to ComImport types.
7762         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
7763         about hash table.
7764         
7765         All code is contributed under the MIT/X11 license.
7766
7767 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
7768
7769         * image.c: avoid tentative loading of modulerefs that contain
7770         no metadata (P/Invoke library names).
7771
7772 2006-07-28  Dick Porter  <dick@ximian.com>
7773
7774         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
7775         mono_loader_lock() somewhere, so don't delete the critical section
7776         for now.  Found by running and exiting monodevelop.
7777
7778 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7779
7780         * filewatcher.c: define the inotify syscalls when we're building on
7781         linux and have sys/syscall.h. The build system might not have support
7782         for inotify but the target system might have it.
7783
7784 2006-07-26  Miguel de Icaza  <miguel@novell.com>
7785
7786         * domain.c: Documentation updates.
7787
7788         * loader.c (mono_free_method): Do not release the method
7789         information if we are being profiled, as profilers will use this
7790         information at shut down to present some data to the user.
7791
7792         This is needed so that the profiler does not crash, as the
7793         profiler tends to keep MonoMethods around, and they might become
7794         invalid if we free these.
7795
7796         (mono_get_method_constrained): Return the original CIL stream
7797         method as well, so verification can be performed against it.
7798
7799 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7800
7801         * filewatcher.[ch]: support for inotify file system watcher.
7802         * icall.c: add new internal calls for the inotify file system watcher.
7803
7804 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7805
7806         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
7807         #78888.
7808
7809 2006-07-20  Dick Porter  <dick@ximian.com>
7810
7811         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
7812         warning.
7813
7814 2006-07-20  Dick Porter  <dick@ximian.com>
7815
7816         * threads.c (start_wrapper): Do the thread cleanup while we still
7817         hold a reference to its object.  Fixes bug 78123.
7818
7819 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
7820
7821         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
7822         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
7823           "managed-to-managed".
7824         * icall.c: Redirect string constructors that take sbyte* to
7825           ves_icall_System_String_ctor_RedirectToCreateString.
7826         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
7827           to CreateString () methods with matching signature.
7828         * reflection.c: Use original security informations for
7829           MONO_WRAPPER_MANAGED_TO_MANAGED.
7830         * security-manager.c: Use original security informations for
7831           MONO_WRAPPER_MANAGED_TO_MANAGED.
7832         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
7833           that is a placeholder and only its address should be used.
7834         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
7835           that is a placeholder and only its address should be used.
7836
7837 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
7838
7839         Begin implementing COM Interop.
7840         * appdomain.c: Increment corlib version.
7841         * class.c: Set ComImport classes' parent to __ComObject.
7842         * loader.c: Mark cominterop methods as such.
7843         * domain.c: Add __ComObject class to MonoDefaults structure.
7844         * image.c: Add 2 hashtables to the image for COM Interop related methods
7845         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
7846         using the mempool allocator
7847         
7848         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
7849         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
7850         declaration for mono_metadata_type_dup_mp.
7851         
7852         * debug-helpers.c: Added strings for two additional wrapper types
7853         * object.c: Create proxy objects for ComImport classes
7854         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
7855         and added __ComObject class to MonoDefaults structure.
7856         
7857         * object-internals.h: Finish MonoRealProxy definition, and add definition of
7858         MonoComInteropProxy and MonoComObject.
7859         
7860         * marshal.c: Added support for COM Interop
7861         (signature_cominterop): Converts managed signature to corresponding
7862         unmanaged COM signature.
7863         (cominterop_get_function_pointer): gets unmanaged function pointer via
7864         COM object vtable
7865         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
7866         (cominterop_get_method_interface): returns interface type that method is defined on
7867         (mono_mb_emit_cominterop_call): emits native call to function pointer
7868         gotten from vtable
7869         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
7870         that matches signature of unmanaged function.
7871         (cominterop_get_native_wrapper): wrapper around adjusted method call.
7872         (cominterop_get_invoke): forwards call from proxy to __ComObject
7873         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
7874         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
7875         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
7876         
7877         * marshal.h: Added Marshal icall declarations.
7878         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
7879         so we can access them in finalizer
7880         
7881 2006-07-14  Dick Porter  <dick@ximian.com>
7882
7883         * object.c (mono_type_initialization_cleanup): Fix a race
7884         condition by temporarily commenting out the critical section
7885         deletion.
7886
7887 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
7888
7889         * reflection.c (create_custom_attr): Fix some warnings.
7890         (create_custom_attr_data): Ditto.
7891         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
7892         types. Fixes #78855.
7893
7894 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
7895
7896         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
7897
7898         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
7899
7900 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
7901
7902         * reflection.c (resolve_object): Add support for DynamicMethod.
7903
7904         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
7905         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
7906
7907 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
7908
7909         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
7910         don't leak GPtrArray's pdata has we have no use (nor free) for it.
7911
7912 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
7913
7914         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
7915         Fixes #77888.
7916
7917 2006-06-30  Raja R Harinath  <rharinath@novell.com>
7918
7919         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
7920         slightly: remove a shadow local variable.
7921
7922 2006-06-29  Raja R Harinath  <rharinath@novell.com>
7923
7924         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
7925         definition that introduces the virtual function slot.
7926         Also fix Coverity #105.
7927
7928 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
7929
7930         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
7931         for dynamic assemblies. Fixes #78724.
7932
7933 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
7934
7935         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
7936         Fixes #78722.
7937
7938 2006-06-21  Martin Baulig  <martin@ximian.com>
7939
7940         * reflection.c
7941         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
7942         fixes #76484.
7943
7944 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
7945
7946         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
7947
7948 2006-06-20  Raja R Harinath  <rharinath@novell.com>
7949
7950         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
7951         nor TYPEREFs.
7952         * class.c (mono_class_create_from_typespec): Add 'context' argument.
7953         Inflate result if necessary.
7954         (mono_class_get_full): Remove old version.  Rename from
7955         'mono_class_get' and add 'context' argument.  Pass it to
7956         ..._create_from_typespec.
7957         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
7958         (mono_ldtoken): Revert change below.
7959
7960 2006-06-20  Martin Baulig  <martin@ximian.com>
7961
7962         * class.c (mono_ldtoken): Don't pass the generic context to
7963         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
7964
7965 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
7966
7967         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
7968         and later freeing it. Fixes #78638.
7969
7970 2006-06-15  Miguel de Icaza  <miguel@novell.com>
7971
7972         * icall.c (mono_class_get_throw): Revert over-zealous error
7973         throwing, the caller for mono_class_get_throw will cope with
7974         errors when classes are not properly initialized already.
7975
7976         The code still copes with loader exceptions though.
7977
7978         Fixes the regression in reftype1 and reftype3 from the CAS tests.
7979         
7980 2006-06-14  Miguel de Icaza  <miguel@novell.com>
7981
7982         Fixes the `make run1' version of RuntimeAbort (to be commited,
7983         source is in Bugzilla).
7984         
7985         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
7986         FALSE on class loading failure instead of returning true.
7987
7988         * class.c (mono_class_create_from_typedef): It is possible for
7989         mono_metadata_interfaces_from_typedef_full to fail if a class is
7990         not found, cope with this.
7991         
7992
7993 2006-06-14  Dick Porter  <dick@ximian.com>
7994
7995         * socket-io.c: 
7996         * process.c: Fix a bunch of signed/unsigned warnings from gcc
7997         4.1.1
7998
7999 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
8000
8001         * culture-info-table.h : oops, forgot to make it nsync with r61548.
8002
8003 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
8004
8005         * icall.c: Another fix for building mono in Visual Studio.
8006
8007 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
8008
8009         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
8010         
8011 2006-06-09  Martin Baulig  <martin@ximian.com>
8012
8013         * debug-mono-symfile.c: Put this back and really fix it this
8014         time. Sorry for all the trouble.
8015
8016 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
8017
8018         * icall.c (mono_class_get_throw): Fix a warning.
8019         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
8020         ReflectionTypeLoadException if needed. Fixes #78606.
8021
8022         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
8023         (mono_class_init): Ditto.
8024
8025         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
8026         ref_only exceptions.
8027         (mono_loader_clear_error): Make this work even if there is no error.
8028
8029 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
8030
8031         * object-internals.h marshal.c marshal.h icall.c: Implement method 
8032         Marshal.GetComSlotForMethodInfo using internal call.
8033
8034 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
8035
8036         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
8037         a function for signalling it.
8038
8039         * class.c (mono_class_from_typeref): Use the new kind of loader error when
8040         a referenced assembly is not found.
8041
8042         * loader.c (mono_loader_error_prepare_exception): Add support for 
8043         LOADER_ERROR_ASSEMBLY. Fix formatting.
8044
8045 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
8046
8047         * domain.c appdomain.c class-internals.h marshal.c: Add support 
8048         for VARIANT marshalling on windows and increment corlib version
8049         since Variant struct was added.
8050
8051 2006-06-03  Miguel de Icaza  <miguel@novell.com>
8052
8053         * debug-mono-symfile.c: Revert Martin's previous patch which broke
8054         stack trace line information:
8055
8056         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
8057         (Martin) when looking up B which is between A and C, return A not C.
8058
8059         Bug is #78573.
8060
8061         Thanks to Alexander Olk for tracking this down.
8062
8063 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
8064
8065         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
8066         
8067         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
8068         avoid clobbering its value.
8069         (mono_string_to_lpstr): Fix a warning on windows.
8070
8071 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
8072
8073         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
8074
8075         * reflection.c loader.c: Removed references to 'dummy' flag.
8076
8077         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
8078
8079         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
8080         it gets GC tracking.
8081
8082         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
8083         GC tracking.
8084         
8085         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
8086
8087         * marshal.c threadpool.c: Update callers of mono_async_result_new.
8088
8089         * appdomain.c: Bump corlib version.
8090
8091 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
8092
8093         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
8094         CEE_STIND_REF when working with object references.
8095
8096 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
8097
8098         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
8099         Fixes #78539.
8100
8101 2006-05-30  Miguel de Icaza  <miguel@novell.com>
8102
8103         * loader.c (method_from_memberref): Fix argument value for
8104         mono_loader_set_error_method_load (I was passing the MonoClass
8105         instead of the class name char *).
8106
8107 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
8108
8109         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
8110         CEE_STIND_REF when working with object references.
8111
8112 2006-05-30  Martin Baulig  <martin@ximian.com>
8113
8114         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
8115         mono_method_full_name() change and replace the ':' with a '.'
8116         here.
8117
8118 2006-05-30  Martin Baulig  <martin@ximian.com>
8119
8120         * debug-mono-symfile.c
8121         (mono_debug_symfile_lookup_location): Fix the algorithm:
8122         when looking up B which is between A and C, return A not C.
8123
8124 2006-05-29  Martin Baulig  <martin@ximian.com>
8125
8126         * mono-debug.h
8127         (MonoDebugMethodInfo): Make the typedef public.
8128         (MonoDebugSourceLocation): New public struct.
8129
8130         * mono-debug.c
8131         (mono_debug_source_location_from_address): Removed.
8132         (mono_debug_source_location_from_il_offset): Removed.
8133         (mono_debug_il_offset_from_address): Removed.
8134         (mono_debug_address_from_il_offset): Removed.
8135         (mono_debug_lookup_method): New public function.
8136         (mono_debug_lookup_source_location): New public function; replaces
8137         the old mono_debug_source_location_from_*() functions; see the
8138         inline documentation.
8139         (mono_debug_free_source_location): New public function.
8140         (mono_debug_print_stack_frame): New public function; see the
8141         inline documentation.
8142
8143         * debug-mono-symfile.c
8144         (mono_debug_find_source_location): Renamed into
8145         mono_debug_symfile_lookup_location(); only take a
8146         `MonoDebugMethodInfo *' and an `offset' argument; added inline
8147         documentation.
8148         (mono_debug_find_method): Renamed into
8149         mono_debug_symfile_lookup_method().
8150
8151 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
8152
8153         * assembly.c (mono_assembly_open_full): Dont overwrite the status
8154         returned by mono_image_open_full ().
8155
8156         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
8157         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
8158         #78517.
8159
8160         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
8161         #78518.
8162
8163 2006-05-27  Miguel de Icaza  <miguel@novell.com>
8164
8165         * class.c (mono_class_from_typeref): handle missing images
8166         earlier, deals with bug #78418.   Refactor code; 
8167
8168         Fix a warning introduced in my previous commit (some stale code
8169         from before I revisited my patch).
8170
8171         * class.c (mono_class_create_from_typedef): On failure, remove the
8172         class from the MonoImage->class_cache as the class is not
8173         initialized;   Fixes the leak pointed out by Paolo.
8174
8175 2006-05-25  Dick Porter  <dick@ximian.com>
8176
8177         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
8178         DeleteCriticalSections until I figure out which one may still be
8179         sometimes locked when mono_thread_cleanup is called.
8180
8181 2006-05-24  Dick Porter  <dick@ximian.com>
8182
8183         * threads.c (mono_thread_cleanup): Move the threading cleanup out
8184         of mono_thread_manage and back into its own function, so it can be
8185         called after the finalizer thread has finished.
8186
8187         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
8188
8189 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
8190
8191         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
8192         Fixes #78495.
8193
8194         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
8195         with non-blittable elements.
8196         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
8197
8198 2006-05-24  Martin Baulig  <martin@ximian.com>
8199
8200         * mono-debug-debugger.h (MonoDebuggerEvent): Added
8201         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
8202
8203         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
8204         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
8205         `mono_debugger_event_handler' to NULL.
8206
8207 2006-05-24  Martin Baulig  <martin@ximian.com>
8208
8209         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
8210
8211 2006-05-24  Martin Baulig  <martin@ximian.com>
8212
8213         * mono-debug-debugger.h
8214         (mono_debugger_create_notification_function): Added
8215         `MonoCodeManager *' argument.
8216
8217 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
8218
8219         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
8220
8221 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
8222
8223         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
8224         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
8225         implementation.
8226
8227 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
8228
8229         * icall.c: precise GC support: objects can't be stored in unmanaged
8230         memory anymore, even if they are kept alive by other references: since
8231         they can move the GC needs to be able to always find them.
8232
8233 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
8234
8235         * object.c: precise GC support for static fields. Support
8236         for moving GCs: write barriers and pinned allocation for interned
8237         strings.
8238
8239 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
8240
8241         * domain.c, domain-internals.h: precise GC support for the MonoDomain
8242         structure.
8243
8244 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
8245
8246         * class.c, gc.c: sgen and precise GC updates.
8247
8248 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
8249
8250         * marshal.h, marshal.c: added write barrier wrapper and precise type
8251         fixes.
8252
8253 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
8254
8255         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
8256         support.
8257
8258 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
8259
8260         * reflection.c: precise and sgen GC updates.
8261
8262 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
8263
8264         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
8265
8266 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
8267
8268         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
8269
8270 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
8271
8272         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
8273         MONO_TYPE_OBJECT. Fixes #78462.
8274
8275 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
8276
8277         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
8278         and blittable types.
8279
8280 2006-05-17  Miguel de Icaza  <miguel@novell.com>
8281
8282         * class.c (mono_class_get_exception_for_failure): Implement parts
8283         of a TODO: if the loader error is set (instead of the class
8284         error), we return a Loader exception that can be properly thrown
8285         elsewhere.
8286
8287         This was exposed by some Winforms 2.0 code that I tried to run
8288         (Atsushi pointed me to it).
8289
8290 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
8291
8292         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
8293         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
8294         
8295         * marshal.c (emit_marshal_vtype): Add limited support for 
8296         UnmanagedType.LPStruct. Fixes #78427.
8297
8298         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
8299         Applied a patch from kangaroo to fix #77523.
8300
8301 2006-05-17  Martin Baulig  <martin@ximian.com>
8302
8303         * threads.c
8304         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
8305         (debugger_thread_created): Removed.
8306         (debugger_thread_exited): Removed.
8307
8308 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
8309
8310         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
8311
8312         * object-internals.h (MonoReflectionResource): Sync with managed version.
8313
8314 2006-05-12  Wade Berrier <wberrier@novell.com>
8315
8316         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
8317
8318 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
8319
8320         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
8321         functions try to allocate from the image mempool.
8322
8323 2006-05-12  Dick Porter  <dick@ximian.com>
8324
8325         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
8326
8327 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
8328
8329         * object.c: The FieldGetter and FieldSetter methods require the full
8330         name of the class, not only the name. Fixes bug #78277.
8331
8332 2006-05-11  Miguel de Icaza  <miguel@novell.com>
8333
8334         * loader.c (method_from_memberref): Do not pass the NULL klass to
8335         mono_loader_set_error_() methods.  Pass the non-NULL value
8336         (class). 
8337
8338 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
8339
8340         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
8341         (mono_assembly_close): Null out assembly->image->references after freeing it.
8342
8343         * image.c (mono_image_close): Free image->references.
8344         
8345         * reflection.c (mono_image_basic_init): Fix a small memory leak.
8346
8347 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
8348
8349         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
8350         before checking if it's NULL (g_assert).
8351
8352 2006-05-10  Martin Baulig  <martin@ximian.com>
8353
8354         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
8355         I thought I already killed that two months ago, but now it somehow reappeared.
8356
8357 2006-05-10  Martin Baulig  <martin@ximian.com>
8358
8359         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
8360
8361 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
8362
8363         * reflection.c: Allocate memory for dynamically created methods in the image
8364         mempools.
8365
8366 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
8367
8368         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
8369         don't use the ad pointer before checking if it's NULL (g_assert).
8370
8371 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
8372
8373         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
8374         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
8375
8376         * marshal.c: Allocate all signatures from mempools.
8377
8378         * marshal.c: Allocate some more signatures from mempools.
8379
8380 2006-05-09  Miguel de Icaza  <miguel@novell.com>
8381
8382         * object.c (mono_load_remote_field): The code used to provide a
8383         temporary variable for returning results if the user did not
8384         provide a result pointer.  But our temporary variable was allocted
8385         on the satck.
8386
8387         Fix calling code to always pass a result area.   Coverity ID 103.
8388
8389 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
8390
8391         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
8392         value, not the old. Fixes #78312.
8393         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
8394
8395         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
8396         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
8397         per-image cache.
8398
8399         * assembly.c (mono_assembly_close): Free image->references.
8400
8401         * assembly.c (mono_assembly_names_equal): Fix a warning.
8402         (mono_assemblies_cleanup): Cleanup more global data.
8403
8404         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
8405
8406         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
8407         ptr_cache and image->modules.
8408
8409         * image.c (mono_image_init): Allocate array_cache lazily.
8410         
8411 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8412
8413         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
8414         behavior was changed recently and has bad side effects.
8415
8416 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
8417
8418         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
8419         
8420         * assembly.c (mono_assembly_close): Remove a debug printf.
8421
8422         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
8423
8424         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
8425         to also allow for temporary references between mono_image_open ()/close ().
8426
8427         * domain.c (get_runtimes_from_exe): Add a FIXME.        
8428
8429 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
8430
8431         * marshal.c: Fix support for dynamic methods.
8432
8433         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
8434
8435         * marshal.c (mono_marshal_cleanup): New cleanup function.
8436
8437         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
8438         image mempools.
8439
8440         * class.c (mono_class_init): Fix leaking class->nested_classes.
8441
8442         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
8443
8444         * image.c (mono_image_init): Initialize the new cashes.
8445
8446         * image.c (mono_image_close): Destroy the new cashes.
8447
8448         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
8449
8450         * mempool.c (mono_mempool_strdup): New helper function.
8451
8452         * class-internals.h: Add prototype for mono_loader_unlock ().
8453
8454         * domain.c (mono_jit_info_table_find): Fix a warning.
8455         (mono_debugger_check_runtime_version): Ditto.
8456
8457         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
8458         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
8459         functions to these modules.
8460
8461         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
8462         metadata modules.
8463         
8464         * marshal.c (mono_free_bstr): Fix a warning.
8465
8466         * assembly.c (mono_assembly_open_full): Fix another small leak.
8467
8468         * object.c: Fix some unload leaks in the remoting code.
8469
8470         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
8471         function.
8472
8473         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
8474
8475         * reflection.c: Fix some unload leaks in dynamic assemblies.
8476
8477 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
8478
8479         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
8480         * marshal.h: Add BSTR support on Win32
8481         * icall.c: Add BSTR icalls
8482         * metadata.h: Add BSTR enums
8483
8484 2006-04-28  Miguel de Icaza  <miguel@novell.com>
8485
8486         Work to catch the crash from #76795 and turn it into an
8487         exception.   As I stubbed out pieces of the VisualBasic support,
8488         I found a number of places where the code was failing and I added
8489         checks to those places. 
8490         
8491         * metadata.c (do_mono_metadata_parse_generic_class): Make this
8492         function return a status code.  If we fail to parse the signature
8493         from mono_metadata_parse_generic_inst, return FALSE.
8494
8495         * loader.c (mono_get_method_from_token): If we fail to load the
8496         method (mono_class_get) return NULL.   
8497
8498         * (method_from_memberref): Return NULL if we are unable to parse
8499         the method signature
8500
8501         (mono_loader_error_prepare_exception): Since we now use the
8502         loader_error flag internally to stop processing, and obtaining
8503         exceptions that might be thrown will walk this code path the
8504         proper way of going from a MonoLoaderError into a
8505         MonoException was convoluted.   This new routine encapsulates the
8506         process of turning the error into an exception and *clearing* the
8507         error afterwards.
8508         
8509 2006-04-27  Miguel de Icaza  <miguel@novell.com>
8510
8511         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
8512         with missing assemblies), and to cope with:
8513
8514                 * Missing fieldref from a non-existing assembly.
8515                 * Missing methodref from a non-existing assembly.
8516
8517         The first batch of work to address *some* of the issues from 76661.
8518         
8519         * object.c (mono_class_create_runtime_vtable): If we fail to
8520         initialize the class raise the exception here. 
8521
8522         * metadata.c (mono_class_get_overrides_full): If any methods fail
8523         to load return the failure to the caller.
8524
8525         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
8526         flagging assemblies that failed to load.   
8527
8528         Do not crash if we are unable to load the assembly.
8529
8530         (mono_assembly_close): Do nothing with REFERENCE_MISSING
8531         assemblies. 
8532
8533         * loader.c (mono_loader_set_error_type_load): Change the
8534         convention to always pass unallocated strings, so we make our own
8535         copies (I know our own code had duplicated strings before, but
8536         this keeps the normal conventions).
8537         (method_from_memberref): Call mono_loader_set_error_method_load
8538         for all possible failures of loading the class. 
8539         Remove assert, turn into a loader error.
8540
8541         (mono_loader_error_to_exception): Move this routine from mini
8542         (mini_loader_error_to_exception) there was no need to have that in
8543         mini. 
8544
8545         * class.c (mono_class_from_typeref): If we were not able to load
8546         the assembly with mono_assembly_load_reference, call the
8547         mono_loader_set_error_type_load to register the problem.
8548
8549         (mono_class_setup_fields): If we fail to load the type from
8550         mono_metadata_parse_type_full, call mono_class_set_failure and
8551         break from the loop.
8552
8553         If class->exception_type is set, we do not layout the fields as
8554         that might crash the runtime, and instead return (from breaking
8555         from the previous loop).
8556
8557         (mono_class_setup_vtable): This now returns a boolean indicating
8558         whether the table was properly setup.   The decision is driven by
8559         mono_class_get_overrides_full which might run into non-existing
8560         methods. 
8561         
8562         (mono_class_init): Returns TRUE on success or FALSE if there was a
8563         problem in loading the type (incorrect assemblies, missing
8564         assemblies, methods, etc).
8565
8566         When we call mono_class_setup_fields we also check for a potential
8567         error inside this call (either a class exception or a general
8568         loader exception).
8569
8570         (mono_class_create_from_typedef): If the parent fails to load
8571         (calling mono_class_get_full) return NULL.
8572         
8573         ** Important **
8574
8575         calls to mono_metadata_parse_type_full should be checked
8576         everywhere and set the mono_class_set_failure
8577         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
8578
8579         The current patch checks the places where my manually constructed
8580         tests show the errors are showing up, but we should do it
8581         everywhere. 
8582
8583         ** Important2 **
8584
8585         mono_class_init return values should be tested everywhere, like
8586         the previous case this is something that we should audit
8587         everywhere and not only on the cases exposed by the tests I
8588         created. 
8589
8590 2006-04-26  Miguel de Icaza  <miguel@novell.com>
8591
8592         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
8593         boolean parameter and instead pass the information on `options'
8594         parameter (FileOptions).
8595
8596         * icall.c: Register the new signature for MonoIO.Open.
8597
8598         * debug-helpers.c (dis_one): Trying to understand how coverity
8599         works.  Fix Run 5, item 78.
8600
8601 2006-04-26  Dick Porter  <dick@ximian.com>
8602
8603         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
8604         dereference.
8605
8606 2006-04-25  Martin Baulig  <martin@ximian.com>
8607
8608         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
8609
8610         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
8611         debugger_thread_created().
8612         (debugger_gc_push_all_stacks): Don't handle the main thread in any
8613         special way.
8614         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
8615         (mono_debugger_finalize_threads): New function; undo the effects
8616         of mono_debugger_init_threads().
8617         (mono_debugger_create_all_threads): Removed.
8618
8619 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
8620
8621         * image.c (mono_image_close): Tidy up trace messages.
8622
8623         * assembly.c (mono_assembly_close): Ditto.
8624
8625         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
8626         no longer references an already freed assembly. Fixes #78168.
8627
8628 2006-04-21  Dick Porter  <dick@ximian.com>
8629
8630         * threads.c (mono_thread_detach): Fix reference counting when
8631         detaching threads.
8632
8633 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
8634
8635         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
8636         #78155.
8637
8638 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
8639
8640         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
8641         (mono_type_to_stind): Ditto.
8642
8643         * marshal.c: Use the new helper functions to simplify code.
8644
8645         * image.c (mono_image_close): Add some code for help debug assembly unloading
8646         problems.
8647
8648         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
8649         image mempool.
8650
8651         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
8652         assembly was already loaded in another appdomain. Fixes #78083.
8653
8654 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
8655
8656         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
8657         referenced assemblies.
8658         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
8659
8660         * domain.c (mono_domain_free): Add a trace message.
8661
8662         * appdomain.c (add_assemblies_to_domain): Ditto.        
8663
8664         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
8665         field.  
8666
8667 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
8668
8669         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
8670
8671 2006-04-12  Martin Baulig  <martin@ximian.com>
8672
8673         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
8674         `USE_INCLUDED_LIBGC'.   
8675
8676 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
8677
8678         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
8679         the patch contains ../ and a small directory name later. Hopefully fixes
8680         #78035.
8681
8682 2006-04-10  Martin Baulig  <martin@ximian.com>
8683
8684         Clean up the debugger's thread-handling code.
8685
8686         The debugger's thread-handling code has been moved from
8687         ../mini/debug-debugger.c to threads.c.  We now iterate directly
8688         over the `threads' hash, keep track of exiting threads and also
8689         use proper locking.
8690
8691         We can now debug XSP and XSP based applications with the debugger.
8692
8693         * object-internals.h (MonoThread): Added `gpointer end_stack'.
8694
8695         * threads.h
8696         (MonoThreadCallbacks): Removed; this was only used by the debugger.
8697         (mono_install_thread_callbacks): Likewise.      
8698
8699         * threads.c (mono_thread_callbacks): Removed.
8700         (debugger_thread_created, debugger_thread_exited): New static functions.
8701         (start_wrapper): Call debugger_thread_created().
8702         (thread_cleanup): Call debugger_thread_exited().
8703         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
8704         (mono_debugger_init_threads): New public function.
8705         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
8706         iterate directly over the `threads' hash and also use proper locking.
8707
8708         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
8709
8710         * mono-debug-debugger.h
8711         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
8712
8713 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
8714
8715         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
8716         argument type=array. Fixes #78057.
8717
8718 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
8719
8720         * culture-info-table.h : regenerated. Fixed bug #69652.
8721
8722 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
8723
8724         * loader.c metadata.c: Reapply a variant r59116.
8725         
8726         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
8727
8728         * class.c (mono_class_setup_interface_offsets): New internal function.
8729
8730         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
8731         interfaces too. Fixes #77398.
8732
8733         * reflection.c (encode_cattr_value): Add support for 
8734         parameter type=object, argument type=array.
8735         (load_cattr_value): Ditto. Fixes #77916.
8736
8737         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
8738         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
8739
8740         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
8741         a byval char array and CharSet is Ansi.
8742
8743         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
8744
8745 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
8746
8747         * metadata.c: Add some locking comments.
8748         
8749         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
8750         mempool.
8751         (mono_metadata_free_method_signature): Don't free the signature itself.
8752
8753         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
8754
8755         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
8756         reference the same MonoImage.
8757         (mono_assembly_load_from_full): Add an assert.
8758
8759 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
8760
8761         * image.c (mono_image_close): Don't put the image we are about to free into the
8762         loaded_images_guid_hash.
8763
8764         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
8765         to reduce code duplication.
8766
8767         * marshal.c: Register the native functions called by this module as icalls, to
8768         somewhat centralize the creation of MonoMethodSignature's.
8769
8770         * loader.c (mono_method_signature): Add a cache for method signatures.
8771
8772         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
8773         the parameter attributes of a method.
8774         (mono_metadata_parse_method_signature_full): Refactored the computation of
8775         parameter attributes into a separate function. Also avoid one allocation in
8776         most cases.
8777
8778         * assembly.c (mono_assembly_close): Ditto.
8779
8780         * image.c (mono_image_close): Log trace messages with INFO level.
8781
8782         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
8783
8784         * image.c reflection.c: Correct reference counting of image modules.
8785         
8786         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
8787         of this function from the image mempool.
8788         
8789         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
8790         to allow more cached types to be used.
8791
8792         * mono-debug.c (mono_debug_add_method): Appled patch from
8793         David S. Miller  <davem@sunset.davemloft.net>: Access 
8794         minfo->lexical_blocks[] entry elements using read32().
8795
8796 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
8797
8798         * loader.c (mono_free_method): No longer free the method header for non-dynamic
8799         methods as it is allocated from the mempool.
8800
8801         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
8802         image mempool.
8803
8804         * metadata-internals.h: Add comments describing the reference counting scheme
8805         used for MonoImage and MonoAssembly.
8806
8807         * image.c assembly.c reflection.c: Rework reference counting of images and 
8808         assemblies so they are freed when the runtime is shut down. Free some 
8809         additional memory structures when an image is unloaded.
8810         
8811 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
8812
8813         * class.c loader.c reflection.c: Allocate more data structures in
8814         the image mempool.
8815
8816 2006-03-31  Miguel de Icaza  <miguel@novell.com>
8817
8818         * icall.c
8819         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
8820         build on pre glib 2.4 systems.
8821
8822 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
8823
8824         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
8825
8826         * icall.c: Fix some warnings.
8827
8828 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
8829
8830         * culture-info-table.h : regenerated.
8831
8832 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
8833
8834         * threads.c, object-internals.h, verify.c: changed the culture caching
8835         code to use a normal MonoArray for storage so the GC can keep track of
8836         them easily. Fixed bits of the cache logic, too and simplified the
8837         code.
8838
8839 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
8840
8841         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
8842         thread for non-Boehm GCs.
8843
8844 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
8845
8846         * domain.c, object.c, domain-internals.h: reduce the amount of memory
8847         needed to keep track of the data for static fields.
8848
8849 2006-03-29  Raja R Harinath  <rharinath@novell.com>
8850
8851         Fix #75172
8852         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
8853         for interface classes.  Use 'num_methods' instead.
8854         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
8855         before using '->vtable_size' field.
8856
8857 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
8858
8859         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
8860         doesn't contain managed pointers, so use a normal hashtable.
8861
8862 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
8863
8864         * reflection.c, class-internals.h, domain.c: fixed handling of types
8865         used as values for objects in custom attributes (bug #77915):
8866
8867 2006-03-24  Martin Baulig  <martin@ximian.com>
8868
8869         * class.c (mono_class_setup_fields): Added support for generic
8870         instances; fixes #77580.
8871
8872 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8873
8874         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
8875
8876 2006-03-24  Dick Porter  <dick@ximian.com>
8877
8878         * file-io.c (get_file_attributes): More stat macro breakage.
8879         Fixes bug 77759.
8880
8881 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
8882
8883         * profiler.c: added the file=filename option in the default profiler
8884         to output the profile data to filename.
8885
8886 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8887
8888         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
8889         bug #77877.
8890
8891 2006-03-22  Martin Baulig  <martin@ximian.com>
8892
8893         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
8894         allocated `MonoClassField *' in `fb->handle'.
8895
8896 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
8897
8898         * class.c, image.c, metadata-internals.h: implemented new mechanism to
8899         allocate interface ID to save memory and allow better ID reuse on
8900         appdomain unload. setup_generic_vtable () removal from Martin.
8901
8902 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
8903
8904         * object.h, appdomain.c, domain.c, exception.c, icall.c,
8905         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
8906         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
8907         write barriers for reference stores with managed objects accessed with
8908         C structures in the runtime and in embedding programs.
8909
8910 2006-03-20  Raja R Harinath  <rharinath@novell.com>
8911
8912         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
8913         'interface_id' and 'max_interface_id' fields of MonoClasses
8914         representing open generic types.
8915
8916 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
8917
8918         * object.h, object.c, icall.c: added functions to deal with
8919         storing valuetypes that contain references in managed objects.
8920         * reflection.c, string-icalls.c, threads.c, marshal.c: small
8921         fixes and comments around uses of mono_array_addr ().
8922
8923 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
8924
8925         * object.h, icall.c, monitor.c: object.GetHashCode ()
8926         implementation that supports the moving garbage collector.
8927
8928 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
8929
8930         * icall.c, threads-types.h, threads.c: implemented finalizer for
8931         LocalDataStoreSlot.
8932
8933 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
8934
8935         * metadata.c (mono_type_size): Add a fixme.
8936         (mono_type_stack_size): Ditto.
8937
8938         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
8939         'type_forwarders' field.
8940
8941         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
8942         attribute from net 2.0.
8943
8944         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
8945         from class.c.
8946
8947         * class.c (mono_class_setup_fields): Fix a warning.
8948         
8949         * class.c (mono_class_from_name): Add support for assemblyref entries
8950         in the EXPORTEDTYPE table.
8951
8952         * reflection.c: Add support for handling type forwarders under net 2.0.
8953
8954         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
8955         
8956 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
8957
8958         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
8959         overwriting entries in ModuleBuild->types, also clean up the code
8960         a little. Fixes #77774.
8961
8962 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
8963
8964         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
8965         load friend assembly info when present.
8966
8967 2006-03-14  Raja R Harinath  <rharinath@novell.com>
8968
8969         Fix crasher on gtest-158.cs.
8970         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
8971         the return value if the MonoClass we want is yet in an
8972         inconsistent state.
8973         * class.c (mono_class_create_from_typedef): Add an comment
8974         explaining an order dependency between mono_class_setup_parent and
8975         mono_class_setup_mono_type.
8976
8977 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
8978
8979         * class.c: documentation updates and events bug fix.
8980
8981 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
8982
8983         * class.c: some cleanup, locking fixes.
8984
8985 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
8986
8987         * class.c: fix the generics code to setup nested
8988         type info to the instantiated type (bug #77770).
8989
8990 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
8991
8992         * marshal.c: fixed a few type correctness issues.
8993
8994 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
8995
8996         * loader.c: the Set/Get/Addrtess array methods should be public.
8997
8998 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
8999
9000         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
9001         
9002         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
9003         info->wrapper.
9004
9005 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
9006
9007         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
9008
9009         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
9010
9011         * mempool.c (mono_mempool_alloc): Speed this up a bit.
9012         (mono_mempool_alloc0): Ditto.
9013
9014 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9015
9016         * socket-io.c:
9017         (create_object_from_sockaddr): it was allocating 4 extra bytes
9018         for the AF_UNIX data. Fixes bug #77747.
9019
9020 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
9021
9022         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
9023
9024 2006-03-09  Dick Porter  <dick@ximian.com>
9025
9026         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
9027         Fixes bug 76966 again.
9028
9029 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
9030
9031         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
9032         names from r57532
9033         * appdomain.c: Bumped corlib version to 48 (due to r57532)
9034
9035 2006-03-07  Martin Baulig  <martin@ximian.com>
9036
9037         * object.c
9038         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
9039
9040 2006-03-07  Martin Baulig  <martin@ximian.com>
9041
9042         * class.c
9043         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
9044         regression introduced in r56970; see gtest-252.cs.
9045
9046         * loader.c (mono_get_method_constrained): Correctly handle generic
9047         methods; see gtest-253.cs.
9048
9049 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
9050
9051         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
9052
9053 2006-03-04  Martin Baulig  <martin@ximian.com>
9054
9055         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
9056         compute the parent type at runtime, just like we're already doing
9057         it for interfaces.
9058
9059         * reflection.c
9060         (mono_reflection_bind_generic_parameters): Don't compute the
9061         parent type anymore.
9062
9063         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
9064
9065 2006-03-04  Martin Baulig  <martin@ximian.com>
9066
9067         * mono-debug-debugger.h
9068         (mono_debugger_create_notification_function): Allocate memory at
9069         runtime and return a pointer to it.
9070
9071 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
9072
9073         * assembly.c: Fix windows build.
9074         
9075         * assembly.c: Fix build.
9076
9077         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
9078
9079         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
9080         
9081 2006-03-03  Dick Porter  <dick@ximian.com>
9082
9083         * process.c
9084         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
9085         Check parameters before dereferencing them.  Fixes Aaron's part of
9086         bug 77393.
9087
9088 2006-03-03  Raja R Harinath  <rharinath@novell.com>
9089
9090         Fix performance regression.
9091         * loader.c (find_method_in_class): Add 'from_class' argument.
9092         Rename 'klass' argument to 'in_class'.  The signature is compared
9093         against the method in 'in_class', and the corresponding method is
9094         returned from 'from_class'.
9095         (find_method): Walk both 'in_class' and 'from_class' in parallel.
9096         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
9097         type definition and generic instantiation in parallel.
9098         (mono_get_method_constrained): Update to changes.
9099
9100 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
9101
9102         * threads.c: make sure the domain is correct, too when doing
9103         mono_thread_attach ().
9104
9105 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
9106
9107         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
9108         windows. Fixes #77683.
9109
9110 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
9111
9112         * object.h, *: introduced specific way to set elements of an array
9113         of references to be used as write barrier. Still need to audit the
9114         uses of mono_array_addr.
9115
9116 2006-03-01  Miguel de Icaza  <miguel@novell.com>
9117
9118         * object-internals.h: New field to cache the assmebly name, patch
9119         from Tambet Ingo (tambet@ximian.com)
9120
9121 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
9122
9123         * decimal.h, class-internals.h, metadata-internals.h,
9124         file-io.h: mark a few function declarations as internal, to
9125         reduce the number of PLT entries.
9126
9127 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9128
9129         * file-io.c: fix typo in warning message.
9130
9131 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
9132
9133         * loader.c: on unix, lookup the "*A" version of a function
9134         if charset is auto as a second option before failing.
9135
9136 2006-02-28  Raja R Harinath  <rharinath@novell.com>
9137
9138         * class.h (mono_class_inflate_generic_method): Revert to two
9139         argument version.
9140         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
9141         (mono_class_inflate_generic_method_full): Add.
9142         * class.c (mono_class_inflate_generic_method_full): Rename from
9143         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
9144         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
9145         * loader.c, reflection.c: Update to changes.
9146
9147 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
9148
9149         * icall.c: const fixes and small improvements.
9150
9151 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9152
9153         * threadpool.c: for asynchronous connect(), enable the same workaround
9154         for BSD 6 as for the Mac. Fixes bug #77637.
9155
9156 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
9157
9158         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
9159         formatted classes. Fixes #77524.
9160
9161 2006-02-24  Raja R Harinath  <rharinath@novell.com>
9162
9163         * class.c (inflate_generic_type): Add a couple more
9164         micro-optimizations.
9165         (inflate_generic_context): Don't use the 'gmethod' from
9166         'inflate_with'.
9167         (mono_class_inflate_generic_method): If the method has generic
9168         parameters, but the passed-in context doesn't have a 'gmethod',
9169         create one.  Use the possibly simplified generic instantiation
9170         from the declaring class instead of the one passed in.
9171
9172 2006-02-24  Raja R Harinath  <harinath@gmail.com>
9173
9174         Make generic method signature and method header handling lazy.
9175         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
9176         (inflate_generic_header): Likewise.
9177         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
9178         parameter to avoid inflating types.
9179         (mono_get_inflated_method): Empty out.
9180         * class.h (mono_class_inflate_generic_method): Update to changes.
9181         * loader.c (mono_get_method_from_token): Don't parse signature for
9182         generic methods, nor methods of generic classes.
9183         (mono_method_signature): Rename from 'mono_method_signature'.
9184         Inflate signature on demand.
9185         (mono_method_get_header): Inflate method header on demand.
9186         * reflection.c: Update to changes.
9187
9188 2006-02-23  Raja R Harinath  <rharinath@novell.com>
9189
9190         * metadata.c (mono_metadata_inflate_generic_inst): If the
9191         instantiation is closed, don't bother expanding it in the new
9192         context.
9193         * class.c (inflate_generic_class): If the generic instantiation
9194         doesn't change after inflation, return the argument itself.
9195         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
9196         Add bounds checks.
9197         (inflate_generic_context): If neither the generic class nor the
9198         generic method instantiations change, return the original context.
9199         * reflection.c (mono_method_get_object): Do
9200         'mono_get_inflated_method' before accessing the ->klass field.
9201         (inflate_mono_method): Don't create a MonoGenericMethod unless
9202         necessary.
9203         (inflate_method): Don't pass a constructed type as the declaring
9204         type of a methodbuilder.
9205
9206 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
9207
9208         * object.c: fix memory overwrite.
9209
9210 2006-02-22  Dick Porter  <dick@ximian.com>
9211
9212         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
9213         it doesn't work any more.
9214         (mono_threads_request_thread_dump): Fix unused variable warnings.
9215
9216 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
9217
9218         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
9219         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
9220         the public header file.
9221
9222 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
9223
9224         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
9225
9226 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
9227
9228         * class-internals.h, object.c: reduce the size of MonoVTable
9229         and store the interface_offsets array at negative offsets.
9230
9231 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
9232
9233         * metadata.c: tweak table descriptors data structures to reduce
9234         size and runtime relocations.
9235
9236 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
9237
9238         * marshal.c: fix some types and opcodes to be type-safe
9239         in marshaling wrappers.
9240
9241 2006-02-21  Ankit Jain  <jankit@novell.com>
9242
9243         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
9244
9245 2006-02-21  Raja R Harinath  <rharinath@novell.com>
9246
9247         * metadata.c (get_constraints): Relax debugging checks for monodis.
9248
9249 2006-02-21  Ankit Jain  <jankit@novell.com>
9250
9251         * metadata.c (mono_metadata_load_generic_params): Move the code
9252         checking for ambiguous generic params from here to mono/dis/get.c
9253         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
9254
9255 2006-02-21  Raja R Harinath  <harinath@gmail.com>
9256
9257         Fix assertion triggered when compiling nemerle.
9258         * class.c (mono_get_shared_generic_inst): Rename from
9259         get_shared_inst and make non-static.
9260         * loader.c (mono_get_shared_generic_method): New.  Used to create
9261         the MonoGenericContext-equivalent of a MonoGenericContainer.
9262         (mono_get_method_from_token): Initialize the 'context' field of
9263         the created MonoGenericContainer.
9264         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
9265         * metadata.c (get_constraints): Add sanity check.
9266         * class-internals.h: Add new internal methods.
9267
9268         * reflection.c (verify_safe_for_managed_space): New sanity check.
9269         Currently checks that owner-less generic parameters aren't allowed
9270         in managed space.
9271         (mono_type_get_object): Use it.
9272         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
9273         that are now in mono_type_get_object.
9274         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
9275
9276 2006-02-19  Raja R Harinath  <harinath@gmail.com>
9277
9278         * metadata.c (mono_type_create_from_typespec): Rename from
9279         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
9280         argument and caching of types in the generic container.
9281         (unwrap_arrays, find_generic_param): Remove.
9282         * metadata-internals.h: Update.
9283         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
9284
9285 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
9286
9287         * class.c (mono_class_get_exception_for_failure): Fix a warning.
9288
9289         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
9290         return values. Fixes #77581.
9291
9292         * class.c (mono_fnptr_class_get): Switch name and name_space.
9293
9294         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
9295         classes and add support for [In, Out] attributes.
9296         (mono_marshal_free_asany): Ditto. Fixes #77524.
9297
9298 2006-02-18  Raja R Harinath  <harinath@gmail.com>
9299
9300         * class.c (mono_class_from_generic_parameter): Make more robust to
9301         incomplete MonoGenericContainers from monodis.
9302
9303 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
9304
9305         * class-internals.h: added some more exception types.
9306         * class.c, metadata.c: added a few checks to handle missing
9307         types.
9308
9309 2006-02-17  Raja R Harinath  <rharinath@novell.com>
9310
9311         Use owner-less generic-params some more.
9312         * class.c (my_mono_class_from_generic_parameter): Remove.
9313         (mono_class_from_generic_parameter): Handle null image,
9314         param->name and param->owner.
9315         (mono_class_from_mono_type): Update.
9316         (mono_class_create_from_typespec): Remove 'container' parameter.
9317         If that parameter is non-null, the result is always inflated by
9318         'mono_class_get_full' anyway.
9319         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
9320         parameter.
9321         (mono_class_get_full): Update.
9322
9323         * class.c (inflate_generic_type) [GENERICINST]: If the generic
9324         instance is not open, don't bother inflating.
9325         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
9326         parse metadata for inflated classes.
9327         (_mono_class_get): Change GenericContext* parameter to
9328         GenericContainer*.
9329         (mono_class_create_from_typespec): Likewise.  Simplify, and
9330         implement trivially.  All the cases are handled in
9331         mono_class_from_mono_type.  Don't inflate returned class.
9332         (mono_class_get_full): Delegate GENERICINST optimization to
9333         inflate_generic_type.
9334         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
9335
9336 2006-02-16  Dick Porter  <dick@ximian.com>
9337
9338         * socket-io.c (create_object_from_sockaddr): Fix typo.
9339         (create_sockaddr_from_object): Check array lengths before
9340         potentially accessing items off the end.
9341         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
9342         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
9343         (ves_icall_System_Net_Sockets_Socket_Send_internal)
9344         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
9345         length checks to avoid wraparound overflows.
9346         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
9347         contents of the array of sockets
9348         (hostent_to_IPHostEntry2)
9349         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
9350         Check return value of inet_ntop ().
9351         (addrinfo_to_IPHostEntry): Fix typo
9352
9353 2006-02-16  Raja R Harinath  <rharinath@novell.com>
9354
9355         Type metadata parsing doesn't use generic-instantiation information.
9356         * metadata.c (mono_metadata_parse_array_full): Change
9357         MonoGenericContext* parameter to MonoGenericContainer*.
9358         (mono_metadata_parse_type_full): Likewise.
9359         (mono_type_create_from_typespec_full): Likewise.
9360         (mono_metadata_parse_mh_full): Likewise.
9361         (mono_metadata_parse_generic_inst): Likewise.
9362         (do_mono_metadata_parse_generic_class): Likewise.
9363         (do_mono_metadata_parse_type): Likewise.
9364         * metadata-internals.h: Update to changes.
9365         * class.c (mono_class_find_enum_basetype): Likewise.
9366         (mono_class_setup_fields): Likewise.
9367         (mono_class_create_from_typespec): Likewise.
9368         * loader.c (method_from_methodspec): Likewise.
9369         (mono_get_method_from_token): Likewise.
9370         (mono_method_get_header): Likewise.
9371
9372 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
9373
9374         * marshal.c: handle additional GENERICINST case (patch from
9375         Thong Nguyen <tum@veridicus.com>).
9376         Fix a few cases where LDIND_I/STIND_I was used for references.
9377
9378 2006-02-16  Raja R Harinath  <rharinath@novell.com>
9379
9380         * reflection.c (mono_reflection_get_token): Remove unused variable.
9381
9382 2006-02-16  Martin Baulig  <martin@ximian.com>
9383
9384         * reflection.c (mono_reflection_get_token): Add support for fields
9385         in instantiated generic types.
9386
9387         * icall.c
9388         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
9389
9390 2006-02-15  Martin Baulig  <martin@ximian.com>
9391
9392         * icall.c
9393         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
9394         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
9395         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
9396         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
9397
9398 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
9399
9400         * class.c, metadata.c, metadata.h, object.c, icall.c,
9401         marshal.c: changed mono_type_get_underlying_type () to do
9402         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
9403         Fixed handling of instantiated generic valuetypes (bug #75479).
9404
9405 2006-02-15  Raja R Harinath  <rharinath@novell.com>
9406
9407         * metadata.c (mono_metadata_decode_signed_value): Simplify.
9408         Delegate to mono_metadata_decode_value, and work on the returned value.
9409
9410         * icall.c (ves_icall_MonoType_GetGenericArguments):
9411         Add consistency check here too.
9412         
9413 2006-02-15  Ankit Jain  <jankit@novell.com>
9414
9415         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
9416         char/short etc.
9417
9418 2006-02-15  Ankit Jain  <jankit@novell.com>
9419
9420         * metadata.c (mono_metadata_decode_signed_value): New function to decode
9421         signed values, used only for representing lower bounds of arrays.
9422         (mono_metadata_parse_array_full): Use new
9423         mono_metadata_decode_signed_value to decode lower bounds.
9424
9425 2006-02-14  Martin Baulig  <martin@ximian.com>
9426
9427         * reflection.c
9428         (mono_reflection_get_token): Support "MonoGenericMethod" and
9429         "MonoGenericCMethod" and allow generic instances / methods.
9430
9431 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
9432
9433         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
9434         to obtain the terminal size using an ioctl.
9435
9436         * object.c (mono_nullable_init): Revert this as nullable reference
9437         types are not valid.
9438         (mono_nullable_box): Ditto.
9439
9440 2006-02-09  Dick Porter  <dick@ximian.com>
9441
9442         * threads.c (mono_thread_detach): Drop a reference to the thread
9443         we're detaching.
9444
9445 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
9446
9447         * object.c (mono_nullable_init): Handle nullable reference types.
9448         (mono_nullable_box): Ditto. Fixes #77446.
9449
9450 2006-02-07  Martin Baulig  <martin@ximian.com>
9451
9452         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
9453
9454 2006-02-07  Ankit Jain  <jankit@novell.com>
9455
9456         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
9457         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
9458         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
9459         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
9460         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
9461         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
9462
9463 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
9464
9465         * class.c (mono_class_create_generic): Set type_token as well.
9466
9467         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
9468         compatible with MS.
9469
9470 2006-02-02  Martin Baulig  <martin@ximian.com>
9471
9472         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
9473         has never been used so far.
9474
9475 2006-02-02  Martin Baulig  <martin@ximian.com>
9476
9477         * mono-debug-debugger.h: Changed comment at the top of this file;
9478         the header is not installed, but it's safe to #include it from
9479         within the JIT.
9480
9481         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
9482         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
9483
9484 2006-02-02  Martin Baulig  <martin@ximian.com>
9485
9486         * mono-debug.h
9487         (MonoSymbolTable): Removed the `metadata_info' field.
9488
9489         * mono-debug.c
9490         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
9491
9492         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
9493         (mono_debugger_add_builtin_types): Removed.
9494         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
9495         (mono_debugger_create_notification_function): We now operate on a
9496         pre-allocated area; take a `gpointer' and return `void'.
9497
9498         * mono-debug-debugger.c
9499         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
9500         (mono_debugger_add_builtin_types): Removed.
9501
9502 2006-02-02  Martin Baulig  <martin@ximian.com>
9503
9504         * threads.c (mono_debugger_create_all_threads): New public method.
9505
9506 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
9507
9508         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
9509         breaks on several platforms.
9510
9511 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
9512
9513         * assembly.c: the VS.NET build doesn't supply default values for
9514         MONO_ASSEMBLIES and MONO_CFG_DIR.
9515
9516 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
9517
9518         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
9519         helper function.
9520
9521         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
9522
9523         * loader.c (method_from_memberref): Fix a warning.
9524
9525         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
9526
9527         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
9528         with explicit layout. Fixes #77433.
9529
9530 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
9531
9532         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
9533         max_interface_id is initialized before using it. Fixes #77398.
9534         (ves_icall_Type_GetInterfaces): Ditto.
9535
9536 2006-01-30  Raja R Harinath  <rharinath@novell.com>
9537
9538         * metadata.c (mono_metadata_parse_method_signature_full): Don't
9539         allocate memory for parameter attributes when parsing memberref
9540         signatures.
9541         * loader.c (mono_loader_set_error_method_load): Don't warn.
9542         (method_from_memberref): Ensure MissingMethodException gets thrown
9543         if method is not found.  Make warning more informative.
9544
9545 2006-01-29  Raja R Harinath  <harinath@gmail.com>
9546
9547         Fix #77397
9548         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
9549         return true if is byref.
9550         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
9551         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
9552         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
9553
9554 2006-01-27  Raja R Harinath  <rharinath@novell.com>
9555
9556         Fix tests/find-method.2.il
9557         * loader.c (find_method, find_method_in_class): Remove is_inflated
9558         argument.  Revert 2006-01-18 change.
9559         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
9560         is generic, search for method in its generic definition.
9561         * class.c (mono_class_setup_vtable_general): Print generic
9562         arguments of generic types in debugging printf.
9563
9564 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
9565
9566         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
9567
9568         * threads.c (mono_threads_request_thread_dump): New helper function.
9569
9570 2006-01-25  Raja R Harinath  <rharinath@novell.com>
9571
9572         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
9573
9574 2006-01-25  Ankit Jain  <jankit@novell.com>
9575
9576         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
9577         move definition to ..
9578         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
9579         
9580 2006-01-25  Ankit Jain  <jankit@novell.com>
9581             Raja R Harinath  <rharinath@novell.com>
9582
9583         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
9584         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
9585         as necessary.
9586
9587 2006-01-25  Martin Baulig  <martin@ximian.com>
9588
9589         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
9590         `MonoDebuggerThread' into debug-debugger.c.
9591
9592 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
9593
9594         * profiler.c: fix printing of data.
9595
9596 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
9597
9598         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
9599           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
9600
9601 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
9602
9603         * object.c: fix deadlock related to string interning.
9604
9605 2006-01-23  Martin Baulig  <martin@ximian.com>
9606
9607         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
9608
9609         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
9610
9611 2006-01-23  Martin Baulig  <martin@ximian.com>
9612
9613         * mono-debug.h: Moved the prototypes of some functions which are
9614         used by the JIT here from mono-debug-debugger.h.
9615
9616 2006-01-21  Martin Baulig  <martin@ximian.com>
9617
9618         * Makefile.am: Don't install mono-debug-debugger.h.
9619
9620 2006-01-21  Martin Baulig  <martin@ximian.com>
9621
9622         * mono-debug-debugger.h: Enforce the private status of this header
9623         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
9624         Moved some stuff from mono-debugger-jit-wrapper.h here.
9625
9626 2006-01-20  Raja R Harinath  <rharinath@novell.com>
9627
9628         * class.c (mono_class_from_typeref): Add a sanity test to help
9629         catch lack of assembly load/search hooks.
9630
9631 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
9632
9633         * marshal.c (emit_struct_conv): Relax the fields with same offset
9634         check even more. Fixes #77230.
9635
9636 2006-01-18  Martin Baulig  <martin@ximian.com>
9637
9638         * loader.c (find_method_in_class): Added `gboolean is_inflated'
9639         argument; if false, we compare the uninstantiated signatures.
9640         (method_from_memberref): Compare the uninstantiated signatures;
9641         fixes #76417.
9642
9643 2006-01-18  Robert Jordan  <robertj@gmx.net>
9644
9645         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
9646         Clear the weak link. Fixes bug #77170.
9647
9648         * gc.c (mono_gchandle_free):
9649         Reflect *-gc.c changes (tiny optimization).
9650
9651 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
9652
9653         * metadata.c (mono_metadata_signature_dup): Applied patch from
9654         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
9655         Fixes #77288.
9656
9657 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
9658
9659         * marshal.c (emit_struct_conv): Allow fields with the same offset when
9660         marshalling from native to managed code. Fixes #77230.
9661
9662 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9663
9664         * threadpool.c: fix problem (Mac only) when more than one asynchronous
9665         connect. Fixes bug #77020.
9666
9667 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
9668
9669         * class.c: fixed id assignement for nested interfaces (bug #77275).
9670         Added also better info for --print-vtable debugging.
9671
9672 2006-01-12  Martin Baulig  <martin@ximian.com>
9673
9674         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
9675         interfaces on-the-fly; fixes #76625.
9676
9677         * class-internals.h
9678         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
9679         don't need that anymore.
9680
9681 2006-01-12  Miguel de Icaza  <miguel@novell.com>
9682
9683         * socket-io.c
9684         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
9685         To avoid initing the nested_classes when not needed I turned the
9686         PeerCredData as a toplevel internal class, as it has to be shared
9687         anyways. 
9688
9689         Fixes the CASA issue.
9690
9691 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
9692
9693         * domain.c: Accessors for MonoJitInfo
9694
9695         * profiler-private.h: Add jitinfo to the end jit hook
9696
9697         * profiler.[ch]: Define new hooks, called after jitting which give
9698         the MonoJitInfo that was compiled
9699
9700 2006-01-10  Martin Baulig  <martin@ximian.com>
9701
9702         * class.c (mono_class_setup_events): Add support for generic
9703         classes; fixes #76440.
9704
9705 2006-01-06  Raja R Harinath  <rharinath@novell.com>
9706
9707         Fix #77160.
9708         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
9709         on passed-in method.
9710
9711 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
9712
9713         * object.c (mono_runtime_invoke_array): Add Nullable support.
9714
9715         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
9716
9717 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
9718
9719         * file-io.c: Don't consider sockets as directory and avoid an endless
9720         loop. Fix bug #76966.
9721
9722 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
9723
9724         * object.c (mono_nullable_init): New helper function.
9725         (mono_nullable_box): Ditto.
9726
9727         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
9728
9729         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
9730
9731         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
9732         
9733 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
9734
9735         * class.c (mono_class_is_assignable_from): Make T assignable to 
9736         Nullable<T>.
9737
9738 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
9739
9740         * appdomain.c: Bump corlib version to 46.
9741         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
9742         serialization purpose) and changed ves_icall_System_Reflection_
9743         Assembly_get_code_base signature to accept a boolean (to escape, or 
9744         not, the assembly code base).
9745
9746 2005-12-23  Dick Porter  <dick@ximian.com>
9747
9748         * icall.c: 
9749         * threads-types.h: 
9750         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
9751         CreateEvent icall now returns "created" boolean parameter.
9752
9753 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
9754
9755         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
9756         #76967.
9757
9758         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
9759         when attr_klass is an interface. Fixes #77045.
9760
9761 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
9762
9763         * marshal.c (emit_struct_conv): Fix previous patch.
9764         
9765         * marshal.c (emit_struct_conv): Add a check for fields with the same
9766         offset.
9767
9768 2005-12-20  Raja R Harinath  <rharinath@novell.com>
9769
9770         Fix regression in Mono.C5.
9771         * class.c (mono_class_create_generic): If 'klass' is an interface
9772         set up the interface offsets.
9773         (mono_class_is_assignable_from): Don't throw away generic arguments.
9774
9775 2005-12-19  Raja R Harinath  <rharinath@novell.com>
9776
9777         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
9778         type parameters.
9779
9780 2005-12-15  Raja R Harinath  <rharinath@novell.com>
9781
9782         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
9783         dead store.
9784         (do_mono_metadata_parse_generic_class): Don't pass the current
9785         generic context when parsing the type being instantiated: it
9786         cannot use it, anyway.
9787
9788         * loader.c (method_from_memberref): Don't inflate a signature if
9789         it doesn't contain any type parameters.
9790
9791 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
9792
9793         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
9794
9795 2005-12-14  Martin Baulig  <martin@ximian.com>
9796
9797         * class.c
9798         (mono_type_get_name_recurse): Don't return null for type
9799         parameters and open generic classes.
9800         (mono_class_setup_methods): Don't exclude generic instances.
9801         (mono_get_unique_iid): Use different IDs for different
9802         instantiations of the same generic type.
9803         (mono_class_setup_vtable): Only use setup_generic_vtable() for
9804         open generic instances; create a normal vtable for closed generic
9805         instances.
9806         (mono_class_setup_vtable_general): We're now also called for
9807         closed generic instances.
9808
9809         * reflection.c
9810         (mono_reflection_bind_generic_parameters): Correctly use
9811         mono_metadata_lookup_generic_inst() everywhere.
9812
9813 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
9814
9815         * object.c (mono_class_create_runtime_vtable): Call 
9816         mono_class_setup_vtable ().
9817
9818         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
9819         function.
9820         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
9821         #76959.
9822
9823         * loader.c (mono_loader_set_error_type_load): Print the type load
9824         warnings to the console so they are more visible to the user.
9825         (mono_loader_set_error_method_load): Ditto.
9826
9827         * reflection.c (ensure_runtime_vtable): Revert the last change as it
9828         is still broken.
9829         
9830         * reflection.c (ensure_runtime_vtable): Fix build.
9831
9832         * reflection.c (ensure_runtime_vtable): Disable an optimization which
9833         doesn't work in all cases.
9834
9835 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
9836
9837         * object.c (mono_array_new_full): Treat a single dimensional array
9838         with 0 lower bounds as an szarray. Fixes #76973.
9839
9840         * reflection.c (custom_attr_visible): Really fix this.
9841
9842 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
9843
9844         * reflection.c (custom_attr_visible): Allow nested public attributes
9845         as well.
9846
9847         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
9848         interface check.
9849
9850 2005-12-12  Raja R Harinath  <harinath@gmail.com>
9851
9852         * class.c (set_generic_param_owner): Delete.
9853         (mono_class_create_from_typedef): Don't set ->owner field of
9854         generic parameters to "param containers" of enclosing classes.
9855         * reflection.c (mono_reflection_initialize_generic_parameter):
9856         Likewise.
9857
9858 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
9859
9860         * reflection.c (custom_attr_visible): Fix build.
9861
9862 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
9863
9864         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
9865         private attributes.
9866         
9867         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
9868         handling of null parameter defaults.
9869
9870 2005-12-09  Raja R Harinath  <rharinath@novell.com>
9871
9872         * class.c (mono_class_from_generic_parameter): Don't set
9873         klass->generic_container.
9874         (my_mono_class_from_generic_parameter): Likewise.
9875
9876 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
9877
9878         * reflection.c (load_public_key): Fix a warning.
9879         (method_encode_code): Fix unaligned accesses.
9880
9881 2005-12-07  Martin Baulig  <martin@ximian.com>
9882
9883         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
9884
9885         * reflection.c
9886         (write_generic_param_entry): Encode our custom attrs.
9887
9888         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
9889
9890 2005-12-07  Martin Baulig  <martin@ximian.com>
9891
9892         * reflection.c (encode_new_constraint): Removed; we don't use the
9893         `NewConstraintAttribute' anymore.
9894
9895 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
9896
9897         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
9898         not fire a TypeResolve event when Assembly.GetType () is called.
9899
9900 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
9901
9902         Beginning of support for nullable types in the runtime. Parts of
9903         this patch are from Martin.
9904
9905         * appdomain.c (MONO_CORLIB_VERSION): Bump
9906
9907         * domain.c (mono_init_internal): get the nullable type
9908
9909         * class.c (mono_class_is_nullable): New method
9910         (mono_class_get_nullable_param): New mehod
9911         (mono_class_create_generic): In types T? set cast_class to T
9912
9913         * class-internals.h (MonoDefaults): new nullable default class
9914         (mono_class_get_nullable_param, mono_class_get_nullable_param):
9915         new methods.
9916
9917 2005-12-05  Raja R Harinath  <rharinath@novell.com>
9918
9919         * metadata.c (select_container): New.  Refactor code to select the
9920         appropriate GenericContainer given the type of generic parameter
9921         we are looking for.
9922         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
9923         not a MonoGenericContext.  Use select_container.  Update parameters.
9924         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
9925         and MONO_TYPE_MVAR.
9926         (unwrap_arrays): Remove duplicate tests.
9927         (find_generic_param): Rename from 'has_same_context'.  Now walks a
9928         generic instantiated class to find any arguments that are generic
9929         parameters.
9930         (mono_type_create_from_typespec_full): Use find_generic_param to
9931         avoid evicting some generic instantiations from the typespec
9932         cache.
9933
9934 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
9935
9936         * reflection.c: fixed writing of doubles on ARM FPA.
9937
9938 2005-12-02  Robert Jordan  <robertj@gmx.net>
9939
9940         * icall.c: Fixed EventInfo.ReflectedType (#76829).
9941
9942 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9943
9944         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
9945         least on SUSE 10 they are not the same (on debian, they are just the
9946         same thing).
9947
9948 2005-12-01  Raja R Harinath  <rharinath@novell.com>
9949
9950         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
9951         DeclaringType for VARs and MVARs.
9952         * class.c (set_generic_param_owner): Fix initialization of owner
9953         fields.
9954
9955 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
9956
9957         * icall.c: fixed Enum.ToObject() to correctly convert the values.
9958
9959 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9960
9961         * threadpool.c: workaround for a bug that shows up on the Mac:
9962         select()+connect() on a blocking socket is not like it should
9963         be, so we proceed to connect() in that case, wasting the I/O
9964         threadpool thread until connect succeedes. Fixes bug #75436.
9965
9966 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9967
9968         * threadpool.c: fix typo when setting file descriptor states.
9969
9970 2005-11-28  Raja R Harinath  <rharinath@novell.com>
9971
9972         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
9973         * metadata.c (mono_metadata_parse_method_signature_full): Don't
9974         create a temporary signature container.
9975         (mono_metadata_parse_generic_param): Update to changes.
9976         (mono_type_create_from_typespec_full): Update to changes.
9977         * loader.c (method_from_memberref): Don't use a
9978         MonoGenericContainer while parsing a memberref signature.
9979         (method_from_methodspec): Remove dead-store of the 'container'
9980         variable.  It's overwritten before use.
9981
9982         * metadata.c (mono_type_create_from_typespec_full): Make debugging
9983         checks tighter.
9984         (mono_metadata_parse_generic_param): Likewise.
9985         * loader.c (find_method_in_class): Does not need a
9986         MonoGenericContainer.  Use 'mono_method_signature' rather than
9987         'mono_method_signature_full'.
9988         (find_method, mono_get_method_constrained, method_from_memberref):
9989         Update to changes.
9990
9991         * metadata.c (mono_type_create_from_typespec_full): Ensure that
9992         owner-less generic-parameters are never evicted from the typespec
9993         cache.
9994
9995         * loader.c (method_from_memberref): Don't use the current context
9996         when parsing signatures.
9997         (method_from_methodspec, mono_get_method_from_token): Update to changes.
9998
9999         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
10000         side-effects in g_assert.
10001         * loader.c (mono_get_method_from_token): Resolve klass earlier so
10002         that we don't potentially lose information.
10003
10004 2005-11-26  Dick Porter  <dick@ximian.com>
10005
10006         * icall.c:
10007         * threads.c: icalls to implement basic (ie, not named)
10008         System.Threading.Semaphore.
10009
10010 2005-11-24  Dick Porter  <dick@ximian.com>
10011
10012         * process.c
10013         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
10014         Use GetProcessId() if it's available.
10015
10016 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
10017
10018         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
10019
10020 2005-11-23  Raja R Harinath  <rharinath@novell.com>
10021             Ankit Jain  <jankit@novell.com>
10022
10023         * loader.c (mono_get_method_from_token): Initialize 'method' field
10024         of all generic parameters before parsing the signature.  Remove
10025         code that "fixed"-up MVAR references.
10026
10027 2005-11-23  Ankit Jain  <jankit@novell.com>
10028
10029         * metadata.c (mono_metadata_has_generic_params):
10030         (mono_metadata_load_generic_param_constraints):
10031         (mono_metadata_load_generic_params): Move duplicate code ...
10032         (mono_metadata_get_generic_param_row): ... here. Returns the
10033         first row-id in GenericParam table for a given owner (token).
10034         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
10035         prototype.
10036
10037 2005-11-23  Raja R Harinath  <rharinath@novell.com>
10038             Ankit Jain  <jankit@novell.com>
10039
10040         * metadata.c (mono_metadata_class_equal): Pass signature_only when
10041         comparing VARs too.
10042         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
10043         type->data.generic_param only if the type is an MVAR.
10044         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
10045         leak owner-less VARs and MVARs into managed space.
10046
10047 2005-11-21  Martin Baulig  <martin@ximian.com>
10048
10049         * class-internals.h
10050         (MonoMethod): Moved the `generic_container' here from
10051         `MonoMethodNormal' since we now also need it for
10052         `MonoMethodPInvoke';
10053         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
10054         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
10055         an union containing both `MonoMethodNormal' and
10056         `MonoMethodPInvoke'.
10057
10058         * loader.c
10059         (mono_get_method_from_token): Allow implementing generic methods
10060         as interncalls.
10061
10062         * threads.c
10063         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
10064         icall.
10065
10066 2005-11-17  Dick Porter  <dick@ximian.com>
10067
10068         * icall.c: 
10069         * process.h: 
10070         * process.c: Split the Process Start_internal icall into
10071         ShellExecuteEx_internal and CreateProcess_internal, which are
10072         called depending on whether UseShellExecute is true.  Fixes bug
10073         76670.
10074
10075         * appdomain.c (MONO_CORLIB_VERSION): Incremented
10076
10077 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
10078
10079         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
10080         'msize' parameters, use the information in 'mspec' instead.
10081         (emit_object_to_ptr_conv): Ditto.
10082
10083         * marshal.c (emit_struct_conv): Handle explicit layout structs with
10084         fields out of order. Fixes #76733.
10085
10086 2005-11-17  Ankit Jain  <jankit@novell.com>
10087
10088         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
10089
10090 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
10091
10092         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
10093           bug #76575.
10094
10095 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
10096
10097         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
10098         for types with non-auto layout. Fixes #76717.
10099
10100 2005-11-16  Ankit Jain  <jankit@novell.com>
10101
10102         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
10103         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
10104         if generic_context is null.
10105           (mono_metadata_generic_param_equal): param->owner can be null.
10106           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
10107         null.
10108
10109 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
10110
10111         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
10112         the correct value.
10113
10114 2005-11-15  Martin Baulig  <martin@ximian.com>
10115
10116         * object.c (set_value): Use mono_class_from_mono_type() instead of
10117         the hack for generic instances; fixes #76136.
10118
10119 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
10120
10121         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
10122         fields.
10123
10124         * image.c (load_metadata_ptrs): Initialize the new fields.
10125
10126         * reflection.c (create_dynamic_mono_image): Ditto.
10127
10128         * reflection.c (build_compressed_metadata): Use the new fields.
10129
10130         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
10131         icall.
10132
10133         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
10134         icall.
10135         
10136 2005-11-15  Ankit Jain  <jankit@novell.com>
10137             Raja R Harinath  <harinath@gmail.com>
10138
10139         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
10140         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
10141         new per-generic_container cache if the cached MonoType's context matches
10142         the current context.
10143           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
10144         to the expected context.
10145           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
10146
10147 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10148
10149         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
10150         we changed the signature of an icall.
10151         * icall.c: Modify to mono_double_ParseImpl return true/false 
10152         depending on the success, instead of throwing the exception. This will
10153         help us in Double.TryParse methods.
10154         
10155 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
10156
10157         * marshal.c (emit_marshal_object): Throw an exception when
10158         marshalling 'object' instead of crashing. Fixes #76696.
10159
10160 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
10161
10162         * class-internals.h: Add prototype for mono_type_get_full_name ().
10163
10164 2005-11-11  Dick Porter  <dick@ximian.com>
10165
10166         * threads.c (mono_thread_manage): Make sure the main thread has
10167         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
10168
10169 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
10170
10171         * loader.c (mono_loader_set_error_type_load): Log a warning to the
10172         console about the missing type.
10173         (mono_loader_set_error_method_load): Ditto.
10174
10175 2005-11-09  Miguel de Icaza  <miguel@novell.com>
10176
10177         * mono-config.c (mono_get_config_dir): Set the system defaults if
10178         none is specified.
10179
10180         * assembly.c (mono_set_dirs): New API entry point to set the
10181         assembly and the config directory in one call
10182
10183 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
10184
10185         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
10186         the ftnptr was created from a delegate in a domain other than the
10187         current domain. Fixes #75377.
10188
10189         * exception.h exception.c: Add mono_get_exception_not_supported ().
10190
10191 2005-11-08  Martin Baulig  <martin@ximian.com>
10192
10193         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
10194
10195 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
10196
10197         * security-manager.h: Added definitions to deal with strongname key 
10198         pairs bigger (and smaller) than 1024 bits.
10199         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
10200         adjust wrt the public key length being used.
10201
10202 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
10203
10204         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
10205           Windows build (r51396-51397).
10206
10207 2005-11-03  Martin Baulig  <martin@ximian.com>
10208
10209         * class.c (mono_class_setup_vtable_general): Also add generic
10210         methods to the vtable; fixes #76581.
10211
10212 2005-11-01  Miguel de Icaza  <miguel@novell.com>
10213
10214         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
10215         sure that we lookup GetString method from the System.Text.Encoding
10216         class, not the derived class or we get an empty method.
10217
10218         Fixed class #76612.
10219
10220 2005-10-25  Miguel de Icaza  <miguel@novell.com>
10221
10222         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
10223         if it has been previously set (embedders). 
10224
10225         Make mono_set_rootdir available also on Unix.
10226
10227 005-10-24  Robert Jordan  <robertj@gmx.net>
10228
10229         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
10230
10231 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
10232
10233         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
10234         only calls which are made to native code use this flag.
10235
10236         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
10237
10238 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
10239
10240         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
10241         Add support for FieldBuilders.
10242
10243 2005-10-29  Martin Baulig  <martin@ximian.com>
10244
10245         * mono-debug.c
10246         (mono_debug_using_mono_debugger): New public method; returns
10247         whether we're running inside the debugger.
10248
10249 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
10250
10251         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
10252         for Method/Constructor/FieldBuilders.
10253
10254 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
10255
10256         * reflection.c (module_add_cattrs): Save custom attributes for global methods
10257         and fields as well.
10258
10259 2005-10-26  Martin Baulig  <martin@ximian.com>
10260
10261         * mono-debug-debugger.c
10262         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
10263
10264 2005-10-24  Raja R Harinath  <harinath@gmail.com>
10265
10266         * icall.c (base64_to_byte_array): Don't pass an out-of-range
10267         integer to isspace.
10268
10269 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
10270
10271         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
10272         when passing valuetypes byref. Fixes #76502.
10273
10274 2005-10-19  Jackson Harper  <jackson@ximian.com>
10275
10276         * profiler.c: Don't put a . in front of types that are not in a
10277         namespace.
10278
10279 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
10280
10281         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
10282
10283 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
10284
10285         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
10286         #76436.
10287         (mono_marshal_get_ldflda_wrapper): Fix a warning.
10288
10289 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10290
10291         * assembly.c metadata-internals.h icall.c: Define an additional
10292         parameter for mono_assembly_name_parse_full, so we can avoid creating
10293         S.R.AssemblyName.Version when no version info wasn't passed.
10294         
10295 2005-10-09  Miguel de Icaza  <miguel@novell.com>
10296
10297         * class.c (mono_type_get_full_name): Reimplement method that was
10298         removed. 
10299
10300         * image.c: Some docs
10301
10302 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
10303
10304         * profiler.c (output_newobj_profile): Fix printing of Total memory
10305         on x86.
10306
10307 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
10308
10309         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
10310
10311 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
10312
10313         * threads.c: remove debug output.
10314
10315 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
10316
10317         * threads.c (mono_thread_manage): Fix crashes if more than 64
10318         threads need to be aborted. Hopefully fixes #75899.
10319
10320         * assembly.c (mono_stringify_assembly_name): New helper function.
10321
10322         * class.c: Use mono_stringify_assembly_name instead of the similar
10323         static function.
10324
10325         * assembly.h assembly.c: Add support for calling a postload search 
10326         hook if an assembly cannot be loaded.
10327
10328         * appdomain.c: Register new search hooks which call the AssemblyResolve
10329         events in AppDomain. Fixes #75231
10330
10331 2005-10-07  Martin Baulig  <martin@ximian.com>
10332
10333         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
10334         methods without debug info.
10335
10336 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
10337
10338         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
10339         wrappers.
10340
10341 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10342
10343         * file-io.c: now that we return symlinks, use lstat and, when the file
10344         is a symbolic link, stat, to get the file attributes. Also avoid the
10345         conversion to/from utf16/external.
10346
10347 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
10348
10349         * class.c (mono_class_layout_fields): Compute klass->has_references
10350         correctly if an embedded valuetype is not yet initialized. Fixes
10351         #76331.
10352
10353 2005-10-04  Martin Baulig  <martin@ximian.com>
10354
10355         * metadata.c
10356         (mono_metadata_load_generic_param_constraints): New public
10357         function; splitted the constraints loading out from
10358         mono_metadata_load_generic_params().
10359
10360         * class.c (mono_class_create_from_typedef): Call
10361         mono_metadata_load_generic_param_constraints() after setting up
10362         the type and creating our parent; fixes #75329.
10363
10364 2005-10-04  Martin Baulig  <martin@ximian.com>
10365
10366         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
10367         non-dynamic parent classes.
10368
10369 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
10370
10371         * file-io.c : win32 build fix (ETXTBSY seems not found).
10372
10373 2005-10-04  Martin Baulig  <martin@ximian.com>
10374
10375         * reflection.c
10376         (mono_image_get_methodspec_token): Make the cache actually work;
10377         fixes #75974.
10378
10379 2005-10-04  Martin Baulig  <martin@ximian.com>
10380
10381         * class.c (mono_class_name_from_token): Removed the unneccessary
10382         `MonoGenericContext *' argument.
10383
10384 2005-10-04  Martin Baulig  <martin@ximian.com>
10385
10386         * loader.c
10387         (method_from_methodspec): Make the caching work again; fixes the
10388         performance regression from #76262.
10389
10390 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10391
10392         * file-io.c:
10393         * file-io.h:
10394         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
10395         GetFileSystemEntries that performs the same work but without going
10396         into io-layer, locking, etc.
10397
10398 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
10399
10400         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
10401         ThreadState_Stopped as well. Fixes #76047.
10402
10403 2005-09-29  Martin Baulig  <martin@ximian.com>
10404
10405         * class.c
10406         (inflate_generic_context): If the new context has a `gmethod', set
10407         its `container' that that gmethod's `container'.
10408
10409         * metadata.c
10410         (mono_metadata_parse_generic_param): Simplify things;
10411         `generic_container = generic_context->container;' is just fine.
10412
10413         * loader.c (method_from_methodspec): Code cleanups.
10414
10415 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
10416
10417         * decimal.c: fix warning (and let gcc generate correct
10418         code on ARM with optimizations).
10419
10420 2005-09-28  Martin Baulig  <martin@ximian.com>
10421
10422         * loader.c
10423         (method_from_memberref): Added `MonoGenericContext *class_context'
10424         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
10425         (method_from_methodspec): If we're a memberref, use the enclosing
10426         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
10427
10428 2005-09-28  Martin Baulig  <martin@ximian.com>
10429
10430         * object.c (mono_runtime_invoke_array): Added support for
10431         MONO_TYPE_GENERICINST; fixes #75917.
10432
10433 2005-09-27  Martin Baulig  <martin@ximian.com>
10434
10435         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
10436         `k->byval_arg.type' to determine the actual type.
10437
10438         * loader.c (method_from_methodspec): Removed some hacks.
10439
10440 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
10441
10442         * class-internals.h (mono_field_is_deleted): Do the test for
10443         rtspecialname before we check the actual name of the field. This
10444         prevents us from dereferencing a pointer into the string table,
10445         saving us from accessing a few pages
10446
10447         * *.c: Replace the use of {Enter,Leave}CriticalSection with
10448         macros. This will allow a deadlock debugger to easily be plugged
10449         in.
10450
10451 2005-09-27  Martin Baulig  <martin@ximian.com>
10452
10453         * loader.c (method_from_methodspec): Create a "signature"
10454         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
10455
10456 2005-09-27  Martin Baulig  <martin@ximian.com>
10457
10458         * class.c
10459         (inflate_generic_class): Correctly set the new context's
10460         container.
10461
10462         * loader.c
10463         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
10464         instead of a `MonoGenericContext *'.
10465         (mono_method_signature_full): Take a `MonoGenericContainer *'
10466         instead of a `MonoGenericContext *'.
10467
10468         * metadata.c
10469         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
10470         instead of a `MonoGenericContext *'.
10471         (mono_metadata_parse_method_signature_full): Likewise.
10472
10473 2005-09-26  Martin Baulig  <martin@ximian.com>
10474
10475         * class.c
10476         (mono_class_from_generic_parameter): Set `klass->generic_container'
10477         (mono_class_from_generic_parameter): Likewise.
10478         (mono_bounded_array_class_get): We inherit the generic container
10479         from the element class.
10480
10481         * loader.c
10482         (find_method, find_method_in_class): Take a `MonoGenericContext *'
10483         argument rather than computing it here.
10484         (method_from_memberref): Correctly set the generic context before
10485         parsing the signature.  Fixes #75681.
10486
10487 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
10488
10489         * object.c (mono_class_has_special_static_fields): Fix warnings.
10490
10491 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10492
10493         * assembly.c: Add parse_public_key function, to
10494         par the public keys. Also added mono_assembly_name_parse_full,
10495         to define it the parsed key should be freed or not.
10496         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
10497         to parse a long format assembly name.
10498         * metadata-internals.h: Keep mono_assembly_name_parse_full as
10499         private, since calling it to preserve the key requires
10500         freeing it manually.
10501         
10502 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
10503
10504         * locales.c : removed HAVE_ICU part.
10505
10506 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
10507
10508         * object.c (mono_class_create_runtime_vtable): Avoid calling 
10509         field_is_special_static if the klass has no special static fields.
10510
10511         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
10512         (MonoCachedClassInfo): Likewise.
10513
10514         * object.c (mono_class_has_special_static_fields): New helper function.
10515
10516 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
10517
10518         * class.c (mono_class_create_from_typedef): Don't call 
10519         interfaces_from_typedef_full for enums.
10520         (mono_class_create_from_typedef): Compute the base types of enums directly
10521         without calling mono_class_setup_fields ().
10522         (mono_class_find_enum_basetype): New helper function.
10523
10524         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
10525         one place inside the string heap.
10526         
10527 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
10528
10529         * class.c: locking fixes, code cleanups, some docs added.
10530         Allocate some data structures in the image mempool.
10531
10532 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
10533
10534         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
10535         the example code.
10536         
10537 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
10538
10539         * class-internals.h, class.c, reflection.c: reduce memory taken by
10540         MonoClass.
10541
10542 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
10543
10544         * metadata.c, metadata.h, loader.h: documentation updates, code and
10545         API cleanups.
10546
10547 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
10548
10549         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
10550         the example code.
10551
10552         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
10553         page faults caused by the runtime while reading metadata.
10554
10555 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10556
10557         * socket-io.c: the field names were changed 3 months ago and no one
10558         realized until bug #76077 got filed!
10559
10560 2005-09-20  Martin Baulig  <martin@ximian.com>
10561
10562         * icall.c (assembly_icalls): Removed some unused debugger icalls.
10563
10564 2005-09-20  Martin Baulig  <martin@ximian.com>
10565
10566         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
10567         write the rank into the class entry.
10568
10569 2005-09-20  Martin Baulig  <martin@ximian.com>
10570
10571         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
10572
10573 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
10574
10575         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
10576
10577         * icall.c (custom_attrs_defined_internal): New icall.
10578
10579         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
10580         function.
10581         (mono_custom_attrs_construct_by_type): New helper function.
10582
10583 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
10584
10585         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
10586         terminate the resulting string. Fixes #76123.
10587
10588 2005-09-16  Martin Baulig  <martin@ximian.com>
10589
10590         * mono-debug.c
10591         (mono_debug_add_method): Ignore inflated methods for the moment.
10592
10593 2005-09-14  Martin Baulig  <martin@ximian.com>
10594
10595         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
10596
10597 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
10598
10599         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
10600         return a success/failure indication.
10601         (mono_metadata_interfaces_from_typedef_full): Ditto.
10602         (get_constraints): Ditto.
10603
10604 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
10605
10606         * marshal.c (emit_marshal_array): Fix handling of null arrays.
10607         
10608         * marshal.c (emit_marshal_array): Add support for returning string
10609         arrays from delegates. Fixes #76063.
10610
10611         * marshal.c: Use the emit_ldloc/stloc macros where possible.
10612
10613 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
10614
10615         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
10616         icall.
10617
10618 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
10619
10620         * reflection.c icall.c: Fix after mono_get_exception_type_load
10621         signature change.
10622
10623         * assembly.c (mono_assembly_get_assemblyref): New helper function.
10624         (mono_assembly_load_reference): Use the new helper.
10625
10626         * class-internals.h (MonoLoaderError): New structure containing 
10627         information about type loading errors.
10628
10629         * class-internals.h loader.c: Add APIs to store per-thread loader
10630         error information.
10631
10632         * loader.c class.c: Set the loader error if needed.
10633
10634         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
10635
10636 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
10637
10638         * decimal.c: fixed to handle the broken ARM fp format.
10639
10640 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
10641
10642         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
10643         broken.
10644
10645 2005-09-06  Martin Baulig  <martin@ximian.com>
10646
10647         * domain.c (supported_runtimes): Added v2.0.50727.
10648
10649 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
10650
10651         * culture-info.h: reduce the size of some structures.
10652
10653 2005-09-05  Martin Baulig  <martin@ximian.com>
10654
10655         Reflect latest API changes in the August CTP.
10656
10657         * icall.c
10658         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
10659         ("MonoType.HasGenericArguments"): Removed.
10660         ("MonoMethod.BindGenericParameters"): Renamed to
10661         "MakeGenericMethod".
10662         ("MethodBuilder.BindGenericParameters"): Renamed to
10663         "MakeGenericMethod".    
10664
10665 2005-09-05  Martin Baulig  <martin@ximian.com>
10666
10667         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
10668
10669 2005-09-05  Martin Baulig  <martin@ximian.com>
10670
10671         Applying a patch from Michal Moskal <malekith@nemerle.org>.
10672
10673         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
10674         generic_container is non-NULL.
10675
10676 2005-09-05  Martin Baulig  <martin@ximian.com>
10677
10678         Applying a patch from Michal Moskal <malekith@nemerle.org>.
10679
10680         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
10681
10682 2005-08-29  Michal Moskal  <malekith@nemerle.org>
10683
10684         * reflection.c (encode_locals,
10685         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
10686         for large generic types.
10687
10688 2005-09-05  Martin Baulig  <martin@ximian.com>
10689
10690         Applying a patch from Michal Moskal <malekith@nemerle.org>.
10691
10692         * class.c (mono_dup_array_type): New public method.
10693         (mono_metadata_signature_deep_dup): New public method.
10694         (dup_type): Correctly duplicate array and function types.
10695
10696 2005-09-05  Martin Baulig  <martin@ximian.com>
10697
10698         Applying a patch from Michal Moskal <malekith@nemerle.org>.
10699
10700         * reflection.c (get_default_param_value_blobs): Handle generic types
10701         and generic methods.
10702
10703 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
10704
10705         * class.c: Fixed error reporting (method/class were inversed) for 
10706         inheritance demands.
10707         * security-manager.c|h: Added the AppDomain when calling the managed
10708         System.Security.SecurityManager.InheritanceDemand method.
10709
10710 2005-09-01  Raja R Harinath  <rharinath@novell.com>
10711
10712         * reflection.c (encode_marshal_blob): 'marshaltype' and
10713         'marshaltyperef' are alternate sources for the custom marshaler
10714         name.
10715
10716 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
10717
10718         * class.c: fix creation of array classes with rank == 1
10719         (patch by Ankit Jain <jankit@novell.com>).
10720
10721 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
10722
10723         * object.c: fix check for creating the bound data for arrays vs
10724         szarrays.
10725
10726 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10727
10728         * object.c: configuration file name is now based on the executable name,
10729         not the image name. Fixes bug #75931.
10730
10731 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
10732
10733         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
10734         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
10735
10736 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
10737
10738         * rand.c: Use wincrypt.h instead of WinCrypt.h.
10739
10740 2005-08-24  Ankit Jain  <jankit@novell.com>
10741             Raja R Harinath  <rharinath@novell.com>
10742
10743         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
10744           called by it recursively.
10745           (mono_class_init): Remove special case in pending_init handling, since it's
10746           superseded by the fix to mono_class_from_typeref.
10747
10748 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
10749
10750         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
10751         BROKEN_THREAD_START stuff.
10752
10753 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
10754
10755         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
10756         trampoline.
10757
10758         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
10759         
10760         * object.c (mono_delegate_ctor): Replace the original function address with
10761         a delegate trampoline.
10762
10763 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
10764
10765         * icall.c: add boolean argument to base64_to_byte_array and 
10766         InternalFromBase64String to control whether a whitespace-only string
10767         is allowed (or should casue a FormatException to be thrown). We need
10768         this as the behavior has changed between MS.NET 1.x and 2.0, and we
10769         to match the MS behaviour in both profiles.
10770         * appdomain.c: Bump corlib version.
10771
10772 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10773
10774         This patch implements a big portion of publisher policy
10775         support, used to bind assembly versions and redirect
10776         one assembly from version A to version B.
10777
10778         * assembly.c:
10779         New GSList loaded_assembly_bindings, for storing the cached
10780         assembly bindings.
10781         (assembly_binding_maps_name): New static function for checking if a 
10782         assembly binding information maps an assembly name.
10783         (mono_assembly_binding_info_free): New function for freeing
10784         assembly binding information resources.
10785         (get_publisher_policy_info): New static function for retrieving 
10786         assembly binding information from a MonoImage.
10787         (compare_versions): New static function for comparing an assembly
10788         binding information data and the version of an assembly name.
10789         (check_policy_versions): New static function for checking if an
10790         assembly binding info mapping an assembly name is valid for it.
10791         (mono_assembly_load_publisher_policy): New static function for
10792         loading the 'policy.major.minor.MyAssembly' image for an assembly
10793         with an assembly name 'aname'.
10794         (mono_assembly_bind_version): New static function for updating
10795         assembly redirection.
10796         (mono_assembly_apply_binding): New static function for applying
10797         assembly binding.
10798         (search_binding_loaded): New static function for searching 
10799         loaded assembly binding infos in the cache domain.
10800         (mono_assembly_load_full): Don't apply assembly binding for
10801         reflection only assemblies.
10802
10803         * metadata-internals.h: Add MonoAssemblyBindingInfo,
10804         which contains information about assembly binding. Also
10805         declare signature for mono_config_parse_publisher_policy ()
10806         function, used to retrieve pub policy info.
10807         
10808         * mono-config.c:
10809         (publisher_policy_start): New static function used to parse publisher 
10810         policy config files.
10811         (publisher_policy_parser): New static MonoParseHandler containing 
10812         the functions used when parsing config files.
10813         (mono_config_parse_publisher_policy): New function for parsing
10814         publisher policy files.
10815         
10816 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
10817
10818         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
10819
10820         * marshal.c (mono_delegate_free_ftnptr): Ditto.
10821
10822         * object.c (mono_get_addr_from_ftnptr): New helper function.
10823
10824         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
10825
10826         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
10827
10828 2005-08-19  Dick Porter  <dick@ximian.com>
10829
10830         * threads.c, threads.h, appdomain.c, appdomain.h,
10831         profiler-private.h, monitor.c, object.c, object-internals.h,
10832         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
10833         store the thread ID, so it can hold a 64 bit value if needed.
10834
10835 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
10836
10837         * reflection.c (mono_reflection_create_dynamic_method): Store the
10838         handle class into the method references as well so ldtoken works in
10839         dynamic methods.
10840
10841         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
10842         types.
10843
10844 2005-08-19  Ankit Jain <jankit@novell.com>
10845
10846         Fix #75847.
10847         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
10848           here rather than using the method signature of a arbitrary function
10849           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
10850           two arguments.
10851           Hack done with Harinath.
10852
10853 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10854
10855         * threadpool.c: disable printing stack traces when we get a exception
10856         in a threadpool thread. I need to do more testing to figure out which
10857         cases actually print this. Fixes bug #75828.
10858
10859 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10860
10861         * icall.c: there might be ignored whitespace after the last '='. This
10862         fixes length computation and bug #75840.
10863
10864 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
10865
10866         * assembly.c (mono_assembly_load_full): Consider .exe extension as
10867         well. Fixes #75809.
10868
10869         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
10870         #75784.
10871         
10872         * reflection.c (create_custom_attr_data): Ditto.
10873
10874 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
10875
10876         * locales.c, culture-info.h : removed RegionLCIDMap.
10877         * culture-info-tables.h : regenerated.
10878
10879 2005-08-16  Martin Baulig  <martin@ximian.com>
10880
10881         * class.c (mono_type_get_name_recurse): Small fix.
10882
10883 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
10884
10885         * locales.c : indentation fixie.
10886
10887 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
10888
10889         * object-internals.h,
10890           locales.h,
10891           locales.c,
10892           culture-info.h,
10893           icall.c : added RegionInfo table support.
10894         * culture-info-table.h : regenerated for region support.
10895
10896 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
10897
10898         * reflection.c (resolve_object): handle all kinds of MonoMethod
10899         including generic ones
10900
10901 2005-08-12  Ankit Jain <jankit@novell.com>
10902
10903         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
10904           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
10905
10906 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
10907
10908         * process.c: Don't close a thread handle when it's NULL. This is a
10909         workaround for bug #75733.
10910
10911 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
10912
10913         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
10914
10915 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
10916
10917         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
10918
10919 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10920
10921         * threadpool.c: if a work item in the thread pool has a callback that
10922         catches a exception, don't propagate it after invoking the callback.
10923         Fixes bug #75336.
10924
10925 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
10926
10927         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
10928
10929         * class-internals.h (MonoCachedClassInfo): Add some new fields.
10930
10931         * class.c (mono_class_init): Load field info lazily in the AOT case.    
10932
10933         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
10934
10935 2005-08-03  Ankit Jain  <jankit@novell.com>
10936
10937         Fix #75683.
10938         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
10939           PInvoke calling convention is 0.
10940
10941 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
10942
10943         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
10944         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
10945
10946 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
10947
10948         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
10949         to handle threads not started by the GC (patch by Michael Meeks
10950         <michael.meeks@novell.com>).
10951
10952 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
10953
10954         * reflection.c: Make buffer used in emitting types larger for some
10955         big generic types (patch by Michal Moskal).
10956
10957 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
10958
10959         * mono-debug.c: Fix some (not all) alignment problems.
10960
10961 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10962
10963         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
10964         Invoke mono_image_load_from_data_full passing the refonly
10965         parameter.
10966
10967         * assembly.c
10968         (mono_assembly_open_from_bundle): Add the refonly argument, 
10969         in order to pass it to other methods it calls to.
10970         (do_mono_assembly_open): Add the refonly argument, in order 
10971         to pass it to other methods it calls to.
10972         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
10973         the refonly parameter to it.
10974
10975         * image.c: Add loaded_images_refonly_hash and
10976         loaded_images_refonly_guid_hash to cache the reflection
10977         only loaded images.
10978         (mono_images_init): Initialize the hash tables used for
10979         caching the reflection only images.
10980         (load_modules): Invoke mono_image_open_full passing the refonly
10981         parameter to load the modules the correct way.
10982         (build_guid_table): Add the refonly argument, to re-build the 
10983         correct hash table.
10984         (do_mono_image_open): Added the refonly argument, in order to
10985         define it for the loaded image.
10986         (mono_image_loaded_full): New function, which receives an
10987         additional parameter to look for the image in the refonly or
10988         non-refonly section.
10989         (mono_image_loaded): Updated, using mono_image_loaded_full.
10990         (mono_image_loaded_by_guid_full): The same case that happens
10991         with mono_image_loaded_full.
10992         (mono_image_loaded_by_guid): Likewise.
10993         (register_image): Use the ref_only variable inside MonoImage
10994         to decide in which hash table store the current image.
10995         (mono_image_open_from_data_full): Rename
10996         mono_image_open_from_data to mono_image_open_from_data_full,
10997         adding the refonly argument, to define the ref_only variable 
10998         inside MonoImage.
10999         (mono_image_open_from_data): Return 
11000         mono_image_open_from_data_full.
11001         (mono_image_open_full): Rename mono_image_open to
11002         mono_image_open_full, receiving the new refonly argument,
11003         to pass it to inner methods.
11004         (mono_pe_file_open): Update this function, to open
11005         a MonoImage as a non-refonly image.
11006         (mono_image_close): Use the refonly variable inside
11007         MonoImage to remove the image from the correct caches.
11008
11009         * image.h: Add the signatures of mono_image_open_full,
11010         mono_image_open_from_data_full, mono_image_loaded_full,
11011         mono_image_loaded_by_guid_full.
11012
11013         * metadata-internals.h: Add the ref_only field to 
11014         MonoImage.
11015         
11016 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11017
11018         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
11019         Fix the last behavior, which used to load the assemblies and
11020         extract MonoReflectionAssemblyName information, instead of
11021         extract it from the metadata tables. Needed for Reflection
11022         Only assemblies.
11023         
11024 2005-07-29  Martin Baulig  <martin@ximian.com>
11025
11026         * mono-debug-debugger.c
11027         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
11028         not initialized.
11029
11030         * mono-debug.c
11031         (mono_debug_address_from_il_offset): Check whether we have
11032         debugging support before attempting to take the lock.
11033         (mono_debug_source_location_from_address): Likewise.
11034         (mono_debug_source_location_from_il_offset): Likewise.
11035         (mono_debug_il_offset_from_address): Likewise.
11036         (mono_debug_address_from_il_offset): Likewise.
11037
11038 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
11039
11040         * class.c (mono_class_from_name_case): Add support for dynamic images.
11041         Fixes #75650.
11042
11043         * object.c (mono_class_compute_gc_descriptor): Add a workaround
11044         for #75479.
11045
11046 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
11047         
11048         * reflection.c (mono_method_get_object): Fix warning.
11049
11050 2005-07-28  Martin Baulig  <martin@ximian.com>
11051
11052         * mono-debug.c
11053         (mono_debug_add_wrapper): Also write the wrapper type.
11054
11055 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
11056
11057         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
11058         
11059         * class.c (mono_class_init): Avoid reading nested classes if the AOT
11060         data indicates the class has none.
11061
11062 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
11063
11064         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
11065         loader lock with the debugger lock. Prevents deadlocks for beagle.
11066
11067         Beagle can now run on an smp box for a weekend without any
11068         issues. Woohoo!
11069
11070 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
11071
11072         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
11073         in a module. Fixes #75629.
11074
11075 2005-07-26  Martin Baulig  <martin@ximian.com>
11076
11077         * mono-debug.c (mono_debug_add_wrapper): New static method.
11078         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
11079         interncall or a wrapper.
11080
11081         * mono-debug.h (MonoDebugWrapperData): New public typedef.
11082         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
11083         (MONO_DEBUGGER_VERSION): Bump to 51.
11084
11085         * mono-debug-debugger.c
11086         (mono_debugger_add_type): Removed this empty function.
11087         (mono_debugger_add_method): Likewise.
11088
11089 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
11090
11091         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
11092         before accessing method->slot.
11093
11094 2005-07-21  Jb Evain  <jbevain@gmail.com>
11095
11096         * reflection.c (method_encode_clauses/class): Handle filters clauses.
11097         Fixes #75010.
11098
11099 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
11100
11101         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
11102         #75587.
11103
11104 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
11105
11106         * image.h image.c: Add mono_image_get_guid () API function.
11107
11108 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
11109
11110         There were issues when multiple threads tried to load
11111         assemblies. A deadlock was created between assemblies_mutex and
11112         mono_domain_assemblies_lock. This fixes the issue by making the
11113         assembly ref counting be lock free. See bug 75586.
11114         
11115         * image.c (mono_image_close): The add ref function here was using
11116         Interlocked operations while the unref was using a mutex and a
11117         --. I don't think this was ever a bug that would be exposed in a
11118         non-pendantic way (ie, by an embedder doing a ref on one thread
11119         and an unref on another), but for the sake of correctness, this is
11120         now Interlocked.
11121
11122         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
11123         (mono_assembly_load_reference): Call mono_assembly_addref rather
11124         than touching the refcount ourselves.
11125         (mono_assembly_close): Use InterlockedDecrement to unref the
11126         assembly. Don't acquire the lock unless it is actually needed.
11127
11128 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
11129
11130         * class.c (mono_class_layout_fields): Fix calculation of has_references
11131         for generic types.
11132
11133 2005-07-12  Martin Baulig  <martin@ximian.com>
11134
11135         Applying a patch from Michal Moskal <malekith@nemerle.org>.
11136
11137         * metadata.c
11138         (mono_type_hash): Provide better hashing for generic instances.
11139         (mono_generic_inst_hash): Improve hashing.
11140         (mono_generic_class_hash): Likewise.
11141
11142         * reflection.c (mymono_metadata_type_hash): Improve hashing for
11143         generic instances.
11144
11145 2005-07-12  Martin Baulig  <martin@ximian.com>
11146
11147         * reflection.c (mono_reflection_create_runtime_class): Remove the
11148         hack for generic type definitions and non-`Run' assemblies.
11149         (mono_reflection_bind_generic_parameters): Also use
11150         `klass->wastypebuilder' to check for TypeBuilders.
11151
11152 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
11153
11154         * class.c (mono_class_layout_fields): Fix calculation of has_references
11155         for generic types.
11156
11157         * class.c (inflate_generic_class): Fix a leak.
11158         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
11159         for generic types.
11160
11161 2005-07-11  Martin Baulig  <martin@ximian.com>
11162
11163         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
11164         on error.
11165
11166 2005-07-11  Martin Baulig  <martin@ximian.com>
11167
11168         * loader.c (find_method): Also lookup in
11169         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
11170
11171 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
11172
11173         * appdomain.c (mono_domain_unload): Don't free the error message
11174         before passing it to mono_get_exception_...
11175
11176         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
11177         
11178 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
11179
11180         * threads.c: try to better guess an available RT signal (bug #75387).
11181
11182 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
11183
11184         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
11185         and CACHE_OBJECT.
11186
11187 2005-07-07  Martin Baulig  <martin@ximian.com>
11188
11189         * class.c (mono_type_get_name_full): Return NULL for
11190         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
11191         fixes #75408.
11192
11193 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
11194
11195         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
11196         exit the appdomain as well being aborted.
11197
11198         * threadpool.c: Create all threadpool threads inside the root appdomain, and
11199         change back to the root domain after calling managed code. This enables
11200         appdomains using threadpools to be unloaded.
11201
11202 2005-07-07  Martin Baulig  <martin@ximian.com>
11203
11204         * class-internals.h
11205         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
11206         into `MonoDynamicGenericClass' since we only need it for dynamic
11207         types.
11208
11209         * reflection.c (mono_class_bind_generic_parameters): We don't need
11210         to compute the `parent' here.
11211
11212 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
11213
11214         * culture-info-table.h : regenerated.
11215
11216 2005-07-06  Martin Baulig  <martin@ximian.com>
11217
11218         * icall.c
11219         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
11220
11221         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
11222
11223 2005-07-06  Martin Baulig  <martin@ximian.com>
11224
11225         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
11226         we're doing a signature-only comparision; fixes #74945.
11227
11228 2005-07-06  Martin Baulig  <martin@ximian.com>
11229
11230         * class-internals.h (MonoGenericClass): Moved some things out into
11231         a new `MonoInflatedGenericClass' type.  
11232         (MonoInflatedGenericClass): New type; the `klass' of a
11233         `MonoGenericClass' is now computed lazyly in
11234         mono_get_inflated_generic_class().      
11235
11236         * class.c (mono_get_inflated_generic_class): New public function.
11237         (mono_class_inflate_generic_method): Removed the unused
11238         `MonoClass *' argument.
11239         (setup_generic_vtable): Don't call mono_get_inflated_method() on
11240         all the methods.
11241         (mono_class_create_generic): Make this static and merge it with
11242         mono_class_create_generic_2(); we're now called automatically from
11243         mono_get_inflated_generic_class().
11244
11245         * loader.c (mono_method_signature): Call
11246         mono_get_inflated_method() here.
11247
11248 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
11249
11250         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
11251         type of fields with RVA.
11252
11253         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
11254         for this pseudo class.
11255         (my_mono_class_from_generic_parameter): Likewise.
11256         (mono_class_init): Allow interfaces to have cctors.
11257
11258 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
11259
11260         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
11261         lazily for AOT methods.
11262
11263 2005-07-05  Martin Baulig  <martin@ximian.com>
11264
11265         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
11266         returns FALSE for a successful match, not TRUE.
11267
11268 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
11269
11270         * loader.c (mono_method_get_index): Optimize this a bit.
11271
11272 2005-07-04  Martin Baulig  <martin@ximian.com>
11273
11274         * class.c
11275         (class_compute_field_layout): Move the check for generic type
11276         definitions into mono_class_layout_fields().  Fixes #74684.
11277         (mono_class_from_generic_parameter): Correctly compute
11278         `klass->parent'; fixes #75457.
11279
11280         * reflection.c (register_assembly, register_module): Make sure
11281         `domain->rejobject_hash' is already created.
11282
11283 2005-07-02  Martin Baulig  <martin@ximian.com>
11284
11285         * class-internals.h
11286         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
11287         `MonoDynamicGenericClass'.      
11288
11289 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
11290
11291         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
11292         returned by a field getter is null, since null is a valid value.
11293
11294 2005-07-01  Martin Baulig  <martin@ximian.com>
11295
11296         * reflection.c (mono_reflection_generic_class_initialize): Update
11297         the `dgclass->fields [i].parent' to the correct class.
11298         (mono_image_get_fieldref_token): Use the declaring type, not the
11299         reflected type.
11300
11301 2005-07-01  Martin Baulig  <martin@ximian.com>
11302
11303         * loader.c (find_method): Also look in the interfaces; fixes #75429.
11304
11305 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
11306
11307         * threads.c (thread_cleanup): assert that thread != NULL
11308         (wait_for_tids_or_state_change): We were using the wrong variable
11309         when accessing wait->threads. `i' was always out of the bounds of
11310         the array.
11311
11312 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11313
11314         * loader.c: map user32 and kernel32 to libMonoSupportW
11315
11316 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
11317
11318         * appdomain.c (unload_thread_main): Mark this as WINAPI.
11319
11320 2005-06-28  Martin Baulig  <martin@ximian.com>
11321
11322         * loader.c (method_from_methodspec): Fix #75334.
11323
11324 2005-06-28  Martin Baulig  <martin@ximian.com>
11325
11326         Fix #74953 - Arrays now implement the generic IList<T> interface
11327         on the 2.0 platform.
11328
11329         * class-internals.h (MonoDefaults): Added `generic_array_class'.
11330
11331         * reflection.c (mono_class_bind_generic_parameters): New public
11332         function; similar to mono_reflection_bind_generic_parameters(),
11333         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
11334
11335         * domain.c (mono_init_internal): Try to initialize.
11336         `mono_defaults.generic_array_class' here; this'll only succeed if
11337         we're using the 2.0 corlib.
11338
11339         * icall.c
11340         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
11341         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
11342         (mono_lookup_internal_call): Added support for nested classes.
11343
11344         * loader.c
11345         (mono_get_method_from_token): Set `result->signature->pinvoke' if
11346         we're an interncall and have generic arguments.
11347
11348         * class.c
11349         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
11350         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
11351         instance of System.Array.InternalArray<T> for arrays, so they
11352         implement the generic IList<T> interface.
11353
11354 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
11355
11356         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
11357         (chastamar@yahoo.com). Fixes #75374.    
11358
11359 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
11360
11361         * culture-info-table.h: regenerated.
11362
11363 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11364
11365         * icall.c: handle spaces correctly for base64 strings.
11366
11367 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
11368
11369         * *.c: Kill some warnings.
11370
11371 2005-06-23  Duncan Mak  <duncan@novell.com>
11372
11373         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
11374         that this builds on Solaris 10 (x86).
11375
11376 2005-06-23  Martin Baulig  <martin@ximian.com>
11377
11378         * class.c
11379         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
11380         generic type definitions.
11381
11382 2005-06-23  Martin Baulig  <martin@ximian.com>
11383
11384         Fix #75331.
11385
11386         * metadata.c (mono_class_get_overrides): Renamed to
11387         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
11388         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
11389         pass it to mono_get_method_full().
11390
11391 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
11392
11393         * reflection.c (mono_reflection_create_runtime_class): take the
11394         mono_domain_lock in this method. Prevents deadlocks
11395
11396 2005-06-22  Martin Baulig  <martin@ximian.com>
11397
11398         * loader.c (method_from_methodspec): Fix #75330.
11399
11400 2005-06-22  Martin Baulig  <martin@ximian.com>
11401
11402         * reflection.c (type_get_qualified_name): Use
11403         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
11404         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
11405         argument; use it if we don't have an assembly name.
11406
11407 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
11408
11409         * object.c: In mono_message_init, set "copy out" flag for in
11410         parameters with the [Out] flag.
11411
11412 2005-06-21  Martin Baulig  <martin@ximian.com>
11413
11414         * class.c
11415         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
11416         and MONO_TYPE_PTR.
11417
11418 2005-06-21  Martin Baulig  <martin@ximian.com>
11419
11420         * class.c (mono_class_init): Don't initialize `class->fields' for
11421         generic instances since they're initialized again in
11422         compute_field_layout(). 
11423         (compute_field_layout): Set the field's `generic_info' here; fix
11424         #75320. 
11425
11426 2005-06-21  Martin Baulig  <martin@ximian.com>
11427
11428         * class-internals.h
11429         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
11430
11431         * metadata.c (mono_metadata_generic_method_equal): Also
11432         distinguish the `generic_class'; fixes #75334.
11433
11434 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11435
11436         * domain.c:
11437         * appdomain.c:
11438         * domain-internals.h:
11439         * reflection.c: 'domain_assemblies' field is now protected by its own
11440         lock. Don't call into managed code to run the AssemblyLoad event if we
11441         now there are no registered delegates for it.
11442
11443 2005-06-20  Martin Baulig  <martin@ximian.com>
11444
11445         * class.c (mono_class_is_assignable_from): Use a custom version of
11446         mono_class_has_parent() to make things work for generic instances;
11447         fix #75300.
11448
11449 2005-06-20  Martin Baulig  <martin@ximian.com>
11450
11451         * loader.c (method_from_methodspec): Apply a patch from
11452         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
11453
11454 2005-06-20  Martin Baulig  <martin@ximian.com>
11455
11456         * class.c (mono_class_init): Reverted Zoltan's last change; it
11457         breaks generics.
11458
11459 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
11460
11461         * threads.c (wait_for_tids_or_state_change): Add missing locking.
11462
11463 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11464
11465         * socket-io.c: fix the index in the socket array for writable/error
11466         sockets. Fixes bug #75306.
11467
11468 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
11469
11470         * class.c (mono_class_init): Allow interfaces to have static ctors.
11471
11472 2005-06-17  Martin Baulig  <martin@ximian.com>
11473
11474         * loader.c (method_from_methodspec): Use `context->container' when
11475         parsing the `gmethod->inst'.
11476
11477 2005-06-17  Martin Baulig  <martin@ximian.com>
11478
11479         * class.c (mono_type_get_name_recurse): Don't add the assembly
11480         name for type arguments.
11481
11482 2005-06-15  Martin Baulig  <martin@ximian.com>
11483
11484         * reflection.c (mono_image_get_inflated_method_token): Encode
11485         correct klass; fixes #75260.
11486
11487 2005-06-13 Michal Moskal <malekith@nemerle.org>
11488
11489         * icall.c: Make GetCorrespondingMethod/Constructor take
11490         MonoReflectionMethod method not MonoMethod. Removed
11491         MonoType.GetCorrespondingField, and make
11492         MonoGenericType.GetCorrespondingField take name not
11493         MonoClassField.
11494
11495 2005-06-13  Michal Moskal <malekith@nemerle.org>
11496
11497         * reflection.c (field_encode_signature, encode_locals):
11498          Make sizes of buffers for types larger (for big generic types).
11499          (create_generic_typespec,
11500          mono_reflection_sighelper_get_signature_local,
11501          mono_reflection_sighelper_get_signature_field):
11502          Add asserts for too small buffers.
11503
11504 2005-06-15  Martin Baulig  <martin@ximian.com>
11505
11506         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
11507         if our parent is not a dynamic type.
11508
11509 2005-06-15  Martin Baulig  <martin@ximian.com>
11510
11511         * class-internals.h (MonoTypeNameFormat): New enum.
11512
11513         * class.c
11514         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
11515         (mono_type_get_full_name): Removed.
11516         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
11517         argument instead of the boolean's.
11518
11519         * icall.c (ves_icall_System_MonoType_getFullName):
11520         Added `gboolean assembly_qualified'.    
11521
11522         * reflection.h
11523         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
11524
11525         * reflection.c (mono_reflection_parse_type): Parse the new type
11526         name format.
11527
11528 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11529
11530         * icall.c: no need to convert from utf16 to utf8 and then back again
11531         after the call to GetLogicalDrives.
11532
11533 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11534
11535         * icall.c: frombase64. Fix problems exposed by new tests.
11536
11537 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11538
11539         * icall.c: added internal calls for converting char [] and strings in
11540         base64 into byte [].
11541
11542 2005-06-10  Martin Baulig  <martin@ximian.com>
11543
11544         * class.c (mono_class_create_generic_2): Read the nested classes
11545         from the metadata rather than from `gklass->nested_classes' since
11546         `gklass' might not be initialized yet.
11547
11548 2005-06-09  Duncan Mak  <duncan@novell.com>
11549
11550         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
11551         all public headers. Fixes #74919.
11552
11553 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
11554
11555         * domain.c: The key for proxy_vtable_hash is now a pointer
11556         array. Added new GHashFunc and GCompareFunc functions for this.
11557
11558         * class.h: The list of interfaces in MonoRemoteClass is known in
11559         advance and can't grow (we create a new MonoRemoteClass if needed),
11560         so now the interface array can be allocated together with
11561         MonoRemoteClass.
11562         
11563         * object.c: Added a new method create_remote_class_key.
11564         Fixed mono_remote_class so it does not depend on
11565         mono_upgrade_remote_class.
11566         Removed extend_interface_array.
11567         Added new method clone_remote_class(), which makes a copy of a remote
11568         class and adds a new interface or class to it.
11569         mono_upgrade_remote_class() now creates a new remote class (or gets
11570         it from the cache) if an vtable upgrade is needed. In this way
11571         we make sure that other objects sharing the same remote class
11572         don't get the new vtable with unwanted interfaces.
11573         
11574         * object-internals.h:
11575         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
11576         
11577         * marshal.c: Track changes in mono_upgrade_remote_class().
11578
11579 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
11580         * icall.c: Add runtime methods for obtaining members of inflated
11581         class, which were created from supplied non-inflated members. It
11582         is used in internal Get{Method,Constructor,Field} methods in
11583         System.Type
11584
11585 2005-06-09  Martin Baulig  <martin@ximian.com>
11586
11587         * reflection.c
11588         (mono_reflection_bind_generic_method_parameters): Fix #75169.
11589
11590 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11591         * reflection.c (mono_image_basic_init): Define
11592         Version in MonoDynamicAssembly. 
11593         
11594 2005-06-08  Martin Baulig  <martin@ximian.com>
11595
11596         Fix #75136.
11597
11598         * loader.c
11599         (mono_method_signature_full): New public method; takes a
11600         `MonoGenericContext *'.
11601         (find_method): Use mono_method_signature_full() and pass the
11602         klass'es context to it.
11603
11604         * class.c (mono_class_is_inflated_method): Use
11605         mono_method_signature_full() and pass the context to it.
11606
11607 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
11608
11609         * object.c: add proper locking in mono_remote_class_vtable(),
11610         fixes possible memory corruption.
11611
11612 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
11613
11614         * marshal.c (mono_remoting_marshal_init): set
11615         initialized after initialization.
11616
11617 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
11618
11619         * locales.c : hush.
11620
11621 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
11622
11623         * object.c (extend_interface_array): fix really silly
11624         memory corrupting / comparison bug.
11625
11626 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11627
11628         * reflection.c: Functions added to support the creation
11629         of CustomAttributeData, which includes Attribute data
11630         used by ReflectionOnly methods.
11631
11632         * reflection.h:  mono_reflection_get_custom_attrs_data and
11633          mono_custom_attrs_data_construct added (functions exposed).
11634
11635          * icall.c: Added mono_reflection_get_custom_attrs_data
11636          as icall.
11637         
11638 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
11639
11640         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
11641         lupus's request.
11642
11643 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
11644
11645         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
11646
11647         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
11648         dynamic DllImportAttribute.
11649
11650         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
11651         dynamic DllImportAttribute.
11652
11653         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
11654         Fixes #75162.
11655
11656 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11657
11658         * threads.c: avoid segfault when an unstarted thread is aborted.
11659
11660 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
11661
11662         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
11663         Returns the name and version of the runtime for reporting.
11664
11665 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11666
11667         * appdomain.c: bump corlib version.
11668         * object-internals.h: new field in MonoReflectionAssembly.
11669
11670 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11671
11672         * object-internals.h: Carlos forgot to add this field.
11673
11674 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11675
11676         * icall.c: Added create_version to create instances
11677         of Version of MonoReflectionAssemblyName. This change helps
11678         the AssemblyName tests to keep running fine.
11679         
11680 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
11681   
11682         * object.c (mono_method_return_message_restore): A somehow less
11683         intrusive fix for #75138.
11684
11685 2005-06-03  Raja R Harinath  <rharinath@novell.com>
11686
11687         * object.c (mono_method_return_message_restore): Fix computation
11688         of expected number of out args.
11689
11690 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
11691
11692         * reflection.c (mono_image_get_method_info): Fix the case when the
11693         charset is empty.
11694
11695 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
11696
11697         * object.c: Added missing null check in
11698           mono_method_return_message_restore.
11699
11700 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
11701
11702         * reflection.c (mono_image_get_method_info): Handle the case when
11703         dllentry is empty.
11704
11705 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
11706
11707         * object.c: When creating the vtable for a proxy, take into account
11708         all inherited interfaces, not only the ones registered in
11709         iclass->interfaces. This fixs bug #74996.
11710         Also, in mono_method_return_message_restore, verify that the array
11711         of out args has the expected lengh.
11712
11713 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11714
11715         * socket-io.c: update the timeout in Poll when the call is interrupte.
11716
11717 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11718
11719         * socket-io.c: support abort/suspend in Select_internal after last
11720         change.
11721
11722 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11723
11724         * threadpool.c: remove warning.
11725
11726 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11727
11728         * icall.c:
11729         * socket-io.[ch]: Select_internal uses poll() now when available, thus
11730         removing the 1024 limit from select(). Runtime part of the fix for
11731         bug #71203.
11732
11733 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11734
11735         * socket-io.c: when resolving the addresses for the same
11736         host returned by gethostname(), get the local IPs from the interface
11737         list. Loopback addresses are discarded if the are interfaces up with
11738         non-loopback ones. Fixes bug #63265.
11739
11740 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
11741
11742         * appdomain.c, verify.c, object-internals.h, reflection.c:
11743         bumped corlib number to 36, and added new extra_flags field
11744         to ReflectionMethodBuilder and friends.  Fixes #75060.
11745
11746 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
11747
11748         * gc.c: register a new weak link only if the object is non-null
11749         (fixes bug#75047).
11750
11751 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
11752
11753         * culture-info.h : short time pattern too.
11754
11755 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
11756
11757         * culture-info.h : expand long time pattern string length.
11758
11759 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
11760
11761         * culture-info-table.h : update (more French date format; #72788).
11762
11763 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
11764
11765         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
11766         the method is static. Fixes #75029.
11767
11768 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
11769
11770         * reflection.c: Update the table_idx field of method builders after
11771         saving the module, since it can change. This is a workaround for
11772         bug #74914. 
11773
11774 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
11775
11776         * culture-info-table.h : update (additional French date format).
11777
11778 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
11779
11780         * icall.c (ves_icall_type_Equals): Revert last change.
11781         
11782         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
11783
11784         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
11785
11786 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
11787
11788         * class-internals.h: Added executioncontext_class field to 
11789         MonoDefaults structure.
11790         * domain.c: Cache System.Threading.ExecutionContext class in 
11791         mono_defaults.
11792         * object.c: Capture the ExecutionContext for asynchroneous calls in
11793          mono_async_result_new.
11794         * object-internals.h: Added execution_context and original_context 
11795         fields to MonoAsyncResult. Added execution_context to MonoThread.
11796         * security-manager.c|.h: Added mono_get_context_capture_method to 
11797         return the capture method (if required by the security manager or by
11798         the framework version used).
11799         * threadpool.c: Apply capture (if present) ExecutionContext in 
11800         mono_async_invoke and revert to original context after it completes.
11801
11802 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
11803
11804         * culture-info-table.h : updated (real hacky solution for zh-CHT).
11805
11806 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
11807
11808         * culture-info-table.h : zh-CHT related workaround.
11809
11810 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
11811
11812         * marshal.c (emit_marshal_custom): Add some error checking and call the
11813         methods in the ICustomMarshaler interface. Fixes #74875.
11814         
11815         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
11816         native->managed wrappers.
11817
11818 2005-05-12  Martin Baulig  <martin@ximian.com>
11819
11820         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
11821         here and use the loader lock.
11822
11823         * mono-debug.c: Properly lock when the debugger is not attached.
11824         (mono_debug_init): Release the initial lock if we're not running
11825         in the debugger.
11826
11827 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
11828
11829         * marshal.c (emit_marshal_custom): Pass through NULL values without
11830         calling the custom marshalling routines.
11831
11832         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
11833         conversion in structures. Fixes #74882.
11834
11835 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
11836
11837         * culture-info-table.h : zh-* cultures were missing.
11838
11839 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
11840
11841         * threads.c: Added a new event background_change_event which is signaled
11842         when a thread changes its background mode.
11843         Moved here several checks previously done in managed code. The checks
11844         require the thread lock, and using the thread lock in managed code
11845         can result in deadlocks.
11846         Merged Start_internal and Thread_internal into a single method. Now 
11847         Thread_internal does all work of creating and starting a thread.
11848         Added icalls for setting and getting the state of the object. Moved from
11849         managed code to avoid locking there.
11850         Added wait_for_tids_or_state_change() which is called instad of
11851         wait_for_tids when waiting for non-backround threads to end. This method
11852         will return if one of the threads ends or the background_change_event
11853         is signaled.
11854         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
11855         the background mode. This method signals the background_change_event
11856         event.
11857         * icall.c:
11858         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
11859         removed Start_internal.
11860         
11861 2005-05-11  Martin Baulig  <martin@ximian.com>
11862
11863         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
11864         to order of some fields to get proper alignment on 64-bit machines.
11865
11866 2005-05-11  Martin Baulig  <martin@ximian.com>
11867
11868         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
11869         changes as they're broken and completely fuck up the debugger.
11870
11871         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
11872
11873 2005-05-10  Martin Baulig  <martin@ximian.com>
11874
11875         * reflection.c (mono_reflection_generic_class_initialize): Don't
11876         call mono_class_setup_parent() here.
11877
11878 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11879
11880         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
11881         send/receive timeout use an integer in milliseconds. We were using a
11882         struct timeval.
11883
11884 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11885
11886         * locales.c:
11887         (internal_get_cultures): reserve the first slot of the array for the
11888         InvariantCulture, which will be filled in managed code.
11889
11890 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
11891
11892         * reflection.c (mono_image_fill_module_table): Initialize the
11893         GENERATION field as well.
11894
11895 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11896
11897         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
11898         Monitor.Enter on the object.
11899
11900 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
11901
11902         * threads.c: Enable the wait for running threads when exiting.
11903         * icall.c: Suspend all threads before exiting.
11904
11905 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
11906
11907         * assembly.c (mono_assembly_load_reference): Fix warning.
11908
11909 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11910
11911         * threadpool.c: changed the default number of threads per cpu. From now
11912         on, the default will be 20 + (5 * number of cpus) instead of 50.
11913
11914 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
11915
11916         * loader.c (mono_method_get_signature_full): Add locking here.
11917
11918 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
11919
11920         * appdomain.c: Moved methods for parsing and freeing assembly
11921         names to assembly.c.
11922         * assembly.c, domain-internals.h: Created public methods for parsing
11923         assembly names. Fixed mono_assembly_load_with_partial_name:
11924         it now finds the best match, taking into account the version,
11925         token and culture specified in the partial name. Also return
11926         the latest version if no version information is specified.
11927
11928 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
11929
11930         * threadpool.c: replace check for SocketAsyncCall class.
11931
11932 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11933
11934         * threadpool-internals.h:
11935         * Makefile.am: added threadpool-internals.h
11936
11937         * threadpool.c: call mono_unhandled_exception on exceptions not handled
11938         that happen in threadpool threads (tested on MS).
11939         (mono_thread_pool_remove_socket): new function that dispatch any pending
11940         AIO call on a socket that is closing. By now only epoll really needs it,
11941         as select/poll wake up when the socket closes.
11942
11943
11944         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
11945
11946 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
11947
11948         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
11949
11950 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
11951
11952         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
11953
11954 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
11955
11956         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
11957         has an abort request, convert it into a suspend request.
11958
11959 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
11960
11961         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
11962         warning for the usage of `UnmanagedFunctionPointerAttribute' which
11963         is not supported yet.
11964
11965 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11966
11967         * image.c: register assemblies loaded from data (bundles) in the loaded
11968         assemblies hash. Fixes bug #74772.
11969
11970 2005-04-29  Martin Baulig  <martin@ximian.com>
11971
11972         * class.c (mono_type_get_name_recurse): Update to the new naming
11973         schema from the latest .NET 2.x beta2.
11974         (mono_class_setup_vtable_general): If we're a generic instance,
11975         copy the vtable from our generic type definition and inflate all
11976         the methods in it.
11977
11978         * loader.c (find_method): Update to the new naming schema from the
11979         latest .NET 2.x beta2.
11980
11981 2005-04-29  Raja R Harinath  <harinath@gmail.com>
11982
11983         * class.c (mono_class_init): Add a mono_loader_unlock to the
11984         #74734 fix.
11985
11986 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
11987
11988         * icall.c (ves_icall_System_Environment_Exit): Remove the 
11989         suspend_all_other_threads () call for the time being, since it can hang.
11990
11991         * threads.c (mono_thread_manage): Similarly, disable the waiting for
11992         the background threads to exit, since it can also hang.
11993
11994         * class.c (mono_class_init): Applied patch from Ankit Jain 
11995         (radical@gmail.com). Avoid pending init errors when a field refers
11996         to a nested class using a typeref. Fixes #74734.
11997
11998         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
11999         this for dynamic modules.
12000
12001 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12002
12003         * threads.c: don't wait for threads that are in the process of aborting
12004         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
12005         and waiting for background threads to finish. This makes xsp and
12006         mod-mono-server exit without random length delays and/or hangs.
12007
12008 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12009
12010         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
12011
12012 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
12013
12014         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
12015         dynamic types to prevent infinite loops. Fixes #74727.
12016
12017         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
12018         ..._is_assignable_to.
12019
12020 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
12021
12022         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
12023
12024 2005-04-25  Martin Baulig  <martin@ximian.com>
12025
12026         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
12027
12028         * domain.c
12029         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
12030
12031         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
12032
12033         * reflection.c (build_compressed_metadata): Set metadata header
12034         version to 2.0.
12035
12036 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
12037
12038         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
12039         number into an integral and a decimal part. Fixes #70473.
12040
12041         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
12042
12043 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
12044
12045         * culture-info-table.h : reflected the latest locale-builder output.
12046
12047 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12048
12049         * threadpool.c: check for SuspendRequested too when deciding if
12050         mono_thread_interruption_checkpoint should be called.
12051
12052 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12053
12054         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
12055         * threads.c: remove interruption_mutex and use Interlocked instead. When
12056         suspending all the threads, wait for all the suspended events at once.
12057         If we're shutting down and get an APC that is going to be queued,
12058         call mono_thread_execute_interruption immediately, as the thread might
12059         be sleeping on a pthread condition or mutex.
12060
12061         * icall.c: call mono_runtime_set_shutting_down before suspending the
12062         threads.
12063
12064         Fixes bug #74693. And now xsp is happier when exiting.
12065
12066 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
12067
12068         * loader.c (mono_stack_walk): Fix #74690.
12069
12070 2005-04-22  Martin Baulig  <martin@ximian.com>
12071
12072         * mono-debug.h (MonoDebugMethodJitInfo): Added
12073         `MonoDebugMethodJitInfo *jit'.
12074
12075         * mono-debug.c (mono_debug_read_method): Cache the
12076         MonoDebugMethodJitInfo in `address->jit'.
12077         (mono_debug_free_method_jit_info): New public method.
12078
12079 2005-04-22  Martin Baulig  <martin@ximian.com>
12080
12081         * class.c (mono_class_is_assignable_from): Disallow
12082         type parameter -> interface.
12083
12084 2005-04-21  Dick Porter  <dick@ximian.com>
12085
12086         * threads.c (mono_thread_create): Turn an assertion into an error.
12087
12088 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
12089
12090         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
12091         
12092         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
12093         Fix some gcc 4.0 warnings.
12094
12095 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
12096
12097         * file-io.c: fix alt dir separator char on unix systems
12098         and cleanup (fixes bug #71214).
12099
12100 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
12101
12102         * marshal.c: Use CALLVIRT instead of CALL when dispatching
12103         a call to a remote domain, since the method may be an
12104         interface method in the client domain. This fixes bug #74192.
12105
12106 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12107
12108         * threadpool.c: recv/send are now performed before going back to managed
12109         code to save one transition.
12110
12111 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12112
12113         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
12114
12115         * metadata/threadpool.c: removed hack to workaround the bug above.
12116
12117         Fixes bug #74618.
12118
12119 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
12120
12121         * reflection.c reflection.h: Fix handling of parameter defaults in
12122         dynamic methods. Also fixes handling of parameter attributes.
12123         Fixes #74609.
12124
12125         * mono-debug.c (mono_debug_close_image): Fix warning.
12126
12127 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12128
12129         * socket-io.h: replaced old unused field with new 'blocking'.
12130         * threadpool.c: restore socket blocking state on windows(tm).
12131
12132 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
12133
12134         * icall.c: don't return the codebase in the AssemblyName[] returned by
12135         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
12136         * object-internals.h: Removed FIXME (fields were presents) and fixed
12137         versioncompat declaration.
12138
12139 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12140
12141         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
12142         not closed, so don't cleanup when it happens.
12143
12144 2005-04-13  Chris Toshok  <toshok@ximian.com>
12145
12146         * mono-debug-debugger.h: change prototype for
12147         mono_debugger_lookup_type.
12148
12149         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
12150         this function, although it should probably be named
12151         mono_debugger_init_type.
12152
12153 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12154
12155         * threadpool.c: fix non-AIO case.
12156
12157 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
12158
12159         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
12160         the built-in profiler to measure just JIT compilation times.
12161
12162 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12163
12164         * threadpool.c: the epollfd might be closed by another thread at
12165         any time, so ignore EBADF at treat it as a "we're closing" sign.
12166
12167 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12168
12169         * threadpool.c: release the semaphores with a count equals to the number
12170         of working threads in both IO and regular pools. Fixed typo that messed
12171         up the count of IO pool threads. Don't initialize the pipe handles if
12172         we're using epoll.
12173
12174 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12175
12176         * threadpool.c: some systems don't like a NULL when deleting the socket
12177         from epoll.
12178
12179 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12180
12181         * threadpool.c: fix semaphore allocation.
12182
12183 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12184
12185         * threadpool.c: added epoll() based implementation for asynchronous IO
12186         that is used instead of the default poll() when available.
12187         It can be disabled by setting MONO_DISABLE_AIO.
12188
12189 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12190
12191         * threadpool.c: windows needs 'closesocket' and instead of returning
12192         0 when the stream is closed while in select, it returns -1. Fixes bug
12193         #74573.
12194
12195 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
12196
12197         * class.c (class_compute_field_layout): Fix the regression caused by
12198         the previous try.
12199
12200 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12201
12202         * threadpool.c: separate pool for socket async. IO.
12203         * threadpool.h: mono_max_worker_threads is not a global any more.
12204
12205 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
12206
12207         * class.c (class_compute_field_layout): Fix #74549.
12208
12209 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12210
12211         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
12212         use 2 connected sockets instead.
12213
12214 2005-04-08  Miguel de Icaza  <miguel@novell.com>
12215
12216         * mono-config.c: Add new entry point for mkbundle
12217         mono_config_parse_memory. 
12218
12219 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12220
12221         * threadpool.c: removed another unused function.
12222
12223 2005-04-08  Ankit Jain  <radical@corewars.org>
12224
12225         * reflection.c (get_default_param_value_blobs): Add 'types'
12226         parameter to get the types encoded in the constant table.
12227         (mono_param_get_objects): Use the type from the constant table,
12228         not the type of the parameter, when creating default values.
12229         Handle null default values correctly.
12230
12231 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12232
12233         * file-io.c:
12234         * file-io.h:
12235         * threadpool.c:
12236         * threadpool.h:
12237         * icall.c:
12238         * socket-io.c: removed dead code for async IO.
12239
12240 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12241
12242         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
12243
12244         * threadpool.c: intercept socket async. calls and pass them to a thread
12245         that is polling and dispatching the job items to the threadpool as
12246         socket become ready. Fixes bugs #71217, #71933.
12247
12248         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
12249         between char and short/ushort arrays.
12250
12251         * socket-io.c: remove dead code.
12252
12253 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
12254
12255         * locales.c,
12256           icall.c : removed InternalToUpper_Comp() and
12257           InternalToLower_Comp().
12258
12259 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
12260
12261         * char-conversions.h : The tables were incorrectly generated. Should
12262           be generated against invariant culture.
12263
12264 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
12265
12266         * object.c (mono_runtime_invoke_array): Fix return value when 
12267         passing pre-created valuetype objects to ctors.
12268
12269         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
12270         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
12271         Fixes #74338.
12272
12273 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
12274
12275         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
12276         only used with --security and hides the wrong corlib version error.
12277
12278 2005-03-30  Joshua Tauberer  <tauberer@for.net>
12279
12280         * class.c: Changed mono_class_name_from_token so that types
12281         outside of a namespace don't have an initial period.  Improved
12282         the g_warning message used in _mono_class_get when loading
12283         fails.
12284         * assembly.c: In mono_assembly_load_reference, when an assembly
12285         can't be found, "No such file or directory" is misleading and
12286         unhelpful because a few paths were checked for the presence of
12287         the assembly.  When that happens (ENOENT), display a nicer
12288         message indicating the directories that were searched.  In all
12289         cases, the warning is made easier to read for non-hackers.
12290
12291 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
12292
12293         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
12294         project/solution.
12295         * appdomain.h|domain.c: Removed inline from functions.
12296         * appdomain.c: Reduced warnings when compiling on windows.
12297         * icall.c: Fixed output_debug declaration to gunichar2*.
12298         * mono-config.c: Reduced warnings when compiling on windows.
12299         * rand.c: Added missing "windows.h". Added missing return value.
12300         * rawbuffer.c: Added missing winsock2.h for windows.
12301         * sysmath.h: Added mono-compiler.h header to allow/ease 
12302         compilation with non-GCC compilers.
12303         * threads.c: Fixed declarations to compile with VS.NET C compiler.
12304         Removed cast warnings.
12305
12306         Adapted from the work of J Lothian (for VC6).
12307
12308 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
12309
12310         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
12311         from default_path.
12312
12313 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
12314
12315         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
12316         the 2.0 profile.
12317
12318 2005-03-27  Raja R Harinath  <harinath@gmail.com>
12319
12320         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
12321         has to be in $(exec_prefix).  $(prefix) is for arch-independent
12322         stuff, and it would probably use $(prefix)/share rather than
12323         $(prefix)/lib.
12324
12325 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12326
12327         * console-io.c: added 2 includes that might be missing.
12328
12329 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
12330
12331         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
12332         profile.
12333
12334         * reflection.c (create_custom_attr): Allocate the params array using
12335         alloca so it gets GC tracking.
12336
12337 2005-03-23  Chris Toshok  <toshok@ximian.com>
12338
12339         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
12340         out some spew.
12341
12342 2005-03-24  Raja R Harinath  <rharinath@novell.com>
12343
12344         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
12345         changes to pick up any changes in prefix, etc.
12346
12347 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
12348
12349         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
12350         
12351         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
12352         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
12353
12354 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
12355
12356         * class-internals.h object-internals.h class.c reflection.c: Extend the
12357         mono_lookup_dynamic_token () function to return the class of the
12358         token as well. 
12359
12360         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
12361         well. Fixes #73848.
12362
12363 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
12364
12365         * security-manager.c: Skip inheritance checks for intra-corlib
12366         class inheritance and method overrides. This skips a lot of checks
12367         and (anyway) permissions cannot work until corlib is loaded.
12368
12369 2005-03-23  Martin Baulig  <martin@ximian.com>
12370
12371         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
12372         MONO_TYPE_GENERICINST.  
12373
12374 2005-03-23  Martin Baulig  <martin@ximian.com>
12375
12376         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
12377
12378 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
12379
12380         * class.c: added locking comments to some functions.
12381         Cache the interface offsets arrays (saves about 20 KB
12382         of runtime memory in a typical app).
12383         Reduce the time overhead in mono_class_setup_supertypes ().
12384
12385 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
12386
12387         * icall.c: speedup and fix leaks in GetMethodsByName and
12388         GetPropertiesByName.
12389
12390 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
12391
12392         * reflection.c: some locking fixes.
12393
12394 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
12395
12396         * metadata.c: added missing break in case statement.
12397
12398 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
12399
12400         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
12401         typedbyref return values. Fixes #73941.
12402
12403 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
12404
12405         * security-manager.c|h: Added demandunmanaged method and 
12406         suppressunmanagedcodesecurity class to MonoSecurityManager.
12407         Renamed aptc class to allowpartiallytrustedcallers.
12408
12409 2005-03-17  Martin Baulig  <martin@ximian.com>
12410
12411         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
12412
12413 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12414
12415         * file-io.c: disabled file async. IO using aio_*. It uses the
12416         threadpool now. Workaround for bug #73718.
12417
12418 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
12419
12420         * assembly.h, mono-config.c: added code to deal with bundled configs
12421         for bundled assemblies.
12422
12423 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
12424
12425         * *.c, private.h: cleanup, removing old private.h header file.
12426
12427 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
12428
12429         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
12430         and throw_on_unmappable_char attributes.
12431
12432 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
12433
12434         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
12435         _ProcessName_internal.
12436
12437 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
12438
12439         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
12440         #73631.
12441
12442         * icall.c threads.c threads-types.h: Remove slothash icalls as they
12443         are no longer used.
12444
12445 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
12446
12447         * object.c (compute_class_bitmap): Add support for generics. Fixes
12448         #73527.
12449
12450 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
12451
12452         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
12453
12454 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12455
12456         * filewatcher.c: commented out the code for windows watcher, as we don't
12457         use it (we use the managed implementation instead).
12458
12459 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
12460
12461         * object-internals.h (MonoThread): Remove 'unused1' field.
12462
12463         * appdomain.c: Bump corlib version.
12464
12465         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
12466
12467         * reflection.c (mono_reflection_create_runtime_class): Remove the
12468         AssemblyBuilder.Save optimization since it causes too many problems.
12469
12470 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
12471
12472         * exception.c|h: Added mono_get_exception_reflection_type_load to
12473         create a ReflectionTypeLoadException object.
12474         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
12475         to return NULL is a InheritanceDemand fails during reflection. Updated
12476         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
12477         ReflectionTypeLoadException if an InheritanceDemand fails during 
12478         reflection. Added icall mapping for GetLinkDemandSecurity.
12479         * security-manager.c|h: Added ves_icall_System_Security_
12480         SecurityManager_GetLinkDemandSecurity internal call to return the
12481         class and methods permissions set for a LinkDemand. Removed unused
12482         fields in MonoSecurityManager.
12483
12484 2005-03-10  Martin Baulig  <martin@ximian.com>
12485
12486         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
12487         it's a generic instance.
12488
12489 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
12490
12491         * reflection.c (mono_get_object_from_blob): Applied patch from
12492         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
12493
12494         * class.c (mono_class_is_assignable_from): Another try at fixing 
12495         #73469 without breaking anything.
12496
12497 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
12498
12499         * class.c: (mono_class_is_assignable_from): Revert the last changes
12500         since they don't work with generics.
12501         
12502         * class.c (mono_class_is_assignable_from): Fix build bustage.
12503
12504         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
12505         the managed IsAssignableFrom method. Fixes #73469.
12506
12507         * reflection.c (mono_reflection_call_is_assignable_from): New helper
12508         function.
12509
12510 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
12511
12512         * object.c (mono_load_remote_field_new): Fix returning uninitialized
12513         memory when the remoting callback does not sets the out arguments.
12514         Fixes #73007.
12515
12516         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
12517         by mistake.
12518
12519         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
12520
12521         * object-internals.h (MonoStackFrame): Sync with managed object layout.
12522
12523         * appdomain.c: Bump corlib version.
12524
12525 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
12526
12527         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
12528         function.
12529
12530         * threads.c (mono_thread_attach): Detect threads which are not started
12531         by the GC pthread wrappers.
12532
12533 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
12534
12535         * icall.c: Added new icall for RNG.
12536         * rand.c|h: Added new icall to open the RNG. This allows to share a 
12537         single handle on Linux to access /dev/urandom and fix #73183.
12538
12539 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
12540
12541         * object.c: setting the new vtable in a transparent proxy object must
12542         not change the GC descriptor.
12543
12544 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
12545
12546         * object.c: fixed compilation without GCJ support.
12547         * reflection.c: for runtime-created types ensure klass->has_references
12548         is correct (bug #73215).
12549
12550 2005-03-02  Martin Baulig  <martin@ximian.com>
12551
12552         * class.c (mono_class_is_assignable_from): Make this work if
12553         `oklass' is a generic instance; fixes #72831.
12554
12555 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
12556
12557         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
12558         with hasthis set.
12559         
12560         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
12561
12562         * marshal.c: Reorganize native->managed marshalling code to also use
12563         the emit_marshal_... functions.
12564
12565 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
12566
12567         * object.c: typed allocs have issues with bitmap sizes > 30,
12568         so check for max_set >= 30.
12569
12570 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
12571
12572         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
12573         managed code. Fixes #73012.
12574
12575         * metadata.h (MonoMarshalSpec): Add elem_mult field.
12576
12577         * metadata.c reflection.c: Load/Emit elem_mult as well.
12578         
12579         * metadata.h (MonoMarshalSpec): Add comment.
12580
12581         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
12582
12583         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
12584         num_elem to -1 if not given.
12585
12586         * object-internals.h (MonoReflectionMarshal): Add has_size field.
12587
12588         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
12589         given values.
12590
12591 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
12592
12593         * null-gc.c (mono_gc_free_fixed): Was not compilable.
12594
12595 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
12596
12597         * reflection.c (encode_marshal_blob): Encode param_num field as well.
12598
12599         * object-internals.h (MonoReflectionMarshal): Add param_num field.
12600
12601 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
12602
12603         * object.c: generalized the reference bitmap creation
12604         and added hooks for the new GC.
12605         * class-internals.c: removed the gc_bitmap field from MonoClass.
12606
12607 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
12608
12609         * domain.c: help the compiler to produce better code
12610         in mono_jit_info_table_find ().
12611
12612 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
12613
12614         * object.c: make all allocations look typed.
12615
12616 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
12617
12618         * socket-io.c: load Mono.Posix if it's not loaded already
12619         (fixes bug#73033).
12620
12621 2005-02-24  Martin Baulig  <martin@ximian.com>
12622
12623         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
12624         * reflection.c (dup_type): Likewise.
12625
12626 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
12627
12628         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
12629         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
12630
12631 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
12632
12633         * domain.c, threads.c, object-internals.h: make the critical thread
12634         local vars use the fast access mode (even when we're compiled in
12635         a lib). Provide accessors to be used by the jit during codegen.
12636
12637 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12638
12639         * appdomain.c: Changed hook functios behavior to include
12640         support for the reflection only assemblies. Some icalls were changed
12641         to support the mentioned assemblies too. Signatures of static methods
12642         try_assembly_resolve and real_load now have an additional parameter:
12643         refonly.
12644
12645         * assembly.c: General changes to mono_assembly_ methods to support
12646         reflection only api. Functions mono_assembly_open, mono_assembly_load,
12647         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
12648         suffix, to support an additional gbool parameter to specify whether
12649         the assembli is reflection only or not. Created some new hook functions 
12650         to add support for reflection only assemblies. Signatures of static 
12651         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
12652         have now an additional parameter: refonly.
12653
12654         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
12655         indicating whether the assembly is reflection only or not.
12656
12657         * exception.c: Add mono_get_exception_invalid_operation.
12658
12659         * icall.c: Throw an InvalidOperationException when trying to invoke
12660         a property/method/event, or trying to set/get the value of a field.
12661         Also add an icall to retrieve the ref_only flag to the
12662         MonoReflectionAssembly.
12663
12664 2005-02-23  Chris Toshok  <toshok@ximian.com>
12665
12666         Part of fix for #72827.
12667         * mono-debug.c (mono_debug_add_method): add lexical block data to
12668         the info we write.  Kind of a hack at the moment - we copy the
12669         lexical block info from the MonoDebugMethodInfo to the
12670         MonoDebugMethodJitInfo here, before writing it.
12671         (mono_debug_read_method): read the lexical block info.
12672
12673         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
12674
12675         * debug-mono-symfile.h: add lexical block support.
12676
12677         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
12678         support.
12679
12680 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
12681
12682         * loader.c (mono_lookup_pinvoke_call): Fix warning.
12683
12684         * object.c (mono_runtime_free_method): Call mono_free_method () and
12685         put the TODOs there.
12686
12687         * loader.c (mono_free_method): Free up most memory allocated for 
12688         dynamic methods.
12689
12690 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
12691
12692         * reflection.c: properly flag a Type argument to a
12693         named custom attr value (bug #72248).
12694
12695 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
12696
12697         * reflection.c: reduce code duplication in named custom
12698         attribute encoding.
12699
12700 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
12701
12702         * reflection.c: properly encode custom attrs of type object
12703         (bug #72649).
12704
12705 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
12706
12707         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
12708
12709 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
12710
12711         * socket-io.c: load System.dll if it's not loaded already
12712         (bug #72850 and #70477).
12713
12714 2005-02-21  Martin Baulig  <martin@ximian.com>
12715
12716         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
12717         generic instances.
12718
12719 2005-02-21  Martin Baulig  <martin@ximian.com>
12720
12721         * reflection.c (mono_image_build_metadata): We also need to
12722         "fixup" the MethodImpl table after we computed the final method
12723         indices.  Call fixup_methodimpl() to do that.
12724         (fixup_methodimpl): New private method.
12725
12726 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
12727
12728         * assembly.c: special case mscorlib.dll (bug#72536),
12729         patch from Carlos Alberto Cortez.
12730
12731 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
12732
12733         * threads-types.h threads.c: Fix build bustage.
12734
12735         * threads.c: Use a union for long<->double conversions.
12736
12737         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
12738         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
12739
12740         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
12741         containing the checkpoint call with NOT_TAKEN.
12742         
12743         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
12744         checkpoint before pushing the arguments, so they won't have to be
12745         spilled to stack.
12746
12747 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
12748
12749         * domain.c, assembly.c, domain-internals.h: make some data
12750         const and relocation-free.
12751
12752 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
12753
12754         * object.c, appdomain.c, class-internals.h: introduce the
12755         MonoClassRuntimeInfo structure to hold the info needed to
12756         use a class at runtime. Made mono_class_vtable() lock-free
12757         for all the appdomains.
12758
12759 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
12760
12761         * metadata-internals.h, image.c: introduce a per-image mempool to
12762         be used for memory that has the same lifetime as the image.
12763
12764 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
12765
12766         * domain.c: In mono_init_internal(), instead of selecting the first
12767         runtime version supported by an executable, get a list of all
12768         supported versions and select the one for which an mscorlib exists
12769         (since even if the runtime supports a given version, it doesn't mean
12770         that the framework for that version is installed).
12771         Modified get_runtimes_from_exe to support this behavior.
12772         In supported_runtimes, added information about additional system
12773         assembly versions.
12774         
12775         * assembly.c: Added support for more than one system assembly version
12776         per runtime version. Updated the assembly list.
12777         In mono_assembly_remap_version, removed the initial version check,
12778         since we don't know to which version we need to compare until we
12779         get the version set on which the assembly is based.
12780         Moved the code for loading corlib into the new method
12781         mono_assembly_load_corlib(), so it can be used by the initialization
12782         code.
12783         
12784         * domain-internals.h: Updated data structures and added declaration
12785         for mono_assembly_load_corlib.
12786
12787 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
12788
12789         * reflection.c (resolve_object): Fix the creation of the signature in 
12790         the SignatureHelper case.
12791
12792         * assembly.c (mono_assembly_remap_version): Fix binary search.
12793         
12794 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
12795  
12796         * class.c: Added inheritance check when a method is overloaded (from a
12797         virtual method or when implementing an interface) and when a class is
12798         inherited. Added functions to set a failure for a class and to 
12799         retreive the exception from a failure.
12800         * class-internals.h: Added fields to MonoClass to keep the exception
12801         information status for inheritance (or other exceptions) to be thrown
12802         later (i.e. not at load time).
12803         * object.c: Throw the inheritance SecurityException when a type is to 
12804         be created with either class or method inheritance violations.
12805         * reflection.c|h: Fix when getting declsec from a class. Removed 
12806         unrequired code for class. Improved sanity in parameter naming.
12807         * security-manager.c|h: Added functions to check for class and method
12808         inheritance.
12809
12810 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
12811
12812         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
12813         and has_finalize in dynamic types as well.
12814
12815 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
12816
12817         * culture-info-table.h : fixed currency format for en-GB (and so on).
12818
12819 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
12820
12821         * gc.c: ensure the GC handles never have 0 as a value.
12822
12823 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
12824
12825         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
12826         a pointer to a struct to unmanaged code. Fixes #72625.
12827
12828 2005-02-16  Martin Baulig  <martin@ximian.com>
12829
12830         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
12831
12832 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
12833
12834         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
12835
12836 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
12837
12838         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
12839
12840         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
12841         UnmanagedFunctionPointerAttribute, use it for determining calling convention
12842         etc. Fixes #71471.
12843
12844         * reflection.c (mono_custom_attrs_get_attr): New helper function.
12845
12846         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
12847
12848 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
12849
12850         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
12851         changes to make the current context a field in MonoThread.
12852
12853 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
12854
12855         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
12856         the last change.
12857         
12858         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
12859         extracted from mono_marshal_get_native_wrapper.
12860
12861         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
12862         to create wrappers around native functions.
12863
12864         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
12865         delegates for arbitrary function pointers. Fixes #71472.
12866
12867 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
12868
12869         * threads.c: cleaned up the code a little.
12870
12871 2005-02-15  Martin Baulig  <martin@ximian.com>
12872
12873         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
12874         the data table.
12875
12876         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
12877         allocate larger chunks if needed.
12878
12879 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
12880
12881         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
12882         in by mistake.
12883
12884 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
12885
12886         * domain.c: keep the domains in an array and ensure the domain ids
12887         are kept small, so they can be used as indexes to domain-specific data
12888         with a small memory overhead.
12889
12890 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
12891
12892         * icall.c: Handle byref types in Type icalls. Fixes #72544.
12893
12894 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
12895
12896         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
12897
12898 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
12899
12900         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
12901
12902         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
12903         values.
12904
12905         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
12906         
12907 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
12908
12909         * domain-internals.h: add the hashtable here.
12910
12911         * class-internals.h: Remove `info' from MonoMethod
12912
12913         * domain.c: Add a new hashtable, jit_trampoline_hash
12914
12915 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
12916
12917         * object.c: don't set the value of static fields
12918         (fixes bug#72494).
12919
12920 2005-02-11  Martin Baulig  <martin@ximian.com>
12921
12922         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
12923         (mono_debug_add_method): Silently ignore the method if it's too big.
12924         (mono_debug_add_type): Likewise.
12925
12926 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
12927
12928         * threads.c, appdomain.c: remove #ifdefs from the code.
12929
12930 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
12931
12932         * metadata-internals.h: Added flags to MonoAssembly to cache the most
12933         common security informations. This allows us to stay in unmanaged code
12934         when doing LinkDemand and it's special cases (except for the first 
12935         time for initialization). The flags a very much used with --security.
12936         * reflection.c|h: Added code to get declarative security attributes 
12937         for LinkDemand and InheritanceDemand. This required to refactor the
12938         existing code for Demand.
12939         * security-manager.c|h: Added new method fields for the special cases
12940         of LinkDemand.
12941
12942 2005-02-10  Martin Baulig  <martin@ximian.com>
12943
12944         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
12945         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
12946
12947 2005-02-10  Martin Baulig  <martin@ximian.com>
12948
12949         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
12950         debugging code; this is almost a complete rewrite.
12951
12952         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
12953
12954 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
12955
12956         * domain.c, object.h: expose mono_string_equal () and 
12957         mono_string_hash ().
12958         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
12959         it's implemented in managed code.
12960
12961 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
12962
12963         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
12964         lo leak objects between appdomains.
12965
12966 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
12967
12968         * assembly.c: old compilers compilation fix from 
12969         robertj@gmx.net (Robert Jordan).
12970
12971 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
12972
12973         * class-internals.h: Little reminder for the future.
12974
12975         * debug-helpers.c: Fix up wrapper_type_names
12976
12977 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
12978
12979         * image.c, metadata-internals.h: when loading an image from a file,
12980         mmap all of it and use the same codepaths as when using a
12981         in-memory image: the code is simpler and we use less memory
12982         (both writable and readonly).
12983
12984 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
12985
12986         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
12987         API to alloc runtime data structures that need to be tracked by the
12988         GC and contain pointers.
12989         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
12990         make the code more readable and eventually use a different GC.
12991
12992 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
12993
12994         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
12995         for out arguments.
12996         
12997 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
12998
12999         * object.c: In release_type_locks(), don't release the cctor lock
13000         if it has already been released. This fixes a crash in the
13001         thread5 test.
13002
13003 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
13004
13005         * gc.c, marshal.c, icall.c: register a delegate for finalization
13006         only when the native function pointer has been allocated for it.
13007
13008 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
13009
13010         * object.c: cleaned up some code, allocate objects that are
13011         pointer free with the atomic malloc variant. Allocate memory
13012         for static data from the mempool if it's pointer-free.
13013         Allocate the bounds array at the end of the array data, when needed.
13014         * object-internals.h, object.h: move a private function in a private
13015         header.
13016         * class.c: handle missing case in tracking references in fields.
13017
13018 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
13019
13020         * class.c, class-internals.h: keep track if a type has
13021         reference fields in either the instance or static fields.
13022
13023 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
13024
13025         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
13026         and renamed to MonoRuntimeInfo. Added fields to store the expected
13027         framework assembly version. Changed mono_get_framework_version and
13028         mono_get_runtime_version for a single mono_get_runtime_info method.
13029         
13030         * assembly.c: Added method to remap system assembly versions to the
13031         current executing runtime version. Removed old mapping code.
13032         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
13033         
13034         * icall.c, reflection.c: Track api changes.
13035
13036 2005-02-06  Miguel de Icaza  <miguel@novell.com>
13037
13038         * loader.c (method_from_memberref): Improve error reporting,
13039         produce the class name instead of the typeref/typedef index. 
13040
13041 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
13042
13043         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
13044
13045 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
13046
13047         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
13048         stdcall and charset name mangling.  Reorganize the code and add
13049         some tracing stuff.
13050
13051 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
13052
13053         * monodiet.c: More iters!
13054
13055         * marshal.c: Iter usage.
13056
13057         * icall.c: Iter usage.
13058
13059         * object.c: Use iters.
13060
13061         * debug-helpers.c: More iters
13062
13063 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
13064
13065         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
13066         under win32.
13067
13068 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
13069
13070         * mono-debug-debugger.c: use iters
13071
13072         * class.c, class-internals.h: mono_class_setup_events is static
13073         now
13074
13075         * All callers: use iters
13076
13077 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
13078
13079         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
13080         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
13081
13082 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
13083
13084         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
13085
13086         * marshal.h: Add prototypes for ldfld/stfld_remote.
13087
13088         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
13089         this is called during startup.
13090         
13091 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
13092
13093         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
13094         MonoThreadsSync struct private in monitor.c. Changed the way
13095         MonoThreadsSync is allocated so it's faster and there is no
13096         need to keep track of it with a finalizer and it uses less memory.
13097         This also finally allows us to allocate mono objects as ptrfree when
13098         there are no reference fields.
13099
13100 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
13101
13102         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
13103         disappearing link to the GC interface and use them to simplify
13104         the gchandles code.
13105
13106 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
13107
13108         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
13109         stfld_remote which call mono_load/store_field_new. This allows methods
13110         calling ldfld/stfld wrappers to be AOTed.
13111
13112         * console-io.c: Include sys/filio.h under solaris.
13113         
13114         * console-io.c: Include curses.h if needed correctly.
13115
13116 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
13117         
13118         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
13119         method->klass as well.
13120
13121         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
13122
13123         * class.c (mono_class_init): Switch on lazy initialization of 
13124         methods.
13125
13126         * class.c (mono_class_get_finalizer): Handle the case when the 
13127         finalizer is inherited.
13128
13129 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13130
13131         * console-io.c: <curses.h> is needed by term.h on solaris.
13132
13133 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
13134
13135         * icall.c, class-internals.h, monodiet.c, class.c: Remove
13136         mono_class_setup_properties where possible. Remove this ftn from
13137         the header file, and make it static.
13138
13139 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
13140
13141         * loader.c: Add missing setup_... call.
13142
13143         * class.c: Add missing setup_... calls.
13144
13145         * class.c (mono_class_init): Switch on lazy initialization of 
13146         the generic vtable.
13147         
13148         * class.c (mono_class_init): Fix generics broken by the recent changes.
13149
13150         * monodiet.c (handle_type): Add missing setup_... calls.
13151
13152         * class.c: Back out garbage in previous patch.
13153         
13154         * class.c: Add missing setup_... calls.
13155
13156         * class.c (mono_class_get_method_from_name_flags): Avoid calling
13157         mono_class_setup_methods () if possible.
13158
13159         * class-internals.h (MonoClass): Add 'has_cctor' flag.
13160
13161         * class-internals.h (MonoCachedClassInfo): New structure.
13162
13163         * class.c: Initialize properties and events fields of MonoClass lazily.
13164
13165         * class.c: Add infrastructure for lazily initializing the methods and
13166         vtable fields of MonoClass. Not yet used.
13167
13168         * class.c (mono_class_get_finalizer): New helper function.
13169
13170         * class.c: Add infrastructure for loading some class related data from
13171         an AOT file.
13172
13173         * object.c: Add infrastructure for initializing the vtable from data
13174         in the AOT file.
13175
13176         * gc.c (run_finalize): Use mono_class_get_finalizer ().
13177
13178         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
13179         appropriate initialization function before accessing parts of the
13180         MonoClass structure.
13181
13182         * marshal.c: Fix warnings.
13183         
13184         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
13185
13186         * mono-debug-debugger.c (get_exception_message): Use 
13187         mono_class_get_method_from_name_flags ().
13188
13189 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
13190
13191         * reflection.c, appdomain.c: Replace a few manual searches that
13192         Zoltan missed. (Paolo approved this part of my initial patch).
13193
13194 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
13195
13196         * profiler.c: disable recording statistical events at report time.
13197
13198 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
13199
13200         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
13201         to byteswap arrays of enum values, too (bug #72080).
13202
13203 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
13204
13205         * appdomain.c (set_domain_search_path): Allow this to be called if
13206         domain->setup is not yet set.
13207
13208         * loader.c (mono_method_get_index): New helper function.
13209
13210         * loader.c reflection.c: Use mono_method_get_index ().
13211
13212         * class.c (mono_class_get_method_from_name_flags): New helper method.
13213
13214         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
13215         this.
13216
13217         * class.c (mono_class_get_cctor): New helper method.
13218
13219         * string-icalls.c object.c class.c marshal.c reflection.c: Use
13220         mono_class_get_method () to look up methods.
13221
13222 2005-02-01  Miguel de Icaza  <miguel@novell.com>
13223
13224         * console-io.c: Fix the build, this should work on Windows.
13225
13226 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
13227
13228         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
13229         be set to null to keep things valid
13230
13231 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13232
13233         * icall.c: added Console 2.0 icalls.
13234         * Makefile.am: added console-io.[ch]
13235         * console-io.[ch]: internal calls for Console 2.0 API.
13236
13237 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
13238
13239         * class.c: make sure we consider all the interfaces
13240         when calculating max_interface_id (bug found by
13241         Jeroen Frijters running ikvm).
13242
13243 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
13244
13245         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
13246         valuetype fields to null.
13247
13248         * object.c (set_value): Ditto. Fixes #71669.    
13249
13250 2005-01-31  Martin Baulig  <martin@ximian.com>
13251
13252         * metadata.c (mono_metadata_has_generic_params): New public
13253         function; checks whether something is a generic method.
13254
13255 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
13256
13257         * appdomain.c: fix infinite recursion when adding assemblies.
13258
13259 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
13260
13261         * object.c: Fix small typo to return all items for Environment.
13262         GetCommandLineArgs.
13263
13264 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
13265
13266         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
13267         reflection.c: more domain and assembly-unload related fixes
13268         and memory leaks plugs.
13269
13270 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
13271
13272         * 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.
13273
13274 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
13275
13276         * loader.c (mono_method_signature): Make this method lazy
13277         (mono_get_method_from_token): Don't computate the signature here.
13278
13279         Doing this saves quite a bit of memory. I got 90 kb on starting up
13280         monodoc. It should also save some disk reads on startup.
13281
13282         * *: MonoMethod->signature might be NULL now. You *MUST* use
13283         mono_method_signature.
13284
13285 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
13286
13287         * object.c (mono_runtime_get_main_args): Return an array from the
13288         current domain here. Fixes #71938.
13289
13290 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
13291
13292         * monitor.c: formatting changes to comply with the
13293         mono coding style and remove #ifdefs from the code.
13294
13295 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
13296
13297         * metadata.c, private.h: remove some unneeded data
13298         and use a more compact representation for table schemas.
13299
13300 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
13301
13302         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
13303         to get a better distribution in hash tables.
13304         * *.c: use mono_aligned_addr_hash() where appropriate.
13305         * assembly.c: make var static.
13306
13307 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
13308
13309         * domain-internals.h: Put MonoJitInfo on a diet.
13310
13311         * domain.c: Fix a warning.
13312
13313 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
13314
13315         * gc.c: rework the gc handles code to reuse handles
13316         when freed.
13317
13318 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
13319
13320         * domain.c: fixed long standing bug in mono_string_equal() which
13321         was brought to light with the ldstr changes.
13322
13323 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
13324
13325         * reflection.c: Remove warning by adding missing include for marshal.h
13326
13327 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
13328
13329         * domain.c, object.c: change the ldstr_table to hold
13330         MonoString* as keys: makes the runtime isinterned lookup
13331         faster and simplifies memory management.
13332
13333 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
13334  
13335         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
13336         possible to add imperative security checks before calling the icall.
13337         * reflection.c: Return security attributes on the original MonoMethod
13338         (and not the wrapped one). This fix permissions on icalls.
13339
13340 2005-01-25  Dick Porter  <dick@ximian.com>
13341
13342         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
13343         the check for mktime() support actually test the mktime() return
13344         value.  "Fixes" bug 71682, though the output is still different to
13345         MS.
13346
13347 2005-01-25  Martin Baulig  <martin@ximian.com>
13348
13349         * class.c (mono_class_is_assignable_from): Make this work for
13350         generic instances.
13351
13352 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
13353
13354         * marshal.c (mono_string_utf8_to_builder)
13355         (mono_string_builder_to_utf16): We might not have ownership of the
13356         string. In thise case, we need to create a new buffer.
13357
13358         * object-internals.h (mono_stringbuilder_capacity): sb->str might
13359         be null, in which case, use the default capacity.
13360
13361 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
13362
13363         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
13364         GC events to the profiler.
13365
13366 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
13367
13368         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
13369         if you don't want the GC to run.
13370
13371 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
13372
13373         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
13374         start providing a GC API and keeping different implementations in
13375         their own file.
13376         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
13377
13378 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
13379
13380         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
13381         mmap rather than allocating a huge buffer.
13382         (mono_debug_close_mono_symbol_file): Free the buffer allocated
13383         above.
13384
13385 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
13386
13387         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
13388         and CheckExecutionRights.
13389         * reflection.c|h: Keep the index of the declarative security to be 
13390         used, instead of the pointer, when AOT compiler is used. Also add 
13391         class initialization when requesting demands.
13392         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
13393         CheckExecutionRights. Both properties are now FALSE by default, and
13394         unmodifiable, unless the --security option is used.
13395
13396 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
13397
13398         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
13399         reflection.c: properly refcount images and assemblies, many leaks fixed.
13400
13401 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13402
13403         * threadpool.c: increase the timeout for threads in the thread pool to
13404         10s.  Fixes bug #67159.
13405
13406 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
13407
13408         * class-internals.h: Sun's compiler insists on explicit
13409         signed on bit fields to handle then correctly.
13410
13411 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
13412
13413         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
13414         Make the size of the array fit only the number of invalid path
13415         chars that we have.
13416
13417         * class.c (_mono_class_get): Improve the error reporting when a
13418         class referenced is not found, to assist debugging. 
13419
13420 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
13421
13422         * threads.c: fix off-by-one error.
13423         * domain.c: free data allocated in the domain.
13424
13425 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
13426
13427         * reflection.c (mono_method_body_get_object): Fill out exception info
13428         as well.
13429
13430         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
13431         structure.
13432         
13433 2005-01-19  Martin Baulig  <martin@ximian.com>
13434
13435         * loader.c (mono_get_method_constrained): Make this work again.
13436
13437 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
13438
13439         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
13440         guint16 to match the managed side.
13441
13442         * reflection.c (mono_reflection_body_get_object): Fill out local
13443         variables array.
13444
13445         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
13446         as well.
13447
13448         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
13449         'local_var_sig_token'.
13450
13451 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
13452
13453         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
13454         System.Drawing.
13455
13456         * reflection.c (mono_method_body_get_object): Handle abstract and
13457         runtime methods.
13458
13459 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
13460
13461         * marshal.c, loader.c, class-internals.h, reflection.c:
13462         store the emthod data for a wrapper in an array instead of a list.
13463
13464 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
13465
13466         * marshal.c: change the code to allocate memory more
13467         conservatively for method wrappers.
13468
13469 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
13470
13471         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
13472         fields from MonoClass to the marshal info structure where they belong.
13473
13474 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
13475
13476         * class.c, object.c, class-internals.h, marshal.c: rearrange
13477         some fields and tweak some types to lower memory usage.
13478
13479 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
13480
13481         * threads.c (signal_thread_state_change): Handle the case when the
13482         target thread is the current thread.
13483
13484         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
13485
13486         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
13487         emit_ptr_to_object_conv. 
13488
13489         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
13490         marshalling. Fixes #71352.
13491
13492 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
13493
13494         * metadata.h, blob.h: move table enum to blob.h so it can be included
13495         in any header.
13496         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
13497         cut the size of MonoImage/MonoDynamicImage.
13498
13499 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
13500
13501         * profiler.c (mono_profiler_install_simple): Fix default arguments.
13502
13503 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
13504
13505         * reflection.c, reflection.h, icall.c: add a function to check
13506         if an attribute type is defined for a metadata object.
13507
13508 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
13509
13510         * object-internals.h: Added some needed fields from StringBuilder class.
13511         * marshal.c: Set the maxCapacity when creating a StringBuilder.
13512
13513 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
13514
13515         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
13516         threads before shutting down the runtime.
13517
13518         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
13519
13520 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
13521
13522         * object-internal.h, threads.c: implement stacksize and 
13523         parameterized thread start functionality (requires
13524         matching corlib). Marked broken code for later removal.
13525
13526 2005-01-12  Martin Baulig  <martin@ximian.com>
13527
13528         * class-internals.h (MonoGenericClass): Moved the `initialized'
13529         flag to MonoDynamicGenericClass, removed `init_pending'.
13530         (MonoGenericInst): Added `is_reference' flag.
13531
13532 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
13533
13534         * reflection.c (mono_image_create_pefile): Only set the pe_offset
13535         inside the MSDOS header. Fixes #71201.
13536
13537         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
13538         gc thread.
13539         (mono_domain_finalize): Ditto.
13540
13541 2005-01-12  Martin Baulig  <martin@ximian.com>
13542
13543         * class.c (mono_get_shared_generic_class): Use the cache for
13544         non-dynamic generic classes.
13545
13546         * class-internals.h (mono_class_create_generic_2): Removed
13547         function prototype, this function is now static inside class.c.
13548
13549         * class.c (mono_class_create_generic_2): Made this static, only
13550         call it from mono_class_init() and mono_class_setup_parent().
13551         (collect_implemented_interfaces_aux): Call mono_class_init() on
13552         the interfaces we collect.
13553         (mono_class_setup_vtable): Call mono_class_init (class->parent).
13554
13555 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
13556
13557         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
13558         it a real thread handle.
13559
13560         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
13561         MonoJitExceptionInfo, since each catch clause needs its own variable.
13562         
13563 2005-01-11  Dick Porter  <dick@ximian.com>
13564
13565         * image.c (mono_pe_file_open): New variant on mono_image_open()
13566         that does not set up the CLI metadata; used for FileVersionInfo so
13567         it can get the data for windows binaries too.
13568         
13569         * process.c (process_read_string_block): Don't read off the end of
13570         the StringTable block.
13571
13572         These both fix bug 70766.
13573
13574 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
13575
13576         * gc.c: set some fields to NULL at GC cleanup time.
13577         * threads.c: if we quit the main thread, call exit ().
13578
13579 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
13580
13581         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
13582
13583 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
13584
13585         * threads.h, threads.c, object.c: added accessor and settor for
13586         main_thread. Handle it specially when exiting from it: wait
13587         for other foreground threads to exit.
13588
13589 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
13590
13591         * process.c, verify.c: remove some bloat.
13592
13593 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
13594
13595         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
13596         the calling convention to cdecl under win32.
13597
13598 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
13599
13600         * object.c (mono_object_get_size): New function to get the size of
13601         an object instance.
13602
13603         * profiler.c (simple_allocation): Use above.
13604
13605 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
13606
13607         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
13608         ves_icall_System_AppDomain_getRootDomain (as it's not required to
13609         get an appdomain by it's id and we can't assume the root's id is 0).
13610         * domain-internals.h: Change the function prototype to match.
13611         * icall.c: Change the icall table for AppDomain.
13612
13613 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
13614
13615         * locales.c (string_invariant_compare_char): Only compute
13616         GUnicodeTypes in the case where we need them.  Test for ordinality
13617         first and return if so.
13618
13619         From the commit:
13620
13621                 /*
13622                  * FIXME: here we must use the information from c1type and c2type
13623                  * to find out the proper collation, even on the InvariantCulture, the
13624                  * sorting is not done by computing the unicode values, but their
13625                  * actual sort order.
13626                  */
13627
13628 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
13629
13630         * loader.c: for P/Invoke methods, allow the "Internal" shared
13631         library name to refer to the calling process symbol namespace.
13632
13633 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
13634
13635         * Makefile.am: Add the security manager to the build.
13636         * security-manager.c|h: New. Initialization of the security manager.
13637
13638 2005-01-07  Dick Porter  <dick@ximian.com>
13639
13640         * threads.c: 
13641         * monitor.c: Update thread state during Monitor and WaitHandle
13642         waits.  Fixes bug 71031.
13643
13644 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
13645
13646         * reflection.c (property_encode_signature): Correctly handle when the
13647         property has no methods.
13648
13649 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
13650
13651         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
13652         
13653         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
13654         fields from mb, not rmb. Fixes #71017.
13655
13656         * marshal.c (emit_ptr_to_str_conv): Add support for 
13657         ByValTStr -> string conversion. Fixes #71015.
13658
13659         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
13660
13661         * mempool.c (mono_mempool_contains_addr): New helper function.
13662
13663 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
13664
13665         * metadata.c (mono_metadata_compute_size): Fix size calculation of
13666         HasSematics encoded fields.
13667         
13668         * metadata.c (mono_type_to_unmanaged): Improve error message for 
13669         invalid string marshalling.
13670
13671         * metadata.c: Fix warnings.
13672         
13673 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
13674
13675         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
13676         profiler support.
13677
13678 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
13679
13680         * domain.c object.c domain-internals.h: Revert part of r38077 since the
13681         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
13682         tests.
13683
13684 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
13685
13686         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
13687         so methods containing these can be AOTed.
13688
13689 2005-01-03  Martin Baulig  <martin@ximian.com>
13690
13691         * loader.c (find_method): Removed the hack for generic instances.
13692         (method_from_memberref): If our parent is a generic instance, pass
13693         its generic type definition to find_method() and then inflate the
13694         method.
13695         (mono_get_method_constrained): Pass the generic type definition to
13696         find_method() and inflate the method later.
13697
13698         * class-internals.h (MonoStats): Added `generic_class_count'.
13699
13700         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
13701         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
13702
13703         * reflection.c (mono_custom_attrs_from_params): Don't ignore
13704         generic type definitions.
13705
13706 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
13707
13708         * loader.c icall.c: Fix warnings.
13709
13710 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
13711
13712         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
13713         blittable types. Fixes #70864.
13714
13715 2004-12-29  Martin Baulig  <martin@ximian.com>
13716
13717         * icall.c
13718         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
13719
13720         * reflection.c (mono_method_get_object): Create a
13721         "System.Reflection.MonoGenericMethod" for inflated methods; don't
13722         call mono_get_inflated_method().
13723
13724         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
13725
13726 2004-12-27  Martin Baulig  <martin@ximian.com>
13727
13728         * class-internals.h (MonoMethod): Added `is_inflated' flag.
13729         (MonoMethodInflated): Added `inflated' field.
13730
13731         * class.c (mono_class_inflate_generic_method): Don't really
13732         inflate the method here; just set the `is_inflated' flag in the
13733         MonoMethod.
13734         (mono_class_get_inflated_method): Actually inflate the method here
13735         if it's not already inflated; we use the MonoMethodInflated's new
13736         `inflated' field as a cache.
13737
13738 2004-12-26  Martin Baulig  <martin@ximian.com>
13739
13740         * class.c
13741         (inflate_generic_class): Moved some code out of inflate_generic_type().
13742         (mono_class_inflate_generic_method): If we're already inflated,
13743         inflate the context and use the declaring method; ie. make sure
13744         the declaring method of an inflated method is always the generic
13745         method definition.
13746         (mono_class_create_from_typedef): Create
13747         `class->generic_container->context->gclass'.
13748
13749 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
13750
13751         * metadata-internals.h, marshal.c, reflection.c: More
13752         MonoGHashTable->GHashTable.
13753
13754         * domain-internals.h, class.c: Change MonoGHashTable's into
13755         GHashTables for some cases where no gc stuff is used
13756
13757         All users: update apis
13758
13759 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
13760
13761         * metadata.c (builtin_types): Make this `const'. Makes this get
13762         put into the shareable section.
13763         (mono_metadata_init): Casts to make gcc happy.
13764
13765 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
13766
13767         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
13768
13769 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
13770
13771         * icall.c: Added an internal call to retrieve the position and length
13772         of assembly-level declarative security attributes (RequestMinimum, 
13773         RequestOptional and RequestRefuse). This is used by the Assembly class
13774         to re-create the corresponding permission sets.
13775
13776 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
13777
13778         * marshal.c: fix the stelemref wrapper to be type correct
13779         (and faster).
13780
13781 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
13782
13783         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
13784         to do key & 0x7fffffff. Hashtable already does this. It just
13785         results in longer code.
13786
13787 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
13788
13789         * appdomain.c: Bump corlib version.
13790         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
13791         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
13792         * reflection.c|h: Add functions to get declarative security infos
13793         (blob position and length) for assemblies, classes and methods.
13794
13795 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
13796
13797         * reflection.c: sort the constant table (bug #70693).
13798
13799 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
13800
13801         * object-internals.h, threads.c, domain.c: add accessors for
13802         the MonoThread and MonoDomain tls keys.
13803
13804 2004-12-18  Martin Baulig  <martin@ximian.com>
13805
13806         * class.c (inflate_generic_type): If we're inflating a generic
13807         instance, set `ngclass->context->container = context->container';
13808         ie. the container we inflated into.
13809
13810         * metadata.c (mono_metadata_parse_generic_param): Reflect above
13811         inflate_generic_type() changes.
13812
13813 2004-12-17  Martin Baulig  <martin@ximian.com>
13814
13815         * class-internals.h
13816         (MonoGenericClass): Replaced `MonoType *generic_type' with
13817         `MonoClass *generic_class'.  Removed `dynamic_info'; if
13818         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
13819         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
13820
13821 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
13822
13823         * exception.c (mono_exception_from_token): New helper function.
13824
13825 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
13826
13827         * assembly.c (mono_assembly_load_with_partial_name): Call 
13828         mono_assembly_loaded before invoking the preload hooks. Fixes
13829         #70564.
13830
13831         * object-internals.h (MonoThread): Change culture_info and 
13832         ui_culture_info into an array.
13833
13834         * threads.c: Cache culture info objects from more than one appdomain.
13835
13836         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
13837         current UI culture.
13838
13839 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
13840
13841         * threads.h threads.c appdomain.c: Clear the culture_info field of
13842         all threads during unloading if they point to an object in the dying
13843         appdomain.
13844
13845 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
13846
13847         * culture-info.h (TextInfoEntry): New struct
13848         * object-internals.h: sync with managed
13849         * locales.c: fill the `text_info_data' field
13850         * culture-info-tables.h: update
13851
13852 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
13853
13854         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
13855         collector.
13856
13857 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
13858
13859         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
13860         (ves_icall_ModuleBuilder_getMethodToken): Ditto
13861
13862 2004-12-12  Martin Baulig  <martin@ximian.com>
13863
13864         * mono-debug-debugger.c (write_type): If we're an enum and the
13865         builtin types have already been initialized, call mono_class_init().
13866
13867 2004-12-11  Martin Baulig  <martin@ximian.com>
13868
13869         * metadata.c (mono_metadata_load_generic_params): Added
13870         `MonoGenericContainer *parent_container' argument; automatically
13871         compute `container->is_method'; pass the correct owner to
13872         get_constraints().      
13873
13874         * reflection.c (compare_genericparam): Sort the GenericParam table
13875         according to increasing owners. 
13876
13877 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
13878
13879         * profiler.c: allow disabling the default profiler.
13880
13881 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
13882
13883         * decimal.c, icall.c: allow disabling System.Decimal support.
13884
13885 2004-12-09  Marek Safar <marek.safar@seznam.cz>
13886
13887         * reflection.c: Add support for null attribute arguments.
13888
13889 2004-12-09  Martin Baulig  <martin@ximian.com>
13890
13891         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
13892         names to get rid of compiler warnings.
13893
13894 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
13895
13896         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
13897         mono_marshal_load_type_info (). Fixes #69625.
13898         (mono_marshal_get_ptr_to_struct): Likewise.
13899
13900 2004-12-08  Martin Baulig  <martin@ximian.com>
13901
13902         * mono-debug.h: Bumped version number to 47.
13903
13904         * mono-debug-debugger.c
13905         (mono_debugger_event_handler, mono_debugger_event): Take two
13906         guint64 arguments insteed of a gpointer and a guint32.  
13907
13908 2004-12-08  Martin Baulig  <martin@ximian.com>
13909
13910         * debug-mono-symfile.h
13911         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
13912         `address' to `native_offset'.
13913
13914 2004-12-08  Martin Baulig  <martin@ximian.com>
13915
13916         * class.c (mono_class_create_from_typespec): Only inflate if we
13917         either have `context->gclass' or `context->gmethod'.
13918
13919 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
13920
13921         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
13922
13923         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
13924
13925         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
13926
13927         * reflection.c (mono_assembly_get_object): Remove the workaround put
13928         in for the release.
13929         
13930         * appdomain.c: Use the corlib_internal field from MonoAssembly.
13931
13932         * appdomain.c: Bump corlib version.
13933
13934         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
13935         be visible in other appdomains.
13936
13937 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
13938
13939         * threads.c: Interlocked inc and dec for longs were messed up,
13940         use a KISS based impl for this. Fixes 70234
13941
13942 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
13943
13944         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
13945
13946 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
13947
13948         * icall.c: fix to follow policy not to allow struct
13949         arguments in icalls.
13950
13951 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13952
13953         * process.c: make the patch that handles spaces in file paths work
13954         on mono/windows too.
13955
13956 2004-12-06  Martin Baulig  <martin@ximian.com>
13957
13958         * class.c (mono_class_create_generic): Call
13959         mono_class_setup_supertypes() if we're dynamic.
13960         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
13961
13962 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
13963
13964         * object-internals.h: Add new fields to MonoThread.
13965
13966         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
13967
13968         * icall.c threads-types.h threads.c: Add new icalls.
13969
13970         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
13971
13972         * object-internals.h (MonoReflectionAssembly): Sync object layout with
13973         managed side.
13974
13975         * appdomain.c: Bump corlib version.
13976
13977         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
13978         internal assemblies. Fixes #69181.
13979
13980 2004-12-05  Martin Baulig  <martin@ximian.com>
13981
13982         * class.c (mono_class_inflate_generic_signature): Make this a
13983         no-op if `context' is NULL or we don't have any type parameters;
13984         also copy `sentinelpos'.        
13985
13986 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
13987
13988         * image.c: Add unbox_wrapper_cache.
13989
13990         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
13991
13992         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
13993         function generator.
13994         
13995         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
13996         Fixes #70173.
13997
13998         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
13999         
14000 2004-12-04  Martin Baulig  <martin@ximian.com>
14001
14002         * loader.c (mono_method_get_signature_full): New public function;
14003         like mono_method_get_signature(), but with an additional
14004         `MonoGenericContext *' argument.
14005
14006         * class.c (mono_class_inflate_generic_signature): Formerly known
14007         as inflate_generic_signature(); make this public.
14008
14009 2004-12-04  Martin Baulig  <martin@ximian.com>
14010
14011         * metadata.c
14012         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
14013         instead of a `MonoGenericContainer *'.  
14014         (mono_metadata_parse_array_full): Likewise.
14015         (mono_metadata_parse_signature_full): Likewise.
14016         (mono_metadata_parse_method_signature_full): Likewise.
14017         (mono_metadata_parse_generic_inst): Likewise.
14018         (mono_metadata_parse_generic_param): Likewise.
14019         (mono_metadata_parse_mh_full): Likewise.
14020         (mono_type_create_from_typespec_full): Likewise.
14021
14022 2004-12-03  Martin Baulig  <martin@ximian.com>
14023
14024         * class-internals.h (MonoGenericContainer): Replaced the
14025         `MonoGenericContext * pointer with a `MonoGenericContext'
14026         structure and made it the first element.
14027
14028 2004-12-03  Martin Baulig  <martin@ximian.com>
14029
14030         * class.c
14031         (inflate_generic_type): Set the `context->container' when creating
14032         a new MonoGenericContext.
14033         (mono_class_inflate_generic_method): Likewise.
14034         (mono_class_create_from_typespec): Just use `context->container'
14035         to get the container.
14036
14037         * loader.c (method_from_methodspec): Set `context->parent' from
14038         `context->container' - and if that's a method container, use its
14039         parent.  Also set the `context->container' when creating a new
14040         MonoGenericContext.
14041         (mono_get_method_from_token): Use just `context->container' to get
14042         the container.
14043
14044         * metadata.c (do_mono_metadata_parse_generic_class): Also set
14045         `gclass->context->container'.
14046
14047         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
14048         the `context->container' when creating a new MonoGenericContext.
14049
14050 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
14051
14052         * reflection.c (compare_genericparam): Sort params with identical
14053         owner by their number. Fixes gen-111 on sparc.
14054
14055 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
14056
14057         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
14058         around the domain changes.
14059
14060         * appdomain.c (mono_domain_unload): Handle the case when the thread
14061         calling Unload is itself being aborted during unloading. Fixes #70022.
14062
14063         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
14064
14065         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
14066         checkpoint_func as an icall so it gets a wrapper.
14067         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
14068         in the cross-appdomain wrappers too.
14069
14070         * threads.c (mono_thread_has_appdomain_ref): Make this public.
14071
14072         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
14073
14074         * reflection.c: Fix some memory leaks.
14075         
14076 2004-12-02  Martin Baulig  <martin@ximian.com>
14077
14078         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
14079
14080         * metadata.c (generic_class_cache): New static hashtable.
14081         (mono_metadata_lookup_generic_class): New public method.
14082
14083 2004-12-02  Martin Baulig  <martin@ximian.com>
14084
14085         * class.c (mono_class_create_from_typedef): Call
14086         mono_class_setup_parent() and mono_class_create_mono_type() before
14087         parsing the interfaces.
14088
14089 2004-12-02  Martin Baulig  <martin@ximian.com>
14090
14091         * metadata.c (generic_inst_cache): New static hashtable.
14092         (mono_metadata_lookup_generic_inst): New public function.
14093         (mono_metadata_inflate_generic_inst): New public function.
14094         (mono_metadata_parse_generic_inst): New public function.
14095         (do_mono_metadata_parse_generic_class): Use the new
14096         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
14097         since this'll also use the cache.
14098
14099         * reflection.c (mono_reflection_bind_generic_method_parameters):
14100         Use mono_metadata_lookup_generic_inst() to use the new cache.
14101
14102         * class.c (inflate_mono_type): Use
14103         mono_metadata_inflate_generic_inst() to inflate a generic
14104         instance; this'll also use the new cache.
14105
14106         * loader.c (method_from_methodspec): Use
14107         mono_metadata_parse_generic_inst() and
14108         mono_metadata_inflate_generic_inst() rather than parsing it
14109         manually, so we can use the new cache.
14110
14111 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
14112
14113         * threads.c (wait_for_tids): Do not incorrectly free threads when 
14114         the wait times out.
14115
14116 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
14117
14118         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
14119         iter->args based on whether parameters are passed in registers (i.e.
14120         MONO_ARCH_REGPARMS is defined)
14121
14122 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
14123
14124         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
14125         the exception message. Fixes #70070.
14126         (method_from_methodspec): Fix warnings.
14127
14128 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14129
14130         * process.c: (complete_path) return the path quoted
14131
14132 2004-12-01  Martin Baulig  <martin@ximian.com>
14133
14134         * class-internals.h (MonoGenericInst): New structure.
14135         (MonoGenericClass): Replaced `type_argc', `type_argv' and
14136         `is_open' with `MonoGenericInst *inst'.
14137         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
14138         `is_open' with `MonoGenericInst *inst'.
14139
14140 2004-11-30  Martin Baulig  <martin@ximian.com>
14141
14142         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
14143
14144         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
14145         to `generic_class_cache'.
14146
14147         * metadata.c
14148         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
14149         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
14150         (mono_generic_inst_is_valuetype): Renamed to
14151         mono_generic_class_is_valuetype().
14152
14153         * class-internals.h
14154         (MonoGenericInst): Renamed to MonoGenericClass.
14155         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
14156         (MonoClass): Renamed `generic_inst' to `generic_class'.
14157         (MonoGenericContext): Renamed `ginst' to `gclass'.
14158
14159         * object-internals.h
14160         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
14161
14162         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
14163         mono_reflection_generic_class_initialize().
14164
14165         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
14166         now known as "System.Reflection.MonoGenericClass".
14167         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
14168
14169 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
14170
14171         * class-internals.h: Added a flag field to MonoClass to cache the
14172         declarative security attributes actions associated with the class.
14173         * domain-internals.h: Added booleans to MonoJitInfo to cache the
14174         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
14175         applicable to the JITted method.
14176         * reflection.c|h: Added functions to extract (as flags) which security
14177         actions are available (declaratively) for a method, class or assembly.
14178         * metadata.c|h: Added functions to search the declarative security
14179         table in the metadata.
14180         
14181 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
14182
14183         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
14184         EXPORTEDTYPES are already in the class name cache, so there is no
14185         need to add extra code here to look at them. Just removes a bit of
14186         cruft.
14187
14188         (ves_icall_System_Environment_get_TickCount): No need for #if
14189         WINDOWS. We already have the code in io-layer.
14190
14191 2004-11-28  Martin Baulig  <martin@ximian.com>
14192
14193         * loader.c
14194         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
14195         Fixes gen-112.cs.
14196
14197 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
14198
14199         * assembly.c (do_mono_assembly_open): Instead of having a
14200         conditional WITH_BUNDLE, incorporate support for bundles here, by
14201         having a global `bundles' variable holding a pointer to the actual
14202         bundles. 
14203
14204         (mono_register_bundled_assemblies): New API call used by the
14205         bundle code. 
14206
14207         See mkbundle.1 for details.
14208         
14209 2004-11-27  Martin Baulig  <martin@ximian.com>
14210
14211         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
14212         the vtable for generic methods.
14213
14214 2004-11-26  Martin Baulig  <martin@ximian.com>
14215
14216         * metadata.c
14217         (mono_metadata_generic_method_hash): New public function.
14218         (mono_metadata_generic_method_equal): Likewise.
14219
14220         * class-internals.h
14221         (MonoGenericContainer): Added `GHashTable *method_hash'.
14222
14223         * reflection.c (ReflectionMethodBuilder): Added
14224         `MonoGenericContainer *generic_container'.
14225         (reflection_methodbuilder_to_mono_method): Don't create a new
14226         MonoGenericContainer each time we're called.
14227         (mono_reflection_bind_generic_method_parameters): Use
14228         `container->method_hash' to cache the results so we don't create a
14229         different method if we're called several times with the same
14230         arguments.
14231
14232         * loader.c (method_from_methodspec): Use the new
14233         `container->method_hash' here, too.
14234
14235 2004-11-26  Martin Baulig  <martin@ximian.com>
14236
14237         * class.c (inflate_generic_signature): Correctly compute
14238         `res->has_type_parameters'.
14239         (mono_class_vtable): Use the `has_type_parameters' flag to
14240         determine whether we're a generic method.
14241
14242         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
14243
14244 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
14245
14246         * object.c (mono_runtime_run_main): Fix a small memory leak.
14247
14248 2004-11-25  Martin Baulig  <martin@ximian.com>
14249
14250         * class.c (set_generic_param_owner): Fixed the loop.
14251
14252 2004-11-25  Martin Baulig  <martin@ximian.com>
14253
14254         * object.c (mono_class_vtable): Don't create any JIT wrappers for
14255         generic methods.
14256
14257 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
14258
14259         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
14260         names. Fixes #69787.
14261
14262 2004-11-24  Martin Baulig  <martin@ximian.com>
14263
14264         * class.c (mono_class_create_generic_2): If we don't have a
14265         `ginst->parent', inflate `gklass->parent' to get our parent.
14266
14267 2004-11-24  Martin Baulig  <martin@ximian.com>
14268
14269         * reflection.c (compare_genericparam): Correctly sort the
14270         GenericParam table; fixes #69779.
14271
14272 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
14273
14274         * reflection.c: When writing a PE file, don't create a huge
14275         buffer in memory. Just write the arrays we have to the file.
14276         This reduces memory usage.
14277
14278         * metadata-internals.h: MonoDynamicStream pefile is no longer used
14279         globally.
14280
14281 2004-11-17  Martin Baulig  <martin@ximian.com>
14282
14283         * class.c (mono_class_init): Don't setup `class->parent' for
14284         dynamic instances; moved this to mono_class_generic_2().
14285         (mono_class_create_generic): Also set `klass->inited' for dynamic
14286         generic instances.
14287         (mono_class_create_generic_2): Don't do anything for dynamic
14288         generic instances.  Set `klass->parent' here and also call
14289         mono_class_setup_parent() here. 
14290
14291         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
14292         `MonoType *parent' argument; set `ginst->parent' before calling
14293         mono_class_create_generic_2(), so we set the correct parent.
14294
14295 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
14296
14297         * reflection.c: allow getting attributes from ModuleBuilder
14298         (used by ikvm).
14299
14300 2004-11-17  Martin Baulig  <martin@ximian.com>
14301
14302         * class.c (mono_class_create_from_typedef): If a type parameter is
14303         inherited from an outer class, set its owner to that class.
14304
14305 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
14306
14307         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
14308           for (int*) written size. This fixes bug #69592.
14309
14310 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
14311
14312         * icall.c: Added IsAuthenticodePresnet internal call.
14313         * image.c|h: New function that check a MonoImage for an Authenticode
14314         signature in the certificate PE data directory.
14315         * security.c|h: New internal call to ask the runtime if an 
14316         Authenticode signature seems referenced in the PE header.
14317
14318 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
14319
14320         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
14321
14322         * reflection.c (mono_image_create_pefile): Free the assembly streams
14323         after writing out the assembly file.
14324
14325         * object.c (mono_runtime_run_main): Fix small memory leak.
14326
14327         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
14328         property access modifiers. Fixes #69389.
14329
14330 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
14331
14332         * domain.c, object.c, object-internals.h, domain-internals.h,
14333         object.h, marshal.c: keep dynamic code info per domain.
14334
14335 2004-11-15  Martin Baulig  <martin@ximian.com>
14336
14337         * class.c (mono_type_get_name_recurse): Put type arguments in
14338         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
14339         see bug #68387.
14340
14341 2004-11-15  Martin Baulig  <martin@ximian.com>
14342
14343         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
14344         (mono_class_setup_vtable): When computing `the_cname' for a
14345         generic instance, don't include the namespace since we'd otherwise
14346         add it twice.
14347
14348 2004-11-15  Martin Baulig  <martin@ximian.com>
14349
14350         * class.c (mono_class_create_generic): Changed return type to void.
14351         (mono_class_create_generic_2): New public function; setup
14352         `class->method', `class->field' and `class->interfaces' here
14353         instead of in mono_class_init().
14354
14355         * class.h (mono_class_create_generic): Moved to class-internals.h.
14356
14357 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
14358
14359         * reflection.c (mono_image_create_pefile): take a file HANDLE.
14360         rather than writing to memory, write to this file. Right now,
14361         we are just writting into a buffer, and copying that. However
14362         we can avoid the buffer later.
14363
14364         (mono_dynamic_stream_reset): new function
14365
14366         * icall.c, object-internals.h: update for the above.
14367
14368 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
14369
14370         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
14371         have been using gc'd memory. First it is slower, unlikely
14372         the comment in the source code said, secondly, it increases
14373         our footprint to do it in the gc.
14374
14375         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
14376         the method so that it does not have to copy to managed code.
14377
14378 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
14379
14380         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
14381
14382 2004-11-12  Martin Baulig  <martin@localhost>
14383
14384         * reflection.c (mono_image_create_token): Allow generic method
14385         definitions here, since they may appear in an `.override'; see
14386         gen-98/gen-99 for an example.
14387
14388 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
14389
14390         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
14391         #69365.
14392
14393         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
14394         descriptive.
14395
14396 2004-11-11  Martin Baulig  <martin@ximian.com>
14397
14398         * class.c (mono_class_setup_vtable): In an explicit interface
14399         implementation, the method name now includes the arity.
14400
14401 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
14402
14403         * object.c (mono_array_full_copy): Fix warning.
14404
14405 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
14406
14407         * appdomain.c: Removed look_for_method_by_name(). Use the new method
14408         mono_class_get_method_from_name() instead.
14409         
14410         * class-internals.h: Added two new types of wrappers. 
14411         Added MonoRemotingTarget enum. Added new trampoline function type, which
14412         takes an additional MonoRemotingTarget value as parameter, so it is
14413         possible to request a trampoline for a specific target.
14414         
14415         * class.c: Added new mono_class_get_method_from_name() method.
14416         
14417         * class.h: In MonoRemoteClass, we can have now to vtables, one for
14418         general remoting sinks and one specific for cross domain calls.
14419         
14420         * debug-helpers.c: Added new wrapper names.
14421         
14422         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
14423         of a remote class.
14424         
14425         * image.c: Porperly delete value objects form the remoting invoke hashtable.
14426         
14427         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
14428         with several other methods (mono_marshal_get_xappdomain_dispatch,
14429         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
14430         and others) can generate a fast remoting wrapper for cross domain calls.
14431         More information can be found in docs/remoting.
14432         Other changes: Removed mono_find_method_by_name, and used
14433         mono_class_get_method_from_name instead.
14434         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
14435         is stored in the remoting invoke hashtable.
14436         
14437         * marshal.h: published the new method for getting the xdomain wrapper,
14438         and also added a method for getting the adequate wrapper for a given
14439         method and target.
14440         
14441         * object-internals.h, object.c: Added a couple of methods for capying and
14442         cloning arrays.
14443         Modified mono_install_remoting_trampoline, which takes the new remoting
14444         trampoline that has a remoting target as parameter.
14445         mono_class_proxy_vtable now also takes a remoting target as parameter, and
14446         will return the most suitable vtable for the target.
14447         Added mono_remote_class_vtable, which returns the vtable of a remote class
14448         (which can be the normal remoting vtable or the xdomain vtable).
14449         
14450         * threads.c: the xdomain invoke and dispatch wrappers must also be
14451         protected against interruptions.
14452
14453 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14454
14455         * icall.c: use memmove in BlockCopyInternal when the source and
14456         destination arrays are the same.
14457
14458 2004-11-09  Martin Baulig  <martin@ximian.com>
14459
14460         * class-internals.h (MonoGenericContainer): Removed `method' and
14461         `signature', replaced them with `is_method' and `is_signature'
14462         flags.  Added `context'.
14463
14464         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
14465         instead of a `MonoGenericContainer *'.
14466
14467         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
14468         for dynamic type parameters.
14469         (mono_metadata_load_generic_params): Setup `container->context'.
14470
14471         * reflection.c (mono_reflection_setup_generic_class): Setup
14472         `tb->generic_container->context'.
14473         (do_mono_reflection_bind_generic_parameters): Use
14474         mono_class_inflate_generic_type() to correctly inflate types,
14475         rather than using our own hack just for MONO_TYPE_VAR.
14476
14477 2004-11-09  Martin Baulig  <martin@ximian.com>
14478
14479         * class.c (mono_class_inflate_generic_method): Small fix; don't
14480         crash here.
14481
14482         * icall.c
14483         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
14484         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
14485         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
14486         (ves_icall_Type_BindGenericParameters): Likewise.
14487         (ves_icall_Type_get_IsGenericInstance): Likewise.
14488         (ves_icall_Type_GetGenericParameterPosition): Likewise.
14489         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
14490         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
14491         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
14492
14493 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
14494
14495         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
14496         assembly versions and public key tokens. Fixes #69113.
14497
14498 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
14499
14500         * metadata.c: fix bug introduced with the type cache changes
14501         on 2004-11-06.
14502
14503 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
14504
14505         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
14506         the MonoClass pointer instead of the token in exception clauses.
14507         * reflection.c: updates for the above and make the code not depend
14508         on the structure of MonoExceptionClause.
14509
14510 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
14511
14512         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
14513         Add support for dynamic assemblies. Fixes #69114.
14514
14515         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
14516
14517 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
14518
14519         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
14520         since most only those methods use it. the code member of
14521         MonoMethodPInvoke was dead, so that can be removed too. Also,
14522         remove inline_count (again, not used), and move slot so that it
14523         can share bits with some other flags. This saves 8 bytes in the
14524         structure and gives us about 50 kb back for mcs helloworld.cs
14525
14526         * *.[ch]: Do naming changes for the above.
14527
14528         * loader.c (mono_method_get_header): Lazily init the header
14529         on first access.
14530         (mono_get_method_from_token): don't init the header here
14531         (mono_free_method): the header may never be allocated
14532
14533         Overall, this saves 150 kb of unmanaged allocations
14534         for mcs helloworld.cs. That accounts for 10% of the unmanaged
14535         memory at runtime.
14536         
14537         * loader.c, loader.h (mono_method_get_header): new accessor.
14538
14539         * *.[ch]: use the above method. Prepares us to lazily load
14540         the header.
14541
14542         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
14543         three warnings, which are actual bugs (see 69206).
14544
14545         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
14546         unused. Saves a cool 4 bytes / method.
14547
14548 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
14549
14550         * metadata.c (builtin_types): Add types for System.Object here.
14551         (mono_metadata_parse_type_full): Cache MonoType*'s that are
14552         for a class or valuetype from klass->this_arg or klass->byval_arg.
14553
14554         On mcs for a hello world, this gets us down from 21836 MonoType's
14555         to 14560.
14556
14557         (mono_metadata_free_type): Account for the above change.
14558
14559 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
14560
14561         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
14562         exception instead of asserting if name is null.
14563         (ves_icall_System_AppDomain_GetData): Ditto.
14564
14565 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
14566
14567         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
14568         EnumBuilder.
14569
14570         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
14571         Return NULL when the domain does not have entry_assembly set.
14572
14573         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
14574         Add a 'resource_modules' argument.
14575         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
14576
14577         * reflection.c (mono_reflection_create_runtime_class): Move setting
14578         of wastypebuilder here, so mono_get_type_object () returns a MonoType
14579         for enums too.
14580
14581         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
14582         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
14583         Throw an ArgumentNullException if 'ptr' is null.
14584
14585         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
14586         assemblies here. Fixes #69020.
14587
14588 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
14589
14590         * reflection.c (build_compressed_metadata): Fix the previous patch for
14591         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
14592         the stack.
14593
14594 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
14595
14596         * assembly.c (mono_assembly_names_equal): Allow a match if one of
14597         the cultures is false. Fixes #69090.
14598
14599         * reflection.c (build_compressed_metadata): Fix invalid memory read 
14600         detected by valgrind.
14601         
14602         * reflection.c (mono_reflection_get_type): Avoid triggering a 
14603         TypeResolve multiple times for the same type. Fixes #65577.
14604
14605 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
14606
14607         * marshal.c: Avoid using ldftn to call managed functions. It is
14608         much slower than just a call.
14609
14610         * reflection.c (mono_module_get_object): free the basename we
14611         allocate here from glib.
14612         
14613         * reflection.c (ensure_runtime_vtable): make sure to free
14614         overrides.  Also, we were allocating an array of MonoMethod not an
14615         array of MonoMethod*.
14616
14617         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
14618
14619         * image.c (mono_image_close): free image->guid here.
14620
14621 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
14622
14623         * reflection.c: Fix some spec conformance issues with the PE file
14624         structures so mcs compiled apps run on the Net 2.0 beta.
14625
14626 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
14627
14628         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
14629         Implement this. Fixes #67264.
14630
14631         * debug-helpers.h debug-helpers.c marshal.c: Move 
14632         mono_find_method_by_name to debug-helpers.c.
14633
14634 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
14635
14636         * object.c (mono_release_type_locks): type_initialization_hash is
14637         a GHashTable.
14638
14639         * reflection.c object.c object-internals.h: Fix warnings.
14640
14641         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
14642         without accessors. Fixes #61561.
14643
14644         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
14645         application base from the root domain if not set. Fixes #65641.
14646         (mono_runtime_init): Fix warning.
14647
14648 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14649
14650         * appdomain.c: call mono_thread_pool_init.
14651         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
14652         of worker threads based on the number of CPUs and the environment
14653         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
14654         for non-windows (windows) systems.
14655
14656 2004-10-27  Chris Toshok  <toshok@ximian.com>
14657
14658         * mono-debug-debugger.c (write_class): don't call mono_class_init
14659         here, as even with the check for (!klass->init_pending), we get
14660         into a situation where we're hitting cycles in class
14661         initialization.  Fixes #68816.
14662
14663 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
14664
14665         * image.c: Avoid overwriting values in the loaded_images_hash when an
14666         assembly is loaded multiple times. Fixes #61152.
14667
14668         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
14669         so multiple satellite assemblies for the same name can be loaded.
14670         Fixes #68259.
14671
14672         * mono_domain_assembly_preload: Actually return the loaded assembly, 
14673         not NULL.
14674
14675         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
14676         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
14677
14678         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
14679         pending finalizers are not invoked after the appdomain has been 
14680         unloaded. Fixes #67862.
14681
14682 2004-10-22  Martin Baulig  <martin@ximian.com>
14683
14684         * mono-debug-debugger.c
14685         (mono_debugger_runtime_invoke): Don't box valuetypes.
14686
14687 2004-10-22  Chris Toshok  <toshok@ximian.com>
14688
14689         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
14690         don't hide private methods.
14691
14692 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
14693
14694         * icall.c: Allows the runtime to "share" (when known) the public key
14695         token of an assembly. This avoid the need to recalculate the token 
14696         (from the public key) in managed code.
14697
14698 2004-10-21  Chris Toshok  <toshok@ximian.com>
14699
14700         * debug-helpers.c (append_class_name): argh, revert last patch.
14701         
14702 2004-10-21  Chris Toshok  <toshok@ximian.com>
14703
14704         * debug-helpers.c (append_class_name): use '+' as the delimiter,
14705         not '/', so that it matches what the debugger uses to look up
14706         methods.
14707
14708 2004-10-21  Martin Baulig  <martin@ximian.com>
14709
14710         * mono-debug-debugger.c (mono_debugger_throw_exception): New
14711         public method; this is called each time an exception is thrown and
14712         allows the debugger to use exception catch points.
14713
14714 2004-10-21  Martin Baulig  <martin@ximian.com>
14715
14716         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
14717         the stack pointer and the exception object in some struct and pass
14718         that to the debugger.
14719
14720 2004-10-21  Chris Toshok  <toshok@ximian.com>
14721
14722         * mono-debug-debugger.c (do_write_class): add instance/static
14723         event support.  We don't expose "raise" or "other" yet.
14724         (event_is_static): new method.
14725
14726 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
14727
14728         * mono-debug-debugger.c
14729         (mono_debugger_handle_exception): Remove
14730         bogus return value for fussy compilers.
14731
14732 2004-10-20  Martin Baulig  <martin@ximian.com>
14733
14734         * mono-debug-debugger.c
14735         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
14736         (mono_debugger_handled_exception): Likewise.
14737
14738 2004-10-20  Martin Baulig  <martin@ximian.com>
14739
14740         * mono-debug-debugger.h (MonoDebuggerEvent): Added
14741         MONO_DEBUGGER_EVENT_EXCEPTION.
14742
14743         * mono-debug-debugger.c (mono_debugger_handle_exception): New
14744         public function to send the debugger a notification for an
14745         exception and inform it about a catch/finally clause.
14746
14747 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
14748
14749         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
14750         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
14751         fix 2.95 build. 
14752
14753         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
14754
14755 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
14756
14757         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
14758         marshalled as [In,Out]. Fixes #58325.
14759
14760 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
14761
14762         * reflection.c (mono_method_body_get_object): Implement some fields.
14763
14764 2004-10-12  Martin Baulig  <martin@ximian.com>
14765
14766         * reflection.c (mono_reflection_bind_generic_parameters): Small
14767         fix, correctly retrieve our parent from a generic instance.
14768
14769 2004-10-12  Martin Baulig  <martin@ximian.com>
14770
14771         * metadata.c (mono_metadata_generic_param_equal): We always have
14772         an owner.
14773
14774         * class.c
14775         (mono_class_from_generic_parameter): We need to have an owner.
14776         (my_mono_class_from_generic_parameter): Likewise.
14777
14778         * reflection.c (mono_reflection_setup_generic_class): Renamed to
14779         mono_reflection_create_generic_class() and added a new
14780         mono_reflection_setup_generic_class().  
14781         (mono_reflection_initialize_generic_param): If we're a nested
14782         generic type and inherited from the containing class, set our
14783         owner to the outer class.
14784
14785 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
14786
14787         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
14788
14789         * reflection.c (mono_method_body_get_object): New function to create
14790         a MethodBody object.
14791
14792         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
14793
14794 2004-10-11  Martin Baulig  <martin@ximian.com>
14795
14796         * metadata.c (_mono_metadata_type_equal): Renamed to
14797         do_mono_metadata_type_equal() and made static.
14798
14799 2004-10-11  Martin Baulig  <martin@ximian.com>
14800
14801         * appdomain.c: Bump corlib version number to 28.
14802
14803 2004-10-10  Martin Baulig  <martin@ximian.com>
14804
14805         * class-internals.h
14806         (MonoGenericInst): Added `MonoGenericContainer *container'.
14807         (MonoGenericMethod): Likewise.
14808         (MonoGenericContext): Likewise.
14809         (MonoGenericParam): Added `MonoGenericContainer *owner'.
14810
14811         * metadata.c
14812         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
14813         (do_mono_metadata_parse_generic_inst): Likewise.
14814         (mono_metadata_parse_type_full): New public method.  This is the actual
14815         mono_metadata_parse_type() implementation - with an additional
14816         `MonoGenericContainer *' argument.
14817         (mono_metadata_parse_array_full): Likewise.
14818         (mono_metadata_parse_signature_full): Likewise.
14819         (mono_metadata_parse_method_signature_full): Likewise.
14820         (mono_metadata_parse_mh_full): Likewise.
14821         (mono_type_create_from_typespec): Likewise.
14822         (mono_metadata_interfaces_from_typedef_full): New public method;
14823         this is similar to the other _full() methods, but we take a
14824         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
14825         (mono_metadata_parse_generic_param): Take an additional
14826         `MonoGenericContainer *' argument and lookup the MonoGenericParam
14827         from that container.
14828         (mono_metadata_generic_param_equal): New static method to compare
14829         two type parameters.
14830         (_mono_metadata_type_equal): New static method; takes an
14831         additional `gboolean signature_only' argument - if true, we don't
14832         compare the owners of generic parameters.
14833         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
14834         with a TRUE argument - do a signature-only comparision.
14835
14836         * loader.c: Use the new _full() methods and pass the
14837         MonoGenericContainer to them.
14838
14839         * object-internals.h (MonoReflectionTypeBuilder): Added
14840         `MonoGenericContainer *generic_container' field.
14841         (MonoReflectionMethodBuilder): Likewise.
14842
14843 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
14844
14845         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
14846         case initial images of dynamic assemblies.
14847
14848         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
14849
14850         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
14851
14852         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
14853         length of event->other array.
14854         (typebuilder_setup_events): Ditto.
14855
14856         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
14857         'assembly_by_name' and add an 'assemblies' list.
14858
14859         * assembly.h assembly.c: Add a new search hook for determining whenever
14860         an assembly is already loaded. Use this instead of searching in the
14861         loaded_assemblies list.
14862
14863         * domain.c appdomain.c: Implement the new search hook so loaded 
14864         assemblies are now scoped by appdomain. Fixes #67727.
14865
14866 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
14867
14868         * threads.c (mono_thread_attach): Initialize synch_lock field so
14869         mono_thread_detach works again.
14870
14871         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
14872         'lib' too. Fixes #63130.
14873
14874 2004-10-06  Jackson Harper  <jackson@ximian.com>
14875
14876         * culture-info-tables.h: regenerated.
14877
14878 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
14879
14880         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
14881         implemented by other interfaces in the result. Fixes #65764.
14882         
14883         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
14884         Handle unloadable modules without crashing.
14885
14886         * image.c (load_modules): Revert the previous patch since modules must
14887         have a fixed index inside the array.
14888         
14889         * image.c (load_modules): Don't include native modules in the modules
14890         array.
14891
14892 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
14893
14894         * reflection.h: Add param_defaults field.
14895
14896         * reflection.c: Add support for parameter defaults in dynamic methods.
14897         Fixes #64595.
14898
14899         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
14900         an empty string when a type has no namespace. Fixes #64230.
14901
14902 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
14903
14904         * tabledefs.h: Added "internal" security actions to support non-CAS
14905         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
14906         Note: they do not seems to be used anymore in 2.0 (new metadata format)
14907
14908 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
14909
14910         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
14911         constructor of abstract class. Fixes #61689.
14912
14913 2004-10-04  Martin Baulig  <martin@ximian.com>
14914
14915         * class-internals.h (MonoGenericContainer): New type.
14916         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
14917         `MonoGenericContainer *generic_container'.
14918         (MonoClass): Replaced `gen_params' and `num_gen_params' with
14919         `MonoGenericContainer *generic_container'.
14920
14921         * metadata.c (mono_metadata_load_generic_params): Return a
14922         `MonoGenericContainer *' instead of a `MonoGenericParam *';
14923         removed the `num' argument.
14924
14925 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
14926
14927         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
14928         for dynamic images.
14929
14930         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
14931         machine fields.
14932
14933         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
14934
14935         * reflection.c: Save pe_kind and machine values into the generated
14936         image file.
14937
14938         * appdomain.c: Bump corlib version number.
14939
14940         * object-internals.h: Reorganize layout of LocalBuilder.
14941
14942         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
14943         New helper function.
14944
14945         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
14946         created MonoType for dynamic types. Fixes #66180.
14947
14948 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
14949
14950         * threadpool.c: the ares hashtable needs a critical section around it.
14951         this prevents some nasty segfaults
14952
14953 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
14954
14955         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
14956         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
14957         bug 67324).
14958         
14959 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
14960
14961         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
14962         
14963 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
14964
14965         * image.c: Always canonicalize image file names, to avoid loading
14966         the same assembly twice when referenced using a relative path.
14967
14968 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
14969
14970         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
14971
14972         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
14973
14974         * marshal.c: Fix warnings.
14975
14976 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
14977
14978         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
14979         attempting to marshal the delegate_trampoline as the method_addr.
14980         This patch has a static hashtable of marshalled delegates so that 
14981         we can map delegate_trampoline addresses back to delegates.  This
14982         allows a delegate passed to managed code to be passed back into native
14983         code.  Fixes #67039
14984
14985 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
14986
14987         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
14988
14989         * reflection.c (method_encode_code): Align method headers properly.
14990         Fixes #66025.
14991
14992 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
14993
14994         * marshal.c: In the runtime invoke wrapper, reset the abort
14995         exception if it is cached. This avoids the automatic rethrowal of 
14996         the exception after the catch of the wrapper. Also check for pending
14997         interruptions before calling the managed method. This is done using
14998         the new method emit_thread_force_interrupt_checkpoint, since the
14999         normal checkpoint method is ignored when running the invoke wrapper.
15000         * object.c: If the abort exception is rethrown, set the abort_exc
15001         field of the thread, so it will be rethrown aftere every catch.
15002         * threadpool.c: Only run an interruption checkpoint if what has been
15003         requested is a stop of the thread (aborts will be ignored).
15004         * threads.c: By default, a thread will now never be interrumped while
15005         running the runtime invoke wrapper (this ensures that runtime_invoke
15006         will always return to the caller if an exception pointer is provided).
15007         There is a new special method mono_thread_force_interruption_checkpoint()
15008         to force an interruption checkpoint even if running a protected
15009         wrapper, which is used by the same runtime invoke wrapper to do a check
15010         at a safe point.
15011
15012 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
15013
15014         * object.c, object-internals.h: Implemented mono_release_type_locks,
15015         which releases the cctor locks held by a thread.
15016         * threads.c, threads.h: In thread_cleanup, release cctor locks held
15017         by a thread. Added mono_thread_exit() method to be used to safely stop
15018         a thread.
15019
15020 2004-09-28  Raja R Harinath  <rharinath@novell.com>
15021
15022         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
15023         Move null check before dereference.  Avoid indexing beyond the end
15024         of the 'modules' array.
15025
15026 2004-09-28  Raja R Harinath  <rharinath@novell.com>
15027
15028         * metadata-internals.h (MonoImage): Add module_count field.
15029         * image.c (load_modules): Set image->module_count.
15030         (mono_image_load_file_for_image): Use image->module_count.
15031         * reflection.c (mono_image_load_module): Append to image->modules array 
15032         of dynamic assembly.
15033         (mono_module_get_object): Fix loop to actually increment index.
15034         Use image->module_count.
15035         * assembly.c (mono_assembly_load_references): Use image->module_count.
15036         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
15037         Likewise.
15038
15039 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
15040
15041         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
15042         Avoid assert on generic types.
15043
15044 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
15045
15046         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
15047
15048         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
15049
15050         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
15051         function to convert a MarshalSpec structure to its managed counterpart.
15052
15053         * reflection.c: Fix warnings.
15054         
15055         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
15056         field.
15057
15058         * icall.c (mono_create_icall_signature): Fix build.
15059
15060 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
15061
15062         * icall.c: Add MakePointType icall.
15063
15064         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
15065         warnings.
15066
15067 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15068
15069         * threadpool.c: reuse allocated slots in the queue.
15070
15071 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
15072
15073         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
15074
15075         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
15076
15077         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
15078         previous change.
15079
15080         * tabledefs.h: Add constants for pinvoke attributes BestFit and
15081         ThrowOnUnmappableChar.
15082
15083         * icall.c (ves_icall_Type_GetPacking): New icall.
15084
15085 2004-09-24  Martin Baulig  <martin@ximian.com>
15086
15087         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
15088
15089 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15090
15091         * appdomain.c:
15092         (mono_domain_set): allow setting a domain that is being unloaded.
15093         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
15094         being unloaded.
15095
15096 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
15097
15098         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
15099         the GetCustomAttributes icall.
15100
15101 2004-09-23  Martin Baulig  <martin@ximian.com>
15102
15103         * object-internals.h (MonoReflectionGenericParam): Replaced
15104         'has_ctor_constraint', `has_reference_type' and `has_value_type'
15105         with `guint32 attrs'.
15106
15107 2004-09-23  Martin Baulig  <martin@ximian.com>
15108
15109         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
15110
15111 2004-09-23  Martin Baulig  <martin@ximian.com>
15112
15113         * object-internals.h (GenericParameterAttributes): New enum.
15114
15115 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
15116
15117         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
15118         
15119         * class.c (init_events): Fill out event->other field.
15120
15121         * class.c: Fix warnings.
15122
15123         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
15124
15125 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
15126
15127         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
15128         walk which doesn't supply the IL offset.
15129
15130 2004-09-22  Martin Baulig  <martin@ximian.com>
15131
15132         * reflection.c (mono_reflection_setup_internal_class): If we're
15133         System.ValueType, System.Object or System.Enum, set
15134         `klass->instance_size' and create the vtable.
15135         (mono_reflection_create_internal_class): If we're an enum type,
15136         get the base class from our current corlib.
15137
15138 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
15139
15140         * reflection.h (MonoResolveTokenError): New type.
15141
15142         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
15143         icall.
15144
15145         * icall.c: Add an 'error' argument to the ResolveToken icalls.
15146
15147 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
15148
15149         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
15150         Support also calling constructors, but only for already allocated objects.
15151
15152 2004-09-17  Geoff Norton <gnorton@customerdna.com>
15153
15154         * reflection.c (type_get_qualified_name): If the klass is null
15155         return the typename to avoid a NullRefEx.
15156         (encode_cattr_value): Get the qualified name of the boxed type,
15157         not the underlying enumtype.  Fixes #62984.
15158
15159 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
15160
15161         * marshal.c: Fix problems with previous checkin.
15162
15163 2004-09-21    <vargaz@freemail.hu>
15164
15165         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
15166         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
15167
15168         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
15169
15170 2004-09-21  Geoff Norton <gnorton@customerdna.com>
15171
15172         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
15173         should only return a type for pointers, arrays, and passbyref types.
15174         Fixes bug #63841.
15175
15176 2004-09-21  Martin Baulig  <martin@ximian.com>
15177
15178         * domain.c (mono_debugger_check_runtime_version): New public
15179         function.
15180
15181         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
15182
15183 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
15184
15185         * reflection.c: Added missing sort to the declarative security 
15186         attributes table. MS implementation stops seeing the attributes if the
15187         token number regress in the table (as shown by ildasm and permview).
15188
15189 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
15190
15191         * object-internals.h (MonoReflectionModule): Add 'token' field.
15192         
15193         * reflection.c (mono_reflection_get_token): Add support for Module
15194         and Assembly.
15195         (mono_module_get_object): Set 'token' field.
15196         (mono_module_file_get_object): Set 'token' field.
15197
15198         * icall.c: Add new Assembly and Module icalls.
15199
15200         * appdomain.c: Bump corlib version.
15201
15202 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
15203
15204         * loader.h loader.c class.h class.c: Add helper functions for obtaining
15205         tokens of metadata objects.
15206
15207         * reflection.h reflection.c (mono_reflection_get_token): New function
15208         to obtain the token of a metadata object.
15209
15210         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
15211
15212 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
15213
15214         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
15215         
15216         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
15217
15218 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
15219
15220         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
15221         * object-internals.h: Added 3 MonoArray* members to MonoReflection
15222         AssemblyBuilder to access the permissions set in the class lib.
15223         * reflection.c: Added security attributes encoding step in 
15224         mono_image_build_metadata.
15225         * tabledefs.h: Added new security actions defined in 2.0:
15226         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
15227
15228 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
15229
15230         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
15231         macro parameter.
15232
15233 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
15234  
15235         * locales.c: nullify the ICU_collator member of CompareInfo when it is
15236           finalized. There where random SIGSEVs at program termination, when
15237           an object being finalized was trying to do a string comparison and
15238           the current culture was already finalized.
15239  
15240 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15241
15242         * threads.c: call thread_cleanup before finishing the thread if we get
15243         there.
15244
15245 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
15246
15247         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
15248         assemblies from the parent. Fixes #65665.
15249
15250 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
15251
15252         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
15253         modifiers.
15254
15255 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
15256
15257         * reflection.h: add prototype for mono_get_dbnull_object
15258         * reflection.c: add prototypes for get_default_param_value_blobs 
15259         and mono_get_object_from_blob for fussier compilers
15260
15261 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
15262  
15263         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
15264         false deadlock checks in class initialization.
15265  
15266 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
15267
15268         * image.c (mono_image_addref): Fix comment.
15269
15270         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
15271         possible.
15272
15273 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
15274
15275         * reflection.c (mono_param_get_objects): Modified to return
15276         ParameterInfo.DefaultValue object.
15277
15278         (get_default_param_value_blobs):
15279         (mono_get_object_from_blob):
15280         (mono_get_dbnull_object): New helper routines. 
15281
15282         * object.c (mono_get_constant_value_from_blob): New helper routine
15283         carved out from get_default_field_value ()
15284
15285         * object-internals.h (mono_get_constant_value_from_blob): Added
15286         function declaration.
15287
15288 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
15289
15290         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
15291         referenced assemblies. Fixes #62135.
15292
15293         * exception.h exception.c (mono_get_exception_file_not_found2): New
15294         helper function.
15295
15296 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
15297
15298         * class.h class.c: Add mono_type_get_underlying_type ().
15299
15300 2004-09-09  Geoff Norton <gnorton@customerndna.com>
15301
15302         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
15303         Fix GetTypes() to support dynamically created assemblies.
15304
15305 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
15306
15307         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
15308         
15309         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
15310         previous patch.
15311
15312         * reflection.h reflection.c loader.c: Allow dynamic construction of
15313         pinvoke methods. Fixes #65571.
15314         
15315         * reflection.c (mono_reflection_get_type): Revert previous change since
15316         it causes regressions.
15317
15318 2004-09-08  Martin Baulig  <martin@ximian.com>
15319
15320         * class.c (class_compute_field_layout): Don't call
15321         mono_class_layout_fields() for open generic instances.
15322
15323 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
15324         * threads.c appdomain.c: fix typo in GC macro
15325
15326 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15327
15328         * threads.c: don't call mono_thread_detach() in start_wrapper(),
15329         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
15330
15331 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
15332
15333         * image.c (mono_image_close): Applied patch from 
15334         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
15335         assembly is loaded multiple times from data.
15336         
15337         * image.c (mono_image_open): Fix warning.
15338
15339 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
15340
15341         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
15342         once. Fixes #58334.
15343         
15344         * reflection.c (mono_reflection_create_runtime_class): Initialize
15345         klass->nested_classes. Fixes #61224.
15346
15347 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
15348
15349         * threads.c: sched_yield() on exit, to allow threads to quit.
15350
15351 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
15352
15353         * object.c (mono_unhandled_exception): Remove leftover debug code.
15354
15355 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
15356
15357         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
15358
15359 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
15360
15361         * marshal.c (emit_marshal_array): Really null terminate string arrays.
15362         
15363         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
15364
15365 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
15366
15367         * marshal.c (emit_marshal_array): Null terminate string arrays.
15368         
15369         * marshal.c (raise_auto_layout_exception): Fix warning.
15370
15371         * reflection.c (mono_param_get_objects): Initialize the default value
15372         with DBNull.Value, not null. Fixes #62123.
15373
15374 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
15375
15376         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
15377         throw an exception with a cute explanation.
15378
15379 2004-09-06  Dick Porter  <dick@ximian.com>
15380
15381         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
15382         Close the new process's thread handle, as we don't use it.  The
15383         handle stays around forever otherwise.
15384
15385 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
15386
15387         * object.c (arith_overflow): Fix warning.
15388
15389         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
15390         calling conventions in method refs. Fixes #65352.
15391
15392         * reflection.c: Fix warnings.
15393
15394 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
15395
15396         * icall.c: Add a new icall for Array.Clear
15397
15398 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
15399
15400         * object.c: When allocating an array, we have to throw
15401         an overflow exception if any of the lengths are < 0.
15402
15403 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
15404
15405         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
15406         properly. Also move implementation of string array marshalling to 
15407         managed code. Fixes #42316.
15408
15409 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15410
15411         * assembly.c: provide more information when loading an assembly fails.
15412
15413 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15414
15415         * filewatcher.c: don't expect the development fam package to be
15416         installed.
15417
15418 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
15419
15420         * marshal.c: Make a copy of the signature cookie since it will be
15421         freed by the caller.
15422         
15423         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
15424
15425         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
15426
15427         * metadata.c (mono_metadata_free_marshal_spec): New function to free
15428         marshal specs.
15429
15430         * marshal.c: More refactoring.
15431         
15432         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
15433         smaller functions.
15434
15435 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
15436
15437         * object.c: In mono_message_invoke, fill the output parameter array after
15438           calling the managed method (it was done before the call). This fixes
15439           bug #59299.
15440
15441 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
15442
15443         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
15444         as well.
15445
15446 2004-09-02  Martin Baulig  <martin@ximian.com>
15447
15448         * class.c (mono_class_instance_size): Don't allow generic type
15449         definitions or open generic instances.
15450         (mono_class_array_element_size): If we're a value type, call
15451         mono_class_instance_size() on the original class.
15452
15453         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
15454         handle generic instances.
15455
15456         * mono-debug-debugger.c (write_type): Handle generic instances
15457         like classes.
15458
15459 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
15460
15461         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
15462         the allocation request fails. Fixes #65089.
15463
15464         * object.c (mono_runtime_free_method): Do not call mono_free_method.
15465         
15466         * object.c (mono_runtime_free_method): New function to free a dynamic
15467         method.
15468
15469         * marshal.c (mono_delegate_free_ftnptr): New function to free the
15470         delegate trampoline.
15471
15472         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
15473         with hasthis as dynamic,
15474
15475         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
15476
15477         * domain.c (mono_jit_info_table_remove): New function to remove an
15478         entry from the jit info table.
15479
15480         * class-internals.h (MonoMethod): Add 'dynamic' field.
15481
15482         * loader.c: Fix warnings.
15483
15484 2004-09-01  Martin Baulig  <martin@ximian.com>
15485
15486         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
15487         instead of mono_debugger_lock() because the latter one is a no-op
15488         unless running in the debugger.
15489
15490 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
15491
15492         * class.c (class_compute_field_layout): Classes with auto-layout or
15493         reference fields are not blittable.
15494         
15495 2004-09-01  Dick Porter  <dick@ximian.com>
15496
15497         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
15498         mono_image_get_filename() to get the assembly location.
15499
15500         * icall.c:
15501         * metadata.h: Fix compile warnings
15502
15503 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
15504
15505         * class.c (class_compute_field_layout): System.Object is blittable.
15506
15507         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
15508         as in/out. Fixes #59909.
15509
15510 2004-09-01  Martin Baulig  <martin@ximian.com>
15511
15512         * metadata.h (MONO_TYPE_ISREFERENCE): Call
15513         mono_metadata_generic_inst_is_valuetype() if we're a generic
15514         instance to check whether our underlying type is a reference type.
15515
15516 2004-09-01  Martin Baulig  <martin@ximian.com>
15517
15518         * metadata.c (mono_type_size): If we're a generic instance, call
15519         mono_class_value_size() for value types.
15520
15521 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
15522
15523         * marshal.c: Implement more custom marshalling functionality. Fixes
15524         #64915.
15525
15526 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
15527
15528         * mono-debug.c, debug-mono-symfile.c: add some locking love.
15529
15530 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
15531
15532         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
15533
15534         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
15535
15536         * icall.c: Fix some warnings.
15537
15538         * threads.c (abort_appdomain_thread): Fix unref errors.
15539         (mono_thread_current): Fix THREAD_DEBUG define.
15540
15541 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
15542
15543         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
15544
15545         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
15546
15547 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
15548
15549         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
15550         string arrays.
15551
15552 2004-08-28  Martin Baulig  <martin@ximian.com>
15553
15554         * metadata.c
15555         (mono_metadata_generic_inst_is_valuetype): New public function.
15556
15557         * metadata.h (MONO_TYPE_ISSTRUCT): Call
15558         mono_metadata_generic_inst_is_valuetype() if we're a generic
15559         instance to check whether our underlying type is a valuetype.
15560
15561 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
15562
15563         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
15564         #63768.
15565
15566 2004-08-25  Martin Baulig  <martin@ximian.com>
15567
15568         * loader.c (mono_get_method_from_token): Abstract methods can also
15569         be generic and thus have type parameters.
15570
15571         * metadata-internals.h
15572         (MonoDynamicImage): Added `GPtrArray *gen_params'.
15573
15574         * reflection.c (mono_image_get_generic_param_info): Don't create a
15575         metadata row, just add an entry to the `gen_params' array.
15576         (build_compressed_metadata): Sort the `gen_params' array and then
15577         actually create the metadata.
15578
15579 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15580
15581         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
15582
15583 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
15584
15585         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
15586
15587 2004-08-24  Martin Baulig  <martin@ximian.com>
15588
15589         * class.cs (mono_class_is_subclass_of): Like an interface, a
15590         generic instance also derives from System.Object.
15591
15592 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
15593
15594         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
15595         custom modifiers to be in any order. Fixes #61990.
15596
15597 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
15598
15599         * object.c: Register mono_object_new_fast icall.
15600         
15601         * object.c (mono_class_get_allocation_ftn): Return to calling
15602         mono_object_new_fast, since it seems faster to compute the object 
15603         size in unmanaged code than passing it as a parameter.
15604
15605         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
15606
15607         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
15608         this function with Boehm as the oom handler, so we don't have to check
15609         the result of GC_malloc.
15610
15611         * object.c: Remove checks for oom.
15612
15613         * object.h object.c (mono_class_get_allocation_ftn): New function to
15614         return the icall which can be used to allocate an instance of a given
15615         class. 
15616
15617         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
15618
15619         * class-internals.h: Add 'enabled' field.
15620
15621 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
15622
15623         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
15624
15625 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
15626         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
15627         value 0x0010.
15628
15629 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
15630
15631         * appdomain.c: use the Tls function for appdomain too,
15632         at Zoltan's request. Actually return in mono_context_get
15633
15634         * appdomain.c, profiler.c, threads.c: use __thread
15635
15636 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
15637
15638         * appdomain.c threads.c: Call GC_CreateThread on windows.
15639
15640         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
15641         multiple libraries since this don't work on windows.
15642
15643 2004-08-18  Martin Baulig  <martin@ximian.com>
15644
15645         * class-internals.h
15646         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
15647         MonoMethodHeader.
15648
15649         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
15650         MonoMethodNormal since we also need it for abstract and interface
15651         methods.
15652
15653         * reflection.c
15654         (build_compressed_metadata): Sort the GenericParam table.
15655         (mono_image_create_token): Added `gboolean create_methodspec'
15656         argument; this is false when generating a MethodImpl token.
15657         (reflection_methodbuilder_to_mono_method): Abstract and interface
15658         methods may also have generic parameters.
15659
15660 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
15661
15662         * appdomain.c: thread local alloc
15663
15664 2004-08-17  Martin Baulig  <martin@ximian.com>
15665
15666         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
15667
15668         * icall.c
15669         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
15670         argument.
15671
15672         * class.c (mono_type_get_full_name): New public function.
15673         (mono_type_get_name): Don't include the type arguments.
15674
15675 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
15676
15677         * Makefile.am: Build static versions of libmetadata and libmonoruntime
15678         for inclusion into the mono executable.
15679
15680 2004-08-16  Martin Baulig  <martin@ximian.com>
15681
15682         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
15683         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
15684
15685 2004-08-14  Martin Baulig  <martin@ximian.com>
15686
15687         * class.c (dup_type): Also copy the `byref' field.
15688
15689 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
15690
15691         * reflection.c (create_dynamic_mono_image): Revert the last change 
15692         since it breaks bootstrap.
15693
15694 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
15695
15696         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
15697
15698         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
15699         not free them with g_free.
15700
15701 2004-08-11  Martin Baulig  <martin@ximian.com>
15702
15703         * reflection.c (mono_reflection_setup_internal_class): Also call
15704         mono_class_setup_mono_type() if we already have a `tb->type.type'.
15705
15706 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
15707
15708         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
15709         called during default (first) AppDomain creation. Keep track of
15710         Evidence when loading assemblies.
15711
15712 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
15713
15714         * opcodes.c, opcodes.h: reduce runtime relocations.
15715
15716 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
15717
15718         * culture-info.h, locales.c: fixes and chages to sue the new
15719         optimized format of the locale data.
15720         * culture-info-tables.h: regenerated.
15721
15722 2004-08-06  Geoff Norton <gnorton@customerdna.com>
15723         
15724         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
15725
15726 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
15727
15728         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
15729         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
15730         * domain-internals.h: icall declaration.
15731         * icall.c: icall registration.
15732         * object-internals.h: New fields in MonoAssembly for CAS.
15733
15734 2004-08-05  Duncan Mak  <duncan@ximian.com>
15735
15736         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
15737         CEE_LDELEM_ANY.
15738
15739 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
15740
15741         * reflection.c: fix to deal with object[] arrays in custom ctors
15742         (bug #62550).
15743
15744 2004-08-05  Martin Baulig  <martin@ximian.com>
15745
15746         * class.c (mono_class_array_element_size): Added support for
15747         generic instances and correctly handle "recursive" types.
15748
15749 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
15750
15751         * assembly.c: Fix warnings.
15752
15753 2004-08-04  Martin Baulig  <martin@ximian.com>
15754
15755         * class.c
15756         (mono_type_get_name_recurse): Added `gboolean include_arity'
15757         argument specifying whether or not we should include the generic
15758         arity in the type name.
15759         (_mono_type_get_name): New static function.
15760         (mono_class_setup_vtable): If we're a generic instance, don't
15761         include the generic arity in the names of explicit method
15762         implementations.        
15763
15764 2004-08-03  Martin Baulig  <martin@ximian.com>
15765
15766         * class.c (mono_type_get_name_recurse): Enclose the generic type
15767         arguments in `<', '>'.
15768
15769 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
15770
15771         * gc.c: make GC warning messages use the trace API, they are just
15772         noise to most of the users.
15773
15774 2004-08-03  Martin Baulig  <martin@ximian.com>
15775
15776         * debug-mono-symfile.c (read_string): Correctly read the string.
15777
15778 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
15779
15780         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
15781         
15782         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
15783         icalls.
15784         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
15785
15786 2004-07-30  Martin Baulig  <martin@ximian.com>
15787
15788         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
15789         Reflect latest symbol writer changes.   
15790
15791 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
15792
15793         * object.c: always create an object if null is passed
15794         to Invoke() where a valuetype is expected.
15795
15796 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
15797
15798         * marshal.c (mono_marshal_init): make managed
15799         signatures match native ones better for 64bits.
15800
15801 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15802
15803         * appdomain.c: hack to build correctly the private bin path on windows.
15804         Fixes bug #61991.
15805
15806 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
15807
15808         * assembly.c: Load mscorlib from the correct framework directory
15809           (mono/<version>/mscorlib.dll).
15810         * appdomain.h: Added prototypes for new functions.
15811         * internals.h: Added some prototypes.
15812         * domain.c: When initializing the runtime, get from the executable and
15813           the configuration files the runtime version that the app supports.
15814           Added support methods for reading app.exe.config. Added list of versions
15815           supported by the JIT. Added two new methods: mono_init_from_assembly,
15816           which initializes the runtime and determines the required version from
15817           the provided exe file, and mono_init_version, which initializes
15818           the runtime using the provided version.
15819         * icall.c: Get machine.config from version-specific directory.
15820         * reflection.c: When generating an image, embed the version number
15821           of the current runtime.
15822
15823 2004-07-28  Dick Porter  <dick@ximian.com>
15824
15825         * socket-io.c
15826         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
15827         returned sockaddr size before creating the remote address object.
15828         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
15829         61608.
15830
15831 2004-07-28  Dick Porter  <dick@ximian.com>
15832
15833         * locales.c (string_invariant_compare_char): Fix invariant char
15834         compares between upper and lower cases.  Fixes bug 61458.
15835
15836 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
15837         
15838         * marshal.c: actually cache stelem.ref wrappers.
15839         
15840 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
15841
15842         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
15843         sections and remove the mono_cli_rva_map () function.
15844
15845 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
15846
15847         * debug-mono-symfile.c: fix one more endianess issue, from a patch
15848         by Geoff Norton (<gnorton@customerdna.com>).
15849
15850 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
15851
15852         * class.c: fix class loads for pointer types (typeof(int) !=
15853         typeof(int*)).
15854
15855 2004-07-27  Martin Baulig  <martin@ximian.com>
15856
15857         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
15858         reading the debugging information from an external ".mdb" file.
15859
15860 2004-07-24  Martin Baulig  <martin@ximian.com>
15861
15862         * reflection.c (mono_image_get_type_info): Only write a class
15863         layout entry if we actually have a size or a packing size.
15864
15865 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
15866
15867         * reflection.c (type_get_fully_qualified_name): 
15868         insert cast to get type checking of ?: with non-gcc compilers
15869
15870 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
15871
15872         * rand.c: use g_getenv for both lookups of
15873         MONO_EGD_SOCKET
15874
15875 2004-07-17  Martin Baulig  <martin@ximian.com>
15876
15877         * reflection.c (mono_reflection_bind_generic_method_parameters):
15878         Set `gmethod->reflection_info'.
15879
15880 2004-07-17  Martin Baulig  <martin@ximian.com>
15881
15882         * class.c (mono_class_create_from_typedef): Insert the newly
15883         created class into the hash table before computing the interfaces
15884         since we could be called recursively.
15885
15886 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
15887
15888         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
15889         function to implement stelem.ref in managed code
15890         * class-internals.h, debug-helpers.c: a new wrapper type
15891         for the above.
15892
15893 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
15894
15895         * gc.c: allow GC handles to work even when no GC is compiled in.
15896         Fix part of bug #61134 (GetAddrOfPinnedObject).
15897
15898 2004-07-13  Peter Williams  <peter@newton.cx>
15899  
15900         * process.c (complete_path): Make sure we don't attempt to execute
15901         directories.
15902  
15903 2004-07-12  Geoff Norton <gnorton@customerdna.com>
15904
15905         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
15906           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
15907           and will add/subtract the hour if needed
15908
15909 2004-07-12  Martin Baulig  <martin@ximian.com>
15910
15911         * reflection.c (mono_field_get_object): If we have
15912         `field->generic_info', take the attributes from
15913         `field->generic_info->generic_type'.    
15914
15915 2004-07-12  Martin Baulig  <martin@ximian.com>
15916
15917         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
15918         This function must be called before initializing the runtime.
15919         (mono_debug_init_1): New function; call this after initializing
15920         the runtime, but before loading the assembly.  It tells the
15921         debugger to load corlib and the builtin types.
15922
15923         * mono-debug-debugger.c: Did some larger changes in the debugging
15924         code; support recursive class declarations, make sure we actually
15925         add all classes.
15926
15927 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15928
15929         * debug-helpers.c: undo my previous patch and fixed the real issue in
15930         ../mini/exceptions-x86.c
15931
15932 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15933
15934         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
15935         when no HOME env. variable was set and a NullRef was thrown in a .cctor
15936         called from other .cctors.
15937
15938 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
15939
15940         * loader.c: Removed the mono_loader_wine_init hack now that we are
15941         doing a managed version of Windows.Forms.
15942
15943 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
15944
15945         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
15946         threadpool.c, threads.c: remove static data from rootset.
15947
15948 2004-07-09  Dick Porter  <dick@ximian.com>
15949
15950         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
15951         Don't do any more processing if the matched length was 0.  It was
15952         increasing the size of the string before.  Fixes bug 61167.
15953
15954 2004-07-09  Dick Porter  <dick@ximian.com>
15955
15956         * socket-io.h:
15957         * socket-io.c
15958         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
15959         Add support for SO_PEERCRED if its available.
15960
15961 2004-07-09  Peter Bartok <pbartok@novell.com>
15962         * loader.c: winelib.exe.so error message is now only displayed if
15963         MONO_DEBUG is set. To help us avoid questions when people are trying
15964         out the new Managed.Windows.Forms.
15965
15966 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
15967
15968         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
15969         for isinst and castclass wrappers.
15970
15971         * class-internals.h icall.c: Move registration and lookup of JIT icalls
15972         to libmetadata from the JIT, so they could be used by the marshalling
15973         code and the interpreter.
15974
15975         * marshal.c: Register marshalling related JIT icalls here instead of
15976         in mini.c. Use CEE_MONO_ICALL instead of the family of 
15977         CEE_MONO_PROC<x> opcodes to call marshalling functions.
15978
15979         * metadata.h: Remove unneeded marshalling conversions.
15980
15981         * opcodes.c: Update for new opcodes.
15982         
15983 2004-07-08  Martin Baulig  <martin@ximian.com>
15984
15985         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
15986         (mono_debug_get_domain_data): Make this function static.
15987
15988 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
15989
15990         * gc.c, object.h: add nice GC handle API for embedders.
15991
15992 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
15993
15994         * reflection.c: more changes for the new api
15995
15996         * object.c: When we reflect on a field w/ a constant value, it
15997         will not have a memory location, so we must access metadata. Also,
15998         allow easier reading of strings so that we can read them from
15999         the constant data.
16000
16001         * class.c (mono_class_layout_fields): no need for literal fields here.
16002
16003         * class-internals.h: api changes for const fields
16004
16005         * icall.c (ves_icall_get_enum_info): use new apis for const fields
16006
16007 2004-07-06  Martin Baulig  <martin@ximian.com>
16008
16009         * mono-debug.h: Increment version number to 44.
16010
16011         * mono-debug.c (mono_debug_add_wrapper): The second argument is
16012         now a gpointer, rewrote this whole method.
16013
16014         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
16015         function.  Add information about the wrapper in a new "misc table".
16016
16017         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
16018         for the new misc table.
16019
16020 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
16021
16022         * metadata-internals.h image.c: Add a cache for helper signatures.
16023
16024         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
16025
16026 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
16027
16028         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
16029         delegates from a delegate. Fixes #61033.
16030         
16031         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
16032         marshalling of stringbuilder arrays. Fixes #59900.
16033
16034 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
16035
16036         * icall.c: Add EnumBuilder:setup_enum_type icall.
16037
16038 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
16039
16040         * icall.c: Added a new icall for the property version of
16041         OffsetOfStringData.
16042
16043 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
16044
16045         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
16046         it has a constant size across platforms.
16047
16048         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
16049         stack trace.
16050
16051 2004-06-29  Martin Baulig  <martin@ximian.com>
16052
16053         * mono-debug.c (mono_debug_add_method): Protect the whole function
16054         in mono_debugger_lock(), not just parts of it.
16055
16056 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
16057
16058         * reflection.c: make sure padding bytes in heaps are zeroed.
16059
16060 2004-06-24  David Waite  <mass@akuma.org>
16061
16062         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
16063         image.c, loader.c, locales.c, marshal.c, metadata.c,
16064         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
16065         string-icalls.c, threads.c: change to C90-style comments from C99 /
16066         C++ -style
16067
16068 2004-06-24  Dick Porter  <dick@ximian.com>
16069
16070         * threads.c
16071         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
16072         return createdNew.  Fixes bug 60412.
16073
16074         * threads-types.h: 
16075         * icall.c: Add createdNew parameter to CreateMutex icall
16076
16077 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
16078
16079         * reflection.c, object-internals.h: save default value in params.
16080
16081 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16082
16083         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
16084         no need to build a new path combining that with the application base.
16085         Fixes bug #60442.
16086
16087 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
16088
16089         * reflection.c: fixed minor standard compliance issues.
16090
16091 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
16092
16093         * reflection.c: fixed issue with encoding some custom attributes
16094         (arrays in properties and fields, bug #60411).
16095
16096 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16097
16098         * reflection.c: fix start address when copying the public key token.
16099
16100 2004-06-23  Martin Baulig  <martin@ximian.com>
16101
16102         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
16103         the `exc' object in a static object to put it into the GC's root set.
16104
16105 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
16106
16107         * reflection.c: make mono_reflection_setup_internal_class ()
16108         callable a second time to setup a new parent class.
16109
16110 2004-06-23  Dick Porter  <dick@ximian.com>
16111
16112         * threads.c: Check for WAIT_IO_COMPLETION return values.
16113
16114 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
16115
16116         * appdomain.c: Removed the g_free on the public key token. Now copy 
16117         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
16118         * assembly.c: Added public key token string value when loading 
16119         assemblies. Fix bug #60439.
16120         * icall.c: Added missing informations (like public key) in 
16121         GetReferencedAssemblies. Fix #60519.
16122         * image.h: Changed definition for public key token from const char*
16123         public_tok_value to guchar public_key_token [17];
16124         * reflection.c: Updated for changes to public key token.
16125
16126 2004-06-22  Lluis Sanchez Gual
16127
16128         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
16129         for the field in base classes.
16130
16131 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
16132
16133         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
16134         mark headers as not supported, they are installed only for use by the
16135         debugger.
16136
16137 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
16138
16139         * *.c, *.h: avoid namespace pollution in public headers.
16140
16141 2004-06-21  Martin Baulig  <martin@ximian.com>
16142
16143         * exception.c (mono_get_exception_security): It's in
16144         "System.Security", not in "System".
16145
16146         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
16147         the exception classes.
16148
16149 2004-06-21  Martin Baulig  <martin@ximian.com>
16150
16151         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
16152         Protect the exception object from being finalized.
16153
16154 2004-06-21  Martin Baulig  <martin@ximian.com>
16155
16156         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
16157         public function.
16158
16159 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
16160
16161         * reflection.c: Load the assembly in mono_reflection_type_from_name,
16162         if it was not loaded before. Fix parts of #60439.
16163
16164 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
16165
16166         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
16167         code that was broken since Ben's change: wrappers are now
16168         dependent on the method signature only again.
16169
16170 2004-06-21  Martin Baulig  <martin@ximian.com>
16171
16172         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
16173         added interface support.
16174
16175 2004-06-21  Martin Baulig  <martin@ximian.com>
16176
16177         * class.c (mono_vtable_get_static_field_data): New public method.
16178
16179 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
16180
16181         * filewatcher.c : Windows build fix to be compliant with API changes.
16182
16183 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
16184
16185         * class.h, class.c: more accessors.
16186         * metadata.h, metadata.c: prepare for hiding MonoType and
16187         MonoMethodSignature: people should use the accessors from now on
16188         outside of the tree.
16189
16190 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
16191
16192         * *.c, *.h: more API cleanups.
16193
16194 2004-06-18  Jackson Harper  <jackson@ximian.com>
16195
16196         * assembly.c: Trace loading assemblies.
16197         * loader.c: Trace loading native libraries.
16198         * mono-config.c: Trace loading config files.
16199         
16200 2004-06-18  Dick Porter  <dick@ximian.com>
16201
16202         * locales.c: Tell ICU the lengths of strings, it can cope with
16203         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
16204
16205 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
16206
16207         * image.c: swapped name/filename;
16208
16209 2004-06-18  Martin Baulig  <martin@ximian.com>
16210
16211         * mono-debug-debugger.c (write_class): Write the parent class at
16212         the end of the header.
16213
16214 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
16215
16216         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
16217
16218 2004-06-17  Raja R Harinath  <rharinath@novell.com>
16219
16220         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
16221         (bundle_obj): New conditional define.
16222         (BUILT_SOURCES): Remove.
16223         ($(bundle_srcs)): Make parallel-make safe.
16224         (libmonoruntime_la_LIBADD): Make unconditional.
16225         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
16226         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
16227
16228 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
16229
16230         * culture-info-tables.h: It was inconsistent with the latest
16231           supp info files.
16232
16233 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
16234
16235         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
16236         be loaded.
16237
16238         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
16239         with gcc 2.95.
16240
16241 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
16242
16243         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
16244         cleaned up public header threads.h.
16245
16246 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
16247
16248         * Makefile.am, *.c, *.h: more API cleanups.
16249
16250 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
16251
16252         * Makefile.am: removed monosn from compilation.
16253         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
16254         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
16255         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
16256         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
16257         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
16258         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
16259
16260 2004-06-15  Jackson Harper  <jackson@ximian.com>
16261
16262         * assembly.c: Make locales lower case when searching the GAC for
16263         assemblies. gacutil will always make locales lowercase when
16264         installing so this effectively makes them case insensitive.
16265         
16266 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
16267
16268         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
16269         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
16270           parameter which allows to choose whether the wait can be interrupted or 
16271           not. Also added the method mono_monitor_enter(), which locks the monitor
16272           using an infinite wait and without allowing interruption.
16273           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
16274           interrupted.
16275         * object.h: Added new fields in MonoThread. suspend_event holds the event
16276           used to susped/resume the thread. synch_lock is the lock object to use for
16277           modifying the thread state.
16278         * threads.c: Use the new synch_lock object for locking, instead of "this",
16279           which can generate deadlocks.
16280           Moved thread state change in Thread.Sleep and Thread.Join from managed
16281           to unmanaged code. This avoids a deadlock when the thread was suspended
16282           just after acquiring the thread lock.
16283           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
16284           Implemented Thread.Suspend using an event instead of ThreadSuspend,
16285           which is not fully implemented in the io-layer.
16286         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
16287
16288 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
16289
16290         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
16291         threads-types.h: more API cleanups.
16292
16293 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
16294
16295         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
16296         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
16297         threadpool.c, threads.c: first pass at the exported API cleanup.
16298
16299 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
16300
16301         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
16302
16303 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16304
16305         * icall.c: added internalGetHome.
16306
16307 2004-06-14  Dick Porter  <dick@ximian.com>
16308
16309         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
16310         possible to return successfully when '.' or '..' were the only
16311         entries in a directory, but were skipped.  The MonoIOStat was not
16312         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
16313         Fixes bug 59574.
16314
16315 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
16316
16317         * reflection.c: make binaries run on .Net 1.1 by default.
16318
16319 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
16320
16321         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
16322
16323 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
16324
16325         * marshal.c: keep track of struct size with explicit layout
16326         (bug #59979).
16327
16328 2004-06-12  Martin Baulig  <martin@ximian.com>
16329
16330         * mono-debug-debugger.c: Comment out a debugging g_message().
16331
16332 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
16333
16334         * reflection.c, reflection.h: do not free custom attrs that are cached.
16335         * icall.c: use braces to make code clearer.
16336
16337 2004-06-11  Martin Baulig  <martin@ximian.com>
16338
16339         * class.h (MonoInflatedField): New type.
16340         (MonoClassField): Replaced `MonoType *generic_type' with
16341         `MonoInflatedField *generic_info'.
16342
16343         * icall.c
16344         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
16345
16346 2004-06-11  Martin Baulig  <martin@ximian.com>
16347
16348         * reflection.c (mono_image_create_method_token): Correctly encode
16349         varargs methods.
16350
16351 2004-06-11  Martin Baulig  <martin@ximian.com>
16352
16353         * metadata.c (mono_metadata_parse_method_signature): When parsing
16354         a MethodDef which has VarArgs, also set sentinelpos if we don't
16355         have any parameters.
16356
16357 2004-06-11  Martin Baulig  <martin@ximian.com>
16358
16359         * verify.c (mono_method_verify): In CEE_CALL, use
16360         mono_method_get_signature() to get the method's signature, unless
16361         we're a PInvoke method.
16362
16363 2004-06-10  Jackson Harper  <jackson@ximian.com>
16364
16365         * assembly.c: Use <path>/lib/mono/gac for the extra paths
16366         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
16367         logical name as the supplied path is just a prefix to the gac not
16368         the direct path to it.
16369         
16370 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
16371
16372         * reflection.c: make the token for a created method match
16373         the token of the MethodBuilder it was created from
16374         (IKVM requires this behaviour now).
16375
16376 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
16377
16378         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
16379         reflection.c, socket-io.c: leak fixes.
16380
16381 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
16382
16383         * icall.c: handle sentinel pos in vararg methods in position different
16384         from 0.
16385
16386 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16387
16388         * culture-info-tables.h: freshly generated.
16389
16390 2004-06-09  Martin Baulig  <martin@ximian.com>
16391
16392         * loader.c (mono_get_method_constrained): Call `mono_class_init
16393         (constrained_class)'.   
16394
16395 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
16396
16397         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
16398         any methods. Fixes #59629.
16399
16400 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
16401
16402         * culture-info-tables.h: reflecting locale-builder updates.
16403
16404 2004-06-08  Dick Porter  <dick@ximian.com>
16405
16406         * object.h:
16407         * locales.c: Fixed compile warnings, including a real bug in
16408         CompareInfo_internal_compare.
16409         
16410 2004-06-08  Dick Porter  <dick@ximian.com>
16411
16412         * locales.c
16413         (ves_icall_System_Globalization_CompareInfo_internal_index):
16414         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
16415         Double-check the resuls of usearches, because ICU currently
16416         ignores most of the collator settings here.  Fixes bug 59720.
16417         
16418 2004-06-08  Dick Porter  <dick@ximian.com>
16419
16420         * locales.c
16421         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
16422         Fix memory leak and segfault-causing typo.  No idea how this one
16423         lasted so long without being noticed.
16424
16425 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
16426
16427         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
16428         any methods. Fixes #59629.
16429
16430 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16431
16432         * assembly.c:
16433         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
16434         own the critical section before). Removed dead code (that's done
16435         in the preload hook).
16436
16437         (mono_assembly_load_with_partial_name): call the preload hook.
16438
16439 2004-06-08  Martin Baulig  <martin@ximian.com>
16440
16441         * metadata.c (mono_metadata_signature_alloc): Default
16442         `sentinelpos' to -1.
16443
16444         * reflection.c (mono_image_get_array_token): Likewise.
16445
16446 2004-06-08  Martin Baulig  <martin@ximian.com>
16447
16448         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
16449
16450         * metadata.c (mono_metadata_parse_method_signature): When parsing
16451         a MethodDef which has VarArgs, set sentinelpos.
16452
16453         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
16454         `gint16' since we're using -1 for non-varargs methods.
16455
16456         * reflection.c
16457         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
16458         (method_encode_signature): Added varargs support.
16459         (method_builder_encode_signature): Likewise.
16460         (mono_image_get_varargs_method_token): New static method.
16461         (mono_image_create_method_token): New public method; this is
16462         called via an icall instead of mono_image_create_token() when
16463         calling a varargs method.       
16464
16465 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
16466
16467         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
16468
16469 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
16470
16471         * culture-info-tables.h : Reflecting the latest locale-builder that
16472           fixed empty array representation ({} to {0}).
16473
16474 2004-06-07  Jackson Harper  <jackson@ximian.com>
16475
16476         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
16477         looking up extra gac paths. This allows MONO_GAC_PATH to act
16478         exactly like a prefix.
16479         
16480 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
16481
16482         * reflection.c (mono_reflection_type_from_name): Make a copy of the
16483         type name before modifying it. Fixes #59405.
16484
16485 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
16486
16487         * culture-info.h: added fields for "all datetime patterns".
16488         * locales.c: (  ves_icall_System_Globalization_CultureInfo
16489           _construct_datetime_format ()): fill xxx_patterns fields.
16490         * object.h: added fields for "all datetime patterns" to
16491           MonoDateTimeFormatInfo.
16492         * culture-info-tables.h: reflecting locale-builder updates.
16493
16494 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
16495
16496         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
16497         the event has no add and remove methods. Fixes #59629.
16498
16499 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
16500
16501         * object.c: Fixed possible integer overflow when allocating large
16502         strings.
16503
16504 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
16505
16506         * culture-info-tables.h: reflecting locale-builder updates.
16507
16508 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
16509
16510         * culture-info-tables.h: reflecting locale-builder updates.
16511
16512 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
16513
16514         * culture-info-tables.h: reflecting locale-builder updates.
16515
16516 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
16517
16518         * threads.c: Made Thread.Sleep abortable.
16519
16520 2004-06-02  Martin Baulig  <martin@ximian.com>
16521
16522         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
16523
16524         * debug-mono-symfile.h: Bumped symbol file version number to 37.
16525
16526 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
16527
16528         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
16529
16530 2004-05-30  Jackson Harper  <jackson@ximian.com>
16531
16532         * reflection.c: Do not hardcode assembly versions or public key
16533         tokens anymore. All of this except the corlib section was dead
16534         code anyways.
16535         
16536 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
16537
16538         * object.c (mono_runtime_invoke_array): Automatically create boxed
16539         objects for byref valuetypes if needed. Fixes #59300.
16540         
16541         * object.c (mono_method_return_message_restore): Handle 
16542         MONO_TYPE_OBJECT as well.
16543
16544 2004-05-28  Jackson Harper  <jackson@ximian.com>
16545
16546         * reflection.c: The modified type encoding was causing build
16547         problems. Reverted for now.
16548         
16549 2004-05-28  Jackson Harper  <jackson@ximian.com>
16550
16551         * reflection.c/h: Take an assembly ref so that we dont create
16552         fully qualified names when encoding types in the same assembly as
16553         the custom attribute being emitted.
16554         * appdomain.c: Increment version number.
16555         
16556 2004-05-26  Duncan Mak  <duncan@ximian.com>
16557
16558         * icall.c
16559         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
16560         Set the full version number (major, minor, build, revision).
16561
16562 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
16563
16564         * marshal.c (emit_struct_conv): increment src/dst after blit
16565         (mono_marshal_get_managed_wrapper,
16566         mono_marshal_get_native_wrapper): make sure we have marshalling
16567         info before marshalling params (info computation affects
16568         blittable)
16569
16570         * class.c (class_compute_field_layout): correctly deal with
16571         blittable
16572         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
16573         value types (as per what windows dows by default)
16574         (mono_class_setup_mono_type): System.ValueType is blittable
16575         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
16576         blittable
16577
16578         * marshal.c (mono_marshal_load_type_info): flag types  as
16579         non-blittable if the native layout doesn't match the managed
16580         layout
16581
16582 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16583
16584         * appdomain.c: don't add stuff in the private search path that is
16585         above the application base. If application base is not set, there's
16586         no private search path.
16587
16588 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
16589
16590         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
16591         byref struct arguments in native->managed marshalling.
16592
16593 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
16594
16595         * marshal.c (mono_marshal_get_runtime_invoke): correctly
16596         cache methods using signature (special case for methods
16597         that are value type or string class)
16598         
16599         * image.c (mono_image_close): clean up allocated GSList's
16600         in runtime_invoke_cache.
16601
16602 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16603
16604         * mono-config.c: set the correct path for mono_cfg_dir on windows when
16605         there's no MONO_CFG_DIR environment variable defined.
16606
16607 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16608
16609         * threads.c: windows version must be >= 0x0500 to include OpenThread.
16610
16611 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
16612
16613         * threadpool.c: Really wait for 500ms after the async call, even if the wait
16614           is interrumped.
16615         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
16616           before waiting for it, and call CloseHandle after the wait to unref it.
16617           This will make sure that handles are not disposed too early.
16618
16619 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16620
16621         * appdomain.c:
16622         * appdomain.h:
16623         * icall.c: removed
16624         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
16625         needed now.
16626
16627         * object.c: se the application_base only for the domain that runs
16628         Main. Fixes bug #59216,
16629
16630 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16631
16632         * appdomain.c:
16633         * object.c: only the domain in which Main is run have
16634         SetupInformation.ConfigurationFile set, so moved a few lines from
16635         appdomain.c to object.c.
16636
16637 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16638
16639         * appdomain.c: we tried to load [name].(dll|exe), but according
16640         to bug #57710, we must also try [culture]/[name].(dll|exe) and
16641         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
16642         There's a test case attached to bug #58922.
16643
16644 2004-05-27  Dick Porter  <dick@ximian.com>
16645
16646         * icall.c:
16647         * file-io.c: Implemented icalls for locking and unlocking regions
16648         in a file.
16649         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
16650         FALSE on error (fixes both compiler warning and real bug.)
16651
16652 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
16653
16654         * culture-info-tables.h: reflecting locale-builder updates.
16655
16656           (Added missing ChangeLog entry for 05/26)
16657
16658 2004-05-27  Jackson Harper  <jackson@ximian.com>
16659
16660         * locales.c: Fix some cut and paste errors.
16661         
16662 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16663
16664         * mono-config.c: set the correct path for config. directory on windows.
16665
16666 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
16667
16668         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
16669           on win32.
16670
16671 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
16672
16673         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
16674         from pinvoke functions.
16675         
16676         * marshal.c (mono_ftnptr_to_delegate): Implement this.
16677
16678 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
16679
16680         * culture-info-tables.h: reflecting locale-builder updates.
16681
16682 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
16683
16684         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
16685         #59086.
16686
16687 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
16688
16689         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
16690         * icall.c: Modified icalls for RNG.
16691         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
16692         Windows (CryptoAPI).
16693
16694 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
16695
16696         * locales.c: Fix build.
16697
16698 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
16699
16700         * culture-info-tables.h: reflecting locale-builder updates.
16701
16702 2004-05-25  Jackson Harper  <jackson@ximian.com>
16703
16704         * locales.c: When creating the current culture use the $LANGs
16705         specific culture. So DateTimeFormat and NumberFormat entries are created.
16706         
16707 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
16708
16709         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
16710         a char array as parameter.
16711
16712 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
16713
16714         * image.c: In mono_image_open(), always use an absolute path name to
16715           look for already loaded images.
16716
16717 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
16718
16719         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
16720         missing in the windows build (like older cygwin include files).
16721
16722 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
16723
16724         * icall.c: Fixed check for possible integer overflow in Buffer_
16725         BlockCopy icall. Replaced comments style // by /* */.
16726
16727 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
16728
16729         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
16730         
16731         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
16732         check after MONO_VTADDR. Fixes pinvoke2.exe.
16733
16734         * marshal.h marshal.c metadata.h: Add beginnings of support for
16735         ftnptr -> delegate marshalling.
16736
16737 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
16738
16739         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
16740         * threads.c: Fix warnings.
16741
16742 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
16743
16744         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
16745         * icall.c: Registered icalls for Suspend and Resume.
16746         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
16747           Thread.Abort.
16748         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
16749         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
16750         * process.c: Use WaitForSingleObjectEx.
16751         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
16752           checkpoints.
16753         * threads.c, threads.h: Make use of new Ex wait methods. Improved
16754           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
16755           for Suspend and Resume. Added new mono_thread_stop, used for stoping
16756           background threads. Added basic support for Abort in Windows.
16757           Start new threads using a managed delegate invoke wrapper. This wrapper
16758           has an interruption checkpoint that is needed since an interruption
16759           can be requested before the thread leaves the unmanaged code that starts 
16760           the thread.
16761         * marshal.c: Added interruption checkpoint after every native call, and
16762           also before managed calls for wrappers called from unmanaged code to
16763           go into managed code.
16764         * object.h: Added new field in MonoThread to keep track of interruption
16765           requests.
16766
16767 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
16768
16769         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
16770         calls.
16771
16772 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16773
16774         * appdomain.c:
16775         * assembly.c:
16776         * gc.c:
16777         * locales.c:
16778         * mono-config.c:
16779         * rand.c: getenv -> g_getenv (windows!)
16780
16781         * process.c: complete_path is also used on non-windows platforms.
16782
16783 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16784
16785         * icall.c: new signature for Process_Start.
16786
16787         * process.[ch]: new signature for Process_Start. If we're on windows
16788         and UseShellExecute is false, we have to search for the program by
16789         ourselves if we don't get a full path.
16790
16791 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
16792
16793         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
16794         marshalling and call CleanUpNativeData if needed. Fixes #58646.
16795
16796 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16797
16798         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
16799         Fixes bug #58373.
16800
16801 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16802
16803         * process.c: use double quotes to quote program name and arguments on
16804         windows. Fixes bug #58575.
16805
16806 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16807
16808         * file-io.c: don't return "." and ".." when using windows Find*File.
16809
16810 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
16811
16812         * marshal.c: Don't pass wrappers to message init because method 
16813         addressed used to lookup metadata. part of remoting[2|3] fix.
16814
16815 2004-05-15  Jackson Harper  <jackson@ximian.com>
16816
16817         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
16818         path is essentially the same as MONO_PATH except that it points to
16819         GACs instead of lib directories.
16820         * loader.h: The user gac is gone so we dont need function to
16821         enable/disable it.
16822         * mono-config.c: user gac option is now gone.
16823         
16824 2004-05-15  Jackson Harper  <jackson@ximian.com>
16825
16826         * culture-info.h: Make defines more consistent, add calendar data
16827         to the culture info table.
16828         * culture-info-tables.h: Add basic calendar data. Basically
16829         everyone gets default gregorian until all the data is
16830         updated.
16831         * locales.c: Use the new consistent defines. Set calendar data for
16832         culture info objects.
16833         * object.h: add a field for calendar data to CultureInfo
16834         
16835 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
16836
16837         * image.c: image->runtime_invoke_cache is keyed on signatures now.
16838         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
16839         a signature.
16840         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
16841         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
16842         an extra param that is the pointer of the method to invoke. The IL for
16843         the invoke method is no longer specific to the method, but to the
16844         signature of the method. Thus, we can share the same code for multiple
16845         methods. This reduces the number of methods that have to be compiled.
16846
16847 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
16848
16849         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
16850
16851         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
16852
16853         * icall.c: Optimize Buffer.BlockCopy.
16854
16855 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16856
16857         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
16858         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
16859         quote). Changed them to "MMMM yyyy".
16860
16861 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
16862
16863         * rand.c
16864         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
16865
16866 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
16867
16868         * reflection.h: Updated after changes to managed structures.
16869
16870         * appdomain.c: Bump corlib version.
16871
16872 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16873
16874         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
16875         windows.
16876
16877 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16878
16879         * Makefile.am: link to ../os/libmonoos.la on windows.
16880
16881         * assembly.c:
16882                 -If MONO_DEBUG, warn about non-existing directories in
16883                 MONO_PATH.
16884                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
16885                 compile time variable.
16886                 -Removed init_default_path and call mono_set_rootdir from
16887                 libmonoos.a instead (windows only).
16888
16889         * assembly.h: declare mono_assembly_getrootdir().
16890
16891         * domain.c:
16892         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
16893
16894         * loader.c: s/getenv/g_getenv/
16895
16896 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
16897
16898         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
16899
16900         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
16901
16902         * metadata.h: Add new marshalling conversions.
16903
16904         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
16905         function.
16906
16907         * reflection.c (mono_reflection_get_type): Lookup the type in all
16908         modules of a multi-module assembly. Fixes #58291.
16909
16910 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
16911
16912         * threads.c: Before aborting a background, set the StopRequested
16913         state.  This avoids throwing the Abort exception.
16914         In mono_thread_manage, don't continue with the shutdown until all
16915         aborted threads have actually stopped.
16916
16917 2004-05-10  Jackson Harper  <jackson@ximian.com>
16918
16919         * locales.c: Remove the modifier from culture names.
16920         
16921 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16922
16923         * Makefile.am: monosn is not installed any more. It has been deprecated
16924         in favor of sn.
16925
16926 2004-05-07  Jackson Harper  <jackson@ximian.com>
16927
16928         * locales.c
16929         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
16930         Fix array construction, add bailout if the length is 0.
16931
16932 2004-05-07  Dick Porter  <dick@ximian.com>
16933
16934         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
16935         machine doesn't have a DNS entry.  Patch by Urs Muff
16936         (umuff@quark.com), fixes bug 57928.
16937
16938 2004-05-06  Jackson Harper  <jackson@ximian.com>
16939
16940         * reflection.c: Handle null PublicTokens properly. alloc mem for
16941         assembly names culture so we dont crash when freeing it.
16942         
16943 2004-05-06  Jackson Harper  <jackson@ximian.com>
16944
16945         * assembly.c: Check the usergac when loading with partial names.
16946         
16947 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
16948
16949         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
16950         does nothing for now (not required for Linux/Windows) but the class
16951         library can call it (and a newer or modified runtime could need it).
16952         * icall.c: Registred icall.
16953
16954 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16955
16956         * loader.c: prints a message on module loading error we set MONO_DEBUG
16957         environment variable.
16958
16959 2004-05-05  Jackson Harper  <jackson@ximian.com>
16960
16961         * appdomain.c: Handle PublicKeyToken=null properly.
16962         
16963 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
16964
16965         * environment.c|h: Added icall ves_icall_System_Environment_
16966         GetOSVersionString to get the current OS version as a string.
16967         * icall.c: Registred icall.
16968
16969 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
16970
16971         * object.c: in mono_object_get_virtual_method(), take into account that
16972         non-virtual methods don't have a slot in the vtable. Check needed when
16973         the object is a proxy.
16974
16975 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
16976
16977         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
16978         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
16979
16980         * object.c (mono_class_compute_gc_descriptor): Fix warning.
16981
16982         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
16983         passed when a valuetype is expected.
16984
16985         * object.c (mono_unhandled_exception): Only set the exit code if the
16986         exception happens in the main thread. Fixes thread5.exe.
16987
16988         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
16989         invalid names. Fixes #58047.
16990
16991 2004-05-03  Jackson Harper  <jackson@ximian.com>
16992
16993         * assembly.c: This line was committed accidently and is unneeded.
16994         
16995 2004-05-03  Jackson Harper  <jackson@ximian.com>
16996
16997         * icall.c: Add new icall for Assembly::LoadWithPartialName
16998         * assembly.c/.h: new function that probes the GAC to load partial
16999         assembly names by Paolo Molaro.
17000         
17001 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17002
17003         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
17004         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
17005         (type_get_fully_qualified_name): Added PublicKeyToken when building a
17006         full type name.
17007
17008 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17009
17010         * appdomain.c: fixed check for 'neutral' culture and removed warning.
17011         * reflection.c: fix bug when parsing a full type name and Version is not
17012         the last thing in the string.
17013
17014 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
17015
17016         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
17017         crashes when it is freed.
17018
17019 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17020
17021         * assembly.c: print the compat warning to stderr.
17022
17023 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
17024
17025         * assembly.c (mono_assembly_load_references): Add a compatibility
17026         hack to run old applications that might be still referencing the
17027         3300-based assemblies, only do this for System.xxx.
17028
17029 2004-05-01  Jackson Harper  <jackson@ximian.com>
17030
17031         * appdomain.c: If the culture is neutral we set it to "".
17032         
17033 2004-04-29  Jackson Harper  <jackson@ximian.com>
17034
17035         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
17036
17037 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
17038  
17039         * string-icalls.c: added low overhead function for copying chars
17040         * icall.c: added needed icall for the above function
17041  
17042 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17043
17044         * icall.c: fix return value of get_global_assembly_cache.  Implemented
17045         Environment.GetLogicalDrives.
17046
17047 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
17048
17049         * rand.c: try and talk to egd or prngd
17050         for random bytes if opening devices fail.
17051
17052 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
17053
17054         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
17055         alignment for the type using the native alignment of its members 
17056         instead of using klass->min_align.
17057
17058         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
17059
17060 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17061
17062         * file-io.c:
17063         * socket-io.c: added check for sys/aio.h.
17064
17065 2004-04-28  Dick Porter  <dick@ximian.com>
17066
17067         * threads.c: Don't abort a thread thats already aborting, when
17068         terminating everything.
17069
17070 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17071
17072         * icall.c: added 2 new async calls for Socket.
17073
17074         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
17075         IO on *nix systems.
17076
17077         * threadpool.c: removed unused variable.
17078
17079 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
17080
17081         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
17082
17083 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
17084
17085         * locales.c: put back string_invariant_tolower () and
17086         string_invariant_toupper ().
17087
17088 2004-04-26 David Waite <mass@akuma.org>
17089
17090         * file-io.h:
17091         * socket-io.h:
17092         * threads.h:
17093         * unicode.h: remove comma from end of enumeration declarations
17094
17095 2004-04-26 David Waite <mass@akuma.org>
17096
17097         * debug-mono-symfile.h:
17098         * decimal.c:
17099         * mono_debug.h:
17100         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
17101
17102
17103 2004-04-26  Jackson Harper  <jackson@ximian.com>
17104
17105         * appdomain.c: Increment version number.
17106         
17107 2004-04-26  Jackson Harper  <jackson@ximian.com>
17108
17109         * appdomain.c: Set assembly references public token value when
17110         PublicKeyToken is specified, not the hash_value. Free public token
17111         values when free assembly name data. Previously the public key
17112         token was hex decoded, however we are using hex encoded public key
17113         tokens, so this is not neccasary.
17114         * assembly.c: Lookup assemblies in the gac if their public token
17115         value is set. Add function to allow enabling user gac
17116         lookups. Specify whether or not the assembly was loaded from the
17117         GAC. Compare full assembly names when checking the cache for
17118         assemblies (Temporarily disabled see comment in code). Remove
17119         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
17120         specifies trace-loader they get extra info to stdout on the
17121         loading of assemblies.
17122         * image.h: Add a field for an assembly references public token
17123         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
17124         whether an assembly has been loaded from the GAC.
17125         * image.c: Remove a corlib -> mscorlib name mapping.
17126         * loader.h: Add function to enable/disable the user gac.
17127         * mono-config.c: Check if the usergac is enabled in the config
17128         file.
17129         * icall.c: New icall to determine whether or not an assembly has
17130         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
17131         * tabldefs.h: Add constant for assemblyref flag that specifies a
17132         full public key is used instead of a public token.
17133         * reflection.c: Remove mscorlib -> corlib mappings. Set
17134         PublicTokenValue instead of hash value. This value is a hex
17135         string so it does not need to be expanded.
17136
17137 2004-04-26  Martin Baulig  <martin@ximian.com>
17138
17139         * mono-debug-debugger.c (mono_debugger_initialize): Set
17140         `mono_debugger_initialized' before calling mono_debug_lock().
17141
17142 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
17143
17144         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
17145           InternalToUpper/InternalToLower.
17146         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
17147           removed invariant culture shortcut.  This is now done in managed code.
17148         * locales.c: (string_invariant_toupper/tolower) removed.
17149
17150 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17151
17152         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
17153         Added Poll internal call.
17154
17155         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
17156         call for Poll. Select was too heavy for polling a single socket.
17157
17158         * threadpool.[ch]: added mono_threadpool_cleanup.
17159         * threads.c: use it. Don't use Thread_Abort on windows.
17160
17161 2004-04-23  Martin Baulig  <martin@ximian.com>
17162
17163         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
17164
17165 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
17166
17167         * icall.c: Registred new icalls for key pair protection and added an
17168         icall for Environment.GetFolderPath on Windows.
17169         * security.c|h: Added new icalls for key pair protection.
17170
17171 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17172
17173         * socket-io.c: don't display the non-supported family warning for known
17174         families. Now this is not displayed on windows when checking support
17175         for IPv4/IPv6.
17176
17177 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17178
17179         * class.c: don't display the layout warning for static fields.
17180
17181 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
17182
17183         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
17184         * locales.c, locales.h: Added new icalls for culture-specific
17185         Char.ToLower and Char.ToUpper.
17186
17187 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17188
17189         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
17190         by David Waite.
17191
17192 2004-04-20  Martin Baulig  <martin@ximian.com>
17193
17194         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
17195         of the type name before passing it to mono_reflection_type_from_name().
17196
17197 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
17198
17199         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
17200         encodings here. Fixes #56965.
17201
17202 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
17203
17204         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
17205         fix test on strstr result not that I can see anything that
17206         relies on the result.
17207
17208 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
17209
17210         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
17211         Fixes #57081.
17212
17213         * marshal.c (mono_marshal_get_string_encoding): New helper function.
17214
17215         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
17216         function to determine which marshalling to use for strings. Fixes
17217         #56965.
17218
17219         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
17220
17221         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
17222
17223 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
17224
17225         * icall.c: #include mono-config.h
17226
17227 2004-04-15  Jackson Harper  <jackson@ximian.com>
17228
17229         * culture-info-tables.h: Fix date formats for en-US culture.
17230         
17231 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
17232
17233         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
17234         ThreadPool.SetMinThreads.
17235         * threadpool.c: Implemented ThreadPool.GetMinThreads and
17236         ThreadPool.SetMinThreads.
17237
17238 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
17239
17240         * mono-config.c: also load the .config file in the directory
17241         where the assembly was found.
17242
17243 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
17244
17245         * assembly.c: load per-assembly config files.
17246         * icall.c: decrapified code to get the config dir and moved to
17247         mono-config.c.
17248         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
17249         per-assembly config files. When doing a dll map lookup give precedence
17250         to the per-assembly data.
17251
17252 2004-04-14  Martin Baulig  <martin@ximian.com>
17253
17254         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
17255         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
17256         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
17257
17258         * mono-debugger-debugger.c: While the debugger is locked, remember
17259         whether the symbol tables have changes and send one single
17260         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
17261
17262 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
17263
17264         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
17265
17266         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
17267         function.
17268
17269         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
17270         account when marshalling string arrays. Fixes #56965.
17271
17272 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
17273
17274         * icall.c: Add new icalls mapping for security.
17275         * security.c|h: Add internal calls for WindowsIdentity,
17276         WindowsImpersonationContext and WindowsPrincipal.
17277
17278 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
17279
17280         * class.c: Added comment to ensure the System.MonoDummy class
17281         is removed when no longer necessary
17282
17283 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
17284
17285         * appdomain.c: Pass arguments to the bootstraping exceptions to
17286         minimize JITed methods at boot
17287
17288         * metadata.c (mono_exception_from_name_two_strings): Allow for the
17289         second string to be null.
17290
17291         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
17292         Change the protocol to minimize the JIT methods at startup.  Now
17293         it Returns the internal codepage, if the value of "int_code_page"
17294         is 1 at entry, and we can not compute a suitable code page
17295         number, returns the code page as a string.
17296
17297 2004-04-13  Jackson Harper  <jackson@ximian.com>
17298
17299         * culture-info-tables.h: Fix number of decimal digits for all
17300         english locales.
17301
17302 2004-04-13  Jackson Harper  <jackson@ximian.com>
17303
17304         * icall.c: Clairfy out of sync error message. It is not always
17305         your corlib that is out of sync.
17306
17307 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
17308
17309         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
17310         properties when only the set accessor is overriden. Fixes #55874.
17311
17312 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
17313
17314         * assembly.c (mono_assembly_load_references): Make this thread safe.
17315         Fixes #56327.
17316
17317 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
17318
17319         * monosn.c: Add missing initialization calls.
17320
17321 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
17322
17323         * locales.c:
17324         ves_icall_System_Globalization_CultureInfo_construct_number_format
17325         Fix g_assert so it compiles on fussier compilers re int/ptr
17326         mismatch
17327
17328 2004-04-08  Dick Porter  <dick@ximian.com>
17329
17330         * socket-io.h:
17331         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
17332         53992.  Also rearrange the code so that the internal calls return
17333         an error value and exceptions are thrown from managed code.
17334
17335         * icall.c: Add type info to the socket icalls.
17336
17337 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17338
17339         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
17340         owes me a beer.
17341
17342 2004-04-07  Martin Baulig  <martin@ximian.com>
17343
17344         * class.c (mono_class_from_generic_parameter): Don't default
17345         `klass->parent' to `mono_defaults.object_type'.
17346
17347 2004-04-07  Martin Baulig  <martin@ximian.com>
17348
17349         * reflection.c (mono_reflection_initialize_generic_parameter): Set
17350         `param->pklass->reflection_info'.       
17351
17352 2004-04-07  Jackson Harper  <jackson@ximian.com>
17353
17354         * culture-info-tables.h: Fix date separator symbol.
17355         
17356 2004-04-07  Martin Baulig  <martin@ximian.com>
17357
17358         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
17359         from System.Type to System.MonoType.
17360
17361 2004-04-07  Martin Baulig  <martin@ximian.com>
17362
17363         * reflection.h
17364         (MonoReflectionGenericParam): Added `has_reference_type' and
17365         `has_value_type' fields.
17366
17367         * reflection.c (mono_image_get_generic_param_info): Encode the
17368         correct flags if we have the `class' or `struct' constraint.
17369
17370 2004-04-07  Martin Baulig  <martin@ximian.com>
17371
17372         * reflection.h
17373         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
17374
17375 2004-04-07  Jackson Harper  <jackson@ximian.com>
17376
17377         * appdomain.c: Revert extra patches, just wanted to bump the
17378         version number.
17379         
17380 2004-04-07  Jackson Harper  <jackson@ximian.com>
17381
17382         * Makefile.am: Add culture-info private headers.
17383         * icall.c: Add new icalls for contructing locales.
17384         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
17385         * locales.h: Declare new culture info construction methods.
17386         * object.h: Add new fields used to avoid the CultureMap to
17387         MonoCultureInfo.
17388         * culture-info.h: Definition of structs used in the culture info
17389         tables.
17390         * culture-info-tables.h: Autogenerated tables that contain culture
17391         info data. This file was generated with the locale-builder tool.
17392         * appdomain.c: Incement corlib version number.
17393         
17394 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
17395
17396         * appdomain.c: (mono_runtime_init) move mono_thread_init
17397         to before mono_object_new calls so critical sections
17398         are initialized before use.
17399
17400 2004-04-07  Martin Baulig  <martin@ximian.com>
17401
17402         * icall.c
17403         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
17404         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
17405         (ves_icall_MonoGenericParam_initialize): Removed.
17406         (monogenericparam_icalls): Removed.
17407         (generictypeparambuilder_icalls): Added new table for
17408         System.Reflection.Emit.GenericTypeParameterBuilder.
17409
17410         * reflection.c
17411         (mono_reflection_define_generic_parameter): Removed.
17412         (mono_reflection_initialize_generic_parameter): This is now called
17413         from GenericTypeParameterBuilder's .ctor.
17414
17415 2004-04-06  Martin Baulig  <martin@ximian.com>
17416
17417         * class.c (mono_class_init): Don't inflate nested classes in a
17418         generic instance.
17419         (mono_type_get_name_recurse): Include the generic arguments for
17420         generic instances and generic type declarations.
17421         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
17422         (_mono_class_get_instantiation_name): Removed.
17423         (mono_class_create_generic): Always use `gklass->name' as our name.
17424
17425         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
17426
17427         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
17428         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
17429         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
17430         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
17431         closed generic methods here.
17432
17433         * reflection.c
17434         (mono_reflection_generic_inst_get_nested_types): Removed.
17435         (inflate_mono_method): Copy the generic parameters from the
17436         MonoMethodHeader into out MonoGenericMethod.
17437
17438 2004-04-06  Martin Baulig  <martin@ximian.com>
17439
17440         * row-indexes.h
17441         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
17442
17443         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
17444
17445         * reflection.c (build_compressed_metadata): If we have any entries
17446         in the GenericParam, MethodSpec or GenericParamConstraint tables,
17447         set the header version to 1.1.
17448
17449 2004-04-06  Martin Baulig  <martin@ximian.com>
17450
17451         * class.c (mono_class_init): If we're a generic instance,
17452         initialize our nested classes, too.
17453         (_mono_class_get_instantiation_name): Deal with the new `!%d'
17454         suffix. 
17455
17456 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17457
17458         * process.c: quote the argument passed to the shell on windows.
17459
17460 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
17461
17462         * threads.c (mono_alloc_special_static_data): Allow this to be
17463         called during startup.
17464
17465 2004-04-02  Martin Baulig  <martin@ximian.com>
17466
17467         * icall.c
17468         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
17469
17470 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
17471
17472         * icall.c: Fix build.
17473
17474 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
17475
17476         * Makefile.am: Added security.c|h.
17477         * icall.c: Added icall for get_UserName;
17478         * security.c: New file for security related icalls. Added function
17479         get_UserName for System.Environment (fix #56144).
17480         * security.h: New. Header file for security.c
17481
17482 2004-04-02  Dick Porter  <dick@ximian.com>
17483
17484         * icall.c: Deleted the icalls that were obsoleted some time ago
17485         by the ICU string code, and which were mixed into the icall
17486         rearranging.  Fixes bug 55969.
17487
17488         * string-icalls.h: 
17489         * string-icalls.c: Deleted the code that those icalls reference.
17490
17491 2004-04-01  Martin Baulig  <martin@ximian.com>
17492
17493         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
17494
17495         * class.c (mono_class_from_generic_parameter): Don't set 
17496         TYPE_ATTRIBUTE_INTERFACE.
17497         (my_mono_class_from_generic_parameter): Likewise.
17498
17499 2004-04-01  Martin Baulig  <martin@ximian.com>
17500
17501         * loader.c (find_method): Added an optional `MonoClass *ic'
17502         argument to search in a specific interface.
17503         (mono_get_method_constrained): New public function.
17504
17505 2004-04-01  Martin Baulig  <martin@ximian.com>
17506
17507         * reflection.c (mono_image_get_generic_field_token): Use the
17508         `handleref' cache here.
17509
17510 2004-04-01  Martin Baulig  <martin@ximian.com>
17511
17512         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
17513
17514         * reflection.c (create_generic_typespec): Use the `typespec' hash
17515         here, not the `typeref' one.    
17516
17517 2004-04-01  Martin Baulig  <martin@ximian.com>
17518
17519         * class.c (mono_class_inflate_generic_type): Moved the
17520         functionality into a new static inflate_generic_type() which
17521         returns NULL if it didn't do anything.  Only increment the
17522         `mono_stats.inflated_type_count' if we actually inflated
17523         something.
17524         (mono_class_get_full): Check the classes type to see whether we
17525         need to inflate it; also inflate MONO_TYPE_(M)VAR.
17526
17527 2004-04-01  Jackson Harper  <jackson@ximian.com>
17528
17529         * reflection.c: Set culture for assembly references.
17530         
17531 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
17532
17533         * reflection.[ch], icall.[ch], Fix support for pinning variables.
17534
17535 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17536
17537         * assembly.c:
17538         (do_mono_assembly_open): the critical section also covers
17539         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
17540
17541 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17542
17543         * threads.c:
17544         (mono_manage_threads): abort the background threads when finishing.
17545         Fixes bug #47232.
17546
17547 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17548
17549         * gc.c: only close the done_event handle if there was no timeout.
17550         C-ified comments.
17551
17552 2004-03-30  Martin Baulig  <martin@ximian.com>
17553
17554         * icall.c (icall_entries): It's called "System.Activator", not
17555         "System.Activation".    
17556
17557 2004-03-30  Martin Baulig  <martin@ximian.com>
17558
17559         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
17560         (mono_class_create_from_typespec): Likewise.
17561
17562 2004-03-30  Martin Baulig  <martin@ximian.com>
17563
17564         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
17565         `has_ctor_constraint' and `initialized'.
17566
17567 2004-03-30  Martin Baulig  <martin@ximian.com>
17568
17569         * reflection.c (encode_new_constraint): New static function to add
17570         the constructor constraint attribute to a type parameter.
17571         (encode_constraints): Call encode_new_constraint() if necessary.
17572
17573         * reflection.h
17574         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
17575
17576         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
17577         
17578 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
17579
17580         * reflection.c, icall.c: add support for pinning variables. 
17581
17582 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
17583
17584         * marshal.c (mono_marshal_get_managed_wrapper):
17585         init bool local with zero rather than null.
17586
17587 2004-03-29  Martin Baulig  <martin@ximian.com>
17588
17589         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
17590         the "official" behavior here.
17591         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
17592
17593 2004-03-29  Martin Baulig  <martin@ximian.com>
17594
17595         * icall.c: Reflect latest API changes.
17596
17597 2004-03-29  Martin Baulig  <martin@ximian.com>
17598
17599         * loader.c (mono_get_method_from_token): Also call
17600         mono_metadata_load_generic_params () for abstract and interface
17601         methods; replace the type arguments in the method signature with
17602         the ones which are loaded from the metadata.
17603
17604 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
17605
17606         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
17607         of the lock is not the current thread. MS.NET don't do it, in spite of
17608         what the documentation says. See bug #56157.
17609
17610 2004-03-28  Martin Baulig  <martin@ximian.com>
17611
17612         * class.c (mono_class_init): Don't call init_properties() and
17613         init_events() for generic instances; set `prop->parent' when
17614         inflating properties.
17615
17616         * reflection.c (mono_generic_inst_get_object): Call
17617         `mono_class_init (ginst->klass)'.
17618         (mono_type_get_object): Only create a MonoGenericInst if your
17619         generic type is a TypeBuilder.
17620         (do_mono_reflection_bind_generic_parameters): Only set
17621         `ginst->is_dynamic' if our generic type is a TypeBuilder.
17622
17623 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
17624
17625         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
17626         Fixes #56091.
17627
17628 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17629
17630         * icall.c: added Kill_internal icall.
17631         * process.[ch]: added Kill_internal icall.
17632
17633 2004-03-25  Martin Baulig  <martin@ximian.com>
17634
17635         * class.h (MonoStats): Added `generic_instance_count',
17636         `inflated_method_count', `inflated_type_count' and
17637         `generics_metadata_size'.       
17638
17639 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17640
17641         * reflection.c: no warnings now.
17642
17643 2004-03-25  Martin Baulig  <martin@ximian.com>
17644
17645         * class.c (mono_class_get_full): New public function; does a
17646         mono_class_get(), but also takes a `MonoGenericContext *'.
17647
17648         * loader.c (mono_field_from_memberref): Renamed to
17649         `field_from_memberref', made static and added `MonoGenericContext *'
17650         argument.
17651         (mono_field_from_token): Added `MonoGenericInst *' argument.
17652         (method_from_memberef): Likewise.
17653         (mono_get_method_from_token): Likewise.
17654         (mono_get_method_full): New public function; does a
17655         mono_get_method(), but also takes a `MonoGenericContext *'.
17656
17657         * verify.c (mono_method_verify): Get the method's generic context
17658         and pass it to mono_field_from_token(), mono_get_method_full() and
17659         mono_class_get_full().
17660
17661 2004-03-25  Martin Baulig  <martin@ximian.com>
17662
17663         * class.c (mono_class_inflate_generic_type): Take a
17664         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
17665         `MonoGenericMethod *'.
17666
17667 2004-03-25  Martin Baulig  <martin@ximian.com>
17668
17669         * loader.h (MonoMethodInflated): Store the MonoGenericContext
17670         instead of the MonoGenericMethod here.
17671
17672 2004-03-25  Martin Baulig  <martin@ximian.com>
17673
17674         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
17675         each time we create a new MonoGenericInst, we also create a new
17676         context which points back to us.
17677
17678         * class.c (inflate_method): Use `ginst->context' instead of
17679         creating a new context.
17680
17681         * loader.c (method_from_memberref): Use
17682         `klass->generic_inst->context' instead of creating a new context.
17683
17684 2004-03-25  Martin Baulig  <martin@ximian.com>
17685
17686         * class.h (MonoGenericContext): New struct.
17687         (MonoGenericMethod): Removed `generic_inst'.
17688
17689         * class.c (mono_class_inflate_generic_method): Take a
17690         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
17691
17692 2004-03-25  Martin Baulig  <martin@ximian.com>
17693
17694         * loader.h (MonoMethodInflated): New typedef.
17695
17696         * metadata.h (MonoMethodSignature): Removed `gen_method', make
17697         `generic_param_count' consume just 30 bits, added `is_inflated'
17698         and `has_type_parameters' flags (one bit each).
17699
17700         * class.c (mono_class_inflate_generic_method): Create a
17701         MonoMethodInflated instead of a MonoMethodNormal and set
17702         `is_inflated' in the method signature.
17703
17704         * class.h (MonoGenericMethod): Removed `generic_method'.
17705
17706 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
17707
17708         * image.c: Make sure the name of a MonoImage is always an absolute path.
17709           This fixes bug #54415.
17710
17711 2004-03-24  Martin Baulig  <martin@ximian.com>
17712
17713         * class.c (mono_class_setup_vtable): If we're a generic instance,
17714         use our generic type's vtable size.
17715
17716 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
17717
17718         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
17719         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
17720         problems.
17721
17722 2004-03-23  Martin Baulig  <martin@ximian.com>
17723
17724         * class.h (MonoDynamicGenericInst): Added `int count_events' and
17725         `MonoEvent *events'.
17726
17727         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
17728         (typebuilder_icalls): Added "get_event_info"; calls
17729         mono_reflection_event_builder_get_event_info(). 
17730
17731         * reflection.c (mono_reflection_generic_inst_initialize): Added
17732         `MonoArray *events'.
17733         (mono_reflection_event_builder_get_event_info): New function.
17734
17735 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
17736
17737         * object.h: add mono_type_initialization_init
17738
17739         * object.c (mono_runtime_class_init): 
17740         implement class constructor synchronization rules
17741         to cope with threading issues.  
17742         add mono_type_initialization_init
17743
17744         * appdomain.c (mono_runtime_init): call 
17745         mono_type_initialization_init
17746
17747         * class.h: removing initializing field from MonoVTable
17748
17749 2004-03-23  Martin Baulig  <martin@ximian.com>
17750
17751         * class.c (my_mono_class_from_generic_parameter): Use
17752         `param->name' if it's not NULL. 
17753
17754 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
17755
17756         * class.c: do not insert non-virtual methods in the vtable.
17757         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
17758         that means the method is non-virtual. This never would have
17759         happened before.
17760
17761 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
17762
17763         * profiler.c: Added lock for accessing coverage_hash.
17764
17765 2004-03-22  Martin Baulig  <martin@ximian.com>
17766
17767         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
17768         `method->method->signature->generic_param_count != 0' to make it
17769         work for interface methods.
17770
17771 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17772
17773         * process.c: quote the string passed to the shell using g_shell_quote.
17774
17775 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17776
17777         * threads.c:
17778         (mono_threads_manage): don't remove the finalizer thread and self
17779         from the threads hash table so that mono_thread_manage can be called
17780         more than once.
17781
17782 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17783
17784         * process.c: quote the arguments when UseShellExecute is true. Fixes
17785         bug #55790.
17786
17787 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17788
17789         * threads.c: set mono_thread_detach as a cleanup routine for every
17790         thread. This way it's always executed upon thread termination, either
17791         aborted or finished normally. No more xsp hangs!
17792
17793 2004-03-17  Martin Baulig  <martin@ximian.com>
17794
17795         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
17796         `int count_nested' and a `MonoType **nested'.
17797
17798         * reflection.c (mono_reflection_bind_generic_parameters): Moved
17799         most of the functionality into a new static
17800         do_mono_reflection_bind_generic_parameters() and don't take a
17801         `MonoType *nested_in' argument any more.  Don't compute nested
17802         types here.
17803         (mono_reflection_generic_inst_get_nested_types): New public method
17804         to get nested types.
17805
17806         * class.c (mono_class_create_generic): Set `klass->nested_in' if
17807         we're a nested class.
17808
17809         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
17810         mono_reflection_generic_inst_get_nested_types() to compute the
17811         nested types.
17812
17813 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
17814
17815         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
17816         descriptive error message under windows.
17817         
17818 2004-03-17  Martin Baulig  <martin@ximian.com>
17819
17820         * class.c (dup_type): Added `const MonoType *original' argument;
17821         copy the attrs from the original type.
17822
17823 2004-03-17  Martin Baulig  <martin@ximian.com>
17824
17825         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
17826         `m->generic_inst_cache' here.
17827
17828 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
17829
17830         * exception.h exception.c: Add stack_overflow_exception.
17831
17832 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17833
17834         * threadpool.c:
17835         (overlapped_callback): call SetEvent *after* invoking the callback.
17836         No need to call CloseHandle.
17837
17838 2004-03-16  Martin Baulig  <martin@ximian.com>
17839
17840         * reflection.c (mono_image_get_fieldref_token): Take a
17841         `MonoReflectionField *' instead of a `MonoClassField *' and a
17842         `MonoClass *'; store the `MonoReflectionField *' in the hash.
17843
17844 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17845
17846         * appdomain.c: don't add the culture to the filename we're looking for
17847         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
17848
17849 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17850
17851         * locales.c: don't ignore symbols when doing case insensitive compares.
17852         Thanks Dick! Fixes bug #54046.
17853
17854         * threads.c: surround 'threads' usage with enter/leave in
17855         mono_thread_manage.
17856
17857 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
17858
17859         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
17860         implicitly marshalled as [Out]. Fixes #55450.
17861
17862         (mono_marshal_get_runtime_invoke): Zero out the result if there is
17863         an exception.
17864
17865 2004-03-16  Martin Baulig  <martin@ximian.com>
17866
17867         * class.c (mono_class_from_generic_parameter): Use the actual
17868         parameter name. 
17869
17870 2004-03-16  Martin Baulig  <martin@ximian.com>
17871
17872         * reflection.c (type_get_signature_size): New static function.
17873         Compues the size of the type in a method signature.
17874         (method_get_signature_size): New static function; calls
17875         type_get_signature_size() to compute the actual size of the
17876         method's signature.
17877         (method_encode_signature): Use method_get_signature_size() to get
17878         the signature's size rather than using `nparams * 10'.
17879
17880 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17881
17882         * file-io.h: define here WapiOverlapped on windows. I don't want the
17883         regular OVERLAPPED one.
17884
17885         * file-io.c:
17886         * threadpool.c: somehow, BindIoCompletionCallback is not found.
17887         Disabling AIO on windows.
17888
17889 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17890
17891         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
17892         bug #55385.
17893
17894 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17895
17896         * appdomain.c: upgraded corlib version.
17897
17898         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
17899         and BeginWrite. Allow opening files for asynchrnous operations.
17900
17901         * file-io.h: new struct that maps FileStreamAsyncResult.
17902         * icall.c: added new icalls.
17903         * process.[ch]: support setting child process environment variables
17904         and use the SHELL or COMSPEC when UseShellExecute is true.
17905
17906         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
17907         callback for async. IO is here and also BindHandle.
17908
17909         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
17910         from here.
17911
17912 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
17913
17914         * reflection.c (create_custom_attr): Allow len == 0.
17915
17916         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
17917         computation on big-endian machines.
17918
17919 2004-03-13  Martin Baulig  <martin@ximian.com>
17920
17921         * class.h (MonoGenericInst): Added `int count_ifaces'.
17922
17923         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
17924         `ginst->count_ifaces' instead `klass->interface_count' since we
17925         may get called before the vtable is created.
17926
17927         * loader.c (mono_method_get_param_names): If we're a generic
17928         instance, return and don't initialize the class.
17929
17930         * reflection.c (mono_reflection_setup_generic_class): Don't call
17931         ensure_runtime_vtable().
17932         (mono_reflection_bind_generic_parameters): Set
17933         `ginst->count_ifaces'.
17934
17935 2004-03-11  Jackson Harper <jackson@ximian.com>
17936
17937         * icall.c:
17938         * unicode.c:
17939         * unicode.h: Remove unused System.Char icalls.
17940         
17941 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
17942
17943         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
17944         code when we P/Invoke the first library in Windows.Forms, instead
17945         of when we first open the assembly.
17946
17947         * assembly.c: Drop the lookup from here.
17948
17949 2004-03-10  Martin Baulig  <martin@ximian.com>
17950
17951         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
17952         class for properties, fields and events.  Finally fixes #54945.
17953
17954 2004-03-10  Martin Baulig  <martin@ximian.com>
17955
17956         * metadata.c (mono_metadata_class_equal): New static function;
17957         checks whether two generic instances or two generic parameters are
17958         equal.
17959         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
17960         compare classes.        
17961
17962 2004-03-10  Martin Baulig  <martin@ximian.com>
17963
17964         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
17965
17966         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
17967         argument and write it into the `reflection_info' field.
17968
17969         * icall.c
17970         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
17971         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
17972
17973 2004-03-09  Jackson Harper  <jackson@ximian.com>
17974
17975         * char-conversions.h: use 8 bits for numeric data its all we need
17976         * icall.c: numeric data is only 8 bits now.
17977
17978 2004-03-09  Martin Baulig  <martin@ximian.com>
17979
17980         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
17981
17982         * class.c (init_properties, init_events): Initialize the new
17983         `parent' field.
17984
17985         * reflection.c (typebuilder_setup_properties): Likewise.
17986         (typebuilder_setup_events): Likewise.
17987
17988         * reflection.h (MonoEventInfo): Replaced `parent with
17989         `declaring_type' and `reflected_type'.
17990
17991         * icall.c (ves_icall_get_property_info): Distinguish between
17992         declaring and reflected type.
17993         (ves_icall_get_event_info): Likewise.
17994
17995 2004-03-09  Martin Baulig  <martin@ximian.com>
17996
17997         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
17998         (ves_icall_Type_GetField): Correctly set field->klass.
17999
18000 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
18001
18002         * loader.h: Fix warning.
18003
18004 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
18005
18006         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
18007         library routine if present.  Notice that it will still continue
18008         executing even if its missing, for those working on the Gtk#
18009         edition of Windows.Forms.
18010
18011         * assembly.c (do_mono_assembly_open): If loading the
18012         System.Windows.Forms call mono_loader_wini_init.
18013
18014 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
18015
18016         * class.h: Added MonoRemoteClass struct.
18017         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
18018         function for MonoStrings.
18019         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
18020         Added internal call for getting the proxy type.
18021         * marshal.c: Get the type of transparent proxies from its remote_class.
18022         Added methods that generate the IL for type checks and casts:
18023         mono_marshal_get_isinst, mono_marshal_get_castclass, 
18024         mono_marshal_get_proxy_cancast.
18025         * marshal.h: Declaration of the previous new methods.
18026         * object.c: Added new moethods for creating and updating MonoRemoteClass
18027         instances: mono_remote_class, mono_upgrade_remote_class, 
18028         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
18029         * verify.c: FIx transparent_proxy_fields layout.
18030         * appdomain.c: Bump corlib version.
18031
18032 2004-03-04  Jackson Harper  <jackson@ximian.com>
18033
18034         * icall.c: Add icall to access char conversion tables.
18035         * char-conversions.h: Character conversion tables.
18036         * Makefile.am: Add char-conversions.h private header file.
18037         
18038 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
18039
18040         * appdomain.c (unload_thread_main): Increase unloading timeout to
18041         10 sec as a temporary workaround for Nant problems.
18042
18043 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
18044
18045         * gc.c: Add checks for GC_enable and GC_disable.
18046
18047         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
18048         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
18049         (bug #54988).
18050         
18051 2004-02-27  Martin Baulig  <martin@ximian.com>
18052
18053         * reflection.c (mono_reflection_bind_generic_parameters): Take a
18054         `MonoReflectionType *' instead of a `MonoType *'.
18055
18056 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
18057
18058         * gc.c (run_finalize): Avoid finalizing the object representing the
18059         finalizer thread.
18060         (finalizer_thread): Fix warning.
18061
18062 2004-02-25  Martin Baulig  <martin@ximian.com>
18063
18064         * class.c (_mono_class_get_instantiation_name): Added `int offset'
18065         argument for nested types.
18066         (mono_class_create_generic): Added support for nested generictypes.
18067
18068         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
18069         `GList *nested'.
18070
18071         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
18072
18073         * reflection.c (method_encode_signature): Increase the minimum
18074         value of `size' from 10 to 11.
18075         (mono_reflection_bind_generic_parameters): Take `int type_argc'
18076         and `MonoType **types' arguments instead of the `MonoArray
18077         *types'; added `MonoType *nested_in'.  Recursively instantiate
18078         nested classes. 
18079
18080 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
18081
18082         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
18083         stack_overflow_ex members which are used by exception handling.
18084
18085         * appdomain.c (mono_runtime_init): Initialize the new members.
18086
18087         * gc.c (mono_gc_enable): New helper function.
18088         * gc.c (mono_gc_disable): New helper function.
18089
18090 2004-02-23  Martin Baulig  <martin@ximian.com>
18091
18092         * icall.c: I must have been really stupid - make it actually work
18093         this time ;-)
18094
18095 2004-02-23  Martin Baulig  <martin@ximian.com>
18096
18097         * loader.c (method_from_memberref): Only inflate the method if
18098         it's in another klass.
18099
18100 2004-02-23  Martin Baulig  <martin@ximian.com>
18101
18102         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
18103         (mono_class_init): If we're a generic instance and an interface,
18104         compute `class->interface_id'; also create `class->interfaces'
18105         here and inflate them.
18106
18107         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
18108         `ginst->is_open'.
18109         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
18110
18111         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
18112
18113 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
18114
18115         * reflection.c (method_encode_code): Improved the error message
18116         generated by the exception.
18117
18118 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18119
18120         * icall.c: Martin did not do what he said in the ChangeLog for
18121         2004-02-18, but put back the changes for properties and events.
18122         Commenting those changes out again and adding comment to bug #54518.
18123         
18124         * process.c: removed warning.
18125
18126 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
18127
18128         * marshal.c (emit_struct_conv): Print an error message instead of
18129         asserting when a type does not have the StructLayout attribute.
18130
18131 2004-02-20  Martin Baulig  <martin@ximian.com>
18132
18133         * reflection.c (mono_type_get_object): Also use the cache for
18134         generic instances.
18135         (mono_reflection_bind_generic_parameters): Always compute
18136         `ginst->ifaces'.        
18137
18138 2004-02-20  Martin Baulig  <martin@ximian.com>
18139
18140         * class.h (MonoGenericMethod): Removed `klass'.
18141
18142         * class.c (mono_class_inflate_generic_method): Added `MonoClass
18143         *klass' argument.
18144
18145 2004-02-20  Martin Baulig  <martin@ximian.com>
18146
18147         * reflection.c (method_encode_methodspec): Actually use the
18148         uninflated signature for the memberref.
18149
18150 2004-02-20  Martin Baulig  <martin@ximian.com>
18151
18152         * class.h (MonoGenericMethod): Removed `declaring'.
18153
18154         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
18155         is NULL, compute it here.
18156
18157 2004-02-20  Martin Baulig  <martin@ximian.com>
18158
18159         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
18160
18161         * metadata.c (mono_metadata_generic_inst_hash): New method.
18162         (mono_metadata_generic_inst_equal): New method.
18163
18164         * reflection.c (mono_reflection_bind_generic_parameters): Use the
18165         `klass->image->generic_inst_cache' cache to avoid creating
18166         duplicate MonoGenericInst's.
18167
18168         * class.c (mono_class_inflate_generic_type): Use the cache.
18169
18170 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
18171
18172         * object.c: fixed gc descriptor calculation for embedded valuetypes.
18173
18174 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18175
18176         * icall.c: added Socket.WSAIoctl icall.
18177
18178         * socket-io.[ch]: implemented
18179         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
18180
18181 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
18182
18183         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
18184
18185 2004-02-18  Urs C Muff  <umuff@quark.com>
18186
18187         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
18188         this work on PPC and other big-endian architectures.
18189
18190         * debug-mono-symfile.h: Prepended the names of all the `guint32'
18191         fields with an underscore to make sure they're only accessed by
18192         the read32() macro.
18193
18194 2004-02-18  Martin Baulig  <martin@ximian.com>
18195
18196         * icall.c: Put the klass->refclass changes back for methods and
18197         fields, but not for properties and events.  We're currently not
18198         distinguishing between DeclaringType and ReflectedType for
18199         properties and events, that's what caused the regressions.
18200
18201 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18202
18203         * object.c:
18204         (mono_async_result_new): the handle can be NULL.
18205
18206         * threadpool.c: Use an event instead of a semaphore, don't initialize
18207         it until needed. This saves quite a few semaphores from being created
18208         when using the threadpool.
18209
18210 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
18211
18212         * object.c (mono_string_is_interned_lookup): Fix interning of long
18213         strings. Fixes #54473.
18214
18215         * domain.c (ldstr_equal): Optimize if the two strings are equal.
18216
18217         * icall.c: Revert the klass->refclass changes since they introduce
18218         regressions (bug #54518).
18219
18220 2004-02-18  Martin Baulig  <martin@ximian.com>
18221
18222         * class.c (mono_class_init): If we're a generic instance and don't
18223         come from a TypeBuilder, inflate our members here.
18224         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
18225         (mono_class_create_generic): New public method.
18226         (mono_class_initialize_generic): Removed.
18227         (get_instantiation_name): Renamed to
18228         _mono_class_get_instantiation_name() and made it public.
18229
18230 2004-02-18  Martin Baulig  <martin@ximian.com>
18231
18232         * class.c (mono_class_inflate_generic_type): Clear the new
18233         instance's `nginst->klass' when inflating a generic instance.
18234         (mono_class_is_subclass_of): Added (basic) support for generic
18235         instances.
18236
18237 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
18238
18239         * appdomain.h, domain.c: use a MonoCodeManager instead of a
18240         MonoMempool to hold compiled native code.
18241
18242 2004-02-17  Martin Baulig  <martin@ximian.com>
18243
18244         * class.h (MonoDynamicGenericInst): Added `count_properties' and
18245         `properties'.
18246
18247         * reflection.c (mono_reflection_generic_inst_initialize): Added
18248         `MonoArray *properties' argument.
18249
18250         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
18251
18252 2004-02-17  Martin Baulig  <martin@ximian.com>
18253
18254         * icall.c (ves_icall_Type_GetFields): Renamed to
18255         ves_icall_Type_GetFields_internal() and added a
18256         `MonoReflectionType *rtype' argument; pass it to
18257         mono_field_get_object() to set the field's "reflected" type.
18258         (ves_icall_Type_GetConstructors): Likewise.
18259         (ves_icall_Type_GetEvents): Likewise.
18260         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
18261         argument; pass it to mono_method_get_object() to set the method's
18262         "reflected" type.       
18263
18264 2004-02-17  Martin Baulig  <martin@ximian.com>
18265
18266         * class.h (MonoDynamicGenericInst): New type.
18267         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
18268
18269         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
18270         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
18271         (ves_icall_MonoGenericInst_GetFields): New interncall.
18272
18273         * class.c (mono_class_from_generic): Don't call
18274         mono_class_initialize_generic() if this is a dynamic instance;
18275         ie. it's being created from a TypeBuilder.
18276         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
18277         `class->byval_arg.type'.
18278
18279         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
18280         to `inflate_method' and made static.
18281         (mono_reflection_inflate_field): Removed.
18282         (mono_reflection_generic_inst_initialize): New public method.
18283
18284         * reflection.h (MonoReflectionGenericInst): Removed `methods',
18285         `ctors' and `fields'; added `initialized'.
18286
18287 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
18288
18289         * debug-helpers.c (mono_method_full_name): Fix output for empty
18290         namespaces.
18291
18292 2004-02-12  Martin Baulig  <martin@ximian.com>
18293
18294         * class.h (MonoClassField): Added `MonoType *generic_type'.
18295
18296         * reflection.c (mono_image_get_fieldref_token): Added support for
18297         instantiated generic types.
18298         (field_encode_inflated_field): Removed.
18299         (mono_image_get_inflated_field_token): Removed.
18300         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
18301
18302         * reflection.h (MonoReflectionInflatedField): Removed.
18303
18304 2004-02-12  Martin Baulig  <martin@ximian.com>
18305
18306         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
18307         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
18308
18309         * reflection.c (mono_image_get_methodspec_token): Take a
18310         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
18311         (mono_image_create_token): Check whether we have a
18312         `method->signature->gen_method' and call
18313         mono_image_get_methodspec_token() if appropriate.
18314         (inflated_method_get_object): Removed.
18315         (mono_reflection_bind_generic_method_parameters): Return a
18316         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
18317         (mono_reflection_inflate_method_or_ctor): Likewise.
18318
18319         * reflection.h (MonoReflectionInflatedMethod): Removed.
18320
18321 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
18322
18323         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
18324         for custom valuetype marshalling.
18325
18326         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
18327
18328 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18329
18330         * icall.c: fixed WSAGetLastError_internal name.
18331
18332 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
18333
18334         * threads.c (mono_thread_attach): Allow this to be called multiple
18335         times for a thread.
18336         
18337         * threads.c (build_wait_tids): Do not wait for ourselves.
18338
18339         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
18340         appdomain list is empty.
18341
18342         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
18343         memory returned by mono_string_builder_to_utf16, since it points into
18344         managed memory. Thanks to Bernie Solomon for noticing this.
18345
18346         * icall.c: Add AppDomainSetup icalls.
18347
18348         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
18349
18350         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
18351         types.
18352
18353         * reflection.c (reflection_methodbuilder_to_mono_method): Save
18354         custom attributes to the method_aux struct. Also fix array indexes etc.
18355
18356         * loader.c (mono_method_get_param_names): Make dynamic case work again.
18357         
18358 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
18359
18360         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
18361         (both static and runtime) and reduce startup time.
18362
18363 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
18364
18365         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
18366         AsAny marshalling conversion instead of crashing.
18367
18368         * marshal.c: Fix warnings.
18369
18370 2004-02-09  Martin Baulig  <martin@ximian.com>
18371
18372         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
18373
18374         * reflection.h (MonoReflectionInflatedMethod): Removed the
18375         `declaring' field, it's now in the unmanaged MonoGenericMethod.
18376
18377         * reflection.c (method_encode_methodspec): Removed the `method'
18378         argument; we get it from `gmethod->declaring'.
18379         (inflated_method_get_object): Removed the `declaring' argument.
18380
18381 2004-02-09  Martin Baulig  <martin@ximian.com>
18382
18383         * class.h (MonoGenericMethod): New type.
18384         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
18385         `generic_method'.
18386
18387         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
18388         a `MonoGenericMethod *gen_method' one.
18389
18390         * class.c (mono_class_inflate_generic_type): Take an additional
18391         `MonoGenericMethod * argument.  This is only non-NULL if we're
18392         inflating types for a generic method.   
18393         (mono_class_inflate_generic_signature): Renamed to
18394         inflate_generic_signature() and made static; take a
18395         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
18396         (inflate_generic_header): Take a `MonoGenericMethod *' argument
18397         instead of a `MonoGenericInst *' one.
18398         (mono_class_inflate_generic_method): Likewise.
18399
18400         * reflection.c (encode_generic_method_sig): Take a
18401         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
18402         (method_encode_methodspec): Likewise.
18403         (inflated_method_get_object): Likewise. 
18404
18405         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
18406         field with a `MonoGenericMethod *gmethod' one.  
18407
18408 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
18409
18410         * class.h (mono_class_has_parent): add parens to expansion
18411         so you can ! this.
18412
18413 2004-02-08  Martin Baulig  <martin@ximian.com>
18414
18415         * image.h (MonoImage): Removed `generics_cache'.
18416
18417         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
18418         instead of a `MonoType *' argument; removed the `inflate_methods'
18419         argument.  Don't inflate methods here.
18420
18421         * loader.c (find_method): If it's a generic instance, call
18422         mono_class_init() on the `sclass->generic_inst->generic_type'.
18423
18424         * metadata.c (mono_type_size): Make this work on uninitialized
18425         generic instances; call it on the `ginst->generic_type's class.
18426
18427         * reflection.c (mono_reflection_bind_generic_parameters): Call
18428         mono_class_from_generic() to create the `ginst->klass'.
18429
18430 2004-02-08  Martin Baulig  <martin@ximian.com>
18431
18432         * class.h (MonoClass): Changed type of `generic_inst' from
18433         `MonoType *' to `MonoGenericInst *'.
18434
18435 2004-02-08  Martin Baulig  <martin@ximian.com>
18436
18437         * icall.c (ves_icall_Type_BindGenericParameters): Just call
18438         mono_type_get_object(), this is now creating a `MonoGenericInst'
18439         for MONO_TYPE_GENERICINST.
18440         (ves_icall_MonoGenericInst_GetParentType): Likewise.
18441         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
18442
18443         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
18444         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
18445         (inflated_method_get_object): Added `MonoClass *refclass' argument.
18446         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
18447         and reflected type.
18448
18449         * reflection.h (MonoReflectionInflatedMethod): Removed
18450         `declaring_type' and `reflected_type'.
18451
18452 2004-02-08  Martin Baulig  <martin@ximian.com>
18453
18454         * class.h (MonoGenericInst): Added `MonoType *parent' and
18455         `MonoType **ifaces'.
18456
18457         * reflection.h (MonoReflectionGenericInst): Removed `klass',
18458         `parent' and `interfaces'.
18459
18460         * reflection.c (mono_reflection_bind_generic_parameters): Take a
18461         `MonoType *' argument and return a `MonoType *'.
18462
18463         * icall.c
18464         (ves_icall_MonoGenericInst_GetParentType): New interncall.
18465         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
18466
18467 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
18468
18469         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
18470         valuetype marshalling.
18471
18472 2004-02-06  Martin Baulig  <martin@ximian.com>
18473
18474         * class.c
18475         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
18476         (my_mono_class_from_generic_parameter): Likewise.
18477
18478 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
18479
18480         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
18481         contents of the symbol files lazily.
18482
18483         * object.h (MonoThread): Add 'name' and 'name_len' fields.
18484
18485         * threads.h threads.c icall.c: New icalls for getting and setting the
18486         threads name.
18487
18488 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
18489
18490         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
18491         Raise an exception when the domain is not found.
18492
18493 2004-02-03  Martin Baulig  <martin@ximian.com>
18494
18495         * reflection.c (mono_image_get_methodspec_token): Use the
18496         uninflated signature; fixes gen-33.
18497
18498 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
18499
18500         * gc.c threads.c: Make the finalizer thread a normal managed thread so
18501         the finalizer code can use thread functionality.
18502
18503         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
18504         the finalizer thread.
18505
18506         * threads.c: Make some functions more robust.
18507
18508         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
18509
18510         * metadata.h: Add new marshalling conventions.
18511
18512         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
18513         stringbuilder marshalling. Fixes #53700.
18514
18515         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
18516
18517         * reflection.c (mono_image_get_type_info): Save declarative security
18518         info.
18519
18520         * reflection.c (mono_image_get_field_info): Handle uninitialized 
18521         unmanaged fields as well.
18522
18523         * appdomain.c: Bump corlib version.
18524
18525 2004-02-01  Martin Baulig  <martin@ximian.com>
18526
18527         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
18528         method type arguments.  
18529
18530 2004-01-30  Duncan Mak  <duncan@ximian.com>
18531
18532         * marshal.h: Add prototype for
18533         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
18534         and
18535         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
18536         fix the build.
18537
18538 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
18539
18540         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
18541         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
18542
18543 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
18544
18545         * marshal.c (mono_marshal_get_native_wrapper): Add support for
18546         custom marshalling of valuetypes.
18547
18548         * marshal.c: Fix some warnings.
18549
18550 2004-01-29  Martin Baulig  <martin@ximian.com>
18551
18552         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
18553         for generic method parameters.
18554
18555         * reflection.c (method_encode_methodspec): Write the uninflated
18556         signature into the methodspec table.
18557         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
18558         is always the uninflated method.
18559         (reflection_methodbuilder_to_mono_method): Copy the generic
18560         parameters from the MethodBuilder into `header->gen_params'.
18561
18562 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
18563
18564         * class.c (mono_class_from_generic_parameter): Fix warning.
18565
18566 2004-01-27  Martin Baulig  <martin@ximian.com>
18567
18568         * class.c (mono_class_from_generic_parameter): Don't create
18569         `klass->methods' here.  
18570
18571 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
18572
18573         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
18574         extension since it does not work with libraries named lib<FOO>.dll.so.
18575
18576 2004-01-25  Martin Baulig  <martin@ximian.com>
18577
18578         * class.c (mono_class_inflate_generic_type): Added support for
18579         MONO_TYPE_GENERICINST.
18580
18581         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
18582         inflate methods on open constructed types.      
18583
18584 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18585
18586         * object.c: fire ProcessExit event in the root AppDomain after running
18587         Main. Fixes bug #53299.
18588
18589 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
18590
18591         * socket-io.c: include the new socket-wrappers.h header.
18592         Use the wrappers instead of the unix socket functions to make the code
18593         more clear.
18594
18595 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
18596
18597         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
18598
18599         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
18600         Fixes #22532.
18601
18602 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
18603
18604         * reflection.c (mono_image_create_pefile): Handle the case when the
18605         entry point is not a MethodBuilder.
18606
18607         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
18608         field to ReflectionMethod since it is not allways a builder.
18609
18610         * reflection.c (type_get_fully_qualified_name): New helper function to
18611         return the fully qualified name of a type.
18612
18613         * reflection.c (encode_marshal_blob): Always emit the fully qualified
18614         type name for custom marshallers.
18615
18616         * reflection.c (mono_marshal_spec_from_builder): Ditto.
18617
18618         * class.c (mono_class_setup_vtable): If a parent class already 
18619         implements an interface, use the implementing methods from that class.
18620         Fixes #53148.
18621
18622 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18623
18624         * threadpool.c: just return instead of ExitThread to allow for thread
18625         clean up earlier.
18626
18627 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
18628
18629         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
18630         when closing resource modules.
18631
18632         * reflection.c (mono_image_create_pefile): Handle the case when the
18633         entry point is not a MethodBuilder.
18634
18635         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
18636         field to ReflectionMethod since it is not allways a builder.
18637
18638 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
18639
18640         * marshal.c (mono_marshal_get_managed_wrapper): 
18641         mono_marshal_alloc takes native int so CONV_I
18642         the arg for 64bits.
18643
18644 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
18645
18646         * reflection.c (fixup_cattrs): New function to fixup the methoddef
18647         tokens in the cattr table. Fixes #53108.
18648
18649 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18650
18651         * loader.c: don't trim ".dll" before looking up in the config file.
18652         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
18653
18654 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
18655
18656         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
18657         Return the module which contains the resource as well.
18658         (ves_icall_System_Reflection_Module_Close): New icall.
18659
18660         * appdomain.c: Bump corlib version number.
18661
18662         * image.c (mono_image_addref): New public function.
18663
18664         * assembly.c: Call mono_image_addref.
18665
18666         * reflection.c (mono_module_get_object): Increase reference count of 
18667         the image.
18668
18669         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
18670         Fixes #22532.
18671
18672         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
18673         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
18674         proper exceptions on DllImport problems.
18675
18676 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
18677
18678         * class.c, metadata.c: eliminate CSIZE macro.
18679
18680 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
18681
18682         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
18683         * object.h: Added async_callback field in MonoAsyncResult.
18684         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
18685         * verify.c: Added async_callback in MonoAsyncResult layout.
18686
18687 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
18688
18689         * reflection.c (mono_reflection_get_custom_attrs): Add support
18690         for Modules.
18691
18692 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
18693
18694         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
18695         marshalling.
18696         (mono_marshal_method_from_wrapper): Add null pointer check.
18697
18698 2004-01-16  Martin Baulig  <martin@ximian.com>
18699
18700         * debug-mono-symfile.h: Set version number to 36 and reflect
18701         latest symbol writer changes.
18702
18703 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
18704
18705         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
18706         multi-dimensional arrays.
18707         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
18708         (mono_class_from_mono_type): Use bounded_array_class_get.
18709         
18710         * class.c (mono_bounded_array_class_get): New function which takes
18711         a 'bounded' bool argument to distinguish vectors from one dimensional
18712         arrays.
18713
18714         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
18715         bounded_array_class_get if the array has bounds.
18716
18717         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
18718         Search modules loaded using AssemblyBuilder:AddModule as well.
18719
18720 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18721
18722         * appdomain.c: increased corlib version.
18723         * filewatcher.c: removed g_print.
18724         * icall.c:
18725         (get_property_info): only allocate what is actually requested.
18726         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
18727
18728 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18729
18730         * Makefile.am: added filewatcher.[ch]
18731         * filewatcher.[ch]: FileSystemWatcher runtime support.
18732         * icall.c: added new FSW icalls.
18733
18734 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
18735
18736         * string-icalls.c: fix stringbuilder regression as suggested by
18737         Iain McCoy <iain@mccoy.id.au>.
18738
18739 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
18740
18741         * process.c (process_read_stringtable_block): Recognize '007f' as
18742         a language neutral stringtable block.
18743
18744 2004-01-12  Patrik Torstensson
18745
18746         * object.h (MonoStringBuilder) : Changed layout to support our
18747         new stringbuilder class.
18748         * marshal.c: Change marshalling to support the new layout of 
18749         string builder.
18750         * appdomain.c: increased version number because new layout of
18751         string builder.
18752
18753 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
18754
18755         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
18756         assembly name as an string instead of an AssemblyName, since it is
18757         easier to extract info from it.
18758
18759         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
18760         the culture subdirectories too. Fixes #52231.
18761
18762 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18763
18764         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
18765         It takes 2 new parameters with an optional name for the method to look
18766         for and case ignoring info.
18767
18768         * threadpool.c: removed unused variable.
18769
18770 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18771
18772         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
18773         It takes 2 new parameters with an optional name for the property to look
18774         for and case ignoring info.
18775         Fixes bug #52753.
18776
18777 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
18778
18779         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
18780         Fix #52451.
18781
18782 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18783
18784         * appdomain.c:
18785         * assembly.c: escape the uri before passing it to g_filename_from_uri.
18786         Fixes bug #52630.
18787
18788 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
18789
18790         * reflection.c: Add support for more than one unmanaged resource.
18791
18792         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
18793         in field->def_value, as done in all other cases.
18794
18795         * reflection.c (mono_reflection_get_custom_attrs): Add support for
18796         TypeBuilders.
18797
18798         * reflection.c (mono_reflection_create_runtime_class): Remove 
18799         errorneous assignment to klass->element_class, since it is already
18800         done in mono_reflection_setup_internal_class.
18801
18802 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18803
18804         * gc.c: added missing LeaveCriticalSection.
18805         * icall.c: indented a couple of lines.
18806         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
18807         if we call EndInvoke inside a callback. Fixes bug #52601.
18808
18809 2004-01-07  Martin Baulig  <martin@ximian.com>
18810
18811         * mono-debug-debugger.h
18812         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
18813
18814 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
18815
18816         * appdomain.c: Use messages in NotImplementedException.
18817
18818         * exception.c (mono_get_exception_not_implemented): Now this takes
18819         a message argument.
18820
18821         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
18822         exception instead of g_asserting an aborting when something is not
18823         implemented.
18824
18825         Add some inline docs.
18826
18827 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
18828
18829         * reflection.h: Update after changes to object layout.
18830
18831         * reflection.c: Implement saving of unmanaged aka win32 resources.
18832
18833         * appdomain.c: Bump version number.
18834
18835         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
18836         Handle missing domains gracefully.
18837
18838 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
18839
18840         * file-io.c : On Windows, there are much more invalid_path_chars.
18841
18842 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
18843
18844         * class.h, object.c: prepare for GetType () speedup.
18845
18846 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
18847
18848         * profiler.c: workaround for --profile null reference exception on
18849           cygwin. Patch by Patrik Torstensson.
18850
18851 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
18852
18853         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
18854         make work for unaligned access.
18855
18856 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
18857
18858         * class.c: small cleanup (class->fields [i] -> field).
18859         * image.c: check address of metadata is valid.
18860
18861 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
18862
18863         * assembly.h assembly.c (mono_assembly_loaded): New public function to
18864         search the list of loaded assemblies.
18865
18866         * reflection.c (mono_reflection_type_from_name): Use 
18867         mono_assembly_loaded instead of mono_image_loaded.
18868
18869         * reflection.c: Fix warnings.
18870
18871 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
18872
18873         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
18874         is dynamic. This is needed since an assembly can contain both dynamic and
18875         non-dynamic images.
18876
18877         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
18878         assembly->dynamic.
18879
18880         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
18881
18882         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
18883         to store modules loaded using AddModule.
18884
18885         * reflection.c (mono_image_fill_file_table): Generalize this so it works
18886         on Modules.
18887
18888         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
18889
18890         * reflection.c (mono_image_fill_export_table_from_module): New function to
18891         fill out the EXPORTEDTYPES table from a module.
18892
18893         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
18894         into a separate function. Also handle loaded non-dynamic modules.
18895
18896         * reflection.c (mono_image_basic_init): Fix memory allocation.
18897
18898         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
18899
18900         * assembly.c (mono_assembly_load_references): Make this public.
18901
18902 2003-12-19  Martin Baulig  <martin@ximian.com>
18903
18904         * class.c (mono_class_initialize_generic): Made this static, take
18905         a `MonoGenericInst *' instead of a `MonoClass *'.
18906         (mono_class_from_generic): Call mono_class_initialize_generic()
18907         unless we're already initialized or being called from
18908         do_mono_metadata_parse_generic_inst().
18909
18910         * class.h (MonoGenericInst): Added `initialized' and
18911         `init_pending' flags.
18912
18913         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
18914         `mono_class_init (gklass)' or mono_class_initialize_generic()
18915         here; set `generic_inst->init_pending' while parsing the
18916         `type_argv'.
18917
18918 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
18919
18920         * locales.c: include string.h for memxxx prototypes
18921
18922 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
18923
18924         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
18925         constructor when accessing literal fields.
18926
18927 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
18928
18929         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
18930
18931         * reflection.c (assembly_add_resource_manifest): New function to fill
18932         the MANIFESTRESOURCE table.
18933
18934         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
18935
18936         * reflection.h: Update to changes in class layout.
18937
18938         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
18939         Reenable call to mono_runtime_is_shutting_down ().
18940
18941         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
18942         determine if the runtime is shutting down.
18943
18944 2003-12-16  Jackson Harper <jackson@ximian.com>
18945
18946         * icall.c: comment out call to mono_runtime_is_shutting_down to
18947         fix build.
18948         
18949 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
18950
18951         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
18952         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
18953
18954 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
18955
18956         * reflection.c: move definition of swap_with_size
18957         to before its first call
18958
18959 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
18960
18961         * appdomain.c (mono_runtime_is_shutting_down): New public function.
18962
18963         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
18964         icall.
18965
18966         * object.c: Fix warnings.
18967
18968         * icall.c (ves_icall_Type_Get...): Only consider inherited static
18969         members if FlattenHierarchy is set.
18970
18971         * reflection.c (mono_image_add_decl_security): New function to emit
18972         declarative security.
18973
18974         * reflection.h reflection.c: Add support for declarative security.
18975
18976         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
18977         
18978 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
18979
18980         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
18981         
18982         * appdomain.c verify.c: Moved corlib version checking into its own
18983         function in appdomain.c since it needs to create vtables etc.
18984
18985 2003-12-13  Patrik Torstensson <p@rxc.se>
18986
18987         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
18988         instead of unwrapped server.
18989
18990 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
18991
18992         * verify.c (check_corlib): Fix field index.
18993
18994 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
18995
18996         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
18997         GetGacPath icall.
18998
18999 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
19000
19001         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
19002         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
19003         cope with sizeof(size_t) != sizeof(guint32).
19004
19005 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19006
19007         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
19008         in case of failure.
19009
19010 2003-12-10  Mark Crichton <crichton@gimp.org>
19011
19012         * icall.c: removed the GetNonZeroBytes.  We now handle this case
19013         in managed code.
19014
19015         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
19016
19017 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
19018
19019         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
19020         marked as deleted.
19021
19022 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
19023
19024         * verify.c (check_corlib): Handle the case when the version field is 
19025         initialized by a static constructor.
19026
19027 2003-12-08  Patrik Torstensson  <p@rxc.se>
19028
19029     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
19030
19031 2003-12-08  Martin Baulig  <martin@ximian.com>
19032
19033         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
19034         a MonoReflectionGenericParameter, also take the parameter index
19035         and name as arguments.
19036         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
19037         (ves_icall_MonoGenericParam_initialize): New interncall.
19038         (ves_icall_Type_make_byref_type): New interncall.
19039
19040         * reflection.h (MonoReflectionGenericParam): Derive from
19041         MonoReflectionType, not just from MonoObject.  Added `refobj' and
19042         `index' fields.
19043
19044         * reflection.c (mono_reflection_define_generic_parameter): Create
19045         and return a new MonoReflectionGenericParam; don't initialize the
19046         constraints here.
19047         (mono_reflection_initialize_generic_parameter): New public method;
19048         initializes the constraints and creates the `param->pklass'.
19049
19050 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
19051
19052         * reflection.h reflection.c: Use the new fields 'num_types', 
19053         'num_fields' and 'num_methods' to track the number of types etc.
19054
19055         * verify.c (check_corlib): Check corlib version number.
19056
19057 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
19058
19059         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
19060         function works on all methods.
19061
19062 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
19063
19064         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
19065         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
19066         the custom_type_info flag of the transparent proxy.
19067         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
19068         objects that supports IRemotingTypeInfo.
19069         * object.h: Added custom_type_info field in transparent proxy.
19070
19071 2003-12-06  Martin Baulig  <martin@ximian.com>
19072
19073         * class.c (mono_class_create_from_generic): Removed.
19074         (mono_class_from_generic): Check `ginst->klass' before doing
19075         anything else.  This is important to fully support "recursive"
19076         generic types.
19077
19078         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
19079         empty `generic_inst->klass' before doing anything else.
19080
19081 2003-12-06  Dick Porter  <dick@ximian.com>
19082
19083         * verify.c: 
19084         * object.h:
19085         * icall.c:
19086         * locales.c: Use C structs to access class fields.  Don't do a
19087         conversion between MonoString and UChar because both are
19088         platform-endian UTF-16.  Compare now takes startindex and count
19089         parameters.  Add a char overload for IndexOf.  Speed up the
19090         invariant string IndexOf.
19091
19092 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
19093
19094         * Makefile.am (monosn_LDADD): Fix parallel build.
19095
19096 2003-12-04  Martin Baulig  <martin@ximian.com>
19097
19098         * icall.c
19099         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
19100         (ves_icall_Type_make_array_type): New interncall.       
19101
19102 2003-12-04  Martin Baulig  <martin@ximian.com>
19103
19104         * locales.c: also change it in the !HAVE_ICU case.
19105
19106 2003-12-04  Dick Porter  <dick@ximian.com>
19107
19108         * icall.c:
19109         * locales.c: construct_compareinfo is now in CompareInfo, not
19110         CultureInfo.
19111
19112 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
19113
19114         * image.c (mono_image_load_file_for_image): Cache loaded images in the
19115         image->files array.
19116
19117         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
19118         table as well.
19119
19120         * assembly.c (mono_assembly_load_references): Only load references
19121         once.
19122
19123         * class.c (mono_class_from_name): Avoid linear search of the 
19124         EXPORTEDTYPE table.
19125
19126         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
19127
19128 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
19129
19130         * image.h (MonoImage): Add 'field_cache' field.
19131
19132         * loader.c (mono_field_from_token): Cache field lookups.
19133         
19134         * reflection.c (mono_module_get_object): Fix name property.
19135
19136         * icall.c (ves_icall_get_enum_info): Update after changes to 
19137         mono_metadata_get_constant_index ().
19138
19139         * icall.c: Get rid of get_type_info icall, use a separate icall for
19140         each type property to avoid needless memory allocations. Fixes #51514.
19141
19142         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
19143         to avoid needless binary searches.
19144
19145         * class.c (class_compute_field_layout): Move the initialization of
19146         field->def_value to mono_class_vtable ().
19147
19148         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
19149         non-corlib types.
19150
19151         * object.c (mono_object_allocate): Make it inline.
19152
19153         * object.c (mono_object_allocate_spec): Make it inline.
19154         
19155 2003-12-02  Dick Porter  <dick@ximian.com>
19156
19157         * locales.c (create_NumberFormat): NumberFormatInfo construction.
19158         Patch by Mohammad DAMT (mdamt@cdl2000.com).
19159
19160 2003-12-01  Dick Porter  <dick@ximian.com>
19161
19162         * threads.c: Fix signature and call in CreateMutex and
19163         CreateEvent.
19164
19165 2003-12-01  Dick Porter  <dick@ximian.com>
19166
19167         * icall.c: 
19168         * locales.c: Implement string compares and searching
19169
19170         * object.h: Add extra Thread field
19171
19172 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
19173
19174         * reflection.c (fixup_method): Add support for MonoCMethod.
19175
19176 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
19177
19178         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
19179
19180         * reflection.c (assembly_name_to_aname): Allow extra characters in
19181         assembly names. Fixes #51468.
19182
19183 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
19184
19185         * exception.c (mono_exception_from_name_domain): New helper function.
19186
19187         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
19188         exception object in the correct domain.
19189
19190         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
19191         formatting + make a copy a the input data.
19192
19193         * loader.c (mono_get_method_from_token): Methods which contain
19194         native code do not have entries in the ImplMap.
19195
19196         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
19197         Thanks to Gonzalo for spotting this.
19198         
19199         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
19200         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
19201
19202         * assembly.h (mono_assembly_load_from): Split the second part of 
19203         assembly loading into a new public function.
19204
19205         * exception.h (mono_get_exception_bad_image_format): New function.
19206
19207 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
19208
19209         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
19210         Enumerate all modules inside a dynamic assembly. Fixes #51293.
19211         
19212         * icall.c: Add new icall for creating dynamic methods.
19213
19214         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
19215
19216         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
19217
19218         * reflection.c (mono_reflection_create_dynamic_method): New icall to
19219         create a dynamic method.
19220
19221         * reflection.c (resolve_object): New helper function.
19222
19223         * reflection.c: Generalize ReflectionMethodBuilder and the functions
19224         which manipulate it so they can also work on dynamic methods.
19225
19226         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
19227         creating the MonoReflectionMethodAux structure if it is not needed.
19228         
19229         * reflection.h verify.c: Update after changes to object layout.
19230
19231         * reflection.c (method_builder_encode_signature): Fix compilation on
19232         gcc 2.95.x.
19233
19234 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
19235
19236         * appdomain.h: Added support for context static fields. Added static_data
19237           field to MonoAppContext and renamed thread_static_fields to a more
19238           generic special_static_fields in MonoAppDomain, since it can now contain
19239           context static fields.
19240         * domain.c: Updated hashtable name.
19241         * object.c: Replaced field_is_thread_static() for a more generic
19242           field_is_special_static() which also checks for context static attribute.
19243           In mono_class_vtable(), added support for static context fields.
19244         * threads.c: Changed methods that manage thread static fields to more
19245           generic methods so they can be reused both for thread and context static
19246           data.
19247         * threads.h: Declared some new methods.
19248
19249 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
19250
19251         * reflection.h: Update after changes to the managed types.
19252
19253         * reflection.c (encode_custom_modifiers): New helper function.
19254
19255         * reflection.c (method_encode_signature): Emit custom modifiers.
19256
19257         * reflection.c (field_encode_signature): Emit custom modifiers.
19258
19259 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
19260
19261         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
19262
19263         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
19264         implementation.
19265
19266         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
19267         icall.
19268
19269         * object.c (mono_field_get_value_object): New function.
19270
19271         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
19272         specific.
19273
19274 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
19275
19276         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
19277         return a preallocated out-of-memory exception instance.
19278
19279         * object.c (out_of_memory): Use the new function.
19280
19281         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
19282         flag is before the custom modifiers. Fixes #49802.
19283
19284 2003-11-16  Martin Baulig  <martin@ximian.com>
19285
19286         * class.c (mono_class_is_open_constructed_type): Implemented the
19287         MONO_TYPE_GENERICINST case.
19288
19289 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
19290
19291         * assembly.c (mono_assembly_fill_assembly_name): New function to
19292         fill out the MonoAssemblyName structure.
19293         (mono_assembly_open): Use the new function.
19294
19295         * icall.c (fill_reflection_assembly_name): New helper function.
19296
19297         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
19298         new function.
19299
19300         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
19301
19302 2003-11-15  Martin Baulig  <martin@ximian.com>
19303
19304         * class.c (mono_class_is_open_constructed_type): New public
19305         function; checks whether a type is an open constructed type,
19306         ie. whether it still contains type parameters.
19307         (mono_class_inflate_generic_type): If we're a type parameter and
19308         the inflated type is also a MONO_TYPE_(M)VAR, return the original
19309         type.
19310
19311         * class.h (MonoGenericInst): Added `guint32 is_open'.
19312
19313         * loader.c (method_from_methodspec): Check whether we're an open
19314         or closed constructed type and set `ginst->is_open'.
19315
19316         * reflection.c (mono_reflection_bind_generic_parameters): Check
19317         whether we're an open or closed constructed type and set
19318         `ginst->is_open'.
19319         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
19320         from open constructed types.
19321
19322 2003-11-15  Martin Baulig  <martin@ximian.com>
19323
19324         * reflection.c (mono_reflection_bind_generic_parameters): If we're
19325         a generic instance (instead of a generic type declaration) with
19326         unbound generic parameters, bind them to our actual types.
19327
19328 2003-11-14  Martin Baulig  <martin@ximian.com>
19329
19330         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
19331
19332         * reflection.c (mono_reflection_bind_generic_parameters): If we're
19333         an interface type, populate `res->interfaces' with instantiated
19334         versions of all the interfaces we inherit.
19335
19336 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
19337
19338         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
19339         when MONO_PATH is set but doesn't contain the install dir.
19340
19341 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19342
19343         * icall.c:
19344         (ves_icall_Type_GetInterfaces): don't return an interface twice when
19345         it's also implemented in base classes. Fixes bug #50927.
19346
19347 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
19348
19349         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
19350         if this method is called from a finalizer. Fixes #50913.
19351
19352 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
19353
19354         * threads.c: Implement VolatileRead/VolatileWrite
19355
19356         * icall.c: Add new icalls for VolatileRead/VolatileWrite
19357
19358 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
19359
19360         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
19361         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
19362         2.95.3.
19363
19364         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
19365         from Peter Ross (pro@missioncriticalit.com).
19366         
19367 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
19368
19369         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
19370
19371 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
19372
19373         * assembly.c (mono_assembly_load_references): Disable check because it
19374         triggers on older corlibs which lots of people have.
19375
19376 2003-11-12  Jackson Harper  <jackson@ximian.com>
19377
19378         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
19379         load corlib.dll if mscorlib.dll is not found.
19380         * assembly.h: Remove corlib name define.
19381         * class.c:
19382         * domain.c:
19383         * image.c: Change corlib name to mscorlib.
19384         
19385 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
19386
19387         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
19388
19389 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
19390
19391         * appdomain.h: Added loader_optimization here to sync with the C#
19392         code, and add disallow_binding_redirects field.
19393
19394 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
19395
19396         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
19397
19398         * reflection.c (mono_image_build_metadata): Fix crash on modules
19399         with no types.
19400
19401         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
19402
19403         * icall.c (ves_icall_get_method_info): Return callingConvention as
19404         well.
19405
19406         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
19407         namespaces from the EXPORTEDTYPE table as well.
19408
19409         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
19410         from all modules inside the assembly.
19411         
19412 2003-11-11  Martin Baulig  <martin@ximian.com>
19413
19414         * reflection.c (mono_reflection_bind_generic_parameters): Make
19415         this work for interfaces.
19416
19417 2003-11-11  Martin Baulig  <martin@ximian.com>
19418
19419         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
19420
19421 2003-11-11  Martin Baulig  <martin@ximian.com>
19422
19423         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
19424         "MonoInflatedMethod" and "MonoInflatedCtor".
19425
19426 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
19427
19428         * reflection.c (resolution_scope_from_image): Use the assembly table
19429         from the manifest module, since other modules don't have it.
19430
19431         * debug-helpers.c (mono_type_full_name): New helper function.
19432
19433         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
19434
19435         * image.c (mono_image_load_file_for_image): New public function which
19436         is a replacement for the load_file_for_image in class.c.
19437
19438         * assembly.c (mono_assembly_load_module): A wrapper for the function
19439         above which does assembly association and reference loading too.
19440
19441         * class.c (mono_class_from_name): Call mono_assembly_load_module.
19442
19443 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19444
19445         * appdomain.c: not all of the attributes for the full assembly name
19446         are required and the order doesn't matter. Fixes bug #50787.
19447
19448 2003-11-10  Dick Porter  <dick@ximian.com>
19449
19450         * locales.c: Use platform-endian UTF16
19451
19452 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
19453
19454         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
19455         
19456 2003-11-10  Martin Baulig  <martin@ximian.com>
19457
19458         * metadata.c
19459         (mono_metadata_load_generic_params): Make this actually work.
19460
19461         * reflection.c (mono_reflection_bind_generic_parameters): If our
19462         parent is a generic instance, pass all the `types' to it, no
19463         matter whether it has the same number of type parameters or not.
19464
19465 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
19466
19467         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
19468
19469         * assembly.c (mono_assembly_load_references): Move the image<->assembly
19470         assignment code to this function so it gets called recursively for all
19471         modules.
19472
19473         * image.c (load_modules): Remove the assembly assignment since it is
19474         now done by mono_assembly_load_references.
19475         
19476         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
19477         Add 'module' argument.
19478         (mono_module_get_types): New helper function.
19479         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
19480
19481 2003-11-08  Martin Baulig  <martin@ximian.com>
19482
19483         * class.c (mono_class_inflate_generic_method): Interface method
19484         don't have a header.
19485
19486         * reflection.c (mono_image_get_methodspec_token): Take an
19487         additional `MonoGenericInst *' argument instead of reading it from
19488         the header; this is necessary to support interfaces.
19489         (mono_image_create_token): Pass the `MonoGenericInst *' from the
19490         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
19491         (inflated_method_get_object): Take an additional `MonoGenericInst *'
19492         argument.
19493
19494         * reflection.h (MonoReflectionInflatedMethod): Added
19495         `MonoGenericInst *ginst'.
19496
19497 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
19498
19499         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
19500
19501 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
19502
19503         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
19504
19505 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
19506
19507         * reflection.c 
19508         (reflection_methodbuilder_from_method_builder):
19509         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
19510         initialize a ReflectionMethodBuilder structure.
19511         (mono_image_get_methodbuilder_token):
19512         (mono_image_get_ctorbuilder_token): New functions to emit memberref
19513         tokens which point to types in another module inside the same assembly.
19514
19515         * reflection.c: Use the new helper functions.
19516         
19517         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
19518
19519         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
19520         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
19521
19522         * reflection.c (resolution_scope_from_image): Emit a moduleref if
19523         neccesary.
19524
19525         * reflection.c (mono_image_build_metadata): Emit metadata only for the
19526         current module. Emit the manifest only for the main module.
19527
19528         * reflection.c (mono_image_create_token): Add assertion when a 
19529         memberref needs to be created.
19530
19531         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
19532
19533         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
19534         larger buffer for the custom attribute blob. Fixes #50637.
19535         
19536 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19537
19538         * threadpool.c: notify listener on async processing handles after
19539         invoking the async callback. Thanks to Zoltan.
19540
19541 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
19542
19543         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
19544         avoid code duplication.
19545
19546         * reflection.h (MonoDynamicImage): New type which is currently unused,
19547         but will be used through the ref.emit code in place of 
19548         MonoDynamicAssembly.
19549
19550         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
19551         object layout.
19552
19553         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
19554         a MonoDynamicImage instead of just a MonoImage.
19555         
19556         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
19557         icalls to ModuleBuilder but keep their semantics, so they will work
19558         with moduleb->assemblyb. This will change later.
19559         
19560 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
19561
19562         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
19563         object layout.
19564
19565         * reflection.c (mono_image_build_metadata): Avoid creation of a default
19566         main module, since it is now done by the managed code.
19567
19568 2003-11-03  Martin Baulig  <martin@ximian.com>
19569
19570         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
19571         `ginst->klass' here.
19572         (method_encode_methodspec): Don't use the `ginst->generic_method's
19573         klass if it's a generic instance, use `ginst->klass' in this case.
19574
19575 2003-11-03  Martin Baulig  <martin@ximian.com>
19576
19577         * reflection.c (mono_image_get_generic_method_param_info):
19578         Removed, use mono_image_get_generic_param_info() instead.
19579         (mono_image_get_type_info): Write the GenericParam table before
19580         the Method table.  This is neccessary because in the GenericParam
19581         table, type parameters of the class (ie. '!0' etc.) must come
19582         before the ones from its generic methods (ie. '!!0' etc).
19583
19584 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
19585
19586         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
19587
19588 2003-11-02  Martin Baulig  <martin@ximian.com>
19589
19590         * reflection.c (create_generic_typespec): Take a
19591         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
19592         the generic parameters from it.
19593
19594 2003-11-02  Martin Baulig  <martin@ximian.com>
19595
19596         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
19597         instead of a `MonoClassField *' since we just need the type.
19598         (create_generic_typespec): New static function.  Creates a
19599         TypeSpec token for a generic type declaration.
19600         (mono_image_get_generic_field_token): New static function.
19601         (mono_image_create_token): If we're a FieldBuilder in a generic
19602         type declaration, call mono_image_get_generic_field_token() to get
19603         the token.
19604
19605 2003-11-02  Martin Baulig  <martin@ximian.com>
19606
19607         * reflection.h
19608         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
19609         `MonoReflectionGenericInst *declaring_type' and
19610         `MonoReflectionGenericInst *reflected_type' fields.
19611
19612         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
19613         `MonoReflectionGenericInst *declaring_type' and a
19614         `MonoReflectionGenericInst *reflected_type' argument instead of a
19615         single `MonoReflectionGenericInst *type' one.  Set
19616         `res->declaring_type' and `res->reflected_type' from them.
19617         (mono_reflection_inflate_field): Likewise.      
19618
19619 2003-11-02  Martin Baulig  <martin@ximian.com>
19620
19621         * class.c (mono_class_setup_vtable): Don't store generic methods
19622         in the vtable.  
19623
19624 2003-11-02  Martin Baulig  <martin@ximian.com>
19625
19626         * reflection.h (MonoReflectionGenericInst): Added
19627         `MonoReflectionType *declaring_type'.
19628
19629         * reflection.c (mono_reflection_bind_generic_parameters): Use
19630         `if (tb->parent)' instead of `klass->parent'.
19631
19632 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
19633
19634         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
19635         with an empty ASSEMBLY table.
19636
19637         * reflection.c (mono_image_build_metadata): Avoid using the same loop
19638         variable in the inner and outer loops.
19639
19640 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
19641
19642         * metadata.h (mono_metadata_make_token): Put parentheses around macro
19643         argument.
19644
19645         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
19646         
19647         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
19648         icalls. Instead, do everything in managed code. This is needed since
19649         it is hard to restore the original domain etc. in unmanaged code in the
19650         presence of undeniable exceptions.
19651
19652         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
19653         New icalls to push and pop appdomain refs.
19654
19655 2003-10-31  Martin Baulig  <martin@ximian.com>
19656
19657         * class.c (inflate_generic_type): Renamed to
19658         mono_class_inflate_generic_type() and made it public.
19659
19660         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
19661         New interncall.
19662
19663         * loader.c (mono_field_from_memberref): Also set the retklass for
19664         typespecs.
19665
19666         * fielder.c (mono_image_get_inflated_field_token): New static
19667         method; creates a metadata token for an inflated field.
19668         (mono_image_create_token, fixup_method): Added support for
19669         "MonoInflatedField".
19670         (fieldbuilder_to_mono_class_field): New static function.
19671         (mono_reflection_inflate_field): New public function.
19672
19673         * reflection.h
19674         (MonoReflectionGenericInst): Added `MonoArray *fields'.
19675         (MonoReflectionInflatedField): New typedef.     
19676
19677 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
19678
19679         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
19680         for Solaris and other platforms without s6_addr16
19681
19682 2003-10-30  Martin Baulig  <martin@ximian.com>
19683
19684         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
19685         argument instead of two.
19686         (mono_class_inflate_generic_signature): Likewise.
19687         (inflate_generic_header): Likewise.
19688         (mono_class_inflate_generic_method): Likewise.  In addition, if
19689         `ginst->klass' is set, it becomes the new `method->klass'.
19690
19691         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
19692         field.
19693
19694         * reflection.c (encode_generic_method_sig): Write a 0xa as the
19695         first byte. [FIXME]
19696         (method_encode_methodspec): If we have generic parameters, create
19697         a MethodSpec instead of a MethodRef.
19698         (fixup_method): Added support for "MonoInflatedMethod" and
19699         "MonoInflatedCtor".
19700         (mono_image_create_token): Added support for "MonoInflatedMethod"
19701         and "MonoInflatedCtor".
19702         (inflated_method_get_object): New static function; returns a
19703         managed "System.Reflection.MonoInflatedMethod" object.
19704         (mono_reflection_bind_generic_method_parameters): Return a
19705         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
19706         (mono_reflection_inflate_method_or_ctor): Likewise.
19707         (mono_image_get_generic_method_param_info): Initialize unused
19708         fields to zero.
19709         (mono_image_get_generic_param_info): Likewise.
19710
19711         * reflection.h (MonoReflectionInflatedMethod): New public
19712         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
19713         "S.R.MonoInflatedCtor" classes.
19714
19715         * loader.c (method_from_memberref): If we're a TypeSpec and it
19716         resolves to a generic instance, inflate the method.
19717
19718 2003-10-28  Dick Porter  <dick@ximian.com>
19719
19720         * object.c (mono_runtime_run_main): Convert command-line arguments
19721         into utf8, falling back to the user's locale encoding to do so.
19722
19723 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
19724
19725         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
19726         at this time.
19727
19728         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
19729
19730         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
19731         up icalls at method definition time. Partially fixes #33569.
19732
19733 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
19734
19735         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
19736         marshalling of arrays. Fixes #50116.
19737
19738         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
19739
19740         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
19741         points to a vtable in the dying appdomain.
19742
19743         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
19744         listeners into unmanaged code inside the lock.
19745
19746         * object.c (mono_class_vtable): Turn off typed allocation in non-root
19747         domains and add some comments.
19748
19749 2003-10-25  Martin Baulig  <martin@ximian.com>
19750
19751         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
19752
19753         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
19754
19755         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
19756         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
19757         currently parsing.  Create the generic class and store it in
19758         `generic_inst->klass' before parsing the type arguments.  This is
19759         required to support "recursive" definitions; see mcs/tests/gen-23.cs
19760         for an example.
19761         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
19762         to support recursive typespec entries.
19763
19764         * class.c (mono_class_setup_parent): If our parent is a generic
19765         instance, we may get called before it has its name set.
19766         (mono_class_from_generic): Splitted into
19767         mono_class_create_from_generic() and mono_class_initialize_generic().
19768
19769 2003-10-25  Martin Baulig  <martin@ximian.com>
19770
19771         * icall.c (ves_icall_Type_BindGenericParameters): Return a
19772         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
19773         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
19774         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
19775
19776         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
19777         (create_typespec): Likewise.
19778         (mono_reflection_bind_generic_parameters): Return a
19779         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
19780         (mono_reflection_inflate_method_or_ctor): New public function.
19781
19782         * reflection.h (MonoReflectionGenericInst): New typedef.        
19783
19784 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
19785
19786         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
19787         inside the domain lock. Fixes #49993.
19788         
19789         * object.c (mono_class_vtable): When typed allocation is used, 
19790         allocate vtables in the GC heap instead of in the mempool, since the
19791         vtables contain GC descriptors which are used by the collector even
19792         after the domain owning the mempool is unloaded.
19793
19794         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
19795
19796         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
19797         reflect what it does. Also invalidate mempools instead of freeing
19798         them if a define is set.
19799
19800         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
19801         of the appdomain.
19802         
19803         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
19804         hold the finalizable objects in this domain.
19805
19806         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
19807         appdomain.
19808
19809         * appdomain.c (mono_domain_set): New function to set the current
19810         appdomain, but only if it is not being unloaded.
19811
19812         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
19813         appdomain which is being unloaded.
19814         
19815         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
19816         unloading of the root appdomain.
19817
19818         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
19819         icall to execute a method in another appdomain. Intended as a 
19820         replacement for InternalSetDomain, which can confuse the code 
19821         generation in the JIT.
19822
19823         * appdomain.c (mono_domain_is_unloading): New function to determine
19824         whenever an appdomain is unloading.
19825
19826         * appdomain.c (mono_domain_unload): New function to correctly unload
19827         an appdomain.
19828
19829         * assembly.c (mono_assembly_load_references): Check that an assembly
19830         does not references itself.
19831
19832         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
19833         domain manually, it asks the finalizer thread to do it, then waits for
19834         the result. Also added a timeout.
19835
19836         * icall.c: Register the new icalls.
19837
19838         * threads.h threads.c: Export the mono_gc_stop_world and 
19839         mono_gc_start_world functions.
19840         
19841         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
19842         function to fill out the mempool with 0x2a.
19843
19844 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
19845
19846         * reflection.h (MonoReflectionMethodAux): New structure to store
19847         information which is rarely used, thus is not in the MonoMethod
19848         structure.
19849
19850         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
19851         store the aux info.
19852
19853         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
19854         and marshalling info into the aux structure.
19855
19856         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
19857         from the aux structure.
19858
19859         * loader.c (mono_method_get_param_names): Retrieve the param names from
19860         the aux structure.
19861         
19862 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
19863
19864         * exception.h exception.c: Add AppDomainUnloadedException && fix 
19865         warning.
19866
19867 2003-10-21  Dick Porter  <dick@ximian.com>
19868
19869         * socket-io.c
19870         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
19871         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
19872
19873 2003-10-21  Martin Baulig  <martin@ximian.com>
19874
19875         * reflection.c (mono_reflection_bind_generic_parameters):
19876         `klass->parent' is NULL for interfaces.
19877
19878 2003-10-21  Martin Baulig  <martin@ximian.com>
19879
19880         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
19881
19882 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
19883
19884         * exception.c (mono_exception_from_name_msg): New helper function for
19885         creating exceptions and initializing their message field.
19886
19887         * exception.c: Simplify functions using the new helper.
19888
19889         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
19890         New function.
19891
19892         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
19893         mono_raise_exception, since otherwise gcc doesn't generate the function
19894         epilog for raise_exception, confusing the stack unwinding in the JIT.
19895         Fixes #45043.
19896
19897         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
19898         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
19899         Fixes #49499.
19900
19901 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19902
19903         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
19904         utf8.
19905
19906 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
19907
19908         * icall.c: Removed GetUninitializedObject method because
19909           AllocateUninitializedClassInstance does the same.
19910
19911 2003-10-18  Martin Baulig  <martin@ximian.com>
19912
19913         * class.c (inflate_generic_signature): Renamed to
19914         mono_class_inflate_generic_signature() and made it public.
19915         (my_mono_class_from_generic_parameter): New static function; if we
19916         don't already have the generic parameter's MonoClass, create a
19917         very simple one which is just used internally in the runtime and
19918         not passed back to managed code.
19919
19920         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
19921
19922         * metadata.h (MonoMethodSignature): Moved the
19923         `MonoGenericParam *gen_params' to the MonoMethodHeader.
19924         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
19925
19926         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
19927         ves_icall_MonoMethod_GetGenericArguments(); this is now an
19928         interncall on the MonoMethod class, not on MethodInfo.
19929         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
19930         calling mono_reflection_bind_generic_method_parameters() directly.
19931
19932         * loader.c (mono_method_get_signature): If this is a MethodSpec;
19933         return the already computed `method->signature'.
19934         (method_from_methodspec): New static function to load a method
19935         from a MethodSpec entry.
19936         (mono_get_method_from_token): Call the new method_from_methodspec()
19937         for MethodSpec tokens.  
19938         (mono_get_method_from_token): If we're a generic method, load the
19939         type parameters.
19940
19941         * reflection.c (mono_image_get_memberref_token): Allow
19942         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
19943         table.
19944         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
19945         (mono_image_create_token): First check whether it's a generic
19946         method (so we'd need to create a MethodSpec), then do the other
19947         two alternatives.
19948         (mono_reflection_bind_generic_method_parameters): Return a
19949         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
19950         called directly from the interncall.
19951
19952 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
19953
19954         * reflection.c (load_public_key): Move loading of the public key
19955         into managed code.
19956
19957         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
19958
19959         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
19960         fields.
19961
19962         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
19963         culture, hash_alg and public_key. Fixes #49555.
19964
19965 2003-10-17  Martin Baulig  <martin@ximian.com>
19966
19967         * class.h (MonoGenericInst): Moved this declaration here and added
19968         `MonoMethod *generic_method'.
19969
19970         * icall.c
19971         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
19972         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
19973
19974         * metadata.c (mono_metadata_type_equal): Two types of
19975         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
19976         index; ie. don't compare the address of the `MonoGenericParam'
19977         structure.
19978         (mono_metadata_load_generic_params): Removed the `MonoMethod
19979         *method' argument.
19980
19981         * metadata.h (MonoGenericInst): Moved declaration to class.h.
19982         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
19983
19984         * reflection.c (method_encode_signature): Encode the number of
19985         generic parameters.
19986         (encode_generic_method_sig): New static function.
19987         (method_encode_methodspec): New static function; creates an entry
19988         in the MethodSpec table for a generic method.
19989         (mono_image_get_methodspec_token): New static function.
19990         (mono_image_create_token): Call mono_image_get_methodspec_token()
19991         for generic methods.
19992         (mono_reflection_bind_generic_method_parameters): New public
19993         function.  Instantiates a generic method.
19994
19995 2003-10-16  Martin Baulig  <martin@ximian.com>
19996
19997         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
19998         *gen_params' here from MonoMethodHeader.
19999
20000         * metadata.c (mono_metadata_parse_method_signature): If we have
20001         generic parameters, initialize `method->gen_params' and then set
20002         the correct `type->data.generic_param' in all the parameters.
20003
20004 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
20005
20006         * threads.c (mono_threads_get_default_stacksize): New function to 
20007         return the default stacksize.
20008
20009         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
20010         termination of the finalizer thread, since the previous method had
20011         race conditions. Fixes #49628.
20012
20013         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
20014         as for the other managed threads.
20015
20016 2003-10-16  Martin Baulig  <martin@ximian.com>
20017
20018         * class.c (inflate_generic_signature): Copy `generic_param_count'
20019         and `gen_params'.
20020
20021         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
20022         New interncall.
20023
20024         * metadata.c (mono_metadata_parse_method_signature): Actually set
20025         the `method->generic_param_count' here.
20026         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
20027
20028 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
20029
20030         * object.h: Add a new field to TypedRef to simplify the implementation
20031         of the REFANY opcodes in the JIT.
20032
20033         * icall.c: Make use of the new field.
20034
20035         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
20036         dynamically.
20037
20038 2003-10-15  Martin Baulig  <martin@ximian.com>
20039
20040         * class.c (mono_class_from_gen_param): Renamed to
20041         mono_class_from_generic_parameter() and moved most of the
20042         functionality from mono_reflection_define_generic_parameter()
20043         here; ie. we create a "real" class here.
20044         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
20045         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
20046         previously been called.
20047
20048         * class.h (MonoGenericParam): Moved the declaration of this struct
20049         here from metadata.h and added `MonoMethod *method'.
20050
20051         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
20052         interncall.
20053
20054         * loader.c (mono_get_method_from_token): If we have any generic
20055         parameters, call mono_metadata_load_generic_params() to read them
20056         from the MONO_TABLE_GENERICPAR.
20057
20058         * metadata.c (mono_metadata_load_generic_params): Added
20059         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
20060
20061         * metadata.h (MonoMethodSignature): Replaced
20062         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
20063         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
20064
20065         * reflection.c (mono_reflection_define_generic_parameter): Moved
20066         most of the functionality into the new
20067         mono_class_from_generic_parameter(); set the `method' field if
20068         we're a method parameter.       
20069
20070 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
20071
20072         * marshal.c (emit_struct_conv): if native size is 0
20073         emit no code.
20074
20075 2003-10-14  Martin Baulig  <martin@ximian.com>
20076
20077         * icall.c: The generics API has changed in the spec since it was
20078         added to System.Type; these modifications make it match the spec
20079         again.
20080         (ves_icall_Type_GetGenericParameters): Renamed to
20081         `ves_icall_Type_GetGenericArguments'.
20082         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
20083         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
20084         `ves_icall_MonoType_get_HasGenericArguments'.
20085         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
20086         `ves_icall_MonoType_get_IsGenericParameter'.
20087         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
20088         this is no interncall anymore.
20089         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
20090         `ves_icall_TypeBuilder_get_IsGenericParameter'.
20091
20092 2003-10-14  Martin Baulig  <martin@ximian.com>
20093
20094         * reflection.c (mono_reflection_bind_generic_parameters): Also
20095         inflate generic methods if we're reading the class from IL.
20096
20097 2003-10-13  Martin Baulig  <martin@ximian.com>
20098
20099         * reflection.c (mono_reflection_define_generic_parameter): This
20100         method isn't called directly from the icall anymore; take a
20101         `MonoReflectionAssemblyBuilder *' so we can use this for type and
20102         method generic parameters.
20103         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
20104         (method_builder_encode_signature): Encode generic parameters.
20105         (mono_image_get_method_info): Write generic params to the
20106         MONO_TABLE_GENERICPARAM table.
20107
20108         * reflection.h (MonoReflectionMethodBuilder): Added
20109         `MonoArray *generic_params'.
20110
20111         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
20112
20113         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
20114         wrapper for mono_reflection_define_generic_parameter().
20115         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
20116
20117 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
20118
20119         * marshal.h: Add missing function to fix build.
20120
20121         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
20122         the SetLastError pinvoke attribute.
20123
20124         * marshal.c (mono_marshal_set_last_error): New helper function called
20125         by the generated code.
20126         
20127         * marshal.c (mono_mb_emit_branch): New helper function.
20128
20129         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
20130
20131         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
20132         classes as parameters and return values of delegates. Fixes #29256. 
20133
20134 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
20135
20136         * locales.c: use gint32 in non HAVE_ICU case
20137
20138 2003-10-11  Martin Baulig  <martin@ximian.com>
20139
20140         * mono-debug.c (mono_debug_add_method): Added a workaround for
20141         bug #48591.
20142
20143 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
20144
20145         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
20146         delegates passed to native code must use the STDCALL calling 
20147         convention. Fixes #35987.
20148
20149 2003-10-10  Martin Baulig  <martin@ximian.com>
20150
20151         * class.c (inflate_generic_type): If we're inflating for a generic
20152         type instance (and not for a generic method), return
20153         MONO_TYPE_MVAR unchanged.
20154
20155 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20156
20157         * string-icalls.c: Join ignores null strings in the source array.
20158         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
20159         * threads.c: GetAvailableTheads is slightly more accurate.
20160
20161 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
20162
20163         * threads.h threads.c : add mono_threads_set_default_stacksize
20164         and pass default to CreateThread calls.
20165
20166 2003-10-09  Dick Porter  <dick@ximian.com>
20167
20168         * icall.c:
20169         * locales.h:
20170         * locales.c: Internal calls for constructing CultureInfo and
20171         related objects from libicu (if its available.)
20172
20173 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
20174
20175         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
20176
20177 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20178
20179         * threadpool.c: added an argument to async_invoke_thread that is the
20180         item to process, pass the MonoAsyncResult to the thread start function
20181         when creating a new thread. This way we don't need to acquire any lock
20182         when we're creating a new thread. Readded a semaphore for faster
20183         response times (instead of that Sleep i added).
20184
20185 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
20186
20187         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
20188         get daylight change dates better on Windows, fix handling
20189         of platforms without tm_gmtoff.
20190
20191 2003-10-06  Martin Baulig  <martin@ximian.com>
20192
20193         * class.c (inflate_generic_method): Renamed to
20194         mono_class_inflate_generic_method() and made public.
20195         (mono_class_init): Don't inflate the generic methods here.
20196         (mono_class_from_generic): Added `gboolean inflate_methods'
20197         argument.  Inflate the methods here.
20198
20199         * loader.c (mono_method_get_param_names): Ignore instances of
20200         generic types for the moment.
20201
20202         * reflection.c (fixup_method): Added support for inflated methods.
20203         (mono_image_create_token): Use mono_image_get_methodref_token()
20204         for inflated methods.
20205         (mono_custom_attrs_from_param): Ignore instances of generic types
20206         for the moment.
20207         (mono_reflection_bind_generic_parameters): New public function.
20208         Moved all the functionality from
20209         ves_icall_Type_BindGenericParameters() here and added support for
20210         dynamic types.
20211         (mono_reflection_define_generic_parameter): Initialize
20212         `klass->methods' here.
20213
20214         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
20215         functionality into mono_reflection_define_generic_parameter().
20216         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
20217         TypeBuilder, return that TypeBuilder.
20218
20219 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20220
20221         * appdomain.c: removed mono_delegate_semaphore.
20222
20223         * threadpool.c:
20224         (mono_thread_pool_add): moved hash table creation inside and the thread 
20225         creation outside of the critical region.
20226         (mono_thread_pool_finish): removed obsolete code.
20227         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
20228         continue or exit the thread depending on the queue.
20229
20230 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
20231
20232         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
20233         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
20234         handle more bool marshalling options
20235
20236 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
20237
20238         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
20239         arrays of structs. Also add a more descriptive error message when
20240         a structure member is marshalled as LPArray.
20241
20242 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
20243
20244         * marshal.c (mono_marshal_get_native_wrapper): Add support for
20245         marshalling arrays of complex types. Fixes #29098. Also remove an
20246         usused and incomplete function.
20247
20248 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
20249
20250         * gc.c: report heap_size - free_bytes as total memory allocated
20251         (bug#49362).
20252
20253 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
20254
20255         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
20256         fix timezone handling problems on Windows.
20257         
20258         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
20259         asserts when the year is outside the range handled by ms the functions.
20260
20261         * class.c (setup_interface_offsets): If the class is an interface,
20262         fill out its interface_offsets slot.
20263
20264 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20265
20266         * threadpool.c: mark threadpool threads as background.
20267
20268 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
20269
20270         * decimal.c - define DECINLINE to nothing if not using GCC
20271
20272 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
20273
20274         * assembly.c: More refcount fixes.
20275
20276 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20277
20278         * string-icalls.c: if we're not trimming, return the same string.
20279         When not splitting, don't create a new string.
20280
20281 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20282
20283         * image.c:
20284         (mono_image_open): increment the ref_count inside the critical section.
20285
20286 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
20287
20288         * image.c (mono_image_open): Fix reference counting bug.
20289
20290 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
20291
20292         * marshal.c (mono_marshal_type_size) struct alignment changed for 
20293         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
20294         64bits. Avoid leak in mono_marshal_get_native_wrapper when
20295         mono_lookup_pinvoke_call throws.        
20296
20297 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
20298
20299         * reflection.c (mono_reflection_parse_type): Fix #49114.
20300
20301         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
20302         temporary workaround for cygwin header problem.
20303
20304         * object.c (mono_object_isinst): Synchronize this with the code
20305         generated by the JIT for casts.
20306
20307 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
20308
20309         * reflection.c (encode_type): Fix #38332.
20310
20311 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
20312
20313         * marshal.c (mono_marshal_method_from_wrapper): New function to return
20314         the original method from the wrapper method.
20315
20316 2003-09-25  Martin Baulig  <martin@ximian.com>
20317
20318         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
20319         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
20320         (ves_icall_Type_get_IsGenericInstance): New interncall.
20321
20322 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
20323
20324         * object.c: fix cast warning in big endian code.
20325
20326 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
20327
20328         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
20329         
20330 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20331
20332         * assembly.c: don't call check_env from mono_assembly_load. It's
20333         already done once in mono_assemblies_init and may cause headaches when
20334         multiple threads are loading assemblies.
20335
20336 2003-09-19  Martin Baulig  <martin@ximian.com>
20337
20338         * reflection.c (mono_reflection_define_generic_parameter): Don't
20339         allocate `klass->methods', set `klass->flags' to
20340         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
20341
20342 2003-09-18  Martin Baulig  <martin@ximian.com>
20343
20344         * class.c (mono_class_init): Don't create `class->methods' if it's
20345         already initialized.
20346
20347         * metadata.c (mono_metadata_load_generic_params): Make this
20348         actually work.
20349
20350         * reflection.c (mono_reflection_define_generic_parameter): Set
20351         parent class and interfaces from the constraints.
20352
20353         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
20354         to keep this struct in sync with the declaration in TypeBuilder.cs.
20355
20356 2003-09-17  Martin Baulig  <martin@ximian.com>
20357
20358         * metadata.h (MonoType): Replaced the data's `int type_param'
20359         field with `MonoGenericParam *generic_param'.
20360         (MonoGenericParam): Added `MonoClass *klass'.
20361
20362         * class.c (mono_class_from_gen_param): Removed the
20363         `MonoImage *image' and `int type_num' arguments.
20364
20365         * metadata.c (mono_metadata_parse_generic_param): New static
20366         method; creates a MonoGenericParam which just contains the index.
20367         (do_mono_metadata_parse_type): Call
20368         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
20369         MONO_TYPE_MVAR.
20370
20371         * reflection.c (mono_image_typedef_or_ref): Generic type
20372         parameters may be in the same assembly, but never use a typedef
20373         for them.
20374         (mono_reflection_define_generic_parameter): We're now creating a
20375         "real" class for the type parameter; it's now safe to call
20376         mono_class_from_mono_type() on the class'es type, it'll do the
20377         right thing.
20378
20379 2003-09-16  Martin Baulig  <martin@ximian.com>
20380
20381         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
20382         `symfile->range_entry_size' and `symfile->class_entry_size' here;
20383         the `symfile' data structure must be fully initialized before it
20384         gets added to the table.
20385
20386 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
20387
20388         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
20389
20390         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
20391         class init trampolines.
20392
20393 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
20394
20395         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
20396         to the built-in profiler to turn off time and allocation profiling
20397         respectively.
20398
20399 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
20400
20401         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
20402         g_direct_equal.
20403
20404         * debug-helpers.c (mono_method_full_name): Print the wrapper type
20405         in human readable form.
20406
20407 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
20408
20409         * reflection.c icall.c: Fixed warnings.
20410
20411         * image.c (load_class_names): Use a temporary hash table to hold the
20412         namespaces in order to avoid doing many string comparisons.
20413
20414         * image.h: Fix typo.
20415
20416         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
20417         Pass NULL instead of g_direct_equal to the GHashTable constructor 
20418         since the NULL case is short-circuited inside g_hash_table_lookup, 
20419         leading to better performance.  
20420
20421         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
20422         obtain the first custom attribute for a given index. Depends on the
20423         CustomAttribute table being sorted by the parent field.
20424
20425         * reflection.c (mono_custom_attrs_from_index): Use the new function 
20426         for better performance.
20427
20428 2003-09-07  Martin Baulig  <martin@ximian.com>
20429
20430         * class.c (mono_class_init): If we're a generic instance, inflate
20431         all our methods instead of loading them from the image.
20432         (mono_class_from_generic): Set `class->methods = gklass->methods'.
20433
20434 2003-09-07  Martin Baulig  <martin@ximian.com>
20435
20436         * mono-debug-debugger.c: Added support for constructors.
20437
20438 2003-09-06  Martin Baulig  <martin@ximian.com>
20439
20440         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
20441         New interncall.
20442
20443         * reflection.c (mono_reflection_setup_generic_class): Call
20444         ensure_runtime_vtable() to create the vtable.
20445
20446 2003-09-05  Martin Baulig  <martin@ximian.com>
20447
20448         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
20449         MONO_TYPE_MVAR.
20450
20451 2003-09-04  Martin Baulig  <martin@ximian.com>
20452
20453         * reflection.c (mono_reflection_define_generic_parameter): Generic
20454         parameters start with zero.
20455
20456 2003-09-04  Martin Baulig  <martin@ximian.com>
20457
20458         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
20459
20460         * reflection.h (MonoReflectionGenericParam): New typedef.
20461         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
20462         the generic parameters from the managed TypeBuilder.
20463
20464         * reflection.c (mono_reflection_define_generic_parameter): New function.
20465         (mono_reflection_create_runtime_class): Encode generic parameters.
20466         (mono_reflection_setup_generic_class): New function; this is
20467         called after adding adding all generic params to the TypeBuilder.
20468         (encode_type): Added MONO_TYPE_VAR.
20469
20470 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
20471
20472         * class.h class.c (mono_class_needs_cctor_run): Moved this method
20473         here from the JIT.
20474
20475         * assembly.h assembly.c: Moved the AOT loading code into an assembly
20476         load hook.
20477
20478 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
20479
20480         * reflection.h reflection.c class.h class.c: Delete duplicate 
20481         definition of mono_type_get_name () from reflection.c and export the
20482         one in class.c.
20483
20484         * class.c: Class loading fixes from Bernie Solomon 
20485         (bernard@ugsolutions.com).
20486
20487         * reflection.c: Endianness fixes from Bernie Solomon 
20488         (bernard@ugsolutions.com).
20489         
20490 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
20491
20492         * assembly.h assembly.c: Define a file format version for AOT
20493         libraries.
20494         
20495         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
20496
20497         * appdomain.h (MonoJitInfo): New field to determine whenever the
20498         code is domain neutral.
20499         
20500 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
20501
20502         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
20503
20504 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
20505
20506         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
20507         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
20508         Avoid caching the result since strings must be domain specific. Fixes
20509         #48050.
20510
20511 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
20512
20513         * marshal.c (mono_marshal_init): Make this callable multiple times
20514         since it is hard to find a correct place to call it.
20515
20516         * object.c (mono_runtime_class_init): Execute static constructors in
20517         the correct appdomain.
20518
20519         * image.c (build_guid_table): Handle the case when multiple images have
20520         the same GUID.
20521
20522 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20523
20524         * icall.c: added a couple of icalls for System.Web.
20525
20526 2003-08-28  Martin Baulig  <martin@ximian.com>
20527
20528         * icall.c (ves_icall_Type_BindGenericParameters): Use
20529         `klass->generic_inst' instead of `&klass->byval_arg' in the
20530         mono_type_get_object() call.  The returned type must be
20531         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
20532
20533 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
20534
20535         * NOTES: New file.
20536
20537         * object.c (mono_class_proxy_vtable): Make it thread safe.
20538
20539         * pedump.c: Fix warning.
20540
20541         * object.c appdomain.h: Get rid of metadata_section. 
20542         It is no longer needed and it was causing deadlocks with domain->lock.
20543
20544         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
20545
20546 2003-08-26  Martin Baulig  <martin@ximian.com>
20547
20548         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
20549
20550 2003-08-26  Martin Baulig  <martin@ximian.com>
20551
20552         * pedump.c (main): Call mono_metadata_init(),
20553         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
20554         and mono_loader_init().
20555
20556 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
20557
20558         * loader.h: Add missing include to fix build.
20559
20560         * image.h: mono_image_load_references is no more.
20561
20562         * assembly.c: Reworked assembly loading to make it really thread safe.
20563         After these changes, the assembly returned by mono_assembly_open is
20564         fully initialized, i.e. all its references assemblies are loaded.
20565
20566         * assembly.c (mono_image_load_references): Renamed to 
20567         mono_assembly_load_references, and made private, since clients no
20568         longer need to call it.
20569
20570         * class.c: Removed calls to mono_assembly_load_references, since it was
20571         a source of deadlocks.
20572
20573         * loader.h loader.c class.h class.c: Protect data structures using a 
20574         new lock, the loader lock.
20575
20576         * class.c (mono_class_setup_vtable): Create temporary hash tables and
20577         GPtrArrays only when needed.
20578
20579         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
20580         into empty structures by mcs. Fixes pinvoke7.cs.
20581         
20582         * domain.c (mono_init): Call a new initialization function.
20583
20584         * appdomain.c (mono_runtime_init): Call the new initializer function
20585         of the marshal module.
20586
20587         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
20588         inserted into empty structures by mcs. Fixes pinvoke7.cs.
20589
20590         * marshal.h marshal.c: Added locks around the wrapper caches to make
20591         this module thread safe.
20592
20593         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
20594         this argument. Fixes pinvoke1.exe.
20595
20596 2003-08-25  Lluis Sanchez <lluis@ximian.com>
20597
20598         * object.h: Added call_type field to MonoMethodMessage and the corresponding
20599         enumeration of values. Removed fields to store remote call output values in
20600         MonoAsyncResult. Not needed any more.
20601         * object.c: Initialize call_type and async_result fields in mono_message_init.
20602         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
20603         dispatching the message.
20604         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
20605         async call to finish. To do it use a message with EndInvoke call type.
20606
20607 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
20608
20609         * loader.h loader.c (mono_method_hash_marhal_info): New function which
20610         determines whenever a method has marshalling info.
20611
20612 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20613
20614         * assembly.c: fix the build on windows.
20615
20616 2003-08-22 Lluis Sanchez <lluis@ximian.com>
20617
20618         * object.cs: Fixed bug #47785.
20619
20620 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
20621
20622         * string-icalls.c (StringReplace): If their are no occurances of
20623         the old string found return a reference to the supplied
20624         string. This saves some memory and matches MS behavoir.
20625         
20626 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20627
20628         * socket-io.c: fixed compilation for systems that define AF_INET6
20629         and don't define SOL_IP/SOL_IPV6.
20630
20631 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
20632
20633         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
20634         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
20635
20636         * rawbuffer.c rawbuffer.h: Make this module thread safe.
20637
20638         * domain.c: Make this module thread safe.
20639
20640         * domain.c (mono_init): Call new initialization function.
20641
20642         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
20643         reference types too. Fixes #38812.
20644
20645         * image.c (mono_image_init): Fixed warnings.
20646
20647         * class.c (mono_class_from_typeref): Handle assembly load failure
20648         correctly.
20649
20650         * appdomain.c (add_assemblies_to_domain): Handle the case when
20651         the references of an assembly are not yet loaded.
20652
20653         * metadata.c image.c assembly.c: Moved initialization of global
20654         variables to a separate function called at startup since lazy 
20655         initialization of these variables is not thread safe.
20656         
20657         * image.c assembly.c: Made this module thread safe by adding locks in 
20658         the appropriate places.
20659
20660         * domain.c (mono_init): Call the new initialization functions of the
20661         three modules.
20662
20663 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
20664
20665         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
20666           make a direct call. It is proxy's work to make the call asynchronous.
20667           mono_delegate_end_invoke(): If the targe is a proxy, just collect
20668           the return values.
20669         * object.cs: mono_method_call_message_new(): read AsyncResult and
20670           state object from parameters list, if this info is requested.
20671         * object.h: Added fields to store remote call output values in
20672           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
20673
20674 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
20675
20676         * object.h: add needed fields to MonoThread.
20677         * threads.c, threads.h: allow registering a function to cleanup data
20678         allocated per thread by the JIT.
20679
20680 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
20681
20682         * loader.h: portability fix by Bernie Solomon
20683         * <bernard@ugsolutions.com>.
20684
20685 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
20686
20687         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
20688         return a MonoArray. This simplifies the code and also ensures that
20689         the cache allways contains an object reference as a value.
20690
20691         * icall.c (ves_icall_get_parameter_info): Simplified using the new
20692         function.
20693
20694 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20695
20696         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
20697         fixes a problem with byte ordering when getting the address family for
20698         a socket.
20699
20700 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
20701
20702         * .cvsignore: Added monosn.
20703
20704         * reflection.h reflection.c loader.c: Added support for parameter
20705         marshalling to dynamically created types. Fixes #47295.
20706
20707 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
20708
20709         * rand.c: remove useless warnings.
20710
20711 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
20712
20713         * class.c: implemented ldtoken for methods and fieldrefs.
20714
20715 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20716
20717         * threadpool.c: when mono_async_invoke was called, no one took care of
20718         monitoring the queue. So if the method invoked took some time and we
20719         got new async invoke requests after 500 ms (the thread created waited
20720         that long in WaitForSingleObject), the new async invoke was not called
20721         until the previous one finished.
20722
20723         This is fixed now. Thanks to Totte for helping with it.
20724
20725 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20726
20727         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
20728
20729 2003-08-11  Martin Baulig  <martin@ximian.com>
20730
20731         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
20732
20733 2003-08-06  Martin Baulig  <martin@ximian.com>
20734
20735         * mono-debug-debugger.c: Added support for static fields,
20736         properties and methods.
20737
20738 2003-08-06  Martin Baulig  <martin@ximian.com>
20739
20740         * mono-debug-debugger.c: Don't store the MonoString's vtable to
20741         make this work for applications with multiple application domains.
20742
20743 2003-08-04  Martin Baulig  <martin@ximian.com>
20744
20745         * mono-debug-debugger.c: Completely reworked the type support; the
20746         most important thing is that we're now just using one single
20747         `MonoType' instance per type.
20748
20749 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
20750
20751         * mono-endian.h, mono-endian.c, icall.c: Added icall
20752         ves_icall_System_Double_AssertEndianity to assert double word endianity
20753         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
20754
20755 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
20756
20757         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
20758         support, icalls and fixes.
20759
20760 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
20761
20762         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
20763         classes that are a punctuation character in .NET is not the same a
20764         g_unichar_ispunct.
20765
20766 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
20767
20768         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
20769
20770 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
20771
20772         * icall.c: Add new MemCopy internalcall.
20773         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
20774         Simplified code; It is not necessary to handle all the cases here,
20775         as the C# code takes care of it.  Only handle the case of the name
20776         resource embedded into the assembly.
20777
20778         Changed signature to return the data pointer and the size of the
20779         data. 
20780
20781 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
20782
20783         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
20784         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
20785
20786 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
20787
20788         * socket-io.c: ignore EINTR error in select.
20789
20790 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
20791
20792         * class.h, class.c: removed unused subclasses field in MonoClass.
20793
20794 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
20795
20796         * icall.c: improve fix of get_base_definition(). If the parent class
20797           doesn't have the mehod, look at the parent of the parent.
20798         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
20799           to check if a parameter is an in or out parameter
20800           (PARAM_ATTRIBUTE_IN is not set by default).
20801           mono_method_return_message_restore(): Use mono_class_value_size to
20802           get the size of a value type. mono_type_stack_size (parameterType)
20803           does not return the correct value if parameterType is byRef.
20804           mono_load_remote_field(), mono_load_remote_field_new(),
20805           mono_store_remote_field(), mono_store_remote_field_new():
20806           raise exception if the remote call returns an exception.
20807
20808 2003-07-28  Martin Baulig  <martin@ximian.com>
20809
20810         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
20811         method.  This is a wrapper around mono_runtime_invoke() which
20812         boxes the instance object if neccessary.
20813
20814 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
20815
20816         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
20817         metadata.h, row-indexes.h, verify.c: first cut of generics support.
20818
20819 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
20820
20821         * icall.c: disable mcs bug workaround.
20822
20823 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
20824
20825         * object.c (mono_runtime_class_init): Take the metadata_section
20826         mutex before obtaining the domain mutex.
20827
20828         * appdomain.h: Added definition of metadata_section mutex here. 
20829
20830         * object.c: define metadata_mutex here.
20831
20832 2003-07-24  Ravi Pratap  <ravi@ximian.com>
20833
20834         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
20835         fixed.
20836
20837 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
20838
20839         * reflection.c: Fix bug #46669
20840
20841 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20842
20843         * exception.c:
20844         * exception.h:
20845         * icall.c:
20846         * object.h: fill in the type name for TypeLoadException.
20847
20848 2003-07-23  Ravi Pratap  <ravi@ximian.com>
20849
20850         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
20851         relationship between TypeBuilders while compiling corlib) and bug
20852         45993 (Array types returned from the runtime while compiling
20853         corlib were from the loaded corlib).
20854
20855 2003-07-22  Martin Baulig  <martin@ximian.com>
20856
20857         * mono-debug-debugger.c: Reworked the type support a bit more;
20858         distinguish between types and classes.
20859
20860 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
20861
20862         * icall.c: add IsArrayImpl icall.
20863
20864 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
20865
20866         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
20867         initializing real_size only once. Also fix bug #46602.
20868
20869 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
20870
20871         * object.c: Renamed mono_metadata_section to metadata_section.
20872
20873 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
20874
20875         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
20876           empty array if the type is an array. Fixed.
20877           ves_icall_MonoMethod_get_base_definition: if the base method
20878           is abstract, get the MethodInfo from the list of methods of
20879           the class.
20880         * reflection.c: ParameterInfo.PositionImpl should be zero-based
20881           and it was 1-based. Fixed in mono_param_get_objects.
20882
20883 2003-07-20  Martin Baulig  <martin@ximian.com>
20884
20885         * mono-debug.h: Set version number to 31.
20886         (mono_debug_init): Added `MonoDomain *' argument.
20887
20888         * mono-debug-debugger.c: Reworked the type support; explicitly
20889         tell the debugger about builtin types; pass the `klass' address to
20890         the debugger.
20891
20892 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
20893
20894         * image.c: Allow new metadata tables to be loaded without a
20895         warning. Also update the warning message to give the new constant value.
20896                 
20897 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
20898
20899         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
20900         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
20901         array type representation changes.
20902
20903 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
20904
20905         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
20906         on Environment.Exit () call.
20907
20908 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
20909
20910         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
20911         requires a matching corlib.
20912
20913 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
20914
20915         * Changelog: My editor decided to add a CR to each line. Sorry about that.
20916           Committed again without the CRs.
20917         
20918 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
20919
20920         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
20921           getting it from the "this" socket instance. Did not work
20922           if the socket is a subclass of Socket.
20923           Also fixed bug #35371.
20924
20925 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
20926
20927         * metadata.c: fixed size for TypedByRef.
20928         * loader.c: when searching for a method, consider the vararg amrker.
20929         * unicode.c, decimal.c: constify some arrays.
20930
20931 2003-07-15  Dick Porter  <dick@ximian.com>
20932
20933         * socket-io.c: Fixed compilation for gcc < 3.2.
20934
20935         Fixed compilation for machines that don't have AF_INET6 (thanks to
20936         Bernie Solomon <bernard@ugsolutions.com> for that part.)
20937
20938         Fixed compile warnings.
20939         
20940         Fixed formatting and line endings.
20941
20942 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
20943
20944         * socket-io.h:
20945         * socket-io.c: Added IPv6 support.
20946
20947 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
20948
20949         * class.c (mono_class_is_assignable_from): New function to implement
20950         the is_assignable_from logic. Used by mono_object_isinst, 
20951         Type::IsAssignableFrom () and the interpreter.
20952
20953         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
20954         Object, even interfaces.
20955         
20956         * object.c (mono_object_isinst): Implement in terms of 
20957         is_assignable_from.
20958
20959         * icall.c (ves_icall_type_is_assignable_from): New icall.
20960
20961 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
20962
20963         * domain.c (foreach_domain): fix compiler warning.
20964
20965 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
20966
20967         * image.c (load_metadata_ptrs): use g_strndup because strndup is
20968         not available on all plattforms
20969
20970 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
20971
20972         * image.h image.c: Store the metadata version string in MonoImage.
20973         * icall.c: New icall to retrieve the image version.
20974         * reflection.c (create_dynamic_image): Fill in the image version field
20975         * reflection.c (build_compressed_metadata): Use the image version
20976         from the image structure.
20977
20978 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20979
20980         * appdomain.c: modified comment.
20981         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
20982         That will be its last iteration when mono_gc_cleanup is called from
20983         mono_runtime_cleanup and before the domain is unloaded.
20984
20985         Fixes bug #45962.
20986
20987 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
20988
20989         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
20990         attributes.
20991
20992 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
20993
20994         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
20995         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
20996         Bernie Solomon <bernard@ugsolutions.com>.
20997
20998 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
20999
21000         * object.c, object.h: provide mono_object_new_fast() for faster
21001         allocation in some special cases.
21002
21003 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
21004
21005         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
21006         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
21007
21008 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
21009
21010         * threadpool.c: fix leaks.
21011
21012 2003-07-01  Dick Porter  <dick@ximian.com>
21013
21014         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
21015         using MonoGHashTables.  Fixes threadpool bug posted to list.
21016
21017 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
21018
21019         * image.h, image.c: added support to load an assembly from a byte array.
21020         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
21021         assembly bundle support.
21022
21023 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
21024
21025         * threadpool.c (mono_thread_pool_add): keep a reference to the
21026         AsyncResult to prevent GC
21027
21028 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
21029
21030         * class.c: leak fix.
21031
21032 2003-06-25  Dick Porter  <dick@ximian.com>
21033
21034         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
21035         for the async object, the WaitHandle object will close the handle.
21036         Fixes bug 45321.
21037
21038 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
21039
21040         * class.c: in mono_array_class_get (), lookup from the hash with the
21041         same type we insert: this works around a bug in
21042         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
21043         lluis. The real fix will have to wait for after the release.
21044
21045 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
21046
21047         * icall.c: fix memory leak when getting type members.
21048
21049 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
21050
21051         * reflection.c: added more pubtoken special cases.
21052
21053 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
21054
21055         * class.c: handle field offset correctly when class size
21056         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
21057
21058 2003-06-20  Martin Baulig  <martin@ximian.com>
21059
21060         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
21061         *image' field.
21062
21063 2003-06-20  Martin Baulig  <martin@ximian.com>
21064
21065         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
21066
21067 2003-06-20  Martin Baulig  <martin@ximian.com>
21068
21069         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
21070         just distinguish between variables in registers and variables at
21071         an offset relative to a register.
21072
21073 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21074
21075         * icall.c: #ifdef out latest changes until mcs is fixed.
21076
21077 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
21078
21079         * icall.c: return members in metadata order.
21080
21081 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
21082
21083         * icall.c: avoid infinite loop in GetTimeZoneData.
21084
21085 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
21086
21087         * icall.c: added Marshal.Prelink/All icalls.
21088
21089 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
21090
21091         * object.c, object.h: fix warnings and do some overflow checking
21092         when creating arrays.
21093
21094 2003-06-17  Dick Porter  <dick@ximian.com>
21095
21096         * file-io.h:
21097         * file-io.c: File attributes need to be tweaked slightly when
21098         passed from the managed to the w32 world.
21099
21100 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
21101         * profiler.h profiler-private.h profiler.c: Rework last patch
21102         based on suggestion by Paolo.
21103         
21104 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
21105
21106         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
21107         instruction level coverage data collection.
21108         * profiler.h profiler.c (: Added new callback function which can be
21109         used by the profiler to limit which functions should have coverage
21110         instrumentation.
21111         * profiler.c (mono_profiler_load): Call g_module_build_path to
21112         generate the file name of the profiler library.
21113
21114 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
21115
21116         * profiler.c, profiler.h, profiler-private.h: added basic block 
21117         coverage profiling API.
21118
21119 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
21120
21121         * reflection.c (mono_reflection_create_runtime_class): Add support
21122         for events in dynamically generated code.
21123
21124         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
21125         not allocated.
21126
21127 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
21128
21129         * icall.c: when getting timezone info, return reasonable values if we
21130         can't get the actual data.
21131
21132 2003-06-14  Dick Porter  <dick@ximian.com>
21133
21134         * threads.c (start_wrapper): Remove the reference to the thread
21135         object in the TLS data, so the thread object can be finalized.
21136         This won't be reached if the thread threw an uncaught exception,
21137         so those thread handles will stay referenced :-( (This is due to
21138         missing support for scanning thread-specific data in the Boehm GC
21139         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
21140
21141 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
21142
21143         * reflection.c: ensure streams and tables are first allocated with
21144         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
21145
21146 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
21147
21148         * icall.c: fixed GetElementType for byrefs (bug# 44792).
21149
21150 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
21151
21152         * reflection.c (mono_reflection_create_runtime_class): Add support for
21153         properties to dynamically created classes.
21154         * reflection.c: Fix a few places where non-MonoObjects were inserted
21155         into the tokens hashtable.
21156
21157 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
21158
21159         * object.c: some support to handle out of memory exceptions.
21160
21161 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
21162
21163         * marshal.c (mono_marshal_get_native_wrapper): support reference
21164         return types
21165
21166 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
21167
21168         * object.h, object.c: more portability stuff from Bernie Solomon.
21169         Unexport mono_object_allocate(). Added mono_object_unbox ().
21170         Set exitcode when an unhandled exception is thrown.
21171
21172 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
21173
21174         * marshal.c (mono_marshal_get_native_wrapper): use custom
21175         marshaler for return types.
21176
21177 2003-06-10  Dick Porter  <dick@ximian.com>
21178
21179         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
21180         ip_mreq is available
21181
21182 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
21183
21184         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
21185         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
21186         by Bernie Solomon <bernard@ugsolutions.com>.
21187
21188 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
21189
21190         * gc.c (mono_gc_init): Avoid error message on shutdown when
21191         GC_DONT_GC=1 is used.
21192
21193         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
21194         New icall to return the GUID of a module.
21195
21196 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
21197
21198         * class.c: ensure instance size always includes the parent's size
21199         even whem class size is set explicitly (fixes bug#44294).
21200
21201 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
21202
21203         * profiler.h, profiler.c: made the simple profiler thread-safe,
21204         get more accurate timing info. Allow the loading of an
21205         externally-developed profiler module.
21206
21207 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
21208
21209         * marshal.c (mono_marshal_get_native_wrapper): improved
21210         class/byref arguments.
21211         (mono_marshal_get_native_wrapper): better string marshaling support.
21212
21213 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
21214
21215         * class.c: ensure .pack and .size are handled correctly and
21216         simplified layout of static fields.
21217
21218 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
21219
21220         * appdomain.c
21221         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
21222
21223         * loader.c (mono_lookup_pinvoke_call): look for modules in the
21224         current directory (fix bug 44008)
21225
21226 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
21227
21228         * marshal.c (mono_marshal_get_native_wrapper): started support for
21229         custom marshalers.
21230         (mono_delegate_to_ftnptr): consider marshalling specifications
21231
21232 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
21233
21234         * reflection.c, reflection.h: emit custom marshal info.
21235
21236 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21237
21238         * object.c: free the GError.
21239         * icall.c: added CloseEvent_internal.
21240         * threads.[ch]:
21241         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
21242         call.
21243
21244 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
21245
21246         * loader.c (mono_method_get_signature): Add support for dynamic
21247         assemblies.
21248
21249 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
21250
21251         * reflection.c: fixed bug #43905.
21252
21253 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
21254
21255         * class.c, domain.c, icall.c, metadata.h, object.h: support for
21256         handling TypedReference and ArgIterator.
21257         * loader.c, loader.h: added function to get signature at call site.
21258
21259 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
21260
21261         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
21262         data readonly. Buglets and warning fixes. Some MethodSpec support.
21263
21264 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
21265
21266         * class.h, class.c, object.c: remove relative numbering support.
21267
21268 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
21269
21270         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
21271         free the string, until we get a chance to fix Gtk#
21272
21273 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21274
21275         * marshal.c: revert last patch.
21276
21277 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
21278
21279         * icall.c: updates for new mono_class_vtable() not calling
21280         the type constructor anymore.
21281
21282 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
21283
21284         * object.h, object.c: separate vtable creation from type
21285         initialization. Make running the .cctor thread safe.
21286
21287 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
21288
21289         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
21290
21291 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
21292
21293         * loader.c (mono_get_method): consider calling convention
21294
21295 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
21296
21297         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
21298         to return the invisible global type for a module.
21299
21300         * reflection.c (mono_image_build_metadata): Emit global fields too.
21301
21302 2003-05-20  Peter Williams  <peterw@ximian.com>
21303
21304         * loader.c (mono_lookup_internal_call): Add a few newlines.
21305
21306 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
21307
21308         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
21309         literal strings.
21310
21311         * appdomain.c (set_domain_search_path): Recalculate search path when
21312         AppDomainSetup.PrivateBinPath changes.
21313
21314         * object.c (mono_class_compute_gc_descriptor): It turns out some
21315         parts of the class libs (like System.Thread) holds pointers to
21316         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
21317         to treat native int a pointer type here.
21318         
21319 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
21320
21321         * appdomain.h, domain.c: add hashtable for jump target resolution.
21322
21323 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
21324
21325         * reflection.h reflection.c icall.c: Added new icalls 
21326         GetManifestResourceInfoInternal, GetModulesInternal and support
21327         infrastructure.
21328
21329 2003-05-16  Dick Porter  <dick@ximian.com>
21330
21331         * icall.c:
21332         * file-io.h:
21333         * file-io.c: Implement System.IO.MonoIO::GetTempPath
21334
21335 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
21336
21337         * object.c: mono_store_remote_field: little fix to previous patch.
21338
21339 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
21340
21341         * class.c: add constructors to array classes.
21342         * icall.c: special case array construction for InternalInvoke (),
21343
21344 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
21345
21346         * class.h class.c reflection.c object.c: Added support for field
21347         defaults in dynamically generated classes.
21348
21349 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
21350
21351         * reflection.c: properly encode charset for ddlimport.
21352
21353 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
21354
21355         * threads.c: allow compiling without GC.
21356
21357 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
21358
21359         * appdomain.h, object.c, object.h, threads.c, threads.h: added
21360         handling of thread static data.
21361
21362 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
21363
21364         * reflection.h, reflection.c: added mono_custom_attrs_free ().
21365
21366 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
21367
21368         * class.c (mono_array_class_get): always set the serializable flags
21369         (mono_array_class_get): always set the SEALED attribute for array types
21370
21371 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
21372
21373         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
21374         attributes (fix for bug 42021).
21375
21376 2003-05-12  Dick Porter  <dick@ximian.com>
21377
21378         * gc.c: Don't run finalizers when the finalizer thread is
21379         finishing up, because the default domain has already been
21380         destroyed.
21381
21382 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
21383
21384         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
21385         value is null, we should throw an exception.   This is slightly
21386         different than the other conventions used for the constructor.
21387
21388 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21389
21390         * socket-io.c: fixed windows build.
21391
21392 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21393
21394         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
21395
21396 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
21397
21398         * object.c (mono_string_new_wrapper): Compatibility fix for MS
21399         compilers.
21400
21401 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
21402
21403         * class.c (mono_class_layout_fields): Add experimental GC aware
21404         auto layout facility. Requires class library changes to work correctly.
21405
21406         (mono_class_setup_vtable): Avoid overriding explicit interface
21407         method implementations. Fixes iface3.exe test.
21408
21409         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
21410         object reference.
21411         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
21412         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
21413
21414         * metadata.h: Add new type classification macro which determines
21415         whenever the type holds an object reference.
21416
21417 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
21418
21419         * marshal.c (mono_marshal_get_native_wrapper): cleanups
21420
21421 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
21422
21423         * gc.c (finalizer_thread): Work around a GC bug.
21424
21425 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
21426
21427         * marshal.c (emit_struct_conv): allow unions
21428
21429         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
21430
21431 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
21432
21433         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
21434
21435 2003-05-06  Martin Baulig  <martin@ximian.com>
21436
21437         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
21438
21439 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21440
21441         * socket-io.c:
21442         (Select_internal): allow NULLs, don't create arrays if not needed.
21443         Coupled with Socket.cs changes.
21444
21445         * threadpool.c:
21446         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
21447         register a finalizer for it that will close the semaphore handle. This
21448         fixes the leak and make Lupus' test run with > 4080 loops.
21449
21450 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
21451
21452         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
21453         Jerome Laban (bug #42287)
21454
21455 2003-05-02  Martin Baulig  <martin@ximian.com>
21456
21457         * debug-mono-symfile.h
21458         (MonoSymbolFile): Moved declaration into mono-debug.h.
21459         (MonoDebugMethodJitInfo): Likewise.
21460         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
21461         argument.
21462         (_mono_debug_address_from_il_offset): Take a
21463         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
21464
21465         * mono-debug.h
21466         (MonoDebugDomainData): New struct.
21467         (mono_debug_get_domain_data): New function.
21468         (mono_debug_add_method): Take an additional `MonoDomain *'
21469         argument.
21470         (mono_debug_source_location_from_address): Likewise.
21471         (mono_debug_il_offset_from_address): Likewise.
21472         (mono_debug_address_from_il_offset): Likewise.
21473
21474 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
21475
21476         * reflection.c: one more check for null type in custom attrs.
21477
21478 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21479
21480         * reflection.c: avoid warning (comparison is always false due to limited
21481         range of data type).
21482
21483 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21484
21485         * icall.c: throw an exception in Type.GetField if the argument 'name'
21486         is NULL.
21487
21488 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
21489
21490         * reflection.c: fixed handling of enums in named arguments to custom
21491         attributes (bug #42123).
21492
21493 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
21494
21495         * reflection.c: use the right array element type and handle
21496         a null for a Type argument, too.
21497
21498 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
21499
21500         * reflection.c: handle arrays as arguments to custom attributes.
21501
21502 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
21503
21504         * reflection.c: handle a string value in a custom attr
21505         ctor that takes an object.
21506
21507 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
21508
21509         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
21510         (fix bug #42063)
21511
21512 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
21513
21514         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
21515
21516 2003-04-27  Martin Baulig  <martin@ximian.com>
21517
21518         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
21519         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
21520         MONO_DEBUGGER_EVENT_BREAKPOINT.
21521         (mono_breakpoint_trampoline_code): Removed.
21522         (mono_debugger_event_handler): The last argument is now a
21523         `guint32'.
21524         (mono_debugger_insert_breakpoint_full): Removed the
21525         `use_trampoline' argument.
21526         (mono_debugger_method_has_breakpoint): Likewise.
21527         (mono_debugger_trampoline_breakpoint_callback): Renamed to
21528         mono_debugger_breakpoint_callback(); take the method and
21529         breakpoint number as arguments.
21530
21531 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
21532
21533         * metadata.c: fix off by one when loading parameters attributes.
21534
21535 2003-04-24  Martin Baulig  <martin@ximian.com>
21536
21537         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
21538
21539 2003-04-24  Martin Baulig  <martin@ximian.com>
21540
21541         * mono-debug-debugger.c: Moved all code which interacts with the
21542         Mono Debugger here.
21543
21544         * debug-mono-symfile.c: This code now just deals with the symbol
21545         file itself, the debugger code is now in mono-debug-debugger.c.
21546
21547 2003-04-23  Martin Baulig  <martin@ximian.com>
21548
21549         * mono-debug.c (mono_debug_source_location_from_il_offset):
21550         New method; like mono_debug_source_location_from_address(), but
21551         takes an IL offset instead of a machine address.
21552
21553 2003-04-23  Martin Baulig  <martin@ximian.com>
21554
21555         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
21556         `line' field; this is now computed by the debugger.
21557
21558 2003-04-23  Martin Baulig  <martin@ximian.com>
21559
21560         * mono-debug.[ch]: New files.  This is the new debugging interface.
21561
21562         * mono-debug-debugger.[ch]: New files.  Moved all code which
21563         interacts with the Mono Debugger here.
21564
21565 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
21566
21567         * domain.c (mono_init): initialize mono_defaults.monitor_class
21568
21569 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
21570
21571         * reflection.c (method_encode_code): Add a spicy exception to help
21572         future compiler authors.
21573
21574 2003-04-21  Martin Baulig  <martin@ximian.com>
21575
21576         * icall.c
21577         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
21578         Make this work with relative pathnames; g_filename_to_uri() needs
21579         an absolute filename.
21580
21581 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
21582
21583         * icall.c: Track name changes in Object and ValueType.
21584
21585 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
21586
21587         * metadata.c (mono_type_stack_size): size should be a multiple of
21588         sizeof (gpointer)
21589
21590 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21591
21592         * gc.c:
21593         (internal_domain_finalize): moved into mono_domain_finalize. No need
21594         to create another thread because the finalizers will be run in the
21595         finalizer thread.
21596         
21597         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
21598         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
21599         to be run (MS does this too).
21600
21601 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
21602
21603         * object.c (mono_class_compute_gc_descriptor): Update comment.
21604
21605         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
21606
21607         * image.h: Add synchronized wrapper cache.
21608
21609         * image.c (do_mono_image_open): Initialize cache.
21610
21611         * reflection.c (create_dynamic_mono_image): Initialize cache.
21612
21613 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21614
21615         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
21616         ves_icall_System_Buffer_ByteLengthInternal.
21617
21618 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
21619
21620         * reflection.c: setup klass->nested_in earlier. Allow
21621         a dash in the assembly name.
21622
21623 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
21624
21625         * metadata.c (mono_type_to_unmanaged): dont access
21626         type->data.klass for MONO_TYPE_OBJECT
21627         (mono_type_to_unmanaged): consider System.Delegate class
21628
21629 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
21630
21631         * class.c: just setup supertypes in the proper place instead of
21632         initializing the full element class for arrays.
21633
21634 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
21635
21636         * class.c: ensure the element class of arrays is initialized.
21637         Setup the supertype info for array classes, too.
21638
21639 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
21640
21641         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
21642
21643 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21644
21645         * Makefile.am: re-added -m option when running cygpath. This way,
21646         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
21647         separator.
21648         * mono-config.c: same codepath for locating mono config file for WIN32
21649         and the rest.
21650         * assembly.c: if mono_assembly_setrootdir is called, don't override
21651         the value set.
21652
21653 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21654
21655         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
21656         MONO_ASSEMBLIES variable.
21657
21658 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
21659
21660         * icall.c: added Assembly::GetNamespaces() icall.
21661
21662 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21663
21664         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
21665
21666 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
21667
21668         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
21669         * object.c: fixed bug in the construction of vtable for proxies
21670
21671 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
21672
21673         * object.c (mono_array_new): Mark mono_array_new as an icall.
21674
21675 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21676
21677         * class.c: fixed test for public method when overriding interfaces.
21678         Closes bug #40970.
21679
21680 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
21681
21682         * appdomain.h, domain.c: added mono_domain_foreach() to
21683         be able to access the currently loaded appdomains.
21684         * object.c: make string interning work across sppdomains.
21685         Mark some functions for use as icalls.
21686
21687 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
21688
21689         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
21690
21691         * reflection.h reflection.c: Allocate long living data using 
21692         GC_MALLOC_ATOMIC so the collector does not need to scan it.
21693
21694         * reflection.c: Double the allocation size in streams instead of
21695         increasing it, to prevent unneccesary copying on large assemblies.
21696         
21697         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
21698         creation if the assembly does not have the Run flag set.
21699
21700 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
21701
21702         * class.h: avoid the C++ keywords in header files (Jerome Laban
21703         spotted and fixed this).
21704
21705 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21706
21707         * object.c:
21708         (mono_unhandled_exception): fill in the arguments for the
21709         UnhandledException event. Only trigger that event for the default
21710         domain (as MS does).
21711
21712 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
21713
21714         * object.c: Improve typed allocation stuff based on suggestions from
21715         Paolo. Also turn it on if the GC library supports it.
21716
21717 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
21718
21719         * object.c object.h class.h: Added experimental typed allocation
21720         facility using the interfaces in gc_gcj.h.
21721
21722         * os/gc_wrapper.h: Added new include files.
21723         
21724 2003-04-03  Martin Baulig  <martin@ximian.com>
21725
21726         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
21727         which is not yet enabled by default.
21728
21729         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
21730         functions.
21731         (mono_gc_lock, mono_gc_unlock): New static functions.
21732
21733         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
21734         functions; stop/start the world for the garbage collector.  This
21735         is using the windows API; we need to complete the SuspendThread()/
21736         ResumeThread() implementation in the io-layer to make this work on Unix.
21737         (mono_gc_push_all_stacks): New public function; tells the garbage
21738         collector about the stack pointers from all managed threads.
21739
21740 2003-04-03  Martin Baulig  <martin@ximian.com>
21741
21742         * object.h (MonoThread): Added `gpointer stack_ptr'.
21743
21744         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
21745
21746 2003-04-03  Martin Baulig  <martin@ximian.com>
21747
21748         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
21749
21750 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
21751
21752         * reflection.c (typebuilder_setup_fields): Initialize field.first and
21753         field.last.
21754
21755 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
21756
21757         * loader.c (mono_lookup_internal_call): Report the corlib that is
21758         out of sync.
21759
21760 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
21761
21762         * icall.c (ves_icall_type_GetTypeCode): fixed check for
21763         System.DBNull (it's class not valuetype).
21764
21765 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
21766
21767         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
21768         if the array method was already assigned a token (fixes bug#40646).
21769
21770 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
21771
21772         * reflection.c (mono_reflection_get_type): Attempt type resolve even
21773         if no assembly is given.
21774
21775 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
21776
21777         * metadata.h: Added the new tables.
21778
21779         * row-indexes.h: Added definitions for new tables.
21780
21781         * metadata.c: Add schemas for new tables, and add support for
21782         computing the sizes of them.
21783
21784         * class.c: Update for handling the new type cases.
21785
21786 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
21787
21788         * metadata.h (MONO_TYPE_IS_VOID): new macro
21789
21790 2003-03-31  Martin Baulig  <martin@ximian.com>
21791
21792         * threads.h (MonoThreadCallbacks): Added `thread_created'.
21793
21794         * threads.c (mono_thread_new_init): Call `thread_created' in the
21795         mono_thread_callbacks.
21796
21797 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
21798
21799         * loader.h: added marshalbyrefobject_class to mono_defaults
21800         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
21801         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
21802           generation of output parameters.
21803           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
21804         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
21805           contextbound and the target object belongs to the context of the caller.
21806         * object.h: added context and unwrapped_server variables in MonoRealProxy.
21807         * object.c: Implemented support for interfaces and abstract classes
21808           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
21809           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
21810
21811 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
21812
21813         * class.h class.c (mono_class_is_subclass_of): New function.
21814         
21815         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
21816         routines for most common case (calls from ArrayList::ToArray).
21817
21818         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
21819         routine so programs which call Environment::Exit() can be profiled.
21820
21821         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
21822         Added MONO_ARCH_SAVE_REGS.
21823
21824         * icall.c (ves_icall_type_is_subtype_of): Use new function.
21825
21826 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
21827
21828         * blob.h: Add a couple of new MonoType types definitions.
21829
21830         * tabledefs.h: Add a couple of new call convs.
21831
21832 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
21833
21834         * reflection.h (MonoReflectionDynamicAssembly): track changes in
21835         the layout of the class.
21836
21837         * reflection.c (alloc_table): double the size on overflow to avoid
21838         unnecessary copying.
21839
21840         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
21841         avoid filling out metadata tables and blobs. Also set mb->ilgen to
21842         null so it can be garbage collected.
21843         
21844 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
21845
21846         * reflection.c (mono_reflection_get_type): Return the resolved type
21847         only if it is in the assembly we searched.
21848
21849         * reflection.c (ensure_runtime_vtable): Initialize method slots.
21850
21851         * class.c (mono_class_setup_vtable): Set the slot of the overriding
21852         method.
21853
21854 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21855
21856         * appdomain.c:
21857         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
21858         the right one is 'file:///blah', but MS allows it.
21859         * assembly.c:
21860         (mono_assembly_open): allow 'file://blah'
21861
21862         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
21863
21864 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
21865
21866         * socket-io.c: fixes bug #40310.
21867
21868 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
21869
21870         * reflection.c (mono_reflection_parse_type): handle deeply nested
21871         types correctly.
21872
21873         * reflection.c (mono_image_create_token): Use unique token values
21874         since they will be put into a hash table.
21875
21876         * class.c (mono_class_setup_vtable): If a method occurs in more than
21877         one place in the vtable, and it gets overriden, then change the
21878         other occurances too.
21879
21880         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
21881         object as return type.
21882
21883 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
21884
21885         * icall.c: Deleted "ToString" implementation for double and float
21886         because they are full implemented in managed code.
21887
21888 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
21889
21890         * reflection.c, reflection.h: implemented and exported functions
21891         to retrieve info about custom attributes.
21892
21893 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21894
21895         * appdomain.c: moved Uri handling to assembly.c
21896         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
21897         work when using a file Uri in *nix and windows.
21898
21899         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
21900         GetReferencedAssemblies.
21901
21902 2003-03-18  Dick Porter  <dick@ximian.com>
21903
21904         * icall.c: Rename a couple of internal calls
21905
21906         * threads.c: Set the thread state to Stopped when a thread exits.
21907         Fixes bug 39377.
21908
21909 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
21910
21911         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
21912         New icall.
21913
21914         * object.c (mono_class_vtable): fix warning.
21915
21916 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
21917
21918         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
21919
21920         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
21921         memory.
21922         (method_encode_clauses): Create exception info structures in the right
21923         order.
21924         (mono_reflection_setup_internal_class): Initialize supertypes field.
21925
21926         * class.c object.c: Handle interfaces which implement other interfaces 
21927         correctly.
21928
21929         * class.h class.c: Move the supertypes array initialization code into 
21930         a separate function so it can be used for dynamic types too. Also call
21931         it earlier, in mono_class_init(), since it can be used before the
21932         type is initialized.
21933
21934 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21935
21936         * Makefile.am:
21937         * assembly.c:
21938         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
21939
21940         * appdomain.c:
21941         * appdomain.h:
21942         * marshal.c:
21943         * object.c: remove warnings.
21944
21945 2003-03-13  Martin Baulig  <martin@ximian.com>
21946
21947         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
21948         (MonoDebugLexicalBlockEntry): New types.
21949
21950         * debug-mono-symfile.c
21951         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
21952
21953 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21954
21955         * process.c: ret can be any non-zero value accroding to MS doc.
21956
21957 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
21958
21959         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
21960         fixing a warning for a miss-used prototype, would have cause
21961         random memory corruption.
21962
21963 2003-03-07  Martin Baulig  <martin@ximian.com>
21964
21965         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
21966         getting really annoying ....
21967
21968 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
21969
21970         * reflection.c (fixup_method): added support for array methods.
21971
21972 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
21973
21974         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
21975         (pointed out by Michael Adams).
21976
21977 2003-03-04  Dick Porter  <dick@ximian.com>
21978
21979         * icall.c: Temporarily reverted the Double and Single ToString()
21980         change, because it broke nunit.
21981
21982 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
21983
21984         * object.h, threads.h: make include files compatible with C++
21985         (patch by Jerome Laban <jlaban@wanadoo.fr>).
21986
21987 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
21988
21989         * icall.c: Erased ToString helper functions for Double and Single.
21990         Now, that implementations ar all in managed code (Double and Single
21991         Formatters).
21992
21993 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
21994
21995         * appdomain.c: Added method for initializing the default context of
21996         a domain. Added internal call for getting the default context.
21997         * appdomain.h: Added context variable in MonoDomain struct.
21998         * domain.c: mono_domain_set also sets the default context of the domain
21999         * icall.c: Mapped internal method InternalGetDefaultContext.
22000         * object.c: mono_object_get_virtual_method returns always a remoting
22001         wrapper if the object is a transparent proxy.
22002         mono_runtime_invoke_array: when creating an object by calling the
22003         constructor, if the created object is a proxy, then the constructor should
22004         be called using the a remoting wrapper.
22005
22006 2003-03-03  Dick Porter  <dick@ximian.com>
22007
22008         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
22009         variable so it compiles on solaris.  Problem spotted by
22010         Christopher Taylor <ct@cs.clemson.edu>
22011
22012 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22013
22014         * appdomain.c:
22015         (get_info_from_assembly_name): don't leak value.
22016
22017         * icall.c:
22018         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
22019         result.
22020
22021 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
22022
22023         * assembly.c: export mono_image_load_references ().
22024         * class.c: handle function pointers. mono_class_from_name() now
22025         supports nested type names directly.
22026
22027 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
22028
22029         * reflection.h reflection.c: Encode already created dynamic methods 
22030         and fields correctly as a DEF instead of a REF.
22031
22032         * reflection.c: Get rid of the force_ref argument to 
22033         mono_image_typedef_or_ref since it was wrong in the first place.
22034
22035         * string-icalls.c: add error checking to string constructors according
22036         to the MSDN docs.
22037
22038         * reflection.c: Emit types in the order their TypeBuilders were 
22039         created. Previously, a new table index was assigned to each type before
22040         the tables were emitted. This was wrong because the signature blob
22041         might already refer to a type by its original table index.
22042
22043 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
22044
22045         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
22046         change.
22047         
22048 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22049
22050         * Makefile.am: make assemblies dir have \ instead of / on windows.
22051
22052 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
22053
22054         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
22055         iterate over the NESTEDCLASS table using a linear search since the
22056         table is not guaranteed to be sorted by the secondary key.
22057
22058         * class.c (mono_class_create_from_typedef): fixed up call to
22059         mono_metadata_nesting_typedef.
22060         
22061 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
22062
22063         * marshal.c (mono_string_to_byvalstr): clear the memory as
22064         suggested by Jerome Laban <jlaban@wanadoo.fr>
22065
22066 2003-02-26  Dick Porter  <dick@ximian.com>
22067
22068         * process.c: Cope with padding in .rsrc blocks
22069
22070 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
22071
22072         * metadata.h: reverted the filter_len change, it breaks reflection
22073         
22074 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
22075
22076         * metadata.h: added a new field to store the filter_len
22077         
22078
22079 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
22080
22081         * reflection.c: handle custom attributes for types and members
22082         created with Reflection.Emit (bug#38422).
22083
22084 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
22085
22086         * reflection.c: define RTSpecialName automatically for constructors for
22087         compatibility with MS.NET.
22088
22089         * reflection.c (mono_reflection_create_runtime_class): initialize
22090         nested_in field of dynamically created classes.
22091
22092 2003-02-22  Martin Baulig  <martin@ximian.com>
22093
22094         * debug-mono-symfile.h: Incremented version number.
22095
22096 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
22097
22098         * object.h icall.c process.c: fix warnings.
22099
22100 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
22101
22102         * appdomain.h appdomain.c:
22103         (mono_domain_try_type_resolve): split the 
22104         name_or_tb argument into a name and a tb argument.
22105         (mono_domain_has_type_resolve): new function to check whenever the
22106         application has registered a TypeResolve event handler.
22107         
22108         * icall.c reflection.h reflection.c: move the type resolve logic into
22109         mono_reflection_get_type () so it will be invoked when 
22110         Assembly::GetType () is called.
22111
22112         * reflection.c:
22113         (mono_reflection_get_type): renamed to get_type_internal.
22114         (mono_reflection_get_type): fixed type name generation so it works 
22115         for nested types too.
22116         (mono_reflection_get_type): call has_type_resolve () to avoid the 
22117         costly type name generation if there is no resolve event handler.
22118
22119 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
22120
22121         * class.c, image.c: load exported types from file references.
22122
22123 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
22124
22125         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
22126           used to cache the managed methods used to create proxies and make 
22127           remote invocation of methods.
22128         * class.h: Added in MonoVTable a flag to indicate that a class needs 
22129           to be remotely created.
22130         * object.c: Modified the method mono_class_vtable(). It now initializes 
22131           the remote flag of the vtable. Modified mono_object_new_specific(), 
22132           so now it checks the remote flag.
22133         * icall.c: Added a couple of internal methods, one for enabling instance 
22134           creation interception for a type, and one for creating objects bypassing
22135           the remote check.
22136
22137 2003-02-18  Martin Baulig  <martin@ximian.com>
22138
22139         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
22140         New interncall to get a method's metadata token.
22141
22142         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
22143         New interncall for the debugger.
22144
22145 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
22146
22147         * class.c (mono_class_setup_vtable): allocate supertype array
22148
22149 2003-02-18  Martin Baulig  <martin@ximian.com>
22150
22151         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
22152
22153 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22154
22155         * reflection.c:
22156         (assembly_name_to_aname): jump over unknown properties (i've found
22157         something like: 'type, assembly, version=xxx, custom=null, public...',
22158         so now will ignore custom=null and still get the rest of the values).
22159
22160 2003-02-17  Dick Porter  <dick@ximian.com>
22161
22162         * threads.c: Have Thread.Start() wait for a semaphore to signal
22163         that the thread has set up all its local data.  This fixes bug
22164         34323, where Abort() raced the new thread's TLS data.
22165
22166         Also removes the handle_store() call from start_wrapper, because
22167         threads are now always created suspended and there is no longer a
22168         race between the parent and child threads to store the info.
22169
22170 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
22171
22172         * image.c: explain the #- heap issue in a message, hopefully
22173         avoiding FAQs on mono-list.
22174
22175 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22176
22177         * icall.c:
22178         (GetEntryAssembly): if the domain has not invoked
22179         AppDomain.ExecuteAssembly yet, return the assembly of the default
22180         AppDomain.
22181
22182 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
22183
22184         * class.c (mono_ldtoken): make it work in dynamic assemblies.
22185
22186 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
22187
22188         * metadata.c, reflection.c: simple speedup to type hash
22189         and equals code.
22190
22191 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
22192
22193         * image.c, image.h, class.c, assembly.c: move module loading
22194         to MonoImage. When loading metadata, consider alignemnet from
22195         the start of metadata, not from the metadata address in memory.
22196
22197 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
22198
22199         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
22200         AssemblyBuilder objects. Factored out custom attribute creation into
22201         a separate function.
22202         (create_custom_attr): new function to create custom attributes.
22203
22204 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
22205
22206         * Makefile.am: Got tired of typing the full pathname to pedump.
22207         Until there is another option, am installing this.
22208
22209 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
22210
22211         * class.c (class_compute_field_layout): always set field->parent 
22212         (mono_ldtoken): use mono_defaults.fieldhandle_class;
22213
22214 2003-02-11  Dick Porter  <dick@ximian.com>
22215
22216         * threads-types.h:
22217         * monitor.c: Rewrote Monitor, making lock much faster and
22218         Pulse/Wait work as specified.  Also uses much fewer handles, and only
22219         creates them as needed.
22220
22221         * exception.c: Added SynchronizationLockException
22222
22223         * threads.c: Deleted old Monitor implementation.  The new one is
22224         in a new file.
22225
22226 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
22227
22228         * class.c: handled TypedReference type code. Set the correct size for
22229         class data. Setup interface_offsets for interface classes, too.
22230
22231 2003-02-09  Martin Baulig  <martin@ximian.com>
22232
22233         * debug-mono-symfile.h: Reflect latest symbol writer changes.
22234
22235 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
22236
22237         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
22238         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
22239         * object.c: fixed mono_object_get_virtual_method () for interfaces.
22240         * verify.c: check for code that runs after the end of the method.
22241
22242 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
22243
22244         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
22245         "System.Math::Round2".
22246         * sysmath.h: Added Floor, Round and Round2 definitions.
22247         * sysmath.c: Modified certain functions that were not 100% compliant
22248         with MS.NET (math precision) and added the implementation of Floor,
22249         Round and Round2.
22250
22251 2003-02-07  Martin Baulig  <martin@ximian.com>
22252
22253         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
22254
22255 2003-02-07  Martin Baulig  <martin@ximian.com>
22256
22257         * debug-mono-symfile.c: Reflected latest symwriter changes.
22258         (mono_debug_create_mono_symbol_file): Removed.
22259         (mono_debug_open_mono_symbol_file): Take an argument which
22260         specifies whether to create a dynamic symbol file.
22261
22262 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
22263
22264         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
22265
22266 2003-02-05  Martin Baulig  <martin@ximian.com>
22267
22268         * reflection.c (mono_image_build_metadata): Make this public,
22269         protect it against being called multiple times, don't create
22270         resources and don't build the compressed metadata here.
22271         (mono_image_create_pefile): Do this here.
22272
22273         * icall.c
22274         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
22275
22276 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22277
22278         * socket-io.c: fixed bug #36322.
22279
22280 2003-02-06  Piers Haken <piersh@friskit.com>
22281
22282         * appdomain.[ch]:
22283         * class.h:
22284         * debug-mono-symfile.c:
22285         * icall.c:
22286         * loader.c:
22287         * mono-config.c:
22288         * monosn.c:
22289         * reflection.c:
22290         * socket-io.c: warning cleanups
22291
22292 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
22293
22294         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
22295         function. works like remoting invoke, but does a check for the Proxy first.
22296
22297 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
22298
22299         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
22300
22301 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
22302
22303         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
22304         array of pointers.
22305         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
22306         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
22307
22308         * object.c (mono_store_remote_field_new): used by the new jit
22309         instead of mono_store_remote_field
22310         (mono_load_remote_field_new): used by the new jit
22311         instead of mono_load_remote_field
22312
22313 2003-02-05  Patrik Torstensson
22314
22315         * appdomain.c: changed unload to take the domain id instead
22316         of domain
22317         
22318         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
22319
22320
22321 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22322
22323         * appdomain.c: don't look for assemblies in ApplicationBase if
22324         PrivateBinPathProbe is set.
22325
22326 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22327
22328         * object.c: make the first argument in main_args contain the absolute
22329         path to the assembly. Fixes bug #37511.
22330
22331 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22332
22333         * icall.c: get correct UTC offset for countries not using daylight
22334         time saving. Fixes bug #30030.
22335
22336 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22337
22338         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
22339         and 1 are the family).
22340
22341 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
22342
22343         * icall.c (ves_icall_InternalExecute): removed wrong assertion
22344
22345         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
22346
22347 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
22348
22349         * reflection.c: added support for SignatureHelper tokens, which is
22350         needed by the Calli opcode.
22351
22352         * reflection.h: track changes to SignatureHelper class.
22353
22354         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
22355
22356 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22357
22358         * appdomain.c: fixed loading assemblies from PrivateBinPath.
22359
22360 2003-02-03  Patrik Torstensson
22361         * appdomain.[c|h], domain.c : 
22362          - Added support for getting a domain via domain id
22363          - Support for setting and getting domain from System.AppDomain 
22364            (used in cross appdomain channel)
22365          - Added support for get/set for a MonoAppContext on a thread 
22366            (Context class in System.Runtime.Remoting.Contexts),
22367          - Removed hack in Get/SetData and ExecuteAssembly.
22368         
22369         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
22370         the managed world to get control when a proxy is created.
22371
22372         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
22373         
22374 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
22375
22376         * icall.c
22377         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
22378         Populate the codebase field as well.
22379
22380 2003-02-02  Martin Baulig  <martin@ximian.com>
22381
22382         * debug-mono-symfile.c
22383         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
22384         (mono_debug_symfile_add_method): Allow interncalls.
22385
22386 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22387
22388         * icall.c: throw parse exception if strtod fails or the string is empty.
22389
22390 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
22391
22392         * marshal.c: handle object type separately from defined
22393         class types.
22394
22395 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
22396
22397         * marshal.c: handle NATIVE_LPSTR for strings when it's
22398         explicitly specified.
22399
22400 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
22401
22402         * reflection.c, reflection.h, icall.c: setup the reflection
22403         handle cache for ModuleBuilders and AssemblyBuilders.
22404
22405 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
22406
22407         * reflection.c (reflection_methodbuilder_to_mono_method): set
22408         pinvoke flag
22409
22410 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22411
22412         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
22413
22414 2003-01-29  Dick Porter  <dick@ximian.com>
22415
22416         * threads.c: No need for the fake_thread kludge now that Thread
22417         doesn't run a class constructor
22418         
22419 2003-01-29  Dick Porter  <dick@ximian.com>
22420
22421         * threads.c: Use g_direct_hash instead of the rather bogus
22422         g_int_hash
22423
22424 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
22425
22426         * marshal.c (mono_marshal_get_native_wrapper): add check for null
22427         (fix pinvoke12.exe)
22428         (mono_marshal_get_struct_to_ptr): generate valid IL code
22429         (mono_marshal_get_ptr_to_struct): generate valid IL code
22430         (*): correctly set sig->pinvoke, we need to memdup the signature
22431         to do that
22432
22433 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
22434
22435         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
22436         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
22437
22438 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
22439
22440         * profiler.c: provide more callers information.
22441
22442 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
22443
22444         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
22445
22446         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
22447
22448         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
22449
22450 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
22451
22452         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
22453         exception instead of going into an infinite loop on dates which it 
22454         can't yet handle.
22455
22456         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
22457         out-of-range exception if needed.
22458
22459         * class.c (mono_class_setup_vtable): allow a virtual method to provide
22460         an implementation for an interface method and to override an inherited
22461         method at the same time. 
22462         Imagine a scenario when a virtual method is used to override a
22463         virtual abstract method in a parent class, and this same method 
22464         provides an implementation for an method inherited from an interface. 
22465         In this case, the interface resolution code will set im->slot, which 
22466         means that the virtual method override pass will skip this method 
22467         which means a pointer to the abstract method inherited from the parent
22468         will remain in the vtable of this non-abstract class.
22469
22470         * class.c: (mono_class_setup_vtable): continue search for a real 
22471         method if only an abstract method is found.     
22472
22473 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
22474
22475         * reflection.c: add size to encoding for ByValStr and ByValArray
22476         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
22477
22478 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
22479
22480         * class.c (mono_class_setup_vtable): pass the override info as an
22481         argument.
22482
22483         * class.c (mono_class_setup_vtable): set the slot of overriding methods
22484         correctly.
22485         
22486         * reflection.c (ensure_runtime_vtable); add support for method 
22487         overrides.
22488         
22489 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
22490
22491         * reflection.c (resolution_scope_from_image): Hack to work to work with
22492         dynamic assemblies.
22493
22494         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
22495         added a 'force_ref' argument to force this function to allways return 
22496         a TypeRef. This is needed by mono_image_get_memberref_token ().
22497         
22498 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
22499
22500         * reflection.c (mono_image_get_type_info): interfaces really don't have
22501         a parent.
22502
22503         * reflection.c (mono_image_basic_init): fill out missing fields of
22504         image structure.
22505
22506         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
22507         dynamic assemblies. This is required so dynamic assemblies show up in
22508         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
22509         Type::GetType() etc. This is consistent with MS behaviour.
22510
22511         * image.c image.h reflection.c: add newly created classes to the name 
22512         cache so mono_class_get () will find them.      
22513
22514 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
22515
22516         First part of changes to get IKVM.NET running under mono.
22517         
22518         * appdomain.h, appdomain.c: added new function 
22519         mono_domain_try_type_resolve() which will emit TypeResolve events. 
22520         This function will call AppDomain::DoTypeResolve to do the actual work.
22521
22522         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
22523         moved existing code dealing with dynamic tokens to a new function 
22524         called mono_reflection_lookup_dynamic_token (). This function will 
22525         raise TypeResolve events when appropriate. Since reflection.c is not 
22526         part of libmetadata, a new hook function called 
22527         mono_lookup_dynamic_token() is added to class.c which will call this.
22528
22529         * assembly.h assembly.c: make the invoke_load_hook function public,
22530         so it can be called for dynamic assemblies.
22531
22532         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
22533
22534         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
22535         type isn't found.
22536
22537         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
22538         MonoGHashTable, since it contains pointers to objects which the GC 
22539         needs to track.
22540
22541         * assembly.c (search_loaded): remove unused variable.
22542         
22543 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
22544
22545         * object.c: fixed issue exposed by gcc-generated IL programs
22546         that use RVA data for pointers.
22547
22548 2003-01-25  Martin Baulig  <martin@ximian.com>
22549
22550         * threads.c (start_wrapper): Moved the initialization of
22551         `start_func' above the mono_new_thread_init() call to which we
22552         pass it as argument.
22553
22554 2003-01-24  Martin Baulig  <martin@ximian.com>
22555
22556         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
22557         the MonoThread pointer.
22558
22559 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
22560
22561         * icall.c: Rename `PowImpl' to Pow.
22562
22563 2003-01-23  Dick Porter  <dick@ximian.com>
22564
22565         * threads.c (start_wrapper): Create a Thread object if needed, so
22566         the Main() thread can do the class initialisation in a subthread
22567         that has been set up to allow managed code execution.
22568
22569         Pass the thread ID instead of the MonoThread pointer to the thread
22570         start and attach callbacks.  This change is required, because the
22571         jit thread start callback must be called _before_ the Thread
22572         object can be created.
22573         
22574         (mono_thread_init): Removed much object creation code that is no
22575         longer needed.  No managed code is called from here now.
22576
22577         * object.c (mono_runtime_exec_managed_code): Create a subthread
22578         for Main, and call back to the runtime to use it.
22579         Set the exit code when Main exits.
22580
22581         * gc.c: Make sure domain finalisation happens in a subthread.
22582         Re-enable threaded GC, fixing bug 31333 (again).
22583
22584         * environment.c: System.Environment internall calls (so far just
22585         ExitCode is here, the others are still in icall.c)
22586
22587         * appdomain.c (mono_runtime_cleanup): All threads running managed
22588         code should have finished before mono_runtime_cleanup() is
22589         reached, so no need to clean up threads.
22590
22591 2003-01-22  Martin Baulig  <martin@ximian.com>
22592
22593         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
22594         `gpointer func' arguments.      
22595         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
22596         but added `MonoThread *thread' argument.
22597         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
22598
22599         * threads.c (mono_new_thread_init): Added `gpointer func' argument
22600         and pass it to the mono_thread_start_cb callback.
22601         (mono_install_thread_callbacks): New public function to install a
22602         set of callbacks which are set by the debugger.
22603         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
22604
22605 2003-01-22  Martin Baulig  <martin@ximian.com>
22606
22607         * Makefile.am: Install debug-mono-symfile.h.
22608
22609 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
22610
22611         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
22612
22613 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
22614
22615         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
22616         * class.c (mono_ptr_class_get): correctly set access levels of pointers
22617         (mono_array_class_get): correctly set access levels of arrays
22618
22619 2003-01-20      Patrik Torstensson
22620         * image.h (MonoAssemblyName): changed major, minor, build, revision
22621         from signed to unsigned.
22622
22623 2003-01-20  sean kasun <skasun@azstarnet.com>
22624
22625         * reflection.c (load_cattr_value): Now this handles
22626         MONO_TYPE_SZARRAY.  Fixes bug #35629
22627
22628 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
22629
22630         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
22631         integer value
22632
22633 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22634
22635         * decimal.c: fixed bug #26056.
22636
22637 2003-01-17  Martin Baulig  <martin@ximian.com>
22638
22639         * gc.c: Raise an ExecutionEngineException instead of using g_error().
22640
22641 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22642
22643         * exception.[ch]:
22644         (mono_get_exception_type_initialization): new function.
22645
22646         * object.c: throw a TypeInitializationException when an exception is
22647         thrown invoking the class constructor.
22648
22649 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22650
22651         * reflection.c: fixed attribute reading.
22652
22653 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22654
22655         * icall.c:
22656         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
22657         provided, look for the type in the calling assembly and then in
22658         mscorlib; if the assembly name is provided, only try that one.
22659
22660 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
22661
22662         * object.c: register the vtable before there is a chance it's
22663         queried again recursively.
22664
22665 2003-01-13  Duncan Mak  <duncan@ximian.com>
22666
22667         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
22668         gc-internal.h. 
22669         
22670 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
22671
22672         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
22673
22674 2003-01-11  Martin Baulig  <martin@ximian.com>
22675
22676         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
22677         this to 20 for the release.
22678
22679 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
22680
22681         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
22682
22683         * loader.c (mono_method_get_marshal_info): bug fix
22684
22685         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
22686         structures with explicit layout
22687
22688 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
22689
22690         * profiler.c: made the output more readable (and sorted). 
22691         Added caller information for the allocation profiler.
22692
22693 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
22694
22695         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
22696
22697 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22698
22699         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
22700         to get value types.
22701         
22702 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
22703
22704         * object.c, profiler.h, profiler.c, profiler-private.h:
22705         Added object allocation profiler.
22706
22707 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
22708
22709         * reflection.h, reflection.c: handle global methods.
22710         Compress blob entries.
22711
22712 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
22713
22714         * marshal.c: fix compilation.
22715
22716 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
22717
22718         * loader.c (mono_method_get_marshal_info): impl.
22719
22720         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
22721
22722 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22723
22724         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
22725         for reference types.
22726
22727 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
22728
22729         * loader.c: fixed off by one error in loaded parameter names.
22730
22731 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
22732
22733         * marshal.c (mono_marshal_get_icall_wrapper): like
22734         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
22735         instead of a MonoMethod.
22736
22737 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22738
22739         * decimal.c: fixed bug #36537.
22740
22741 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
22742
22743         * marshal.c: throw a missing method exception if a
22744         P/Invoke method is not found.
22745
22746 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
22747
22748         * icall.c: allow a null this for constructors.
22749
22750 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
22751
22752         * icall.c: raise the proper exceptions if the arguments to the
22753         internal Invoke are incorrect.
22754
22755 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
22756
22757         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
22758
22759 2003-01-03  Martin Baulig  <martin@ximian.com>
22760
22761         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
22762
22763 2002-12-31  Martin Baulig  <martin@ximian.com>
22764
22765         * debug-mono-symfile.c: Completely rewrote the type section.
22766         Instead of using individual malloc()ed fields, we use one big
22767         continuous memory area and offsets into this area.
22768         See the comments in the source code for details.
22769
22770 2002-12-30  Martin Baulig  <martin@ximian.com>
22771
22772         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
22773
22774 2002-12-30  Martin Baulig  <martin@ximian.com>
22775
22776         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
22777         line number table in this data blob instead of using an external
22778         pointer.
22779
22780 2002-12-28  Martin Baulig  <martin@ximian.com>
22781
22782         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
22783
22784 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
22785
22786         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
22787         as a boxed return type.
22788
22789 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
22790
22791         * appdomain.c
22792         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
22793         g_build_filename to properly get separators on the filename created.
22794
22795         * object.h: Small change, introduce MonoMarshalByRefObject to
22796         track the layout of that structure in the C# universe as we make
22797         changes there.
22798
22799 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
22800
22801         * object.c: removed assert to allow static fields on interfaces.
22802         * loader.c: a TypeSpec may be used for any type, not just arrays.
22803
22804 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
22805
22806         * class.c, class.h: added mono_class_array_element_size ().
22807         Ignore static methods in interfaces.
22808
22809 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22810
22811         * threads.c: fixed the build under cygwin.
22812
22813 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
22814
22815         * reflection.c: handle nullref constants. Allocate keys for
22816         reflection handles with the GC.
22817
22818 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
22819
22820         * threads.c, threads.h: added mono_thread_get_abort_signal()
22821         to get a suitable signal for thread abort.
22822
22823 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
22824
22825         * metadata.c: fix handling of ExportedType table.
22826
22827 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22828
22829         * icall.c: added WriteWindowsDebugString internal call.
22830
22831 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22832
22833         * reflection.h: added fields to match C# implementation.
22834
22835 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22836
22837         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
22838
22839 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
22840
22841         * gc.h, gc-internal.h: Rename header for GC internal calls to
22842         gc-internal.h from gc.h as to not clash with Boehm GC having its
22843         header installed as <gc.h> in outside include paths.
22844         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
22845         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
22846
22847 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22848
22849         * icall.c: assign minor, build and revision in FillName.
22850
22851 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
22852
22853         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
22854         Added support for running code generated by Reflection.Emit.
22855
22856 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22857
22858         * appdomain.c: check for NULL argument in LoadFrom.
22859
22860 2002-12-10  Dick Porter  <dick@ximian.com>
22861
22862         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
22863
22864 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22865
22866         * appdomain.c: fix buglet when building exe file name.  Handle full
22867         assembly name (needed after latest changes to AssemblyName).
22868         * image.c:
22869         (mono_image_close): free some hashtables.
22870
22871 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
22872
22873         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
22874         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
22875         on some systems (redhat 7.3) 
22876
22877 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
22878
22879         * threads.c: delete the critical section of a sync block,
22880         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
22881
22882 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
22883
22884         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
22885
22886 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22887
22888         * appdomain.[ch]: handle the assembly preload event to try loading the
22889         assemblies using the paths we have in the current domain.
22890
22891         * assembly.[ch]: created an assembly preload hook that is called to try
22892         loading the assembly by other means that the ones provided here.
22893
22894         * domain.c: initialize the domain search path.
22895
22896         From now on, assemblies (TODO: except corlib and System) are loaded
22897         according to these rules when using mono_assembly_load ():
22898
22899                 1. It tries to load the assembly from the ApplicationBase
22900                 of the current domain appending .dll and .exe (TODO: have to
22901                 try loading from name/name.dll and name/name.exe).
22902
22903                 2. It tries the search path specified in PrivateBinPath for the
22904                 current domain (if any).
22905
22906                 3. Previous behavior.
22907
22908 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
22909
22910         * icall.c: implemented GetInterfaceMap() related icall.
22911         * domain.c, loader.h: load MethodInfo in mono_defaults.
22912
22913 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
22914
22915         * gc.c: disable the finalizer thread for now, untill all the issues
22916         with it are resolved.
22917
22918 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
22919
22920         * string-icalls.c: handle embedded nulls in string ctor when the
22921         length is specified.
22922
22923 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
22924
22925         * class.c: look for explicit interface implementation in parent
22926         classes, too.
22927
22928 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
22929
22930         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
22931
22932 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
22933
22934         * gc.c: protect handles with a critical section.
22935
22936 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22937
22938         * icall.c:
22939         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
22940         parameters. If no assembly specified, try getting the type from all
22941         the assemblies in the current domain, else, load the assembly and get
22942         the type from it.
22943
22944 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22945
22946         * marshal.c: applied patch from Aleksey Demakov that fixes
22947         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
22948
22949 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22950
22951         * icall.c: fixed get_location.
22952
22953 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
22954
22955         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
22956         declarations to make it work with older gcc. 
22957
22958         * loader.c (mono_get_method): set signature->pinvoke for native calls
22959
22960 2002-11-20  Dick Porter  <dick@ximian.com>
22961
22962         * threads.c (mono_thread_init): Set the main thread's handle
22963
22964 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
22965
22966         * gc.c: allow compilation without GC support. Changed to match the
22967         mono coding style.
22968
22969 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
22970
22971         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
22972
22973 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
22974
22975         * reflection.c: set a public key token on the core assemblies.
22976
22977 2002-11-18  Dick Porter  <dick@ximian.com>
22978
22979         * threads.c: Split out some thread initialisation so that other
22980         files can set the start callback function.
22981
22982         * gc.c: Run finalisers in a separate thread, to avoid stack
22983         overflow.  Fixes bug 31333.
22984
22985         * appdomain.c: Set up GC finalisation thread.
22986
22987         * reflection.c: 
22988         * object.c: 
22989         * domain.c: Use gc.h macros for GC_malloc
22990         
22991 2002-11-15  Dick Porter  <dick@ximian.com>
22992
22993         * threadpool.c: 
22994         * threads.c:
22995         * appdomain.c: Removed mono_runtime_init_with_attach(),
22996         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
22997         merging the extra parameter with the existing function.  Removed
22998         unneeded code in mono_thread_attach().
22999
23000 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
23001
23002         * image.c (mono_image_loaded_by_guid): a method to get loaded
23003         images by guid. 
23004         (load_metadata_ptrs): we store the guid as string.
23005
23006 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
23007
23008         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
23009
23010         * metadata.c (mono_guid_to_string): imported method form Zoltan
23011         Varga (slightly modified)
23012
23013         * assembly.c (mono_assembly_open): load precompiled code
23014
23015         * loader.h (MonoMethod): we store the method token for use in the
23016         aot compiler. 
23017
23018 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23019
23020         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
23021         the hook function called when an assembly is loaded.
23022         
23023         * domain.c: Modified file.
23024         (mono_domain_assembly_load): removed hash table insertion of assemblies.
23025
23026         Fixes bug #33196.
23027
23028 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
23029
23030         * reflection.c: Map PEFileKind to the value expected by the WinNT
23031         image loader. 
23032
23033 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23034
23035         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
23036         Read until the buffer is filled completely.
23037
23038 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23039
23040         * icall.c: implemented MonoType.InternalGetEvent ().
23041
23042 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23043
23044         * appdomain.c: implemented InitAppDomainSetup. Delayed
23045         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
23046         the entry_assembly.
23047
23048         * assembly.c: base_dir is now an absolute path ending with
23049         G_DIR_SEPARATOR.
23050
23051         * icall.c: modified get_location according to the above changes.
23052
23053         * object.c: init AppDomain.SetupInformation for the default domain after
23054         we have the entry assembly.
23055
23056         * domain.c: when unloading a domain, setup = NULL.
23057
23058 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
23059
23060         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
23061
23062 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
23063
23064         * object.h, object.c: introduced mono_object_get_virtual_method ()
23065         to lookup the method invoked on an object when a callvirt is done on
23066         a method.
23067         * icall.c: make MethodInfo::Invoke() always do a virtual call.
23068
23069 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23070
23071         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
23072         current domain when loaded an assembly and failed to load it.
23073
23074         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
23075
23076 2002-10-31  Dick Porter  <dick@ximian.com>
23077
23078         * icall.c: 
23079         * file-io.h: 
23080         * file-io.c: Return the error status in a parameter, as the
23081         GetLastError() value has long since been blown away if we try and
23082         look it up in a subsequent internal call invocation.  Delete the
23083         GetLastError() internal call, because it's useless.
23084
23085 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
23086
23087         * class.[ch]: added cast_class to fix bug 29517
23088
23089 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
23090
23091         * marshal.c: create valid IL code in the filter clause:
23092         the new JIT is less forgiving:-)
23093
23094 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23095
23096         * icall.c: removed get_property internal call.
23097
23098 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
23099
23100         * appdomain.h domain.c: Added an ID to appdomains.
23101         
23102         * threads.c threads.h icall.c: Implement icall
23103         Thread:GetDomainID(), and remove unused icall 
23104         CurrentThreadDomain_internal.
23105
23106 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23107
23108         * icall.c: Don't recurse through the base types in GetConstructor.
23109         Fixes bug #32063. 
23110
23111 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
23112
23113         * mempool.h, mempool.c: added mono_mempool_empty() and
23114         mono_mempool_stats().
23115
23116 2002-10-23  Dick Porter  <dick@ximian.com>
23117
23118         * file-io.c: 
23119         * file-io.h: 
23120         * icall.c: Added MonoIO.GetFileType internal call
23121
23122 2002-10-17  Dick Porter  <dick@ximian.com>
23123
23124         * appdomain.c (mono_runtime_cleanup): Don't signal the async
23125         delegate semaphore before waiting for all threads to finish,
23126         because new threads can also call async delegates.  Fixes bug
23127         32004.
23128
23129         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
23130         of 3 seconds, in case another async job is queued.  (This part is
23131         needed because the bug fix reintroduced the 3s exit lag.)  This
23132         makes the mono_runtime_shutdown flag superfluous.
23133
23134 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
23135
23136         * reflection.c: include ehader size in method section headers.
23137         Really check for suplicated modules entries.
23138
23139 2002-10-17  Martin Baulig  <martin@gnome.org>
23140
23141         * debug-mono-symfile.c: Added back support for locals.
23142
23143 2002-10-14  Martin Baulig  <martin@gnome.org>
23144
23145         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
23146         MONO_TYPE_VOID.
23147
23148 2002-10-14  Martin Baulig  <martin@gnome.org>
23149
23150         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
23151         mono_class_get() instead of looking in the class cache. 
23152
23153 2002-10-13  Martin Baulig  <martin@gnome.org>
23154
23155         * debug-mono-symfile.c: Set version number to 28, include the
23156         signature in method names.
23157
23158 2002-10-13  Martin Baulig  <martin@gnome.org>
23159
23160         * debug-mono-symfile.h: Set version number to 27.
23161
23162 2002-10-11  Martin Baulig  <martin@gnome.org>
23163
23164         * gc.c: Don't register/unregister NULL pointers as disappearing links.
23165
23166 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
23167
23168         * metadata.c, metadata.h: added helper function to allocate signatures.
23169
23170 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23171
23172         * icall.c: added internal call to get the location of machine.config.
23173
23174 2002-10-08  Martin Baulig  <martin@gnome.org>
23175
23176         * debug-mono-symfile.c: Ignore classes with a pending init for the
23177         moment.
23178
23179 2002-10-03  Dick Porter  <dick@ximian.com>
23180
23181         * threads.c: Freebsd pthread_t is a pointer
23182
23183 2002-10-03  Dick Porter  <dick@ximian.com>
23184
23185         * socket-io.c: Implemented GetHostName_internal
23186
23187 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23188
23189         * mono-config.c:
23190         (mono_config_parse_file): don't leak the text.
23191
23192 2002-10-02  Martin Baulig  <martin@gnome.org>
23193
23194         * debug-mono-symfile.c: Added support for methods.
23195
23196 2002-10-01  Martin Baulig  <martin@gnome.org>
23197
23198         * debug-mono-symfile.c: Don't emit methods and line numbers for
23199         the dynamic symbol file, just write the type table.  We can easily
23200         have an external helper program which creates a symbol file for an
23201         IL file.        
23202
23203 2002-10-01  Dick Porter  <dick@ximian.com>
23204
23205         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
23206         Only add the handle to the cleanup array when we're about to
23207         launch the thread.  Bug 31425 deadlocked when the test was run on
23208         mono under w32.
23209
23210 2002-10-01  Martin Baulig  <martin@gnome.org>
23211
23212         * debug-mono-symfile.c: Added support for properties.
23213
23214 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
23215
23216         * reflection.c: unaligned store fix from Mark Crichton
23217         <crichton@gimp.org>.
23218
23219 2002-09-27  Martin Baulig  <martin@gnome.org>
23220
23221         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
23222         New interncall.
23223
23224 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
23225
23226         * assembly.h, assembly.c: use a sane API to hook into the assembly
23227         loading process instead of a useless special-purpouse hack
23228         (ngen needs a hook, too, for example).
23229
23230 2002-09-27  Dick Porter  <dick@ximian.com>
23231
23232         * threads.c (mono_thread_init): Call GetCurrentProcess() so
23233         io-layer can set up some process handle info.  Not needed on w32,
23234         but doesn't hurt either.
23235
23236         * process.c: Pass the program name in the second parameter to
23237         CreateProcess, so the path is searched.  Include the working
23238         directory. Implemented process name, process enumeration, and some
23239         process detail internal calls.
23240         
23241         * icall.c: Added internal calls for process lookup, and some
23242         process details
23243
23244 2002-09-26  Martin Baulig  <martin@gnome.org>
23245
23246         * assembly.c (mono_install_open_assembly_hook): New global
23247         function to install a function to be invoked each time a new
23248         assembly is loaded.
23249         (mono_assembly_open): Run this callback function if set.
23250
23251         * debug-mono-symfile.c: Put back line numbers for the dynamic
23252         symbol file and also record the .il file as source file.  This
23253         allows us to install the temporary symbol file as `file.dbg' just
23254         like a compiler-generated one.
23255
23256 2002-09-26  Nick Zigarovich <nick@chemlab.org>
23257
23258         * Corrected typo in gc.c (BOHEM vs BOEHM).
23259
23260 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23261
23262         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
23263         GetProperties. Also avoid calling g_slist_length in GetProperties and
23264         GetMethods.
23265
23266 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
23267
23268         * reflection.c: avoid unaligned stores (bug spotted by
23269         Mark Crichton  <crichton@gimp.org>).
23270
23271 2002-09-25  Martin Baulig  <martin@gnome.org>
23272
23273         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
23274         instead of guint64 for addresses and added prologue/epilogue info.
23275
23276 2002-09-25  Martin Baulig  <martin@gnome.org>
23277
23278         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
23279         store line number info.  For the dynamic symbol file, we only need
23280         to provide the JIT generated dynamic line number info for the dynamic
23281         symbol file.
23282
23283 2002-09-25  Martin Baulig  <martin@gnome.org>
23284
23285         * debug-mono-symfile.h: Incremented version number.
23286
23287 2002-09-24  Martin Baulig  <martin@gnome.org>
23288
23289         * class.c (mono_debugger_class_init_func): New global function
23290         pointer variable.
23291         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
23292         call it.
23293
23294         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
23295         function.  This is called via the mono_debugger_class_init_func
23296         hook to add all types to the dynamic type table.
23297         (ves_icall_MonoDebugger_GetType): New interncall to get a class
23298         from its metadata token.
23299
23300         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
23301         New interncall for the debugger.
23302
23303 2002-09-24  Nick Drochak <ndrochak@gol.com>
23304
23305         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
23306         before using it in case it is null.
23307         
23308 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
23309
23310         * metadata.c: allow custom modifiers in local var signatures
23311         (bug spotted by Zoltan Varga).
23312
23313 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
23314
23315         * class.c: deal with the <Module> class that may have a NULL vtable.
23316         Eliminate warnings.
23317
23318 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
23319
23320         * image.c, image.h: more strong name helpers.
23321         * monosn.c: more work: convert pem keys to cryptoapi format.
23322
23323 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
23324
23325         * string-icalls.c: speedup IndexOf.
23326
23327 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
23328
23329         * icall.c: updates from Zoltan.2.Varga@nokia.com.
23330
23331 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
23332
23333         * icall.c: cleanup: use mono_object_domain ().
23334
23335 2002-09-23  Martin Baulig  <martin@gnome.org>
23336
23337         * debug-mono-symfile.c: Improved type support.
23338
23339 2002-09-22  Martin Baulig  <martin@gnome.org>
23340
23341         * debug-mono-symfile.c: Added support for reference types and strings.
23342
23343 2002-09-22  Martin Baulig  <martin@gnome.org>
23344
23345         * debug-mono-symfile.c: Started to work on the type table.
23346
23347 2002-09-21  Martin Baulig  <martin@gnome.org>
23348
23349         * debug-mono-symfile.c: Largely reworked the symbol table format.
23350         The symbol table is now incrementally updated each time a new
23351         method is added.  We're now also using our own magic and version
23352         so that you don't need to recompile all your classes if the
23353         dynamic table changes.
23354         (mono_debug_update_mono_symbol_file): Removed.
23355         (mono_debug_symfile_add_method): New function to add a method.
23356
23357 2002-09-21  Martin Baulig  <martin@gnome.org>
23358
23359         * icall.c
23360         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
23361         New interncall.
23362
23363         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
23364         New interncall to get a method from its metadata token.
23365
23366 2002-09-21  Martin Baulig  <martin@gnome.org>
23367
23368         * debug-mono-symfile.c: Create type table.
23369
23370 2002-09-20  Martin Baulig  <martin@gnome.org>
23371
23372         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
23373
23374 2002-09-20  Martin Baulig  <martin@gnome.org>
23375
23376         * debug-mono-symfile.c: Provide information about params and locals.
23377
23378 2002-09-20  Martin Baulig  <martin@gnome.org>
23379
23380         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
23381         New interncall.
23382
23383         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
23384         interncall to get a method from its metadata token.
23385
23386 2002-09-20  Martin Baulig  <martin@gnome.org>
23387
23388         * debug-mono-symfile.c: Added a few checks for method->header
23389         being non-NULL.  This should never happen, but for the moment
23390         let's use a g_warning() rather than a g_assert().
23391
23392 2002-09-19  Mark Crichton  <crichton@gimp.org>
23393
23394         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
23395         even if support for it isn't present.  Added an #ifdef to fix this.
23396
23397         * socket-io.c: Added checks back for Solaris support.
23398
23399 2002-09-19  Martin Baulig  <martin@gnome.org>
23400
23401         * debug-mono-symfile.c (read_string, write_string): Reflect latest
23402         changes in the symbol file format.
23403
23404 2002-09-18  Martin Baulig  <martin@gnome.org>
23405
23406         * debug-mono-symfile.c: Set version number to 21.
23407
23408 2002-09-18  Dick Porter  <dick@ximian.com>
23409
23410         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
23411         on netbsd.  Fixes bug 30051.
23412
23413 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23414
23415         * reflection.c:
23416         (set_version_from_string): little fix.
23417
23418 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
23419
23420         * monosn.c, Makefile.am: added strong name utility.
23421         * reflection.h, reflection.c: implemented delayed signing,
23422         locale, version and hash id assembly attributes.
23423
23424 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
23425
23426         * loader.c, metadata.c: load param attributes in signatures.
23427
23428 2002-09-16  Martin Baulig  <martin@gnome.org>
23429
23430         * debug-mono-symfile.c: Added string table with all method names.
23431
23432 2002-09-14  Martin Baulig  <martin@gnome.org>
23433
23434         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
23435         fast method lookup.
23436
23437 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
23438
23439         * reflection.c: record the public key token of referenced assemblies.
23440
23441 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
23442
23443         * image.c, image.h: added functions to get the strong name and the
23444         public key of an assembly.
23445         * pedump.c: use them.
23446
23447 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
23448
23449         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
23450
23451 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
23452
23453         * marshal.c (mono_marshal_get_managed_wrapper): Added
23454         MONO_TYPE_BOOLEAN 
23455
23456 2002-09-11  Martin Baulig  <martin@gnome.org>
23457
23458         * gc.c: Call GC_unregister_disappearing_link() on all links when
23459         finalizing them, this is necessary to aviod a crash in boehm's
23460         finalize handler.
23461
23462 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
23463
23464         * gc.c: handle GetTarget for finalized objects spotted and fixed by
23465         nick@chemlab.org.
23466
23467 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
23468
23469         * icall.c: implemented MonoType::Module.
23470         * reflection.c, reflection.h: mono_module_get_object () from
23471         Tomi Pakarinen <tomi.pakarinen@welho.com>.
23472
23473 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
23474
23475         * icall.c: ignore overridden methods in GetMethods ().
23476         Fix for FieldInfo::SetValue().
23477         * object.c: handle float/double in runtime invoke.
23478
23479 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
23480
23481         * object.c: allow a constructor to be called again on an object.
23482
23483 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
23484
23485         * class.h, class.c: move field layout code to it's own function and
23486         export it. Get an interface id earlier. Move fields in MonoClass
23487         so they are more cache friendly and align the bitfields.
23488         * loader.c: temporary handle get_param_names() for a runtime method.
23489         * reflection.c, reflection.h: more code to handle runtime creation of
23490         types.
23491
23492 2002-09-09  Martin Baulig  <martin@gnome.org>
23493
23494         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
23495         signature with the pinvoke field being set for the actual call.
23496
23497 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
23498
23499         * icall.c: removed some unused icalls. Start of map of glib charsets
23500         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
23501
23502 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
23503
23504         * debug-helpers.c: break infinite loop (found and fixed by
23505         Holger Arnold <harnold@gmx.de>).
23506
23507 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
23508
23509         * icall.c: target may be null in create_delegate.
23510
23511 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
23512
23513         * marshal.c: handle a boolean return type.
23514
23515 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
23516
23517         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
23518
23519 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
23520
23521         * gc.c: fix weakreferences.
23522
23523 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
23524
23525         * icall.c: added icall to get default codepage.
23526
23527 2002-09-03  Dick Porter  <dick@ximian.com>
23528
23529         * threads.h: 
23530         * threads.c: Use MonoThread instead of MonoObject where
23531         apropriate.
23532
23533         Store running thread objects in a hash table, so that we have all
23534         the info to hand when waiting for them to finish
23535         (means we don't need OpenThread() any more, so mingw builds should
23536         be fully functional again.)
23537
23538         * verify.c:
23539         * object.h: Added thread ID to MonoThread
23540
23541 2002-09-03  Martin Baulig  <martin@gnome.org>
23542
23543         * icall.c (System.Reflection.Assembly::get_location): New interncall.
23544
23545 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23546
23547         * icall.c: fixed leak in get_temp_path. Thanks lupus.
23548
23549 2002-09-03  Martin Baulig  <martin@gnome.org>
23550
23551         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
23552         argument to store the end address of the disassembled instruction.
23553
23554         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
23555         here from debug-symfile.h.
23556         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
23557         JIT into this struct.
23558         (MonoSymbolFile): Added `char *image_file' field.
23559         (MonoDebugGetMethodFunc): Removed.
23560         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
23561         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
23562         (mono_debug_find_method): New method.
23563
23564         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
23565         create a full symbol file.
23566         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
23567         and static symbol files.
23568         (mono_debug_find_method): The symbol file keeps an internal method hash,
23569         call this to get a MonoDebugMethodInfo from a MonoMethod.
23570
23571         * debug-symfile.[ch]: Removed.
23572
23573 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
23574
23575         * image.c (do_mono_image_open): Remove linker version check.
23576
23577 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
23578
23579         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
23580         wrappers for instance methods.
23581         
23582 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23583
23584         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
23585
23586 2002-08-28  Dick Porter  <dick@ximian.com>
23587
23588         * Makefile.am: Export HOST_CC for w32 builds
23589
23590 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
23591
23592         * file-io.c process.c: MonoString are null terminated, no
23593         need for mono_string_to_utf16() anymore.
23594
23595 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
23596
23597         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
23598
23599 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
23600
23601         * icall.c, reflection.h: speedup System.MonoType.
23602
23603 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
23604
23605         * reflection.c: allow null as the value of a string argument in
23606         custom attributes constructors.
23607
23608 2002-08-27  Martin Baulig  <martin@gnome.org>
23609
23610         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
23611         `trampoline_address' field.
23612
23613 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
23614
23615         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
23616         check (fixes bug #29486) 
23617
23618 2002-08-27  Martin Baulig  <martin@gnome.org>
23619
23620         * debug-mono-symfile.c: Changed the file format in a way that allows us
23621         open it read-only and to use a specially malloced area for all the
23622         dynamic data.  We can now also generate a symbol file on-the-fly if we're
23623         debugging IL code and there is no MCS generated symbol file for it.
23624
23625 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
23626
23627         * object.c: added a define for a good string and array
23628         creation speedup (not enabled by default because we need to deal with
23629         the synch stuff).
23630
23631 2002-08-26  Martin Baulig  <martin@gnome.org>
23632
23633         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
23634         function to create a dynamic symbol file.  This is used by the
23635         debugger to create a symbol file for IL code on-the-fly.
23636
23637 2002-08-26  Martin Baulig  <martin@gnome.org>
23638
23639         * loader.c (mono_lookup_pinvoke_call): Include the error message
23640         from g_module_error() in the error message.
23641
23642 2002-08-24  Martin Baulig  <martin@gnome.org>
23643
23644         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
23645         function to update the symbol file.  The symbol file is mmap()ed
23646         writable, but private.  This allows us to install the symbol file
23647         together with the assembly.
23648
23649 2002-08-24  Martin Baulig  <martin@gnome.org>
23650
23651         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
23652         but they can read the new symbol file format which mcs is now creating.
23653
23654         * debug-symfile.c (mono_debug_find_source_location): Moved to
23655         debug-mono-symfile.c; this is now operating on the new symbol file.
23656
23657 2002-08-23  Martin Baulig  <martin@gnome.org>
23658
23659         * debug-helpers.c (mono_method_desc_from_method): New function to get
23660         a MonoMethodDesc from a MonoMethod.
23661
23662 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
23663
23664         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
23665         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
23666
23667 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
23668
23669         * string-icalls.[ch]: make helper methods static.
23670
23671 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23672
23673         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
23674         types to it and to SetValueInternal.
23675
23676         * object.c: Moved handle_enum label to its proper place. This was the
23677         f... bug! ;-)
23678
23679         This time i compiled mcs and gtk-sharp and they both work.
23680
23681 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23682
23683         * icall.c: reverted partially my previous patch until 
23684         object.c:set_value handles enums correcly.
23685
23686 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23687
23688         * icall.c:
23689         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
23690         (ves_icall_System_Environment_get_MachineName): removed warning when
23691         compiling under cygwin.
23692
23693 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
23694
23695         * object.c: fixed field_get_value() for reference types.
23696
23697 2002-08-22  Dick Porter  <dick@ximian.com>
23698
23699         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
23700         Don't free a buffer while it's still needed.  Patch from Jonathan
23701         Liger <Jonathan.liger@wanadoo.fr>
23702
23703 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
23704
23705         * icall.c (ves_icall_System_Environment_get_Platform): Add new
23706         internal call.
23707
23708 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
23709
23710         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
23711         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
23712
23713         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
23714         we call unmanaged code which throws exceptions.
23715
23716 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
23717
23718         * appdomain.h: added per-domain entry_assembly.
23719         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
23720         arguments.
23721         * icall.c: Assembly::GetEntryAssembly icall.
23722         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
23723         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
23724
23725 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
23726
23727         * appdomain.h, gc.c: added mono_domain_finalize ().
23728
23729 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23730
23731         * object.c:
23732         (mono_print_unhandled_exception): changed g_warning by g_printerr
23733         because g_log has a 1024 characters limit (yeah, i got a big stack
23734         trace). Don't print exception name, that should be in ToString 
23735         returned string.
23736
23737 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23738
23739         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
23740         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
23741
23742 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23743
23744         * object.c:
23745         (mono_print_unhandled_exception): after previous commit, i realized
23746         that MS calls ToString on the exception. I changed this function to
23747         do that. This way we get stack_trace for free.
23748
23749 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23750
23751         * object.c:
23752         (mono_print_unhandled_exception): invoke Message property instead of
23753         getting 'message' field from Exception. Don't allocate memory for
23754         'trace' and 'message' if not needed.
23755
23756 2002-08-18  Dick Porter  <dick@ximian.com>
23757
23758         * unicode.c: Fix asserts to match Encoder.cs checks
23759
23760 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
23761
23762         * marshal.c: fix unaligned store issue and a few wrong
23763         opcode argument types.
23764
23765 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23766
23767         * icall.c: added GetUninitializedObjectInternal internal call.
23768
23769 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
23770
23771         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
23772         to the right domain.
23773
23774 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
23775
23776         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
23777
23778         * class.c (class_compute_field_layout): set blittable to false for Strings
23779
23780         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
23781
23782 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
23783
23784         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
23785         first chunk of code to create types at runtime. Code to
23786         handle ReflectedType/DeclaringType. Make reflection handles
23787         domain specific.
23788
23789 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
23790
23791         * class.c: set correct name in arrays.
23792
23793 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
23794
23795         * appdomain.c (mono_domain_transfer_object): make it work with
23796         valuetypes. bug fixes.
23797
23798 2002-08-12  Dick Porter  <dick@ximian.com>
23799
23800         * object.h: Rename some parameters to avoid c++ keywords (Patch
23801         from Joseph Wenninger <kde@jowenn.at>)
23802
23803 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
23804
23805         * icall.c: added icall to implement Assembly.GetFile*.
23806
23807 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
23808
23809         * reflection.h, reflection.c: code to embed managed resources.
23810
23811 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
23812
23813         * class.c: move all the type size stuff into
23814         class_compute_field_layout().
23815
23816 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
23817
23818         * class.c: ensure enums have always the correct instance size.
23819         * unicode.c: remove wrong assert.
23820
23821 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
23822
23823         * assembly.c: fix mem corruption issue.
23824         * image.h, image.c: added mono_image_get_resource () to access
23825         managed resources.
23826         * icall.c: implemented Assembly.EntryPoint property and some
23827         Managed Resources related internalcalls.
23828
23829
23830 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
23831
23832         * image.c, image.h: impemented mono_image_get_entry_point ().
23833         * appdomain.c: use mono_image_get_entry_point.
23834
23835 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
23836
23837         * reflection.c: support the object type argument when loading
23838         custom attributes.
23839
23840 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
23841
23842         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
23843         String as return type.
23844
23845 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
23846
23847         * reflection.c: fix encoding of named args for custom attrs to match
23848         the ms implementation. Read them back when instantiating custom
23849         attributes.
23850
23851 2002-08-02  Radek Doulik  <rodo@ximian.com>
23852
23853         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
23854         by Dietmar as quick fix
23855         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
23856         16 as stack size, used on more places as quick fix before Dietmar
23857         will fix it properly
23858
23859 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
23860
23861         * object.h, object.c: added accessors for fields and properties.
23862
23863 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
23864
23865         * class.c, class.h: made mono_class_get_field_from_name ()
23866         loop on parent types.
23867         Added mono_class_get_property_from_name ().
23868
23869 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
23870
23871         * class.c, class.h: move the code to setup the type vtable in its own
23872         function so that it can be reused also for types created at runtime.
23873         Eliminate the "class" identifier from the header file.
23874         * reflection.c: setup the vtable for enums so that we can create
23875         objects for use in SetConstant ().
23876
23877 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
23878
23879         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
23880         instead of the delegate itself as this pointer (bug #28383)
23881
23882 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
23883
23884         * marshal.c (mono_marshal_get_managed_wrapper): added return type
23885         conversions.
23886
23887 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
23888
23889         * loader.c: don't set the pinvoke bit on icalls.
23890
23891 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
23892
23893         * debug-helpers.c (mono_method_full_name): only print a number to
23894         indicate wrapper type (so that the output is more readable in traces).
23895
23896 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
23897
23898         * class.c (mono_class_init): include method override patch from Paolo
23899
23900 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
23901
23902         * icall.c: fixed GetTypeCode().
23903
23904 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
23905
23906         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
23907         use real delegate invoke function to make it work with multicast
23908         delegates (fix bug# 28291).
23909
23910 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
23911
23912         * object.c: load constant strings.
23913
23914 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
23915
23916         * reflection.c: no magic numbers.
23917         * tabledefs.h: security action enum.
23918
23919 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
23920
23921         * assembly.c: fix possible memory corruption.
23922
23923 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
23924
23925         * reflection.h, reflection.c: added support for linking resources.
23926         * verify.c: check we have an updated corlib.
23927
23928 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
23929
23930         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
23931         string arrays.
23932         (mono_marshal_string_array): null terminate unmanaged string arrays.
23933         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
23934
23935 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
23936
23937         * icall.c: Type.GetType () can now return also types from the
23938         calling assembly.
23939
23940 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
23941
23942         * loader.h, loader.c: stack walking support.
23943         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
23944         GetCallingAssembly.
23945
23946 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
23947
23948         * marshal.c: added optimisations for blittable types 
23949
23950         * class.c (mono_array_class_get): do not set blittable attribute on arrays
23951         (mono_class_setup_mono_type): set blittable attribute for single
23952         and double.
23953
23954         * marshal.c (mono_string_utf8_to_builder): impl.
23955         (mono_string_builder_to_utf8): impl.
23956         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
23957
23958 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
23959
23960         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
23961         (mono_marshal_get_managed_wrapper): impl. byref types
23962
23963 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23964
23965         * icall.c:
23966         (search_method): don't display debug message. 
23967
23968 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
23969
23970         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
23971
23972 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
23973
23974         * appdomain.c: set the missing filename when throwing exception.
23975
23976 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
23977
23978         * metadata.c (mono_type_size): code cleanup
23979         (mono_type_stack_size): removed some test code
23980
23981 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
23982
23983         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
23984         mono_get_exception_file_not_found now.
23985
23986         * exception.c (mono_exception_from_name_two_strings): New version
23987         that will call a constructor with two string arguments. 
23988         (mono_get_exception_file_not_found): New helper routine, used to
23989         report file-not-found errors.
23990
23991 2002-07-20  Dick Porter  <dick@ximian.com>
23992
23993         * process.h:
23994         * process.c: Pass file handles to CreateProcess
23995         
23996         * icall.c:
23997         * file-io.h:
23998         * file-io.c: Implemented CreatePipe
23999
24000 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
24001
24002         * metadata.c (mono_get_param_info): set alignment for value types
24003
24004 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
24005
24006         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
24007         Constify mono_domain_assembly_open().
24008         * loader.c: handle null namespace in icalls.
24009
24010 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
24011
24012         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
24013         (emit_str_to_ptr_conv): marshal object as structs
24014
24015         * metadata.c (mono_type_to_unmanaged): marshal object as structs
24016
24017         * marshal.c (mono_marshal_get_runtime_invoke): support value types
24018
24019 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
24020
24021         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
24022         (mono_marshal_get_native_wrapper): we an now return value types
24023
24024 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
24025
24026         * verify.c: more checks implemented.
24027
24028 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
24029
24030         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
24031         (fix bug #27695)
24032         (mono_marshal_get_native_wrapper): allow byref arguments
24033         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
24034         impl. PtrToStringXXX methods
24035         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
24036         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
24037         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
24038         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
24039         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
24040
24041 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
24042
24043         * reflection.c: fix buglet in parsing an assembly name.
24044
24045 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
24046
24047         * marshal.c (emit_ptr_to_str_conv): first impl.
24048
24049 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
24050
24051         * object.c, class.h: cache the vtable in the class as suggested by
24052         vargaz@freemail.hu (Zoltan Varga).
24053
24054 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
24055
24056         * class.h, loader.c: added mono_field_from_token().
24057         * verify.c: first cut of type checking code.
24058
24059 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
24060
24061         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
24062
24063 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
24064
24065         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
24066         (fix bug #27782)
24067         (mono_marshal_get_remoting_invoke): impl.
24068         (mono_delegate_begin_invoke): impl.
24069         (mono_mb_emit_save_args): impl.
24070         (mono_delegate_end_invoke): impl.
24071         (mono_marshal_get_delegate_begin_invoke):
24072         (mono_marshal_get_delegate_end_invoke):
24073         (mono_marshal_get_delegate_invoke): generate a special name for
24074         those methods (including the signature) and associate them whith
24075         the delegate class. 
24076
24077 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
24078
24079         * reflection.[ch]: 
24080         (mono_reflection_type_from_name): now it has a MonoImage parameter
24081         which is used as the default image to search the type in. If the image
24082         is NULL or getting the type from it fails, it defaults to corlib.
24083
24084         * icall.c: changed 1 call to mono_reflection_type_from_name to match
24085         new parameter.
24086
24087 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
24088
24089         * reflection.c: update the parameter table index.
24090
24091 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
24092
24093         * domain.c: don't include the mark byte in the string hash.
24094
24095 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
24096
24097         * icall.cs: icall for Type.GetTypeCode ().
24098         * verify: a couple of fixes and disabled local initialization checks.
24099
24100 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
24101
24102         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
24103
24104         * debug-helpers.c (mono_method_full_name): print the type of the
24105         runtime wrapper
24106
24107         * metadata.c (mono_signature_hash): a hash function for signatures
24108         (mono_signature_hash): better hash algorithm
24109
24110         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
24111
24112         * debug-helpers.c (mono_method_full_name): this can now generate
24113         method names with signatures
24114
24115         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
24116         method dont have this pointers.
24117
24118 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
24119
24120         * reflection.c: fixup typebuilder tokens.
24121         * image.c: fix buglet.
24122         * marshal.h: remove whitespace.
24123         * metadata.h, metadata.c: reinstate code that was removed.
24124         * verify.c: handle catch directives and fix another couple of bugs.
24125
24126 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
24127
24128         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
24129         (mono_marshal_get_native_wrapper): make it comp. with the old code
24130         (mono_marshal_get_native_wrapper): support boolean
24131         (mono_marshal_get_managed_wrapper): support more types
24132
24133 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
24134
24135         * class.c (class_compute_field_layout): compute class->blittable attribute.
24136
24137 2002-07-09  Dick Porter  <dick@ximian.com>
24138
24139         * threads.c: Make the thread cleaning up cope with threads that
24140         call ExitThread()
24141
24142 2002-07-08  Radek Doulik  <rodo@ximian.com>
24143
24144         * reflection.c (method_encode_code): use non-translated values to
24145         compute finally_start, this fixes exception handling on ppc, yay!
24146
24147         * decimal.h (struct signscale): fix endianess
24148
24149 2002-07-07  Radek Doulik  <rodo@ximian.com>
24150
24151         * reflection.c: swap box_val and not val
24152
24153 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
24154
24155         * reflection.c, reflection.h: handle full assembly info in type name.
24156         Handle Type arguments when loading custom attributes.
24157         * icall.c: updated to use new mono_reflection_type_from_name () method.
24158
24159 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24160
24161         * loader.c:
24162         (method_from_memberref): also print assembly name when method not found.
24163
24164 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24165
24166         * icall.c:
24167         (ves_icall_TypeGetProperties): fixed bug #27473. 
24168
24169 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24170
24171         * reflection.c: display image name and token when cannot find the
24172         .ctor for an attribute.
24173
24174 2002-07-05  Martin Baulig  <martin@gnome.org>
24175
24176         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
24177
24178 2002-07-04  Dick Porter  <dick@ximian.com>
24179
24180         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
24181         compile on mingw.  This will cause mingw builds to not wait for
24182         subthreads to terminate after the main thread does.  I've lodged a
24183         bug with the mingw developers for them to wrap OpenThread().
24184
24185 2002-07-03  Dick Porter  <dick@ximian.com>
24186
24187         * threads.c: Store thread IDs instead of handles, because
24188         GetCurrentThread() returns a pseudohandle and therefore stores
24189         useless values.  mono_thread_cleanup() continues checking the
24190         array of threads until it is empty, to cope with subthreads
24191         spawning new threads after the main thread has finished.
24192
24193         * profiler.h:
24194         * profiler.c:
24195         * profiler-private.h: Pass the thread ID to thread profiler
24196         functions, instead of a handle
24197
24198 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
24199
24200         * verify.c: fixes to make it more usable.
24201         * pedump.c: added --verify code to verify IL code in an assembly.
24202
24203 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
24204
24205         * reflection.c: turn errors into warnings to allow compiling corlib.
24206
24207 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
24208
24209         * reflection.c: add special cases to compile corlib.
24210
24211 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
24212
24213         * reflection.c: handle properties with only a set method.
24214
24215 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
24216
24217         * opcodes.h: add enum with opcodes in opval order.
24218
24219 2002-07-01  Dick Porter  <dick@ximian.com>
24220         
24221         * object.h:
24222         * object.c (mono_runtime_run_main): Removed unneeded argument
24223
24224 2002-06-28  Martin Baulig  <martin@gnome.org>
24225
24226         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
24227
24228 2002-06-27  Dick Porter  <dick@ximian.com>
24229
24230         * threads.c: Store the handle in both the parent thread and in the
24231         subthread, to minimise the time between starting a new thread and
24232         storing its ID.
24233
24234 2002-06-26  Dick Porter  <dick@ximian.com>
24235
24236         * appdomain.c (mono_runtime_cleanup): Close the socket library
24237         after all the threads have finished, not before
24238
24239 2002-06-26  Martin Baulig  <martin@gnome.org>
24240
24241         * debug-symfile.c (mono_debug_find_source_location): Added
24242         `guint32 *line_number' argument.  If it's not NULL, store the line number
24243         there and return the file name without the line number.
24244
24245 2002-06-25  Dick Porter  <dick@ximian.com>
24246
24247         * icall.c:
24248         * process.h:
24249         * process.c: Process forking and other support functions
24250
24251 2002-06-25  Dick Porter  <dick@ximian.com>
24252
24253         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
24254         things dont happen when the image is closed.
24255         (mono_image_lookup_resource): Walk the resource section looking
24256         for a particular entry
24257
24258         * cil-coff.h: PE resource section decoding
24259
24260 2002-06-25  Dick Porter  <dick@ximian.com>
24261         
24262         * assembly.h:
24263         * assembly.c: 
24264         (mono_assembly_foreach): Accessor functions to walk the list of
24265         loaded assemblies
24266         (mono_assembly_set_main):
24267         (mono_assembly_get_main): Process methods need to know which
24268         assembly is the "main" one
24269
24270         * object.c (mono_runtime_run_main): Record the main assembly
24271
24272         * debug-helpers.c: Fix typo
24273
24274 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
24275
24276         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
24277         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
24278
24279 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
24280
24281         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
24282
24283 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
24284
24285         * image.c (do_mono_image_open): Initialize reference count,
24286         otherwise we leak the MonoImage.
24287
24288 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
24289
24290         * reflection.c: small tweak to handle self-hosting.
24291
24292 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
24293
24294         * reflection.c: fix type name parse code.
24295
24296 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
24297
24298         * reflection.c: break out of the loop.
24299         * image.c: special case corlib.
24300
24301 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
24302
24303         * reflection.c: add all the custom attrs at the end to ensure the
24304         ctors have been properly initialized when the attributes are defined
24305         in the current assembly.
24306
24307 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
24308
24309         * reflection.c: handle correctly multiple-nested types.
24310
24311 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
24312
24313         * row-indexes.h: fix typos.
24314         * reflection.c: adjust for typos and fix method_def_or_ref
24315         encoding in MethodImpl table.
24316
24317 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
24318
24319         * reflection.c: fix entry point patching (thanks Serge!).
24320
24321 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
24322
24323         * verify.c: add check for System.Exception
24324
24325 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
24326
24327         * image.c, class.c: minifix for code just c&p'ed.
24328         * reflection.c: warning fix.
24329         * object.h, loader.h, domain.c: load also StringBuilder.
24330
24331 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
24332
24333         * marshal.h, marshal.c: some support code to handle complex marshaling.
24334
24335 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
24336
24337         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
24338         Better signatures with vtable error dump.
24339
24340 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
24341
24342         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
24343
24344 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
24345
24346         * icall.c (ves_icall_Type_GetField): impl.
24347
24348 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
24349
24350         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
24351         to retrieve a marshal description blob for a field or param.
24352
24353 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
24354
24355         * reflection.h, reflection.c: change order of nested type emission
24356         to avoid table corruption. The NestedTypes table is sorted.
24357         * icall.c: change order of GetConstructor results to workaround mcs bug.
24358
24359 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
24360
24361         * reflection.h, reflection.c: handle field and param marshal
24362         information.
24363
24364 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
24365
24366         * icall.c, marshal.c marshal.h: more Marshal class implementation.
24367
24368 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
24369
24370         * reflection.c: fix call convention.
24371
24372 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
24373
24374         * reflection.h, reflection.c: mono_image_get_memberref_token()
24375         takes a type instead of a class, now. Added
24376         mono_image_get_array_token() to create tokens for the special
24377         multi-dim array methods.
24378
24379 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
24380
24381         * assembly.c: handle modules (no assembly table). Split
24382         loading references in its own function.
24383         * class.c: handle moduleref resolution scope.
24384         * image.c, image.h: cache module name in image.
24385
24386 2002-06-07  Martin Baulig  <martin@gnome.org>
24387
24388         * reflection.c (mono_image_get_type_info): Only add a class layout entry
24389         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
24390
24391 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
24392
24393         * icall.c: more signature fixes that used uint instead of int.
24394
24395 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
24396
24397         * reflection.c: fixed signature of field refs.
24398
24399 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
24400
24401         * class.c, reflection.c: handle typerefs of nested types
24402         (both on read and when writing files).
24403
24404 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
24405
24406         * icall.c: fix method signatures that tried to workaround the previous
24407         typo, d'oh!
24408
24409 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
24410
24411         * debug-helpers.c: fix typo.
24412
24413 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
24414
24415         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
24416         rewrote the PE/COFF writing code (our programs are understood by the
24417         ms runtime, now).
24418
24419 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
24420
24421         * gc.c, gc.h, icall.c: weakreference support.
24422
24423 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
24424
24425         * Makefile.am, mono-config.c: use $(sysconfdir).
24426
24427 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
24428
24429         * icall.c: changed default precision of Double.ToString() to 15.
24430         Fixed memory leak. Unified with Single.ToString.
24431
24432 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
24433
24434         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
24435
24436 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
24437
24438         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
24439         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
24440         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
24441         and myself.
24442
24443 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
24444
24445         * debug-symfile.c, sysmath.c: yet more compilation fixes.
24446
24447 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
24448
24449         * reflection.c, socket-io.c: more compilation fixes.
24450
24451 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
24452
24453         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
24454         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
24455         unicode.c: warning and compiler compatibility fixes.
24456
24457 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
24458
24459         * class.h, metadata.c: fixed warnings/compilation errors.
24460
24461 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
24462
24463         * Makefile.am, mono-config.c, mono-config.h: configuration file
24464         support routines.
24465         * loader.c, loader.h: make Dll mapping configurable at runtime in the
24466         config file. Export methods to insert and lookup mappings.
24467
24468 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
24469
24470         * reflection.c: handle types and boxed objects in custom attr
24471         constructors.
24472
24473 2002-05-30  Martin Baulig  <martin@gnome.org>
24474
24475         * debug-symfile.c
24476         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
24477
24478 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
24479
24480         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
24481         to lookup the implmap row for a P/Invoke method.
24482         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
24483         P/Invoke method from the runtime on an as needed basis.
24484
24485 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
24486
24487         * metadata.c (mono_metadata_parse_signature): impl.
24488
24489 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
24490
24491         * class.c: handle .pack directive.
24492
24493 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
24494
24495         * object.c: initialize static fields with RVA data.
24496
24497 2002-05-25  Martin Baulig  <martin@gnome.org>
24498
24499         * debug-symfile.c
24500         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
24501
24502 2002-05-24  Martin Baulig  <martin@gnome.org>
24503
24504         * debug-symfile.c
24505         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
24506         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
24507         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
24508
24509 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
24510
24511         * object.c: special case string ctros in invoke.
24512         * gc.c: silly whitespace changes.
24513
24514 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
24515
24516         * threadpool.[ch]: impl. a threadpool that can
24517         be used by mint and mono.
24518
24519 2002-05-22  Martin Baulig  <martin@gnome.org>
24520
24521         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
24522         The first argument is now a `MonoReflectionModuleBuilder *', the return
24523         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
24524         `methods' field to get the method builder.  The `token' argument is the
24525         unfixed token.
24526
24527         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
24528         invalid characters instead of g_assert_not_reached()ing.  This seems
24529         to be the behaviour of mscorlib.
24530
24531 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
24532
24533         * object.c (mono_runtime_invoke_array): applied patch from Rachel
24534         Hestilow to fix bug #25104
24535
24536 2002-05-21  Martin Baulig  <martin@gnome.org>
24537
24538         * debug-symfile.c (mono_debug_find_source_location): New function.
24539         Looks up an IL offset in the line number table and returns the source
24540         location as a string.
24541
24542 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24543
24544         * icall.c:
24545         (mono_double_ToStringImpl): changed %f by %g until we have something
24546         better.
24547
24548 2002-05-21  Nick Drochak  <ndrochak@gol.com>
24549
24550         * icall.c : Use different name for Math.Pow's icall.  Needed to check
24551         parameters first in C#.
24552
24553 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
24554
24555         * icall.c, reflection.h: added icall to get info about an event.
24556
24557 2002-05-20  Radek Doulik  <rodo@ximian.com>
24558
24559         * object.c (mono_value_box): don't use memcpy for boxing on BIG
24560         endian
24561         (mono_value_box): don't use memcpy for small sizes on
24562         architectures with unaligned access
24563
24564 2002-05-20  Martin Baulig  <martin@gnome.org>
24565
24566         * reflection.c (mono_reflection_setup_internal_class): Don't crash
24567         if `tb->parent == NULL'.
24568         (mono_reflection_create_internal_class): New function.  This is
24569         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
24570         for enum types.
24571
24572         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
24573         New interncall.
24574
24575 2002-05-19  Martin Baulig  <martin@gnome.org>
24576
24577         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
24578         argument to get the length, don't default to the array length.
24579
24580 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
24581
24582         * assembly.c (mono_assembly_setrootdir): New function used to
24583         override the MONO_ASSEMBLIES directory.
24584
24585 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
24586
24587         * icall.c: ValueType_GetHashCode() initialize local var.
24588
24589 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
24590
24591         * reflection.c: sort custom attributes table.
24592
24593 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
24594
24595         * reflection.c: support named args in custom attributes (write support).
24596
24597 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
24598
24599         * reflection.c: fix finally position calculation.
24600
24601 2002-05-15  Radek Doulik  <rodo@ximian.com>
24602
24603         * reflection.c: fixed endianess at many places
24604
24605         * icall.c (ves_icall_InitializeArray): comment out debug msg
24606
24607 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
24608
24609         * object.c (mono_unhandled_exception): new function to handle
24610         unhandled exceptions.
24611         (mono_unhandled_exception): call the UnhandledException event.
24612         (mono_runtime_delegate_invoke): impl.
24613
24614 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
24615
24616         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
24617         returns the RVA, not the direct pointer to the data. Handle the case
24618         when the class size is fixed.
24619
24620 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
24621
24622         * reflection.c: fix some endianess issues.
24623
24624 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
24625
24626         * object.c (mono_runtime_invoke): is now able to catch exceptions.
24627
24628         * threads.c (mono_thread_init): added a callback which is invoked
24629         at thread start.
24630
24631 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
24632         
24633         * icall.c: make GetHashCode return non-negative values.
24634
24635 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
24636
24637         * object.c, icall.c, gc.c: revert to address-based hashcode.
24638
24639 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
24640
24641         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
24642
24643 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
24644
24645         * icall.c, class.c: special case <Module>.
24646
24647 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
24648
24649         * icall.c: fix bug in GetNow().
24650
24651 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
24652
24653         * object.c (mono_runtime_class_init): make sure that we call all
24654         static class constructors.
24655
24656 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
24657
24658         * reflection.c: sort methodsemantics table.
24659
24660 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
24661
24662         * reflection.h, reflection.c: honour init locals setting.
24663
24664 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
24665
24666         * icall.c: copied Double ToStringImpl for Single ToStringImpl
24667
24668 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
24669
24670         * reflection.c: support ContructorBuilders in attribute blob creation.
24671
24672 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
24673
24674         * reflection.c: some changes to build a binary that can be run
24675         directly in windows.
24676
24677 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
24678
24679         * loader.c: print a big message when an icall can't be found.
24680
24681 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24682
24683         * string-icalls.c: fix bug 24248.
24684
24685 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
24686
24687         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
24688         icall.c, reflection.h: separate assembly loading by pathname and by
24689         assembly name. Use the MONO_PATH env var to search for assemblies.
24690
24691 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
24692
24693         * assembly.c, image.h: add some support for assemblies
24694         with multiple modules.
24695         * class.c, class.h: export mono_class_from_typeref().
24696         * loader.c: remove duplicated code and use mono_class_from_typeref(),
24697         instead.
24698
24699 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
24700
24701         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
24702         documentation says (the ECMA one is correct).
24703
24704 2002-05-02  Dick Porter  <dick@ximian.com>
24705
24706         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
24707         Don't name the synchronisation mutex.
24708
24709 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
24710
24711         * rand.c
24712         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
24713         Make the prototypes match.
24714         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
24715         Same.
24716
24717         * icall.c
24718         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
24719         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
24720         all systems have tm.tm_zone, so use strftime() with %Z to print
24721         the timezone abreviation into a temp string.
24722
24723         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
24724         rather than mono_array_addr() on a MonoString on Big Endian
24725         machines.
24726
24727 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
24728
24729         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
24730         fix bug 24041
24731
24732 2002-04-30  Dick Porter  <dick@ximian.com>
24733
24734         * socket-io.c: Cope with SOCKET being an integer rather than a
24735         pointer now.
24736
24737         * threads.c: Added Thread_free_internal, to deal with thread
24738         handle cleanup.  Moved calls to handle_store() and handle_remove()
24739         to start_wrapper(), so each can only be called once.  Allocate
24740         synchronisation blocks with GC_malloc(), and use GC finalisation
24741         to close the handles.
24742
24743         * icall.c: added System.Threading.Thread::Thread_free_internal
24744
24745 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
24746
24747         * icall.c: support Environment.Exit, CommandLineArgs().
24748
24749 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
24750
24751         * object.c, object.h: added mono_runtime_run_main () and
24752         mono_runtime_get_main_args () for use in System.Environment.
24753
24754 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
24755
24756         * gc.c: fix thinko, enable actual finalization since the jit is now
24757         fixed.
24758
24759 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
24760
24761         * gc.c, object.c: take into account that an object may be offset wrt the address
24762         returned by GC_malloc().
24763
24764 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
24765
24766         * image.c: handle files without entries in the assembly table (modules).
24767
24768 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
24769
24770         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
24771         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
24772         allowed to be null when it's System.Object class setup.
24773
24774 2002-04-27  Martin Baulig  <martin@gnome.org>
24775
24776         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
24777         if `tb->parent == NULL' rather than crashing.
24778
24779 2002-04-28  Nick Drochak  <ndrochak@gol.com>
24780
24781         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
24782         calling acos() where asin() should have been called.
24783
24784 2002-04-26  Martin Baulig  <martin@gnome.org>
24785
24786         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
24787         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
24788         there's a subdirectory called `System', but we don't want to read that
24789         subdirectory as an assembly.
24790
24791 2002-04-25  Martin Baulig  <martin@gnome.org>
24792
24793         * debug-symfile.c: Reflect latest MonoString changes.
24794
24795 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
24796
24797         * rand.c, rand.h: instance method icalls need to have an explicit
24798         this pointer as first argument in the C implementation.
24799
24800 2002-04-25  Nick Drochak <ndrochak@gol.com>
24801
24802         * icall.c: Fix typo in map for GetNonZeroBytes
24803
24804 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
24805
24806         * string-icalls.c : String does now passes unit tests without any 
24807         errors, the following changes has been made:
24808         
24809         Implemented replace methods.
24810         Renaming of methods to (try) follow the standard.
24811         Fixed compare ordinal
24812         Made all memory allocated directly to function instead of via icall function.
24813         Small performance fix in is_in_array function
24814                         
24815  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
24816
24817         c (mono_string_Internal_ctor_charp_int_int):
24818         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
24819         sindex < 0, throw ArgumentOutOfRangeException instead of
24820         ArgumentNullException.
24821
24822         Added new check for length == 0, however
24823         I need to make it return String.Empty from the C code.
24824         
24825         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
24826         that calculate the length for us here.
24827         
24828         (mono_string_Internal_ctor_sbytep_int_int): Replaced
24829         mono_string_new_utf16 with mono_string_new, since value is utf8.
24830
24831 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
24832
24833         * object.c: register the object for finalization if needed.
24834         Allocate one more char in the string for the terminating 0 char.
24835
24836 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
24837
24838         * class.c, class.h, image.c: check if a type implemenst a destructor.
24839         Use the proper key for array class lookups.
24840         * icall.c: register the icalls in the System.GC class.
24841         * gc.c, gc.h: GC-related functions and icalls.
24842
24843 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24844
24845         * icall.c:
24846         * socket-io.c:
24847         * unicode.c: free some strings gotten from mono_string_to_utf8 and
24848         changed a couple of free () by g_free ().
24849
24850         * decimal.c: one-liner in the comments for decimal2string ().
24851
24852 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
24853
24854         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
24855
24856 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
24857
24858         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
24859         * object.c (mono_runtime_invoke_array) : handle null in params
24860
24861 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
24862
24863         * string-icalls.c: fixed bug in split (one off bug)
24864
24865 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
24866
24867         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
24868         * icalls.c: added String::Equals as internal method
24869
24870 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
24871
24872         * threads.c: fixed bug in the double interlocked functions
24873
24874 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
24875
24876         * threads.c: implemented all of the new interlocked icalls.
24877         * string-icalls.c: fix a bug in insert.
24878         * icalls.c: added the icalls for interlocked, removed old string functions.
24879         
24880 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
24881
24882         * loader.c: fix off-by-one error when reading argument names.
24883
24884 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
24885
24886         * profiler.c: win32 counter implementation (untested).
24887         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
24888         (the latter needs testing and more complete impl. from win32 folks).
24889
24890 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
24891
24892         * object.c: mono_array_new_full workaround mono_array_class_get
24893         problem.
24894
24895 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
24896
24897         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
24898         * object.h (mono_string_chars): Changed casting type.
24899
24900 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
24901
24902         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
24903                            method signatures to use gunichar2 instead of gint16.
24904
24905 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
24906
24907         * object.h, object.c: domain-specific versions of mono_object_new and
24908         mono_array_new.
24909
24910 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
24911
24912         * object.c: changed String layout
24913
24914         * string-icalls.c (mono_string_Internal_ctor_chara): added
24915         internal string constructors.
24916
24917 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
24918
24919         * threads.c: pass 'this' to the thread start routine.
24920
24921 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24922
24923         * string-icalls.c: fix IndexOf and LastIndexOf. Now
24924         InternalCompareStr don't call twice mono_string_cmp_char for the last
24925         character. Improved performance in mono_string_cmp_char.
24926
24927 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
24928
24929         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
24930         code into its own library: libmonoruntime.
24931
24932 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
24933
24934         * object.h, object.c: changed array format so that szarrays do not
24935         require a bounds structure.
24936         * icall.c, appdomain.c: support for new szarray format.
24937
24938 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
24939
24940         * metadata.c: compare also the retuns type when comparing signatures:
24941         we didn't do this as an optimization since really overloaded methods
24942         must differ also in the arguments, but this doesn't work with
24943         low-level IL code (or when using explicit conversion operators: see
24944         bug#23498 for an example).
24945
24946 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
24947
24948         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
24949
24950 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
24951
24952         * icall.c: make MonoType::GetElementType its own icall.
24953
24954 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
24955
24956         * icall.c: remove MonoMethod_get_Name().
24957         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
24958         object.
24959
24960 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
24961
24962         * string-icalls.c: optimized a few methods.
24963
24964 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
24965
24966         * icall.c: added all new string internal calls
24967         * string-icalls.c: added, new string internal call implementation.
24968         * object.c: added mono_string_new_size for allocating a string a size
24969
24970 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
24971
24972         * object.c (mono_object_isinst): use the same code as in the
24973         optimized x86 version.
24974
24975 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
24976
24977         * profiler.c: TSC-based timer code (faster and more accurate).
24978         Not hooked up in configure, yet (set USE_X86TSC to 1).
24979
24980 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
24981
24982         * profiler.c, profiler.h: track time spent compiling methods.
24983         * threads.c: track thread creation/destruction.
24984
24985 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
24986
24987         * profiler.c, profiler.h, profiler-private.h: profiling interface
24988         and sample implementation. Moved here so that it can be used also by
24989         the jit.
24990
24991 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
24992
24993         * reflection.c, reflection.h: keep types and other handles separate in
24994         the hash tables for referred tokens. Add guid for modules.
24995
24996 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
24997
24998         * assembly.c: fix bugs found with valgrind.
24999         * metadata.h, metadata.c: added mono_metadata_guid_heap().
25000
25001 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
25002
25003         * threads: added icall support for getting current domain for
25004                    the thread.
25005  
25006 2002-04-13  Martin Baulig  <martin@gnome.org>
25007
25008         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
25009         (MonoDebugVarInfo): Added `index' field for register based addresses.
25010         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
25011         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
25012         `MonoDebugVarInfo *params' and `guint32 this_offset' with
25013         `MonoDebugVarInfo *this_var'.
25014
25015         * debug-symfile.c (relocate_variable): New static function to write
25016         a location description for a local variable or method parameter.
25017
25018 2002-04-12  Martin Baulig  <martin@gnome.org>
25019
25020         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
25021         stack offset and begin/end scope address of a local variable.
25022         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
25023         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
25024         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
25025
25026         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
25027         Added new relocation types for start/end scope of a local variable.
25028
25029 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
25030
25031         * object.h: add mono_object_domain() macro.
25032         * reflection.c: handle typespecs.
25033         * icall.c: MonoMethod::get_Name() implementation.
25034
25035 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
25036
25037         * icall.c: String::GetHashCode() icall implementation.
25038
25039 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
25040
25041         * icall.c: String::IndexOfAny icall.
25042         * object.c, object.h: make array->max_length more useful.
25043         Intrduced mono_object_class() and mono_string_length() macros.
25044
25045 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25046
25047         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
25048         instead of g_unichar_isdigit.
25049
25050 2002-04-11  Nick Drochak  <ndrochak@gol.com>
25051
25052         * icall.c: Implement a simple Double.ToString().
25053
25054 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
25055
25056         * appdomain.h: only io-layer.h is supposed to be included.
25057         * icall.c: explicitly import environ. Fix warning.
25058
25059 2002-04-10  Nick Drochak  <ndrochak@gol.com>
25060
25061         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
25062                 return true even if it's not Daylight Savings time.
25063                 Only return false for the case where the function isn't
25064                 implemented for a plaform (read Windows).
25065
25066 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
25067
25068         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
25069         data with a mutex.
25070
25071 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
25072
25073         * mempool.c (mono_mempool_alloc): only use g_malloc when
25074         absolutely necessary.
25075
25076 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
25077
25078         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
25079
25080         * class.c (mono_class_vtable): use domain mempool to allocate vtable
25081         (mono_class_proxy_vtable): use domain mempool
25082
25083 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
25084
25085         * appdomain.h, appdomain.c: split initialization that requires the
25086         execution engine support into mono_runtime_init().
25087
25088 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
25089
25090         * class.c (mono_class_init): don't include vtable inside MonoClass
25091         to save some memory, gather some statistics.
25092         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
25093
25094 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
25095
25096         * icall.c: internalcall implementation for ValueType.Equals().
25097
25098 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
25099
25100         * object.c (mono_message_init): moved 
25101         (mono_runtime_exec_main): new arch. independent impl.
25102         (mono_runtime_invoke_array): new method - like
25103         mono_runtime_invoke, but you can pass an array of objects.
25104         (mono_remoting_invoke): new arch. independent impl.
25105         (mono_message_invoke): new arch. independent impl.
25106         (mono_runtime_class_init): new arch. independent impl.
25107         (mono_runtime_object_init): new arch. independent impl.
25108
25109 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
25110
25111         * metadata.c, object.c, reflection.c: documented the exported
25112         functions.
25113
25114 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
25115
25116         * icall.c: simpler code to pass the assembly builder data to corlib.
25117         Implement GetNestedTypes() internalcall.
25118
25119 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
25120
25121         * class.c: warn if a type can't be loaded.
25122
25123 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
25124
25125         * image.h: typedef MonoImageOpenStatus
25126         * types.h: removed unused file
25127         
25128 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
25129
25130         * icall.c: Enum_ToObject accepts enum value arguments.
25131
25132 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
25133
25134         * class.c: move initialization of properties, events and nested
25135         classes, so that they happen for interfaces, too.
25136
25137 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
25138
25139         * icall.c: cleanup some ugly casts in Array_SetValue*.
25140
25141 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
25142
25143         * icall.c: the values array fro enums is of the correct type, now.
25144         Implement (correctly) getFullName instead of assQualifiedName for
25145         MonoType.
25146         * reflection.h, reflection.c: added mono_type_get_name ().
25147
25148 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
25149
25150         * assembly.c, image.h: for each MonoImage, record from wich assembly
25151         it was loaded.
25152         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
25153         Make Type.Assembly work.
25154
25155 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
25156
25157         * debug-symfile.h: use char* instead of gpointer to avoid
25158         unnecessary casts.
25159
25160         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
25161
25162         * icall.c (ves_icall_InternalExecute): impl. FielSetter
25163         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
25164
25165 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
25166
25167         * icall.c (mono_message_init): impl. (code cleanup)
25168         (ves_icall_InternalExecute): impl. FieldGetter
25169
25170         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
25171         defined we call all (non-static)methods through the vtable. 
25172
25173 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
25174
25175         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
25176         finalizer even though the memory is still referenced (and the chunk of
25177         memory is not freed).
25178
25179 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
25180
25181         * assembly.c: fix brokeness.
25182
25183 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
25184
25185         * class.c: kill some warnings. Check explicit interface method
25186         implementation also without considering the namespace.
25187         Load also literal strings in static class data.
25188
25189 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
25190
25191         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
25192         (default_assembly_name_resolver): Make the resolver take the
25193         "base" directory where the assembly was originally defined, so we
25194         can load DLLs that are in the same directory as the assembly that
25195         is being referenced.
25196
25197 2002-03-28  Dick Porter  <dick@ximian.com>
25198
25199         * file-io.h: 
25200         * file-io.c:
25201         * socket-io.c: 
25202         * unicode.h: 
25203         * unicode.c: Warning cleanups
25204
25205 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
25206
25207         * object.h, reflection.h: use the correct type instead of MonoObject.
25208
25209 2002-03-28  Martin Baulig  <martin@gnome.org>
25210
25211         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
25212         (mono_debug_update_symbol_file): Initialize classes if necessary.
25213
25214 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
25215
25216         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
25217         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
25218
25219 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
25220
25221         * assembly.h: fix function prototype.
25222         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
25223         * mono-endian.h: use const cast.
25224
25225 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
25226
25227         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
25228
25229 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
25230
25231         * loader.c: don't assert when a typeref can't be loaded, give
25232         a chance to the runtime to trow an exception instead.
25233         * loader.h: fix warning.
25234
25235 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
25236
25237         * class.c (mono_class_proxy_vtable): added proxy support
25238
25239 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
25240
25241         * icall.c: removed last of PAL calls, added System.Environment
25242         * file-io.h, file-io.c: MonoIO implementation
25243         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
25244
25245 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
25246
25247         * appdomain.c: do not use the byte marker in ldstr table lookup.
25248         * debug-helpers.c: allow two ':' to separate class and method name.
25249         * object.c: allocate arrays bounds with the GC, too.
25250         * verify: add a few more checks.
25251
25252 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
25253
25254         * reflection.c: output also literal strings. Allocate parameter data
25255         with GC_malloc() (thanks, Martin, for catching this!).
25256
25257 2002-03-26  Martin Baulig  <martin@gnome.org>
25258
25259         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
25260         include the `this' offset in the `param_offsets'.
25261
25262 2002-03-25  Martin Baulig  <martin@gnome.org>
25263
25264         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
25265         mono_debug_get_class() function to get the classes. Added new
25266         relocation types for arrays and strings.
25267         (mono_debug_get_class): New static function to search in all
25268         referenced assemblies for a metadata token.
25269
25270         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
25271
25272 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
25273
25274         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
25275         hold gc-allocated objects. Make the string heap a stream like the
25276         others. Removed duplicated code when writing stream info.
25277         Added asserts to catch possible buffer overflows. Set the sorted map
25278         for tables that need sorting. Added some documentation.
25279
25280 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
25281
25282         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
25283         for interned strings and vtables.
25284
25285 2002-03-24  Martin Baulig  <martin@gnome.org>
25286
25287         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
25288         it in the array since it was created with g_slist_prepend().
25289
25290 2002-03-24  Martin Baulig  <martin@gnome.org>
25291
25292         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
25293         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
25294         (mono_debug_method_from_token): Renamed to
25295         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
25296         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
25297
25298         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
25299         relocation types.
25300
25301         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
25302
25303 2002-03-24  Martin Baulig  <martin@gnome.org>
25304
25305         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
25306         (mono_debug_method_from_token): New func.
25307
25308         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
25309         New interncall, calls mono_debug_local_type_from_signature().
25310         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
25311         calls mono_debug_method_from_token().
25312
25313 2002-03-23  Martin Baulig  <martin@gnome.org>
25314
25315         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
25316         specifies the number of bytes to be converted, not the array size.
25317         Return the number of chars, not the number of bytes.
25318         (ves_icall_iconv_get_chars): The `byteCount' argument
25319         specifies the number of bytes to be converted, not the array size.
25320
25321 2002-03-23  Martin Baulig  <martin@gnome.org>
25322
25323         * reflection.h (MonoReflectionSigHelper): New type.
25324
25325         * reflection.c (mono_reflection_sighelper_get_signature_local),
25326         (mono_reflection_sighelper_get_signature_local): New functions.
25327
25328         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
25329         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
25330         interncalls.
25331
25332 2002-03-23  Martin Baulig  <martin@gnome.org>
25333
25334         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
25335         is_writeable is set.
25336         (mono_raw_buffer_update): New function to write the modified map
25337         back to disk.
25338
25339         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
25340
25341         * debug-symfile.c (mono_debug_update_symbol_file): Call
25342         mono_raw_buffer_update() when done writing.
25343
25344 2002-03-23  Martin Baulig  <martin@gnome.org>
25345
25346         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
25347
25348         * debug-symfile.c: Added support for arguments and local variables.
25349
25350 2002-03-23  Dick Porter  <dick@ximian.com>
25351
25352         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
25353         protected by ifdefs, hence breaking the w32 build.
25354
25355 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
25356
25357         * object.c: implement is_interned() the right way.
25358
25359 2002-03-21  Martin Baulig  <martin@gnome.org>
25360
25361         * debug-symfile.[ch]: New files to handle debugging information
25362         files. There's also support to dynamically update these symbol
25363         files to include machine dependent information.
25364
25365 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
25366
25367         * threads.c (mono_thread_create): new function to create thread
25368         from C
25369
25370 2002-03-20  Martin Baulig  <martin@gnome.org>
25371
25372         * icall.c (ves_icall_InternalInvoke): Create a new object if the
25373         method is a constructor.
25374         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
25375         points to ves_icall_InternalInvoke().
25376
25377 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
25378
25379         * file-io.c: Flush shouldn't throw exceptions.
25380
25381 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
25382
25383         * file-io.c: FileStream flush support; FileSetLength now
25384         restores file pointer.
25385
25386 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
25387
25388         * class.c: set image for pointer classes.
25389
25390 2002/03/19  Nick Drochak <ndrochak@gol.com>
25391
25392         * sysmath.c: Forgot one.
25393
25394 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
25395
25396         * sysmath.c: Avoid redefining existing names.
25397
25398 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
25399
25400         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
25401         handled by runtime as icall rather than dllimport from libm.so
25402         * file-io.c, file-io.h: fixed handle argument type.
25403
25404 2002-03-18  Dick Porter  <dick@ximian.com>
25405
25406         * reflection.c (mono_image_get_type_info): rename interface to
25407         iface, because of "#define interface struct" on windows.
25408
25409 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
25410
25411         * class.c, class.h: rename and export mono_ptr_class_get().
25412         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
25413         * reflection.c, reflection.h, icall.c: better/saner type name
25414         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
25415         method signatures.
25416
25417 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
25418
25419         * class.c (mono_class_init): removed hardcoded GHC_SLOT
25420
25421         * icall.c (ves_icall_InternalInvoke): impl.
25422
25423 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
25424
25425         * reflection.c: output the interface map table, too.
25426
25427 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
25428
25429         * class.c (class_compute_field_layout): separate computation of 
25430         static field layout
25431
25432 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
25433
25434         * icall.c: added System.Buffer support.
25435         * file-io.c: moved file icalls from PAL to FileStream.
25436
25437 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
25438
25439         * icall.c (ves_icall_System_Object_GetHashCode): impl.
25440
25441 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
25442
25443         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
25444
25445 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
25446
25447         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
25448
25449 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
25450
25451         * debug-helpers.{c,h}: moved here from monograph some useful functions
25452         to locate a method by name/signature in a class or image. Included
25453         also a small and flexible IL disassembler.
25454
25455 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
25456
25457         * reflection.c: fixup tokens in methods with small header size, too.
25458
25459 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
25460
25461         * object.c (mono_string_to_utf8): remove assert(!error), instead
25462         print a warning. 
25463
25464 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
25465
25466         * icall.c: update to the new mono_Array_class_get interface.
25467
25468 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
25469
25470         * appdomain.c, object.c: Boehm-GC enable.
25471         * icall.c: make get_data_chunk() support split data requests.
25472         Ensure a class is initialized in more cases. Return only the first
25473         property found in GetProperties() or the compiler gets confused. 
25474         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
25475         * reflection.h, reflection.c: add fixup mechanism for field and method
25476         tokens. Initialize assembly->typeref in a single place. Output
25477         properties after events. Support custom attributes for events, too.
25478         Typo fix for paramter custom attrs.
25479
25480 2002-03-07  Martin Baulig  <martin@gnome.org>
25481
25482         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
25483
25484 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
25485
25486         * class.c (mono_array_class_get): fix. for multi. dim. arrays
25487
25488 2002-03-06  Martin Baulig  <martin@gnome.org>
25489
25490         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
25491         non-zero lower bounds. See testcases #F10-#F13.
25492
25493 2002-03-05  Martin Baulig  <martin@gnome.org>
25494
25495         * exception.c (mono_get_exception_argument_out_of_range): New exception.
25496
25497         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
25498         ves_icall_System_Array_GetValue(), only calculate the absolute array position
25499         here.
25500         (ves_icall_System_Array_SetValue): Likewise.
25501         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
25502         as argument and does the actual work. This function is used when copying a
25503         multi-dimensional array.
25504         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
25505         now do all the widening conversions of value types.
25506         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
25507
25508 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
25509
25510         * class.c: remove some magic numbers and use the smbolic names,
25511         instead. Added init_events() to load event info at class init time.
25512         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
25513         and mono_metadata_methods_from_event().
25514         * reflection.h, reflection.c: added support for writing out the evnets
25515         related information.
25516
25517 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
25518
25519         * reflection.h, icall.c: use a different method (GetInterfaces)
25520         to gather interface info and add isbyref, isprimitive and
25521         ispointer to the ves_icall_get_type_info() return value.
25522
25523 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
25524
25525         * class.h: stared adding support for events.
25526         * icall.c: split find_members implementation. Added debug icall to get
25527         the address of an object.
25528         * reflection.c: handle TypeBuilders in mono_type_get_object().
25529
25530 2002-03-01  Martin Baulig  <martin@gnome.org>
25531
25532         * icall.c (ves_icall_System_Array_GetLength): This must throw an
25533         ArgumentOutOfRangeException(), not an ArgumentException().
25534         (ves_icall_System_Array_GetLowerBound): Likewise.
25535         (ves_icall_System_Array_GetValue): Improved argument checking.
25536         (ves_icall_System_Array_SetValue): Improved argument checking.
25537
25538 2002-03-01  Martin Baulig  <martin@gnome.org>
25539
25540         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
25541         called with invalid arguments rather than just dying with g_assert().
25542         (ves_icall_System_Array_SetValue): Likewise.
25543         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
25544         raise a NotImplementedException instead.
25545         (ves_icall_System_Array_GetLength): Added argument checking.
25546         (ves_icall_System_Array_GetLowerBound): Added argument checking.
25547
25548 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
25549
25550         * object.h (mono_assert): new macros mono_assert and
25551         mono_assert_not_reached
25552
25553 2002-02-28  Martin Baulig  <martin@gnome.org>
25554
25555         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
25556         and "System::String::IsInterned" to "System::String::_IsInterned".
25557
25558 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
25559
25560         * icall.c: remove hacks for typebuilder. Added icall to create a
25561         modified type from a tybebuilder.
25562         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
25563         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
25564         to create a backing MonoClass for a TypeBuilder.
25565
25566 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
25567
25568         * class.c, class.h: more refactoring of class init.
25569         Export mono_class_setup_mono_type() and mono_class_setup_parent().
25570
25571 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
25572
25573         * marshal.c, marshal.h: start of marshaling interface.
25574
25575 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
25576
25577         * icall.c: fix order in assembly qualified name icall.
25578
25579 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
25580
25581         * class.c: do not free str, since we store it in the hash table.
25582         * reflection.h: add label field to MonoILExceptionInfo.
25583         * reflection.c: handle references to more than one assembly. Handle
25584         case when there isn't a module created in the assembly.
25585
25586 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
25587
25588         * class.c: Fix typo. Start refactoring of class init code.
25589
25590 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
25591
25592         * appdomain.c: exit with 1 on error.
25593         * class.c: we already have the name in MonoClassField.
25594         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
25595         MonoStreamHeader instead of an offset of image->raw_metadata.
25596
25597 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
25598
25599         * appdomain.c (mono_init): Be even more descriptive about the error.
25600
25601 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
25602
25603         * appdomain.c: give the user an informative message when corlib can't
25604         be loaded.
25605
25606 2002-02-26  Martin Baulig  <martin@gnome.org>
25607
25608         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
25609         New icall to get the time zone data.
25610
25611 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
25612
25613         * reflection.c: set virtual and raw size of section correctly.
25614         * threads.c: transfer domain information to newly created threads.
25615
25616 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
25617
25618         * class.c: when instancing a class in a domain, load the default
25619         vaules for static fields from the constant table. Fix System.Enum to
25620         not be an enum.
25621         * icall.c: implement Object::GetType() internalcall. Implemented
25622         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
25623         Fixed checking of binding flags in find_members().
25624         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
25625         * reflection.c: handle enumerations when writing to the constant
25626         table. Use a different object cache for types.
25627
25628
25629 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
25630
25631         * object.c (mono_object_isinst): fix for arrays
25632
25633         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
25634
25635 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
25636
25637         * object.c: don't use mprotect ()  and fix intern pool hash table
25638         lookup for big endian systems.
25639
25640 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
25641
25642         * icall.c: change type_is_subtype_of () signature.
25643
25644 2002-02-21  Mark Crichton  <crichton@gimp.org>
25645
25646         * rand.c, rand.h: Added random number generator for
25647         System.Security.Cryptography classes.
25648
25649         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
25650
25651         * icall.c: Added System.Security.Cryptography calls.
25652
25653 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
25654
25655         * class.c, icall.c, metadata.c: better support for pointer types.
25656         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
25657         * reflection.c: Add support for getting custom attrs for properties
25658         and simplify some code.
25659
25660 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
25661
25662         * icall.c: change getToken () and add custom attribute GetBlob()helper
25663         method.
25664         * reflection.h: add custom attrs array to the reflection builder structures.
25665         * reflection.c: encode and emit custom attributes for all the relevant
25666         reflection objects. Cache fieldref and methodref tokens. Change
25667         mono_image_create_token() interface to take a MonoDynamicAssembly.
25668         More complete custom attributes decoder. Load custom attributes for
25669         Assembly, Field, Method and Constructor objects, too. Make the
25670         returned array an Attribute[] one, not object[]. Added
25671         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
25672         custom attribute constructor.
25673
25674 2002-02-20  Dick Porter  <dick@ximian.com>
25675
25676         * icall.c:
25677         * rawbuffer.c:
25678         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
25679         problem code out for now).
25680
25681 2002-02-19  Radek Doulik  <rodo@ximian.com>
25682
25683         * object.c (mono_ldstr): use hash table to avoid multiple swapping
25684
25685 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
25686
25687         * icall.c: register the GetCustomAttributes method.
25688         * object.c, object.h: add mono_string_new_len ().
25689         * reflection.h, reflection.c: added mono_runtime_invoke(),
25690         mono_install_runtime_invoke(). Added
25691         mono_reflection_get_custom_attrs () to load custom attributes and
25692         create the attribute objects.
25693
25694 2002-02-19  Dick Porter  <dick@ximian.com>
25695         * threads-dummy-types.c:
25696         * threads-dummy-types.h:
25697         * threads-dummy.c:
25698         * threads-dummy.h:
25699         * threads-pthread-types.c:
25700         * threads-pthread-types.h:
25701         * threads-pthread.c:
25702         * threads-pthread.h:  Deleted obsolete files
25703
25704 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
25705
25706         * class.c (mono_class_vtable): runtime init the class when we
25707         allocate static class data.
25708
25709         * icall.c (ves_icall_System_Array_SetValue): check for null values.
25710
25711         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
25712         and String - but we will need generic marshalling support in the
25713         future. 
25714         (mono_init): set the domain name in a ms compatible way
25715
25716         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
25717         String[].
25718
25719 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
25720
25721         * object.c (mono_array_clone): use alloca() instead of g_malloc  
25722         for sizes
25723
25724         * appdomain.c (mono_domain_unload): impl.
25725
25726 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
25727
25728         * appdomain.c, object.c: fix intern pool implementation.
25729         * class.c: fix alignment code.
25730
25731 2002-02-16  Radek Doulik  <rodo@ximian.com>
25732
25733         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
25734         and s2 > s1, just copy lower bytes to be compatible with little
25735         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
25736         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
25737
25738         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
25739         force big_endian to be 1 for big endian machines 
25740         (ves_icall_iconv_new_decoder): ditto
25741
25742 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
25743
25744         * socket-io.c (convert_sockopt_level_and_name): If the system
25745         doesn't define SOL_IP or SOL_TCP, get them by hand using
25746         getprotobyname() and caching the values (because this could be a
25747         slow operation).
25748         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
25749         Use the appropriate struct when the system does support it. Ie,
25750         not all systems have struct ip_mreqn so use struct ip_mreq when
25751         appropriate.
25752
25753 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
25754
25755         * reflection.c: handle finally clauses.
25756
25757 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
25758
25759         * socket-io.c: use g_snprintf() instead of snprintf.
25760
25761 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
25762
25763         * reflection.c (mono_param_get_objects): Cast second argument to
25764         mono_method_get_param_names to a const char** to silence the
25765         compiler warning.
25766
25767         * appdomain.c (mono_domain_assembly_open): Put parens around the
25768         truth statement in the for-loop.
25769
25770         * unicode.c (iconv_convert): Got rid of a compiler warning about
25771         int i being unused when the system has a new iconv.
25772         (iconv_get_length): Same.
25773
25774         * image.c (load_class_names): Cast the second argument to
25775         g_hash_table_insert() to char* to hush compiler warnings about the
25776         arg being a const.
25777         (mono_image_open): Same here.
25778
25779         * socket-io.c: Don't conditionally include sys/filio.h or
25780         sys/sockio.h here anymore since we now get them from
25781         io-layer/io-layer.h
25782         (inet_pton): If the system doesn't support inet_aton, implement
25783         using inet_addr and also #define INADDR_NONE if it isn't defined
25784         by the system.
25785
25786 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
25787
25788         * metadata.c, metadata.h: added function to get packing and size info
25789         of a typedef.
25790         * reflection.h, reflection.c: handle field RVA data. Save info about
25791         the table layout if needed. Assign typedef indexes to all the types
25792         before dumping the info about them to avoid forward reference problems.
25793
25794 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
25795
25796         * socket-io.c (convert_sockopt_level_and_name): ifdef
25797         SO_ACCEPTCONN because it is not defined on my system (old debian)
25798
25799 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
25800
25801         * opcode.c: use stddef.h to get NULL.
25802
25803 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
25804
25805         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
25806         for FIONBIO, FIONREAD and SIOCATMARK.
25807         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
25808         define INADDR_NONE and besides, inet_addr() is deprecated and
25809         should not be used. Use inet_pton() instead - it also has the
25810         added bonus that it can easily handle IPv6 addresses as well.
25811         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
25812
25813 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
25814
25815         * decimal.c: remove _MSC_VER conditional.
25816
25817 2002-02-13  Dick Porter  <dick@ximian.com>
25818
25819         * socket-io.c: 
25820         * icall.c: Internal calls for Blocking, Select, Shutdown,
25821         GetSocketOption and SetSocketOption
25822
25823 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
25824
25825         * assembly.cs: better resolver: use it instead of some kludgy
25826         code.
25827
25828 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
25829
25830         * reflection.c: the best way to speed-up the compiler is to avoid
25831         infinite loops.
25832
25833 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
25834
25835         * class.c (mono_class_vtable): changed the object layout
25836         (obj->vtable->class). 
25837         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
25838
25839 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
25840
25841         * assembly.c: look for assemblies in the assembly dir, too.
25842
25843 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
25844
25845         * class.c: fix thinko in mono_class_from_type().
25846
25847 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
25848
25849         * exception.h, exception.c: added TypeLoadException.
25850         * object.h, object.c: added mono_array_clone ().
25851         * icall.c: handle throwOnError in AssemblyGetType().
25852         Added Array.Clone().
25853         * opcode.h, opcode.c: use a single value for the opcode val.
25854         Compile fix for non-gcc compilers.
25855
25856 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
25857
25858         * opcodes.c, opcodes.h: export interesting info about opcodes.
25859
25860 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
25861
25862         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
25863         icalls. 
25864
25865         * class.c (class_compute_field_layout): set element_class for enums
25866         (mono_class_create_from_typedef): set element_class for normal classes
25867
25868         * icall.c (ves_icall_System_Enum_get_value): impl.
25869
25870         * class.c (mono_class_create_from_typedef): do not set valuetype
25871         flag for System.ValueType and System.Enum
25872
25873 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
25874
25875         * unicode.c (iconv_convert): fix big endian problem.
25876
25877 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
25878
25879         * class.c: add asserts if we are ever going to scribble over memory.
25880         * socket-io.c: not all systems have AF_IRDA defined.
25881
25882 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
25883
25884         * class.c (class_compute_field_layout): do not consider static
25885         fields to compute alignment
25886
25887 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
25888
25889         * appdomain.c (mono_appdomain_get): impl.
25890         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
25891
25892 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
25893
25894         * icall.c: ignore "file://" prefix when loading an assembly.
25895
25896 2002-01-23  Dick Porter  <dick@ximian.com>
25897
25898         * socket-io.c:
25899         * icall.c:
25900         * Makefile.am: Added socket support
25901
25902 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
25903
25904         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
25905         code back.  This should return the assemblies that are loaded by
25906         the runtime on behalf of an application domain. 
25907
25908         The current implementation is still broken, it just returns every
25909         assembly loaded, but until we get real applications domain this
25910         will do.
25911
25912 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
25913
25914         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
25915         AppDomain object.
25916
25917 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
25918
25919         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
25920         the mono_class_from_name lookup.
25921         (ves_icall_get_parameter_info): ditto.
25922         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
25923         method.
25924         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
25925
25926 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
25927
25928         * class.c: load also nested classes on class init.
25929         System.ValueType instance methods gets passed boxed
25930         values, unless methods in derived classed that get a pointer to the
25931         data.
25932         * icall.c: use better name parsing code in GetType().
25933         * image.c, image.h: add mono_image_loaded ().
25934         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
25935         * reflection.c, reflection.h: added mono_reflection_parse_type().
25936
25937 2002-01-22  Veronica De Santis <veron78@interfree.it>
25938
25939         * icall.c : Added mapping of internal calls for Manual and Auto reset events
25940         * threads.c : Added the implementation of internal calls for events
25941         * threads.h : Added prototypes of internal calls for events
25942         
25943 2002-01-21  Radek Doulik  <rodo@ximian.com>
25944
25945         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
25946
25947 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
25948
25949         * class.c (mono_class_init): set min_align to 1 (instead of 0)
25950         (mono_class_value_size): use min_align
25951
25952 2002-01-20  Dick Porter  <dick@ximian.com>
25953
25954         * threads.h:
25955         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
25956         so it compiles on w32.
25957
25958 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
25959
25960         * metadata.c (mono_type_stack_size): impl.
25961
25962         * class.c (mono_class_get_field): impl. memberref token
25963
25964 2002-01-16 Veronica De Santis <veron78@@interfree.it>
25965
25966         * icall.h : Added the internal calls mapping for CreateMutex_internal
25967                     and ReleaseMutex_internal.
25968         * threads.h : Added the prototype of mutexes internal calls.
25969         * threads.c : Added the implementations of mutexes internal calls.
25970
25971 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
25972
25973         * metaparse.h: removed unused file.
25974         * reflection.c, reflection.h: added stream_data_align () function 
25975         to align data in streams and keep stream aligned. Add support for
25976         exception support in method headers.
25977
25978 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
25979
25980         * unicode.c: make iconv_convert () return the number of bytess written
25981         in the output buffer.
25982
25983 2002-01-15  Dick Porter  <dick@ximian.com>
25984         * threads.c: Make the runtime's idea of infinite timeouts coincide
25985         with the class library's
25986
25987         Fix a particularly egregious bug in mono_thread_cleanup(). That
25988         code was so utterly bogus it must have been written on a Monday.
25989
25990 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
25991
25992         * reflection.h: add subtypes field to TypeBuilder.
25993         * reflection.c: encode constants for literal fields.
25994         Handle subtypes. Fix user string token (and add a zero byte)
25995         at the end.
25996         
25997 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
25998
25999         * class.c (mono_class_init): bug fix: assign slot numbers for
26000         abstract methods.
26001
26002 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
26003
26004         * reflection.c: don't try to output a code RVA for abstract methods.
26005         Small fixes for method header format. Output parameter info to the
26006         ParamDef table. Save method overriding info to MethodImpl table.
26007         Fix property support. Allow typedef.extends to be a type in the
26008         building assembly.
26009         * verify.c: fix off-by-one error.
26010
26011 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
26012
26013         * class.c: fix mono_class_from_mono_type () for szarray types.
26014         Remove unused cache check in mono_class_from_type_spec().
26015         * icall.c: *type_from_name () functions handle simple arrays and byref.
26016         * reflection.c: handle byref and szarray types. Handle methods without
26017         body (gets P/Invoke compilation working). Handle types and fields in
26018         get_token ().
26019         * reflection.h: add rank to MonoTypeInfo.
26020
26021 2002-01-10  Dick Porter  <dick@ximian.com>
26022
26023         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
26024         internal calls
26025
26026 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
26027
26028         * icall.c: initialize class in type_from_handle ().
26029         Loop also in parent classes for get_method ().
26030         * reflection.c: properly encode class and valuetype types.
26031         Start on encoding TypeBuilder types. Handle fieldrefs.
26032         Use correct length when registering a user string.
26033         Handle ConstructorBuilder and MonoMethod in get_token ().
26034         Make mono_type_get_object () aware of cached types.
26035         * object.c: back out change to mono_string_new ().
26036
26037 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
26038         * object.c: mono_string_new should return a NULL when the string 
26039         passed in is NULL -- not try to deference it.
26040         
26041 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
26042
26043         * icall.c: hack to make IsSubType work for TypeBuilders.
26044         * reflection.c: emit constructors before methods.
26045         Retrieve param names in mono_param_get_objects().
26046
26047 2002/01/05  Nick Drochak  <ndrochak@gol.com>
26048
26049         * Makefile.am: fix list of headers and sources so automake 1.5
26050         doesn't complain. Removed \# at end of list.
26051
26052 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
26053
26054         * reflection.c: get token for a method ref. Set return type of
26055         constructor to void.
26056         * loader.c: debug message.
26057         * class.c: typo fix.
26058
26059 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
26060
26061         * icall.c: fix array init with rank > 1. FindMembers
26062         loops in parent class as well.
26063         * image.c: do not insert nested types in name cache.
26064         * reflection.c: warning fix.
26065         * reflection.h: add override method (for interface impl).
26066
26067 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
26068
26069         * metadata.c: fix customattr decoding.
26070
26071 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
26072
26073         * rawbuffer.cs: Added native Win32 implementation, avoids using
26074         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
26075
26076 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
26077
26078         * class.c: make the low-level routines handle the cache.
26079
26080 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
26081
26082         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
26083
26084 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
26085
26086         * class.c: fix mono_array_element_size() for objects.
26087         * class.h, class.c: add properties to MonoClass and load them
26088         at init time.
26089         * icall.c: check with isinst() when assigning a value to an array
26090         instead of requiring the classes to match exactly.
26091         Implemented icall for System.Type::GetType().
26092         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
26093         enums. Handle bindingflags when looking for methods and fields.
26094         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
26095         and mono_metadata_methods_from_property().
26096         * reflection.h, reflection.c: added structures for propreties,
26097         parameters and enums. Implemented mono_property_get_object() and
26098         mono_param_get_objects().
26099
26100 2001-12-18  Dick Porter  <dick@ximian.com>
26101
26102         * file-io.c: Use mono_string_to_utf16() instead of
26103         mono_string_chars()
26104
26105         * object.c: Added mono_string_to_utf16(), which copies the non
26106         NULL-terminated MonoString into a new double-null-terminated
26107         buffer.
26108
26109 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
26110
26111         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
26112
26113 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
26114
26115         * file-io.c: raise exceptions if handle is invalid.
26116
26117 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
26118
26119         * assembly.c: yet another check for mscorlib.
26120         * class.c, class.h: load nesting info for classes.
26121         * icall.c: many new functions to support the Reflection classes.
26122         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
26123         * reflection.h, reflection.c: mono_image_create_token(),
26124         mono_assembly_get_object(), mono_type_get_object(),
26125         mono_method_get_object(), mono_field_get_object(): methods to return
26126         objects that parallel the C representation of assemblies, types,
26127         methods, fields.
26128
26129 2001-12-11  Dick Porter  <dick@ximian.com>
26130
26131         * icall.c:
26132         * file-io.c: Internal calls for file IO.
26133
26134 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
26135
26136         * tabledefs.h: missing FileAttributes.
26137         * verify.h, verify.c: use is_valid_string () to simplify and check for
26138         valid strings more correctly. Fix warnings and speeling.
26139         Check more tables: Filed, File, ModuleRef, StandAloneSig.
26140         Check code: branches, maxstack, method calls.
26141
26142 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
26143
26144         * object.c (mono_object_allocate): removed static, so that the jit
26145         can allocate value types.
26146
26147         * icall.c (ves_icall_System_DateTime_GetNow): impl.
26148
26149 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
26150
26151         * class.c: init enum types right away and register the
26152         token->MonoClass map in mono_class_create_from_typedef ().
26153         * verify.h, verify.c: first cut of the verifier.
26154         * pedump.c: add --verify switch to verify metadata tables.
26155         * tabledefs.h: add some missing enums.
26156
26157 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
26158
26159         * class.c (mono_install_runtime_class_init): impl.
26160         (mono_class_init): renamed mono_class_metadata_init to
26161         mono_class_init, also removed the metadata_inited flag
26162
26163         * object.c (mono_object_isinst): use faster algorithm
26164
26165 2001-11-30  Radek Doulik  <rodo@ximian.com>
26166
26167         * mono-endian.h: reverted last change
26168         added function prototypes
26169
26170         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
26171         add mono-endian.c back
26172
26173         * mono-endian.c: returned back, as Paolo pointed out, it's needed
26174         for unaligned access, I've mistaked it with endianess. I am
26175         sorry.
26176         (mono_read16): fix reverted endianess
26177         (mono_read64): ditto
26178         (mono_read32): ditto
26179
26180 2001-11-30  Dick Porter  <dick@ximian.com>
26181
26182         * exception.c: Implement mono_exception_from_name()
26183
26184 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
26185
26186         * metadata.h, metadata.c: remove params_size and locals_size and their
26187         calculation from the metadata code: they are only usefult to the
26188         interp.
26189
26190 2001-11-29  Radek Doulik  <rodo@ximian.com>
26191
26192         * object.c (mono_ldstr): swap bytes here, it's probably not the
26193         best place, but works for me now, I'll redo it once I know mono
26194         better, also note that I add PROT_WRITE and don't reset back, also
26195         note that it's only affects big endians, so x86 should be OK
26196
26197         * mono-endian.h (read16): use just glib macros for both endians
26198
26199         * mono-endian.c: removed as glib macros are used in in
26200         mono-endian.h so we don't need to care about endianess for read
26201         macros as glib does that for us already
26202
26203 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
26204
26205         * class.h, class.h: take minimum alignment into consideration so
26206         that the fields of a class remain aligned also when in an array.
26207
26208 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
26209
26210         * loader.h, loader.c: add mono_method_get_param_names().
26211         * class.c: 0-init class fields.
26212
26213 2001-11-26  Dick Porter  <dick@ximian.com>
26214
26215         * icall.c:
26216         * threads-types.h:
26217         * threads.c: New file that handles System.Threading on all platforms
26218
26219         * object.c: 
26220         * object.h: Remove the synchronisation struct from MonoObject,
26221         replace it with a pointer that gets initialised on demand
26222
26223         * Makefile.am: Replace all the system-specific threading code with
26224         a single file that uses the new wrapper library
26225
26226 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
26227
26228         * class.c, class.h: add mono_install_trampoline() so that the runtime
26229         can register a function to create a trampoline: removes the ugly
26230         requirement that a runtime needed to export arch_create_jit_trampoline.
26231         * object.h, object.c: added mono_install_handler() so that the runtime
26232         can install an handler for exceptions generated in C code (with
26233         mono_raise_exception()). Added C struct for System.Delegate.
26234         * pedump.c: removed arch_create_jit_trampoline.
26235         * reflection.c: some cleanups to allow registering user strings and
26236         later getting a token for methodrefs and fieldrefs before the assembly
26237         is built.
26238         * row-indexes.h: updates and fixes from the new ECMA specs.
26239
26240 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
26241
26242         * class.h, class.c: add enum_basetype field to MonoClass.
26243         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
26244         to get index in the constant table reated to a field, param or
26245         property.
26246         * reflection.h, reflection.c: handle constructors. Set public-key and
26247         version number of the built assembly to 0.
26248         * row-indexes.h: update from new ECMA spec.
26249
26250 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
26251
26252         * class.h, class.c: add a max_interface_id to MonoClass.
26253         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
26254         since it's used to do that. Added mono_type_type_from_obj().
26255         Make GetType() return NULL instead of segfaulting if the type was not
26256         found. Handle simple arrays in assQualifiedName.
26257         * object.h: add a struct to represent an Exception.
26258         * reflection.c: output call convention in method signature.
26259         Add code to support P/Invoke methods and fixed offsets for fields.
26260
26261 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
26262
26263         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
26264         the value.
26265         * icall.c: use mono_array_addr instead of array->vector: fixes the
26266         reflection image writing.
26267         * reflection.c: init call convention byte to 0 in method signature.
26268         Encode the property signature. Don't output property-related methods
26269         twice. Really process the properties for a type (don't cast a field to
26270         a property, my mom always told me that).
26271         Fix 64 bit issues in pointer alignment in a different and more
26272         readable way.
26273
26274 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
26275
26276         * loader.h: Removed type class from MonoDefaults, added monotype
26277
26278         * loader.c: Loaded MonoType, removed loading of Type
26279
26280         * icall.c (my_mono_new_object): Now returns a System.MonoType,
26281         and fills in System.Type._impl with a RuntimeTypeHandle rather
26282         than the actual MonoClass *
26283
26284         (ves_icall_type_from_handle): change from type_class to
26285         monotype_class
26286
26287         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
26288         implemented
26289
26290         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
26291         implemented
26292
26293         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
26294
26295         (ves_icall_System_Reflection_Assembly_GetType): implemented
26296
26297         (ves_icall_System_MonoType_assQualifiedName): implemented
26298
26299         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
26300
26301 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
26302
26303         * assembly.c (mono_assembly_open): Implement a cache for the
26304         assemblies. 
26305
26306         (mono_assembly_close): only destroy the assembly when the last
26307         reference is gone.
26308         
26309 2001-11-09  Dick Porter  <dick@ximian.com>
26310
26311         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
26312
26313 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
26314
26315         * class.c (mono_class_metadata_init): bug fix: compute the right slot
26316
26317 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
26318
26319         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
26320         from Martin Weindel.
26321         * object.h: add mono_string_chars ().
26322
26323 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
26324
26325         * reflection.c (build_compressed_metadata): Eliminates warnings
26326         and uses 64-bit clean code.
26327
26328         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
26329         (mono_type_equal): Change signature to eliminate warnings.
26330
26331 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
26332
26333         * icall.c, loader.c: remove the internalcall array constructors.
26334         Changes to match the new MonoArray structure.
26335         * object.h, object.c: an array object doesn't allocate an extra
26336         vector. Add mono_array_new_full () to create jagged arrays easily.
26337
26338 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
26339
26340         * metadata.h, metadata.c: add mono_metadata_field_info () to
26341         retreive all the info about a field from vairous tables.
26342         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
26343         * class.h, class.c: augment MonoClassField with more info.
26344         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
26345         policy and load a field's RVA if needed.
26346
26347 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
26348
26349         * class.c (mono_class_metadata_init): create a trampoline for all
26350         virtual functions instead of actually compiling them.
26351
26352 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
26353
26354         * class.h, class.c: include name in MonoClassField.
26355         * class.c: fix fundamental type of System.Object and System.String.
26356         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
26357         tokens in ldtoken.
26358         * icall.c: remove internalcalls for the Reflection stuff that is now
26359         done in C# code.
26360         * loader.c: mono_field_from_memberref () implementation.
26361         * mono-endian.c: thinko (s/struct/union/g).
26362         * object.c, object.h: make the mono_string_* prototypes actually use
26363         MonoString instead of MonoObject.
26364         * reflection.c, reflection.h: updates for changes in the reflection
26365         code in corlib: we use C structures that map to the actual C# classes.
26366         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
26367         fat method header if needed and use the info from the ILGenerator for
26368         methods. Handle fields in types. Misc fixes.
26369
26370 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
26371
26372         * class.c (mono_class_metadata_init): bug fix: always allocate
26373         space for static class data
26374
26375 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
26376
26377         * class.c (mono_compute_relative_numbering): use relative
26378         numbering to support fast runtime type checks.
26379
26380 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
26381
26382         * class.c (mono_class_create_from_typeref): added debugging output
26383         to print class name when MonoDummy is returned instead of real class
26384
26385 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
26386
26387         * class.c (mono_class_metadata_init): interface offset table now
26388         contains pointers into the vtable - this is more efficient for the jit
26389
26390 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
26391
26392         * class.c (mono_class_metadata_init): use a temporary vtable (the
26393         old algorithm only worked for the interpreter, but not for the jit)
26394
26395 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
26396
26397         * loader.c (method_from_memberref): use mono_class_get to get the
26398         class of an array instead of using System.Array directly.
26399         (mono_get_method): also add MEMBERREF methods to the method cache
26400         which usefull for arrays.
26401
26402 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
26403
26404         * pedump.c (arch_compile_method): added to compute vtable entry
26405
26406         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
26407         number of interfaces.
26408         
26409         * class.h: merged MonoArrayClass into MonoClass
26410
26411         * class.c (mono_class_create_from_typedef): compute the vtable size and
26412         allocate space to include the vtable inside MonoClass
26413         (mono_class_metadata_init): initialize the vtable
26414
26415 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
26416
26417         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
26418         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
26419         * image.c: endian fixes by Laurent Rioux.
26420         * object.h, object.c: rename MonoStringObject to MonoString and
26421         MonoArrayObject to MonoArray. Change some function names to conform to
26422         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
26423         guint16* as first argument, so don't use char*.
26424         Provide macros to do the interesting things on arrays in a portable way.
26425         * threads-pthread.c: updates for the API changes and #include <sched.h>
26426         (required for sched_yield()).
26427         * icall.c: updates for the API changes above.
26428         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
26429         platforms that need them.
26430
26431 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
26432
26433         * class.c: set the correct type for all the fundamental
26434         type when loading the class.
26435
26436 2001-10-05  Dick Porter  <dick@ximian.com>
26437
26438         * threads-pthread.c (pthread_mutex_timedlock): Simple
26439         compatibility version for C libraries that lack this call.
26440
26441 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
26442
26443         * class.c: MonoTypes stored in MonoClass are stored as
26444         fundamental MonoTypes when the class represents a
26445         fundamental type (System.Int32, ...).
26446         The TypeHandle return by ldtoken is a MonoType*.
26447         * icall.c: ves_icall_get_data_chunk () write out all the
26448         PE/COFF stuff. Implement ves_icall_define_method (),
26449         ves_icall_set_method_body (), ves_icall_type_from_handle ().
26450         * image.c: properly skip unknown streams.
26451         * loader.h, loader.c: add type_class to mono_defaults.
26452         * metadata.c, metadata.h: export compute_size () as
26453         mono_metadata_compute_size () with a better interface.
26454         Typo and C&P fixes.
26455         * pedump.c: don't try to print the entry point RVA if there is no entry point.
26456         * reflection.c, reflection.h: many cleanups, fixes, output method
26457         signatures and headers, typedef and typeref info, compress the metadata
26458         tables, output all the heap streams, cli header etc.
26459         * row-indexes.h: typo fixes.
26460
26461 2001-10-04  Dick Porter  <dick@ximian.com>
26462
26463         * object.h: Add a synchronisation mutex struct to MonoObject
26464
26465         * object.c (mono_new_object): Initialise the object
26466         synchronisation mutexes
26467
26468         * icall.c: System.Threading.Monitor internal calls
26469         
26470         * threads-pthread.h:
26471         * threads-pthread.c: System.Threading.Monitor internal calls
26472
26473         * threads-types.h: New file, includes the system-specific thread
26474         structures
26475         
26476         * threads-pthread-types.h:
26477         * threads-pthread-types.c: New files, handle pthread-specific
26478         synchronisation types
26479
26480         * threads-dummy-types.h: 
26481         * threads-dummy-types.c: New files of dummy support for
26482         thread-specific types
26483
26484         * metadata.c:
26485         * image.c:
26486         * pedump.c: include mono-endian.h not endian.h
26487         
26488         * Makefile.am: More threads files.
26489         Name mono-endian.h not endian.h
26490
26491 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
26492
26493         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
26494         stuff and implement a few more bits.
26495         * icall.c: a field needs to be dereferenced twice. Do not use the same
26496         name for two variables in the same scope.
26497         * image.c, image.h: cleanups.
26498
26499 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
26500
26501         * class.c (mono_class_metadata_init): bug fix: compute the right size
26502
26503 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
26504
26505         * icall.c: implemented some of the Reflection internalcalls.
26506         * image.c, image.h: start writing out the PE/COFF image.
26507         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
26508         that does the reverse than decode_blob_size ().
26509         * object.c: use mono_metadata_encode_value (). Move here
26510         temporary implementation of mono_string_to_utf8 ().
26511         * rawbuffer.c: make malloc_map static.
26512
26513 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
26514
26515         * metadata.c: fix type comparison for arrays.
26516         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
26517         Added a couple of new classes to monodefaults.
26518         * icall.c: added a couple of Reflection-related internalcalls.
26519         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
26520         Added a byval_arg MonoType to MonoClass.
26521
26522 2001-09-28  Dick Porter  <dick@ximian.com>
26523
26524         * icall.c:
26525         * threads-pthread.h: 
26526         * threads-pthread.c: Implemented internal calls for
26527         LocalDataStoreSlot operations.  Applied mutexes around all shared
26528         data.  Reworked the thread creation and Start() operations to
26529         avoid a race condition.
26530         
26531         * threads-dummy.h:
26532         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
26533
26534 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
26535
26536         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
26537
26538 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
26539
26540         * class.c, loader.c: warn and return NULL instead of erroring out.
26541         * icall.c: added System.AppDomain::getCurDomain().
26542         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
26543
26544 2001-09-25  Dick Porter  <dick@ximian.com>
26545
26546         * threads-pthread.h:
26547         * threads-pthread.c: Implemented timed thread joining and added
26548         System.Threading.Thread::Join_internal internal call
26549
26550         * icall.c: Added System.Threading.Thread::Join_internal internal call
26551
26552         * threads-dummy.h:
26553         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
26554
26555 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
26556
26557         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
26558         mono_string_intern () to implement the semantics of the ldstr opcode
26559         and the interning of System.Strings.
26560         * icall.c: provide hooks to make String::IsIntern and String::Intern
26561         internalcalls.
26562
26563 2001-09-23  Dick Porter  <dick@ximian.com>
26564
26565         * threads-dummy.c: 
26566         * threads-dummy.h: New files of dummy threading routines
26567
26568         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
26569         support code based on system specifics
26570
26571         Rename PTHREAD_LIBS to THREAD_LIBS
26572         
26573 2001-09-23  Dick Porter  <dick@ximian.com>
26574
26575         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
26576         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
26577         internal calls.
26578         (mono_thread_init): Set up a Thread object instance to return when
26579         the main thread calls Thread.CurrentThread
26580         (mono_thread_cleanup): Wait for all subthreads to exit
26581
26582         * icall.c: New internal calls for System.Threading.Thread::Sleep
26583         (including Schedule) and CurrentThread
26584
26585         * threads.h: New file, to insulate thread-specific stuff from the
26586         rest of the code
26587
26588 2001-09-21  Dick Porter  <dick@ximian.com>
26589
26590         * threads-pthread.h: 
26591         * threads-pthread.c: New file, for handling pthreads-style
26592         threading support.  Start() now starts a new thread and executes
26593         the ThreadStart delegate instance.
26594
26595         * icall.c: Added the internalcall for
26596         System.Threading.Thread::Start_internal
26597
26598         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
26599
26600 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
26601
26602         * loader.c: work around the different signatures for delegates
26603         constructors csc generates in compiled code vs the ones compiled in mscorlib.
26604
26605 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
26606
26607         * class.h, class.c: add mono_class_get_field_from_name ().
26608         * *: Fix C comments and other ANSI C issues.
26609
26610 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
26611
26612         * endian.h, assembly.c: fix some endianness issues.
26613
26614 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
26615
26616         * loader.h, load.c: add delegate_class to mono_defaults.
26617         Handle runtime provided methods in mono_get_method ().
26618
26619 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
26620
26621         * loader.c (mono_get_method): use pinvoke for internal call
26622
26623         * icall.c: use pinvoke for internal call
26624
26625         * loader.c (method_from_memberref): set the method name
26626
26627 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
26628
26629         * metadata.c: help the compiler generate better code for
26630         mono_class_from_mono_type ().
26631
26632 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
26633
26634         * class.c (mono_class_metadata_init): delayed computing of the
26635         class size to mono_class_metadata_init ()
26636
26637 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
26638
26639         * class.c, class.h: add an interfaces member to MonoClass.
26640         * image.c, image.h: add assembly_name field to MonoImage
26641         from the assembly table.
26642         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
26643
26644 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
26645
26646         * class.c: Handle Array in mono_class_from_mono_type ().
26647         * metadata.c, pedump.c: some endian fixes.
26648
26649 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
26650
26651         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
26652         * metadata.c: fix small problem introduced with the latest commit.
26653
26654 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
26655
26656         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
26657         We don't need a MonoMetadata pointer anymore to compare signatures in
26658         mono_metadata_signature_equal (), update callers.
26659         Reduced memory usage an number of allocations for MonoMethodHeader and
26660         MonoMethodSignature.
26661
26662 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
26663
26664         * metadata.c: added compare for szarray.
26665
26666 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
26667
26668         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
26669         and add a couple more types to it and mono_defaults. Give an hint on
26670         classes that need implementing in our corlib and are referenced
26671         in mscorlib.
26672
26673 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
26674
26675         * class.h, class.c: keep track if a class is also an Enum.
26676         * loader.c: Implement a couple more types for use in libffi
26677         marshalling. Gives better diagnostics when failing to dlopen
26678         a library. Set method->klass for P/Invoke methods, too.
26679
26680 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
26681
26682         * class.c, class.h: add a MonoType this_arg to MonoClass that
26683         represents a pointer to an object of the class' type that
26684         can be used by the interpreter and later the type cache.
26685         Add best guess alignment info for valuetype objects.
26686
26687 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
26688
26689         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
26690         into MonoType: one less level of indirection and allocation and
26691         simplifies quite a bit of code. Added cache for MonoTypes that are
26692         used frequently, so that we don't need to allocate them all the time.
26693
26694 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
26695
26696         * class.c (mono_class_create_from_typedef): System.Enum is also a
26697         value type, although it does not derive from System.ValueType
26698         (maybe a bug in the ms compiler?)
26699
26700         * metadata.c (mono_type_size): return the right size for value types
26701
26702         * loader.c (mono_get_method): only initialize method header if not abstract
26703
26704         * class.c (mono_class_from_mono_type): use mono_default values. 
26705
26706 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
26707
26708         * *: use MonoClass pointers instead of <type_tokens>
26709         
26710         * class.h: new flag: metadata_inited.
26711
26712         * class.c (mono_class_metadata_init): impl.
26713         (mono_class_instance_size): impl.
26714         (mono_class_data_size): impl.
26715
26716 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
26717
26718         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
26719         MonoClass now has the name and name_space fields. 
26720         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
26721         mono_get_method () takes and optional MonoClass as argument.
26722         Removed mono_typedef_from_name() and added mono_class_token_from_name()
26723         instead that takes advantage of a map from class names to typedef
26724         tokens in MonoImage.
26725
26726 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
26727
26728         * metadata.c: zero is not a valid alignment boundary.
26729         Merge MONO_TYPE_VOID in default decoding code.
26730
26731 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
26732
26733         * image.h: merged MonoMetadata into MonoImage
26734
26735         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
26736         identify the type of elements.
26737
26738 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
26739
26740         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
26741         * cil-coff.h: split MonoMSDOSHeader and add size info.
26742         * image.c: add some consistency checks.
26743         * metadata.c: fix row size computation: one programmer
26744         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
26745         add explanation for the locator routine.
26746         Fix decoding of size in method header.
26747         
26748 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
26749
26750         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
26751         (g_concat_dir_and_file): Bring g_concat_dir_and_file
26752         function from gnome-libs.  This uses the right path separator
26753         based on the OS, and also works around a bug in some systems where
26754         a double slash is not allowed. 
26755         (default_assembly_name_resolver): Use g_concat_dir_and_file
26756         (mono_assembly_open): ditto.
26757
26758 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
26759
26760         * metadata.c (mono_metadata_signature_equal): impl.
26761
26762         * *: void is now a realy MonoType (instead of using NULL)
26763         
26764         * metadata.c (do_mono_metadata_parse_type): use
26765         mono_metadata_parse_type to parse void value.
26766
26767 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
26768
26769         * metadata.c, metadata.h: in the signature and method header store
26770         only the space required for holding the loca vars and incoming arguments.
26771
26772 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
26773
26774         * metadata.c (do_mono_metadata_parse_type): treat void like any
26775         other type (instead of assigning NULL);
26776
26777 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
26778
26779         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
26780
26781 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
26782
26783         * image.c (do_mono_image_open): added a cache for arrays.
26784
26785 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
26786
26787         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
26788         decode a single column from a row in a metadata table and changes
26789         to take advantage of it in the typedef locator (gives a nice speed up).
26790         Store offset info for function params.
26791
26792 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
26793
26794         * image.h (MONO_IMAGE_IS_CORLIB): removed 
26795
26796 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
26797
26798         * assembly.c: how could mono_assembly_close () had ever worked?
26799         * metadata.c, metadata.h: provide offset info for local vars.
26800         Implement mono_type_size () to take care of alignment as well
26801         as size (it was mono_field_type_size in cli/class.c before).
26802
26803 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
26804
26805         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
26806
26807         * assembly.h (CORLIB_NAME): set to corlib.dll
26808
26809         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
26810
26811 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
26812
26813         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
26814         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
26815         tokentype.h: massive namespace cleanup.
26816
26817 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
26818
26819         * metadata.h, metadata.c: decode exception clauses when parsing method header.
26820
26821 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
26822
26823         * metadata.c (mono_metadata_free_type): added check for type !=
26824         NULL (void) before calling mono_metadata_free_type()
26825
26826 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
26827
26828         * metadata.h, row_indexes.h: added header with enumerations to use
26829         to index in the columns from tables in metadata and to decode coded
26830         tokens: we should start using this instead of embedding magic numbers
26831         all over the code.
26832
26833 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
26834
26835         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
26836         Move metadata_t info from cli_image_info_t to MonoImage, where
26837         it's easily accessible. Changed all the uses accordingly.
26838         Added the method and class caches to MonoImage.
26839         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
26840         and mono_metadata_decode_value () signature to be more consistent
26841         with the other parse functions (and simplify code). Taken advantage
26842         of zero-length array allocation with GCC. Removed reduntant (and
26843         wrong) MonoFieldType struct and use MonoParam instead. Changed
26844         mono_metadata_parse_field_type () to use common code for parsing.
26845         Added mono_metadata_typedef_from_field () and
26846         mono_metadata_typedef_from_method () to lookup a typedef index from a
26847         field or method token.
26848         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
26849
26850 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
26851
26852         * metadata.c (mono_metadata_parse_field_type): Implement. 
26853         (do_mono_metadata_parse_type): Split engine from
26854         mono_metadata_parse_type, so that we can create smaller structures
26855         for things that just have one pointer to the MonoType (look at
26856         the MonoFieldType)
26857
26858 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
26859
26860         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
26861         as Jan Gray found out, it is incorrect. 
26862
26863 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
26864
26865         * assembly.c: Implement asssembly loading.  This loads an image
26866         and loads all the referenced assemblies.  Come to think of it, we
26867         could always do lazy loading of the assemblies. 
26868
26869         * image.c (mono_image_open): Keep loaded images in a hashtable.
26870
26871         * image.h (MonoImage): Add reference count.
26872
26873 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
26874
26875         * assembly.c (mono_assembly_open): Keep track of the file name in
26876         case the assembly has no ASSEMBLY table.
26877
26878         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
26879         from get.c here.
26880
26881 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
26882
26883         * metadata.c, metadata.h: decode local vars in method header
26884         parse function. Change callers accordingly.
26885
26886 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
26887
26888         * metadata.h, cil-coff.h: protect against multiple inclusion.
26889         Added some new structures to hold information decoded from metadata:
26890         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
26891         and relevant decoding/free functions.
26892         * metadata.c: implement decoding functions. Add warning for out of bounds
26893         index in mono_metadata_locate(). Implement mono_get_method () to retreive
26894         all the info about a method signature and invocation. Remove check on
26895         uninitialized local var in parse_mh() and fix memory leak.
26896
26897 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
26898
26899         * metadata.h: More macros.
26900
26901         * tokentype.h: New file.
26902
26903 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
26904
26905         * assembly.c: added a consistency check and initialize
26906         some structures with g_new0().
26907         * metadata.c: fixed a couple more bugs in table size computation
26908         and add other checks for out-of bound access to metadata.
26909
26910 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
26911
26912         * metatada.c: fix bugs computing table sizes. Spew a
26913         warning when index in string heap is out of bounds.
26914
26915 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
26916
26917         * metadata.h: Add a couple of macros to manipulate tokens. 
26918
26919 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
26920
26921         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
26922         cli_section_tables).
26923
26924 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
26925
26926         * metadata.c (mono_metadata_user_string): New function, provides
26927         access to the UserString heap. 
26928
26929 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
26930
26931         * metadata.c: Add inline documentation.
26932
26933 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
26934
26935         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
26936         files. 
26937
26938 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
26939
26940         * typeattr.h: New file, TypeAttribute flags. 
26941
26942 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
26943
26944         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
26945         mono_assembly_ensure_section): Section loading code.
26946         (load_section_tables): Load the sections.
26947
26948         * mono/metadata/metadata.c (mono_metadata_locate_token,
26949         mono_metadata_locate): Functions to locate the information
26950         definition given a token or a table and an index.
26951         (mono_metadata_compute_table_bases): New.
26952         (compute_size): New function to compute the sizes of the various
26953         tables.
26954
26955         * mono/metadata/metadata.h: Finish listing the different index
26956         types. 
26957
26958         * mono/metadata/pedump.c: Improve to dump new information.
26959
26960 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
26961
26962         * mono/metadata/metadata.c: Entered all the tables matching
26963         Beta2. 
26964
26965         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
26966
26967
26968