2008-05-30 Rodrigo Kumpera <rkumpera@novell.com>
[mono.git] / mono / metadata / ChangeLog
1 2008-05-30 Rodrigo Kumpera  <rkumpera@novell.com>
2
3         * reflection.c (mono_type_get_object): Don't store the suplied
4         MonoType with type_hash. A caller which pass a type that
5         was mono_metadata_type_dup'ed cannot free it reliably, as type_hash
6         might end with a pointer to freed memory.
7         The solution is to use byval_arg or this_arg from the associated
8         MonoClass of the supplied type.
9
10 2008-05-29  Zoltan Varga  <vargaz@gmail.com>
11
12         * icall.c: Revert the rest of the last change as it breaks the build too.
13
14 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
15
16         * icall.c: Revert a leak fix as it's breaking the build.
17
18 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
19
20         * appdomain.c (mono_make_shadow_copy): Fix another leak of dir_name.
21
22 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
23
24         * appdomain.c (mono_make_shadow_copy): We leaked dir_name.
25
26 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
27
28         * icall.c: Fix some memory leaks.
29
30 2008-05-29  Dick Porter  <dick@ximian.com>
31
32         * threadpool.c (mono_thread_pool_remove_socket): Always remove the
33         async socket operations from the pending list when a socket
34         closes.  Leaving it until the threadpool services the event
35         exposes a race condition when a socket descriptor is reused.
36         Fixes bug 377589.
37
38 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
39
40         * object.c: Fix negative index check for array alocation.
41
42 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
43
44         * icall.c, marshal.c: Delegate wrappers should skip visibility.
45         This check is performed by the verifier for IL created delegates
46         and by Delegate::CreateDelegate for programatically created ones.
47         Fixes #372406.
48
49 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
50
51         * sockey-io.c (ves_icall_System_Net_Sockets_Socket_Select_internal):
52         Fix code to use mono_array_size_t instead of int.
53
54         Based on patch by Luis F. Ortiz.
55         Contributed under X11 license.
56         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
57
58 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
59
60         * icall.c: Added ves_icall_System_Array_GetLongLength and
61         ves_icall_System_Array_CreateInstanceImpl64. Both allow handling big
62         arrays.
63
64         * icall.h: Export both new functions.
65
66         Based on patch by Luis F. Ortiz.
67         Contributed under X11 license.
68         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
69
70 2008-05-28  Martin Baulig  <martin@ximian.com>
71
72         The debugger now requires exactly r103463.
73
74         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 71.
75         This version is not supported by the debugger, wait for 72.
76
77 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
78
79         * object.h: Changed array related functions to use
80         mono_array_size_t instead of guint32. Forgot to commit this file.
81
82         Patch by Luis F. Ortiz.
83         Contributed under X11 license.
84         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
85
86
87 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
88
89         * object.h: Don't use G_MAXINT32 or G_MAXUINT32 as old glibs
90         don't define it. Use the number literal instead.
91
92 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
93
94         * icall.c: Changed array related functions to use
95         mono_array_size_t instead of guint32.
96
97         * icall.c (ves_icall_System_Array_GetLength): Check for length
98         overflow under MONO_BIG_ARRAYS.
99
100         Based on patch by Luis F. Ortiz.
101         Contributed under X11 license.
102         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
103
104 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
105
106         * object.c: Add 64bits bounds check for arrays under MONO_BIG_ARRAYS.
107
108         Based on patch by Luis F. Ortiz.
109         Contributed under X11 license.
110         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
111
112 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
113
114         * object.c, object.h: Changed array related functions to use
115         mono_array_size_t instead of guint32.
116
117         Patch by Luis F. Ortiz.
118         Contributed under X11 license.
119         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
120
121 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
122
123         * object.h: Introduced mono_array_size_t typedef. This must be used
124         in all places an array length is expected. This is 64bits wide if
125         MONO_BIG_ARRAYS is enabled.
126
127         Patch by Luis F. Ortiz.
128         Contributed under X11 license.
129         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
130
131 2008-05-27  Zoltan Varga  <vargaz@gmail.com>
132
133         * security-manager.c class.c: Set the class exception info by calling
134         mono_class_set_failure ().
135
136         * class.c (mono_class_get_exception_data): New accessor function.
137         (mono_class_set_failure): Store exception_data in the property hash.
138
139         * class-internals.h (struct _MonoClass): Store 'exception_data' outside
140         the struct as a property.
141
142         * loader.c (mono_get_method_full): Store the lookup result for method
143         tokens in method_cache, the others in methodref_cache to decrease the memory
144         usage of hash tables.
145
146         * image.c (mono_image_close): Destroy method_cache and methodref_cache.
147         (mono_image_init): method_cache is lazy inited now.
148
149         * metadata-internals.h (struct _MonoImage): Change method_cache to
150         a MonoValueHashTable, add a separate methodref_cache.
151
152 2008-05-27  Eyal Alaluf <eyala@mainsoft.com>
153
154         * number-formatter.h: Fix tables to avoid arithemtic overflow in
155           Double.ToString as exposed by Bug #383531.
156
157 2008-05-26  Zoltan Varga  <vargaz@gmail.com>
158
159         * number-formatter.h: Make some tables static.
160
161         * class.c (mono_method_set_generic_container): New accessor function.
162         (mono_method_get_generic_container): Ditto.
163
164         * class-internals.h (struct _MonoMethod): Remove rarely used 
165         'generic_container' field, store it in the property hash instead. Add 
166         'is_generic' boolean field instead.
167
168         * image.c (mono_image_init): Initialize property_hash.
169         (mono_image_close): Destroy property_hash.
170
171         * metadata-internals.h (struct _MonoImage): Add 'property_hash' hash table to
172         hold rarely used fields of runtime structures belonging to this image.
173
174         * class.c loader.c verify.c icall.c reflection.c: Use the new accessor functions
175         to get/set method->generic_container.
176
177         * loader.c (mono_get_method_from_token): Avoid loading the method header for
178         generic methods.
179
180 2008-05-25  Zoltan Varga  <vargaz@gmail.com>
181
182         * class.c (mono_class_inflate_generic_method_full): Don't increase
183         mono_stats.inflated_method_count for methods found in the cache.
184
185         * threads.c (mono_thread_request_interruption): Add a comment about 
186         QueueUserAPC ().
187
188 2008-05-24  Zoltan Varga  <vargaz@gmail.com>
189
190         * class.c (setup_interface_offsets): Use sizeof (guint16) when allocating the
191         interface_offsets_packed table.
192         
193         * class.c (mono_class_init): Remove some dead code.
194
195         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Call
196         mono_class_setup_vtable () when CAS is active to detect security problems.
197
198 2008-05-23 Rodrigo Kumpera  <rkumpera@novell.com>
199
200         * verify.c (mono_delegate_type_equal): Handle VAR, MVAR and GENERICINST.
201
202         * verify.c (mono_delegate_signature_equal): Don't compar number of generic
203         parameters as it's irrelevant for delegate checking.
204
205 2008-05-23  Zoltan Varga  <vargaz@gmail.com>
206
207         * class-internals.h class.c: Correct the name of the 'mono_no_setup_vtable_in_class_init' variable.
208
209         * class.c (mono_class_init): Control the creation of a generic vtable using
210         a global which is true by default, but set to false by the runtime startup code.
211         
212         * class.c (mono_class_init): Avoid constructing a generic vtable in most cases.
213         Disabled for now since it breaks the embedding API.
214         Move the setup of class->methods for arrays to mono_class_setup_methods ().
215         (mono_class_setup_methods): Add a memory barrier.
216
217         * object.c (mono_class_create_runtime_vtable): Add code to handle the case
218         when mono_class_init () doesn't compute the generic vtable.
219         
220 2008-05-23  Massimiliano Mantione  <massi@ximian.com>
221         * profiler.c: Added mono_profiler_install_statistical_call_chain,
222         mono_profiler_stat_get_call_chain_depth and mono_profiler_stat_call_chain
223         to support call chains (backtrace) in the stat profiler.
224         * profiler.c, profiler-private.h: Likewise.
225
226 2008-05-22  Mark Probst  <mark.probst@gmail.com>
227
228         * generic-sharing.c: Init generic class when a method of it is
229         requested via a runtime generic context.
230
231 2008-05-22  Zoltan Varga  <vargaz@gmail.com>
232
233         * class.c (mono_class_init): Add a comment about trying to avoid calling this.
234
235         * reflection.c (mono_type_get_object): Add a FIXME.
236
237         * loader.c (find_method_in_class): Use mono_class_get_method_by_index ().
238
239         * class.c (mono_class_get_method_by_index): New helper function, returning an
240         entry in the class->methods array.
241
242 2008-05-21  Zoltan Varga  <vargaz@gmail.com>
243
244         * class.c (mono_class_init): Only do the array optimization for szarrays. 
245         Avoid creating a generic vtable for generic instances as well.
246         (mono_class_get_method_from_name_flags): Don't search in the metadata for
247         generic instances.
248
249 2008-05-21 Rodrigo Kumpera  <rkumpera@novell.com>
250
251         * loader.c (mono_get_method_constrained): Inflate the signature
252         with class context. Fix #325283.
253
254 2008-05-21  Zoltan Varga  <vargaz@gmail.com>
255
256         * object.c (mono_class_create_runtime_vtable): Add a comment.
257
258         * class.c (get_implicit_generic_array_interfaces): Call mono_class_init ()
259         where needed.
260         (setup_interface_offsets): Handle the case when this is called twice for arrays.
261         (mono_class_setup_vtable_general): Add an assert.
262         (mono_class_init): Avoid creating a generic vtable for arrays.
263
264         * class.c (mono_generic_class_get_class): Don't call setup_interface_offsets ()
265         here, let mono_class_init () do that.
266
267         * class.c (mono_class_init): Avoid calling mono_class_setup_methods () for
268         interfaces in mscorlib.
269
270         * class.c (mono_class_setup_vtable): Avoid calling setup_methods () for
271         interfaces. Add some comments.
272         (mono_class_init): Call mono_class_setup_methods () here since it is no
273         longer called by mono_class_setup_vtable ().
274
275         * object.c (mono_class_proxy_vtable): Null out entries in pvt->vtable which are
276         not set in class->vtable.
277         (mono_class_create_runtime_vtable): Reenable the disabled code.
278
279         * object.c (mono_class_create_runtime_vtable): Disable the last change for
280         now as it causes some test failures.
281
282         * object.c (mono_class_create_runtime_vtable): Avoid creating a generic vtable
283         if using the vtable trampoline. Also remove some strange code which put the
284         generic methods themselves into the vtable slots. Remove the AOT init_vtable
285         stuff as it is no longer needed.
286
287 2008-05-19 Rodrigo Kumpera  <rkumpera@novell.com>
288
289         * pedump.c: Give make --verify all option check code as well.
290         Using --verify code won't check for metadata now.
291
292 2008-05-19  Martin Baulig  <martin@ximian.com>
293
294         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 70.
295
296         * mono-debug.c
297         (_mono_debug_using_mono_debugger): New global variable; it's set
298         directly by the debugger, so mono_debug_using_mono_debugger() also
299         works after attaching.
300
301 2008-05-18 Rodrigo Kumpera  <rkumpera@novell.com>
302
303         * object.c (mono_class_create_runtime_vtable): Use memory barriers
304         as we do double checked locking on MonoClass::runtime_info and
305         MonoClassRuntimeInfo::domain_vtables.
306
307 2008-05-18  Zoltan Varga  <vargaz@gmail.com>
308
309         * debug-helpers.c (print_field_value): Fix a warning.
310
311 2008-05-16  Zoltan Varga  <vargaz@gmail.com>
312
313         * object.c (mono_object_get_virtual_method): Fix a crash if method->slot is not
314         set in the AOT case.
315
316 2008-05-16 Rodrigo Kumpera  <rkumpera@novell.com>
317
318         * class.c (mono_class_setup_vtable_general): Use memory barriers
319         as we do double checked locking on MonoClass::vtable.
320
321 2008-05-16 Rodrigo Kumpera  <rkumpera@novell.com>
322
323         * reflection.c (resolve_object): Inflate only if the generic context
324         is not null. Fixes #389886.
325
326 2008-05-15  Jonathan Chambers  <joncham@gmail.com>
327
328         * metadata.c (emit_marshal_string): Free return strings using mono_marshal_free
329         instead of g_free.
330
331         Code is contributed under MIT/X11 license.
332
333 2008-05-14 Rodrigo Kumpera  <rkumpera@novell.com>
334
335         * class.c: Revert unrelated change.
336
337 2008-05-14 Rodrigo Kumpera  <rkumpera@novell.com>
338
339         * verify.c (check_is_valid_type_for_field_ops): Type on stack can be
340         a generic instantiation, use mono_class_from_mono_type instead of playing
341         with MonoType directly.
342
343 2008-05-14 Rodrigo Kumpera  <rkumpera@novell.com>
344
345         * class.c: Added mono_class_has_parent_and_ignore_generics. Visibility
346         checks must ignore generic instantiations, so mono_class_has_parent is not
347         suitable. Fixes #390128.
348
349 2008-05-14  Zoltan Varga  <vargaz@gmail.com>
350
351         * reflection.c (mono_image_create_token): Add a 'register_token' argument, and use
352         it to avoid registering tokens during metadata generation. Fixes #390023.
353
354 2008-05-14  Kornél Pál  <kornelpal@gmail.com>
355
356         * coree.c: Rename dwOldProtect to OldProtect that makes naming convention
357         consistent.
358
359         Contributed under MIT/X11 license.
360
361 2008-05-14  Kornél Pál  <kornelpal@gmail.com>
362
363         * domain.c (mono_init_internal): Enable LoadLibrary support. Load EXE image
364         even when get_runtimes_from_exe didn't load it that allows mono_fixup_exe_image
365         to fixup the EXE image.
366         (mono_cleanup): Use mono_close_exe_image.
367         (mono_close_exe_image): New function.
368         * image.c: Include "marshal.h".
369         (mono_image_open_from_module_handle): Add ref_count argument. Return the image.
370         (mono_image_open_full, mono_image_close): Fix LoadLibrary/FreeLibrary reference
371         counting when the image is loaded outside of mono_image_open_full. Set status
372         based on GetLastError.
373         * coree.c: Include required headers. Add init_from_coree.
374         (_CorDllMain): Support fix in mono_image_open_full, mono_image_close. Call
375         mono_assembly_open only when the image has vtfixups. Set init_from_coree.
376         (_CorExeMain): Set init_from_coree.
377         (CorExitProcess): Only call ExitProcess for now.
378         (CorBindToRuntimeEx): New stub implementation.
379         (CorBindToRuntime): New function.
380         (MonoFixupCorEE): Fixup CorBindToRuntime and CorBindToRuntimeEx.
381         (MonoFixupExe): ILONLY executables require no fixups.
382         (mono_set_act_ctx): New function to set activation context.
383         (mono_load_coree): Use init_from_coree. Call mono_set_act_ctx.  
384         * coree.h: Move STATUS_SUCCESS and STATUS_INVALID_IMAGE_FORMAT to header.
385         Declare mono_module_handle, coree_module_handle, mono_get_module_file_name,
386         mono_load_coree, mono_fixup_exe_image and mono_image_open_from_module_handle
387         as MONO_INTERNAL.
388         * domain-internals.h: Add mono_close_exe_image.
389
390         Contributed under MIT/X11 license.
391
392 2008-05-13 Rodrigo Kumpera  <rkumpera@novell.com>
393
394         * metadata.c (mono_metadata_compute_size): Correctly calculate field
395         size for generic param and event tables. Fixes #388977.
396
397 2008-05-13  Zoltan Varga  <vargaz@gmail.com>
398
399         * loader.c (mono_method_signature): Use memory barriers because of the double
400         checked locking pattern.
401
402         * threads.c (remove_and_abort_threads): Stop and wait for threads which are
403         aborting or aborted as well. Fixes #376391.
404         
405         * threads.c (mono_thread_execute_interruption): Avoid depending on no longer
406         existing runtime state in the Suspend handler during shutdown.
407
408 2008-05-12  Zoltan Varga  <vargaz@gmail.com>
409
410         * threads.c (mono_thread_request_interruption): Add some FIXMEs.
411
412         * threads.c (mono_thread_suspend_all_other_threads): Add support for threads 
413         which are starting up or shutting down.
414
415         * threads.c (mono_threads_set_shutting_down): Don't return a value since
416         this function never returns if the runtime is already shutting down.
417
418         * icall.c (ves_icall_System_Environment_Exit): Update after 
419         mono_threads_set_shutting_down () signature change.
420         
421 2008-05-09 Rodrigo Kumpera  <rkumpera@novell.com>
422
423         * class.c: Added can_access_instantiation to verify if the instantiation
424         is visible. Fix access check for nested types as they returned TRUE
425         before doing type and generic instantiation visibility checks.
426
427 2008-05-08 Rodrigo Kumpera  <rkumpera@novell.com>
428
429         * reflection.c (mono_reflection_create_generic_class): The created type
430         must have a different container from its TypeBuilder. Otherwise they
431         will end sharing generic arguments, which is wrong.
432
433         Due to the sharing, making a generic instance of the created type using
434         the TypeBuider generic arguments resulted in the generic type definition
435         been returned, which is wrong as well.
436
437         As a bonus the code was leaking the type_params array. This memory should
438         be allocated from the image mempool.
439
440         This fixes bug #354047.
441
442 2008-05-08 Rodrigo Kumpera  <rkumpera@novell.com>
443
444         * metadata-internals.h: Move MONO_SECMAN_FLAG macros from mini/declsec.h
445         to here         as they are now used in assembly.c new code.
446         Added a skipverification flag to MonoAssembly.
447         New internal function mono_assembly_has_skip_verification.
448
449         * assembly.c: New function mono_assembly_has_skip_verification. It checks
450         if an assembly has a version 2.0 SkipVerification security attribute. Fixes
451         part of #387274.
452
453 2008-05-07  Zoltan Varga  <vargaz@gmail.com>
454
455         * object.c (mono_object_get_virtual_method): Inflate the resulting method if
456         needed. Fixes #387034.
457
458         * class.c (mono_class_inflate_generic_type): Avoid a crash if context is NULL.
459
460 2008-05-06  Miguel de Icaza  <miguel@novell.com>
461
462         * assembly.c (mono_assembly_load_reference): Prevent crash while
463         disassembling Silverlight 2.0 executables while we still do not
464         have GACed libraries.
465
466 2008-05-07  Zoltan Varga  <vargaz@gmail.com>
467
468         * reflection.c: Special case generic type definitions as well. Fixes #383444.
469
470 2008-05-06  Zoltan Varga  <vargaz@gmail.com>
471
472         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Fix handling
473         of the dynamic case. Fixes #387404.
474
475 2008-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
476
477         *verify.c (mono_verifier_is_class_full_trust): If under
478         verify_all and the verifier mode was not set, only
479         gac and corlib types are fulltrust. This makes --verify-all
480         usable to detect unverifiable code, which is the expected
481         use case.
482
483 2008-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
484
485         * verify.h: Ops, commited the header with debug
486         enabled.
487
488 2008-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
489
490         * verify.c (merge_stack): Use the new value on unverifiable
491         stack merges.
492
493         * verify.c (verify_type_compatibility_full): Comparison
494         of nullable types can't use mono_class_is_assignable_from.
495
496         * verify.c, verify.h: Added MONO_VERIFY_REPORT_ALL_ERRORS
497         that makes all verification errors be reported.
498
499         * pedump.c: Pass MONO_VERIFY_REPORT_ALL_ERRORS to
500         mono_method_verify.
501
502 2008-05-05  Robert Jordan  <robertj@gmx.net>
503
504         * marshal.c (mono_marshal_get_thunk_invoke_wrapper):
505         support for value types. See #386415.
506
507         * object.c: comments.
508
509         Code is contributed under MIT/X11 license.
510
511 2008-05-05  Martin Baulig  <martin@ximian.com>
512
513         * debug-mono-symfile.h
514         (MONO_SYMBOL_FILE_COMPATIBILITY_VERSION): Removed; dropped support
515         for old pre-terrania symbol files.
516
517 2008-05-05  Andreas Färber  <andreas.faerber@web.de>
518
519         * mono-config.c: Add ppc64 architecture.
520
521         Code is contributed under MIT/X11 license.
522
523 2008-05-05  Andreas Färber  <andreas.faerber@web.de>
524
525         * object.c (mono_create_ftnptr, mono_get_addr_from_ftnptr):
526           PPC64 uses function descriptors as well.
527
528         Code is contributed under MIT/X11 license.
529
530 2008-05-04  Zoltan Varga  <vargaz@gmail.com>
531
532         * object.c (compute_class_bitmap): Ignore literal static fields.
533
534         * sgen-gc.c (mono_gc_base_init): Print some help when the MONO_GC_DEBUG env
535         var has an invalid format.
536         (describe_ptr): Add some sanity checks for the vtable.
537         (add_nursery_frag): Clear unused nursery fragments.
538         (major_collection): Clear all remaining nursery fragments.
539
540 2008-05-03  Robert Jordan  <robertj@gmx.net>
541
542         * image.c, metadata-internals.h: add thunk_invoke_cache.
543
544         * marshal.c, marshal.h: implement
545         mono_marshal_get_thunk_invoke_wrapper ().
546
547         * object.c, object.h: implement mono_method_get_unmanaged_thunk ().
548
549         Code is contributed under MIT/X11 license.
550
551 2008-05-02 Rodrigo Kumpera  <rkumpera@novell.com>
552
553         * verify.c (do_leave): Empty the stack.
554
555 2008-05-02 Rodrigo Kumpera  <rkumpera@novell.com>
556
557         * class.c (mono_class_is_assignable_from): Variance
558         doesn't work between reference and value types. For example,
559         given type C<T+>, C<int32> is not assignable to C<object>.
560         Break the argument checking loop on first error. 
561
562 2008-05-02  Atsushi Enomoto  <atsushi@ximian.com>
563
564         * icall.c : base64_to_byte_array() needs some more strict
565           check for sequence of '=' characters. Patch by Santa
566           Marta (http://deee.g.hatena.ne.jp/santamarta).
567
568           Contributed under MIT/X11 license.
569           (see http://www.lingr.com/room/mono-jp/archives/2008/04/20)
570
571 2008-05-02  Jonathan Chambers  <joncham@gmail.com>
572
573         * domain.c: Disable LoadLibrary support to fix Win32 build.
574
575         Code is contributed under MIT/X11 license.
576
577 2008-05-02  Zoltan Varga  <vargaz@gmail.com>
578
579         * sgen-gc.c: Add support for clearing nursery memory when a tlab is allocated,
580         to help with cache behaviour.
581
582 2008-05-01  Miguel de Icaza  <miguel@novell.com>
583
584         * appdomain.c (mono_domain_from_appdomain): Add new accessor
585         method. 
586
587 2008-05-01  Zoltan Varga  <vargaz@gmail.com>
588
589         * sgen-gc.c: Implement thread-local allocation and a managed allocation routine.
590
591 2008-05-01  Dick Porter  <dick@ximian.com>
592
593         * process.c (process_get_fileversion): Only pass 16 bits of
594         language ID to VerLanguageName.  Fixes bug 381204.
595
596 2008-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
597
598         * verify.c (mono_method_verify): Fix the comparison
599         operator for code bounds check.
600
601 2008-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
602
603         * verify.c (mono_method_verify): Check the bounds of
604         all access of the code array.
605
606 2008-04-29  Kornél Pál  <kornelpal@gmail.com>
607
608         * appdomain.c: Use HAVE_SYS_UTIME_H that fixes MSVC build.
609
610 2008-04-28  Zoltan Varga  <vargaz@gmail.com>
611
612         * image.c (mono_image_strong_name_position): Fix return value when the rva is
613         not valid.
614
615 2008-04-28  Kornél Pál  <kornelpal@gmail.com>
616
617         * loader.c (mono_get_method_from_token, mono_method_signature): Add
618         support for METHOD_IMPL_ATTRIBUTE_NATIVE.
619         * domain.c (mono_init_internal): Load and fixup mscoree.dll on startup and
620         fixup main EXE images when using mono.exe for mixed-mode assembly support.
621         * domain-internals.h: Add MonoLoadFunc, mono_install_runtime_load and
622         mono_runtime_load.
623         * appdomain.c: Add mono_install_runtime_load, mono_runtime_load to support
624         runtime initialization from metadata.
625         * assembly.c: Remove obsolete ceGetModuleFileNameA.
626         (mono_set_rootdir): Use mono_get_module_file_name.
627         (mono_assembly_load_from_full): Call mono_image_fixup_vtable for module
628         handles.
629         * cil-coff.h: Add MonoVTableFixup. Update mono_cli_rva_image_map signature.
630         * metadata-internals.h: Add is_module_handle to _MonoImage on Windows.
631         * image.c (mono_cli_rva_image_map): Use MonoImage instead of
632         MonoCLIImageInfo. Add support for module handles.
633         (load_cli_header): Update mono_cli_rva_image_map signature.
634         (load_metadata_ptrs): Update mono_cli_rva_image_map signature.
635         (mono_image_strong_name_position): Use mono_cli_rva_image_map.
636         (mono_image_rva_map): Add support for module handles.
637         (mono_image_ensure_section_idx): Add support for module handles.
638         (mono_image_close): Add support for module handles.
639         (do_load_header): Add support for module handles.
640         (mono_image_open_from_module_handle): New function for internal use.
641         (mono_image_open_full): Load normal images using LoadLibrary on Windows.
642         (mono_image_load_module): Call mono_image_fixup_vtable for module handles.
643         (mono_image_load_file_for_image): Call mono_image_fixup_vtable for module
644         handles.
645         (mono_image_fixup_vtable): New function for mixed-mode assembly support.
646         * image.h: Add mono_image_fixup_vtable.
647         * coree.c: New file for mscoree.dll functions and mixed-mode assembly
648         support.
649         * coree.h: New file.
650         * marshal.c (mono_marshal_get_native_wrapper): Throw exception for
651         unsupported native code.
652         (mono_marshal_set_callconv_from_modopt): New function splitted from
653         mono_marshal_get_managed_wrapper.
654         (mono_marshal_get_managed_wrapper): Use
655         mono_marshal_set_callconv_from_modopt.
656         (mono_marshal_get_vtfixup_ftnptr): New function for mixed-mode assembly support.
657         * marshal.h: Add mono_marshal_get_vtfixup_ftnptr.
658         * gc.c (mono_gc_init): Don't wait for the finalizer thread on Windows because
659         that results in a deadlock when the runtime is loaded in _CorDllMain.
660         * Makefile.am: Add coree.c and coree.h.
661
662         Contributed under MIT/X11 license.
663
664 2008-04-28  Mark Probst  <mark.probst@gmail.com>
665
666         * generic-sharing.c: Search for type arguments in array element
667         types as well.
668
669 2008-04-28  Mark Probst  <mark.probst@gmail.com>
670
671         * class-internals.h, generic-sharing.c: New, small runtime generic context.
672
673         * metadata-internals.h, domain.c, image.c: Less bookkeeping is required for the new RGCTX.
674
675         * object.c: Don't setup the RGCTX when the vtable is created,
676         because we're setting it up lazily now.
677
678 2008-04-26  Zoltan Varga  <vargaz@gmail.com>
679
680         * sgen-gc.c: Make the 'desc' variables an mword instead of a guint32 to fix 
681         64 bit support.
682
683 2008-04-24 Rodrigo Kumpera  <rkumpera@novell.com>
684
685         * verify.c (verify_class_for_overlapping_reference_fields): 
686         If class is under fulltrust allow reference types to overllap
687         if they have the same RVA.
688
689 2008-04-24 Rodrigo Kumpera  <rkumpera@novell.com>
690
691         * pedump.c: Added new flag valid-only, that makes the verifier
692         behaves just like --security=validil. It won't fail type load
693         due to unverifiable restrictions.
694
695 2008-04-23 Rodrigo Kumpera  <rkumpera@novell.com>
696
697         * class-internals.h (struct MonoMethod): Added a verification_success
698         field to cache verifier executions. Reduced MonoMethod:slot size by
699         one bit.
700
701 2008-04-23  Zoltan Varga  <vargaz@gmail.com>
702
703         * sgen-gc.c (OBJ_RUN_LEN_SIZE): Make this and other macros take a 'desc' argument
704         instead of a 'vt' argument to save an indirection and to allow these to be used
705         for valuetypes.
706         (scan_vtype): New helper function to scan an area using a gc descriptor.
707         (mono_gc_wbarrier_value_copy): Implement this.
708         (handle_remset): Add support for REMSET_VTYPE.
709         (find_in_remset_loc): Ditto.
710         (mono_gc_base_init): Allow some debugging options to be controlled through the
711         use of the MONO_GC_DEBUG env variable.
712         (mono_gc_alloc_obj): Add support the 'collect-before-allocs' debug option.
713         (collect_nursery): Add support for the 'check-at-minor-collection' debug option.
714
715 2008-04-23  Martin Baulig  <martin@ximian.com>
716
717         * domain.c (mono_domain_create): Move the call to
718         mono_debug_domain_create() down, after allocating the domain id.
719
720 2008-04-23 Rodrigo Kumpera  <rkumpera@novell.com>
721
722         verify.c (verify_class_for_overlapping_reference_fields): Skip
723         static fields while verifying for overlapping fields as they
724         don't matter at all.
725
726 2008-04-23  Marek Habersack  <mhabersack@novell.com>
727
728         * domain-internals.h: added a declaration of
729         mono_make_shadow_copy.
730
731         * assembly.c (mono_assembly_open_full): shadow copying of
732         assemblies moved to here, so that all the assemblies within the
733         application domain's private binary directories can be
734         processed. Fixes bug #380546
735
736         * appdomain.c (mono_make_shadow_copy): make_shadow_copy renamed to
737         mono_make_shadow_copy and made non-static. The decision whether
738         to shadow-copy an assembly is made based on its location - it's
739         copied if it's in one of the private application domain binary
740         directories and its different to the target file in the shadow
741         directory. Fixes bug #380546
742
743 2008-04-22  Zoltan Varga  <vargaz@gmail.com>
744
745         * reflection.c (fixup_method): Handle {Method|Constructor}OnTypeBuilderInst.
746
747         * object-internals.h: Add MonoReflection{Method|Constructor}OnTypeBuilderInst
748         types.
749
750         * reflection.c (mono_image_create_token): Handle 
751         Method/ConstructorOnTypeBuilderInst.
752         (resolve_object): Ditto.
753         (inflate_mono_method): Receive the inflated class instead of a MonoGenericClass
754         so it can be called from resolve_object. Also handle the case when the inflated
755         class already has its methods setup.
756
757 2008-04-21  Martin Baulig  <martin@ximian.com>
758
759         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 69.
760
761 2008-04-20  Geoff Norton  <gnorton@novell.com>
762
763         * icall.c: Fix the _NSGetEnviron define to prevent an impropoer
764         pointer dereference.
765
766 2008-04-15  Marek Habersack  <mhabersack@novell.com>
767
768         * appdomain.c (try_load_from): if IOMAP is in effect, call the
769         portability API to look up the assembly file. Fixes behavior in
770         situations when the application has a bin/ directory, but the
771         assembly search patch refers to Bin/ (and thus the requested file
772         name is Bin/SomeLibrary.dll). Fixes bug #379888
773
774 2008-04-15 Rodrigo Kumpera  <rkumpera@novell.com>
775
776         verify.c (mono_type_is_generic_argument): Extracted this check
777         from a dozen places to here.
778
779         verify.c: Fixed all issues related to boxing generic arguments
780         and their constraints.
781
782 2008-04-14 Rodrigo Kumpera  <rkumpera@novell.com>
783
784         verify.c (mono_class_interface_implements_interface): Fix win32 build.
785
786 2008-04-14  Zoltan Varga  <vargaz@gmail.com>
787
788         * reflection.c (mono_custom_attrs_construct): Fix crash when the cattr type
789         isn't finished yet. Fixes #363447.
790
791 2008-04-13  Zoltan Varga  <vargaz@gmail.com>
792
793         * class.c (mono_bounded_array_class_get): Fix the name of bounded array types.
794         Fixes #346419.
795
796 2008-04-13  Jb Evain  <jbevain@novell.com>
797
798         * domain.c: update the 2.1 profile versions.
799         Merged from the Moonlight 2 branch.
800
801 2008-04-12  Zoltan Varga  <vargaz@gmail.com>
802
803         * assembly.c (mono_assembly_load_from_full): Do the check for loading other
804         mscorlibs for the non-refonly case as well.
805
806         * image.c (do_mono_image_load): Remove the mscorlib check, it is already done
807         in mono_assembly_load_from_full (). Fixes #378924.
808
809 2008-04-11  Geoff Norton  <gnorton@novell.com>
810
811         * icall.c: The global extern environ doesn't exist on Mac.  We
812         need to call NSGetEnviron instead.
813
814 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
815
816         verify.c: Add generic method constraint verification.
817
818 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
819
820         class.c (mono_class_inflate_generic_method_full): Add a long
821         explanation to the is_mb_open hack. Remove the FIXME.
822
823 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
824
825         * verify.c (mono_method_verify): Mark all unknown opcodes
826         as invalid. Mark jmp as unverifiable.
827
828 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
829
830         * verify.c: Add code to do type constraint verification on class instances.
831
832         * verify.c (mono_verifier_verify_class): Use the type constraint 
833         verification code.
834
835 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
836
837         * class.c (mono_class_get_field_default_value): Don't pass cindex
838         as hint to mono_metadata_get_constant_index. The local is not initialized
839         and should contain garbage most of the time. This could only work
840         with a lot of luck.
841
842 2008-04-09 Rodrigo Kumpera  <rkumpera@novell.com>
843
844         * tokentype.h: Add MONO_TOKEN_GENERIC_PARAM.
845
846 2008-04-09 Rodrigo Kumpera  <rkumpera@novell.com>
847
848         * class-internals.h: Add generic_param_token to MonoClass::sizes union.
849
850         * class.c (mono_class_from_generic_parameter): Save the token of the
851         generic param in MonoClass::sizes.generic_param_token.
852
853         * reflection.c (mono_custom_attrs_from_class): If the class type is
854         VAR or MVAR retrieve the attributes of the generic param.
855
856 2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
857
858         * class.c (mono_class_init): Do class verification if the verifier
859         is enabled.
860
861 2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
862
863         * verify-internal.h: Added mono_verifier_verify_class.
864
865         * verify.c: Added mono_verifier_verify_class. It checks for
866         classes with explicit layout that have overlapping reference fields.
867
868         * pedump.c: Init the verifier state prior to verification. Fixed
869         command line arguments.
870
871 2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
872
873         * Makefile.am: Added verify-internals.h, hopefully fix the build.
874
875 2008-04-08  Zoltan Varga  <vargaz@gmail.com>
876
877         * verify-internals.h: Fix a warning.
878
879 2008-04-07 Rodrigo Kumpera  <rkumpera@novell.com>
880
881         * verify-internals.h: New header with the verifier configuration
882         extracted from mini.c.
883
884         * verify.c: Implemented the new functions exported by verify-internals.h.
885
886 2008-04-07 Rodrigo Kumpera  <rkumpera@novell.com>
887
888         * verify.c: Add proper verification of ckfinite.
889
890 2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
891
892         * verify.c (do_conversion): Improved error message to something
893         more meanfull.
894
895         * verify.c (check_is_valid_type_for_field_ops): Fix to work
896         with primitive types.
897
898 2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
899
900         * verify.c: Added tail prefix checking. Marked icall
901         as unverifible.
902
903 2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
904
905         * verify.c: Fix the detection of branches to the middle
906         of an instruction.
907
908 2008-04-03 Rodrigo Kumpera  <rkumpera@novell.com>
909
910         * verify.c: Implemented verification of volatile. and
911         unaligned. prefix. Check if a type is valid after retrieving it.
912
913 2008-04-01  Dick Porter  <dick@ximian.com>
914
915         * process.c (process_get_fileversion): If there's no string block,
916         set the file language to en_US.  Fixes the other new part of bug
917         374600.
918
919 2008-03-29 Rodrigo Kumpera  <rkumpera@novell.com>
920
921         * class.c: New functions mono_method_can_access_field_full and
922         mono_method_can_access_method_full. They perform type visibility
923         and type site check.
924
925         * class-internal.h: Added exported functions.
926
927         * verify.c: Use new functions to implement proper visibility checks.
928
929 2008-03-29  Zoltan Varga  <vargaz@gmail.com>
930
931         * mono-config.h: Add missing G_BEGIN_DECLS/G_END_DECLS. Fixes #375188.
932
933 2008-03-28  Dick Porter  <dick@ximian.com>
934
935         * process.c (process_get_fileversion): Use the first language ID
936         we see, rather than insisting on an invariant language.  Fixes bug
937         374600.
938
939 2008-03-28  Zoltan Varga  <vargaz@gmail.com>
940
941         * reflection.c (calc_section_size): Use add_stream_zero to align the size of
942         the streams to fix reading of invalid memory later.
943
944         * metadata.h (MonoType): Use 'MonoTypeEnum' instead of int for the 'type' field
945         to ease debugging.
946
947 2008-03-26  Zoltan Varga  <vargaz@gmail.com>
948
949         * marshal.c (signature_dup): Use mono_metadata_signature_alloc ().
950         (cominterop_method_signature): Ditto. Fix the size passed to memcpy.
951
952 2008-03-26  Massimiliano Mantione  <massi@ximian.com>
953         * threads.h: Added MonoThreadManageCallback type and
954         mono_thread_set_manage_callback prototype
955         * object-internals.h: In _MonoThread, renamed unused6 to manage_callback
956         (used to store the mono_thread_manage callback).
957         * threads.c: Added mono_thread_set_manage_callback, and handle
958         "MonoThread->manage_callback" in build_wait_tids.
959
960 2008-03-26  Dick Porter  <dick@ximian.com>
961
962         * process.c (process_get_fileversion): Set FileVersionInfo strings
963         to Empty when the resource doesn't have the particular info.
964         Fixes bug 355717.
965
966 2008-03-25 Rodrigo Kumpera  <rkumpera@novell.com>
967
968         * verify.c (mono_method_verify): Proper prefix validation.
969
970 2008-03-25  Zoltan Varga  <vargaz@gmail.com>
971
972         * icall.c (ves_icall_InternalInvoke): Return exceptions thrown by the icall
973         itself in a separate argument instead of throwing them. Fixes #373448.
974
975         * appdomain.c: Bump corlib version.
976
977 2008-03-24 Rodrigo Kumpera  <rkumpera@novell.com>
978
979         * verify.c: Implemented readonly prefix and verify controled mutability pointers.
980
981 2008-03-20  Kornél Pál  <kornelpal@gmail.com>
982
983         * file-io.c, filewatcher.c, threadpool.c, threads.c: Removed Windows
984         version macros.
985
986 2008-03-20  Mark Probst  <mark.probst@gmail.com>
987
988         * generic-sharing.c, class-internals.h: Code for putting
989         reflection types into the runtime generic context.
990
991 2008-03-19 Rodrigo Kumpera  <rkumpera@novell.com>
992
993         * icall.c (ves_icall_get_method_info): Return correct values for the call convention.
994         Fixes #340662. 
995
996
997 2008-03-17 Rodrigo Kumpera  <rkumpera@novell.com>
998
999         * verify.c (VerifyContext): Added instruction prefix data to the struct.
1000
1001         * verify.c (is_compatible_boxed_valuetype): Don't check if the type is a valuetype, been boxed is enough.
1002
1003         * verify.c (do_invoke): Support constrained callvirt form. Grouped similar checks together.
1004
1005         * verify.c (do_cast): Let the result value keep the boxed status.
1006
1007         * verify.c (mono_method_verify): Add proper support for prefixed and implement contrained.
1008
1009 2008-03-17  Jb Evain  <jbevain@novell.com>
1010
1011         * reflection.c: when running on a 2.0 runtime, emit
1012         unconditionally the #~ header version as 2.0, and the
1013         CLI header version as 2.5, for symmetry's sake with csc.
1014
1015 2008-03-16  Zoltan Varga  <vargaz@gmail.com>
1016
1017         * class.c: Remove the unused cache_interface_offsets stuff.
1018
1019         * class.c loader.c domain.c verify.c metadata.c debug-helpers.c threadpool.c
1020         profiler.c: Fix warnings.
1021
1022 2008-03-16  Mark Probst  <mark.probst@gmail.com>
1023
1024         * generic-sharing.c, class-internals.h: Support for putting
1025         methods into the runtime generic context.
1026
1027 2008-03-16  Zoltan Varga  <vargaz@gmail.com>
1028
1029         * class.c (mono_class_setup_fields): Ignore calls made to this function for
1030         classes which are generic instances of not-yet finished typebuilders. Fixes
1031         #351172.
1032
1033         * reflection.c (fixup_method): Add support for FieldOnTypeBuilderInst.
1034
1035 2008-03-15  Zoltan Varga  <vargaz@gmail.com>
1036
1037         * metadata-internals.h (MonoDynamicImage): Add 'generic_def_objects' hash table.
1038
1039         * class-internals.h (MonoMethodInflated): Remove the rarely used reflection_info
1040         field, replace it with a hash table in MonoDynamicImage.
1041
1042         * reflection.c (inflate_mono_method): Access the generic definition object from
1043         image->generic_def_objects instead of imethod->reflection_info.
1044
1045         * reflection.c (mono_reflection_bind_generic_method_parameters): Ditto. 
1046
1047         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition): Ditto.
1048         
1049         * image.c (mono_image_close): Move the dynamic image freeing code to a separate
1050         function in reflection.c so it is easier to keep in sync with the dynamic image
1051         creation code.
1052
1053         * reflection.c (mono_dynamic_image_free): New internal function, extracted from
1054         mono_image_close ().
1055
1056 2008-03-15  Mark Probst  <mark.probst@gmail.com>
1057
1058         * class.c (mono_class_generic_sharing_enabled): Disable generic
1059         sharing for all architectures except AMD64 and x86 to fix build.
1060
1061 2008-03-14 Rodrigo Kumpera  <rkumpera@novell.com>
1062
1063         * verify.c: Use the generic definition MonoGenericContext when available.
1064         Remove code for checking generics instance compatibility in favor of
1065         mono_class_is_assignable_from.
1066
1067 2008-03-14  Mark Probst  <mark.probst@gmail.com>
1068
1069         * marshal.c, marshal.h, metadata-internals.h, image.c,
1070         wrapper-types.h: New wrapper for invoking a shared static method
1071         without having to pass the runtime generic context argument.
1072
1073 2008-03-14 Rodrigo Kumpera  <rkumpera@novell.com>
1074
1075         * icall-def.h: Add missing function PerformanceCounterCategory::GetInstanceNames.
1076
1077 2008-03-14  Zoltan Varga  <vargaz@gmail.com>
1078
1079         * reflection.c (mono_image_get_field_on_inst_token): Add caching.
1080         
1081         * reflection.c (mono_image_get_field_on_inst_token): New helper function to
1082         create a token from a FieldOnTypeBuilderInst.
1083         (mono_image_create_token): Handle FieldOnTypeBuilderInst.
1084         (resolve_object): Ditto.
1085
1086         * object-internals.h (MonoReflectionFieldOnTypeBuilderInst): New structure
1087         mirroring System.Reflection.Emit.FieldOnTypeBuilderInst.
1088
1089 2008-03-14  Martin Baulig  <martin@ximian.com>
1090
1091         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 68.
1092
1093         * debug-mono-symfile.h
1094         (MONO_SYMBOL_FILE_VERSION): Bump to 41.
1095         (MONO_SYMBOL_FILE_COMPATIBILITY_VERSION): New #define.
1096
1097 2008-03-10  Martin Baulig  <martin@ximian.com>
1098
1099         * debug-mono-symfile.h
1100         (MonoSymbolFileMethodAddress): Removed `num_lexical_blocks' and
1101         `lexical_block_table_offset'.
1102         (MonoDebugMethodInfo): Removed `num_lexical_blocks' and
1103         `lexical_blocks'.
1104         (MonoSymbolFile): Added `version'.
1105
1106         * mono-debug.h
1107         (MonoDebugLexicalBlockEntry): Removed.
1108         (MonoDebugMethodJitInfo): Removed `num_lexical_blocks' and
1109         `lexical_blocks'.
1110
1111         * mono-debug.c (mono_debug_add_method): Don't compute lexical
1112         blocks here; the debugger now does this internally.
1113
1114 2008-02-27  Martin Baulig  <martin@ximian.com>
1115
1116         * object.c (mono_runtime_exec_main): Call
1117         `mono_debugger_event (MONO_DEBUGGER_EVENT_REACHED_MAIN)' and
1118         `mono_debugger_event (MONO_DEBUGGER_EVENT_MAIN_EXITED)' here.
1119
1120 2008-03-12 Rodrigo Kumpera  <rkumpera@novell.com>
1121
1122         * verify.c (verify_type_compatibility_full): Allow native int to be converted
1123         to native pointer in non-strict mode. Required to "(IntPtr)null" work.
1124
1125 2008-03-12 Rodrigo Kumpera  <rkumpera@novell.com>
1126
1127         * verify.c (verify_ldftn_delegate): Accept a sealed type when using
1128         ldftn with a virtual method.
1129
1130 2008-03-13  Geoff Norton  <gnorton@novell.com>
1131
1132         * decimal.c:  Only include memory.h if the platform has it.
1133
1134 Wed Mar 12 12:11:06 CET 2008 Paolo Molaro <lupus@ximian.com>
1135
1136         * assembly.c, class.c, metadata-internals.h: make sure public key
1137         tokesns are compared in a case-insensitive way. Also, all
1138         the lookups in the GAC use a lowercase public key token
1139         (gaacutil already does the lowercasing on install). Fixes
1140         bug #369541.
1141
1142 2008-03-11 Rodrigo Kumpera  <rkumpera@novell.com>
1143
1144         * verify.c (mono_delegate_signature_equal): Do proper variance check on arguments
1145         and return value.
1146
1147 Tue Mar 11 17:41:38 CET 2008 Paolo Molaro <lupus@ximian.com>
1148
1149         * image.c: when someone loads a mscorlib from a file, return the
1150         currently loaded mscorlib (fixes bug #369253).
1151
1152 Tue Mar 11 16:47:32 CET 2008 Paolo Molaro <lupus@ximian.com>
1153
1154         * class.c: handle types with no parents by forcing them to have
1155         System.Object as a parent and marking them as broken (this currently
1156         allows the first part of bug #369173 to work as well, likely because
1157         we don't check for typeload exceptions everywhere yet).
1158
1159 Tue Mar 11 15:23:54 CET 2008 Paolo Molaro <lupus@ximian.com>
1160
1161         * class.c: more complete check that types belong to corlib
1162         (fixes second part of bug #369173).
1163
1164 2007-03-10  Bill Holmes  <billholmes54@gmail.com>
1165
1166         * generic-sharing.c:  Including glib.h for the MSVC builds to define
1167           "inline" to "__inline" before including mono-membar.h.
1168           
1169         * mono-perfcounters.c:  Adding HAVE_SYS_TIME_H check for MSVC builds.
1170           Rename "Unknown" to "CatTypeUnknown" to avoid name collisions for 
1171           MSVC builds.
1172
1173         Contributed under MIT/X11 license.
1174
1175 2008-03-10 Rodrigo Kumpera  <rkumpera@novell.com>
1176
1177         * verify.c (do_invoke_method): Remove return type validation.
1178
1179         * verify.c (do_ret): Do return type validation at return site instead of
1180         call site.
1181
1182 2008-03-10 Rodrigo Kumpera  <rkumpera@novell.com>
1183
1184         * verify.c (do_invoke_method): Mark callvirt to static methods unverifiable.
1185
1186         * verify.c: Some todos cleaned and improved a few error messages.
1187
1188 2008-03-08  Zoltan Varga  <vargaz@gmail.com>
1189
1190         * class.c (mono_class_setup_mono_type): Improve the test for corlib.
1191
1192 2008-03-07  Zoltan Varga  <vargaz@gmail.com>
1193
1194         * class.c (mono_class_setup_mono_type): Handle types whose name clashes with
1195         system types correctly.
1196
1197         * exception.h exception.c (mono_exception_from_token_two_strings): New helper
1198         function.
1199
1200 2008-03-06  Zoltan Varga  <vargaz@gmail.com>
1201
1202         * assembly.c (build_assembly_name): Fix a warning.
1203
1204 Thu Mar 6 19:43:41 CET 2008 Paolo Molaro <lupus@ximian.com>
1205
1206         * marshal.c: ldfld_remote and stfld_remote needs just one wrapper as
1207         the called function takes an object type argument. Fixes storing or
1208         valuetypes across remoting as well as reducing memory usage.
1209         * image.c, metadata-internals.h: remove now unused ldfld_remote and
1210         stfld_remote wrapper caches.
1211
1212 2008-03-06  Zoltan Varga  <vargaz@gmail.com>
1213
1214         * icall.c (mono_lookup_internal_call): Update the exception message when an icall
1215         is not found.
1216
1217         * reflection.c (mono_image_register_token): New helper function to save
1218         a token->object mapping.        
1219
1220         * icall.c (ves_icall_ModuleBuilder_RegisterToken): New icall to access it from
1221         managed code.
1222
1223         * reflection.c (_mono_reflection_parse_type): Distinguish between vectors and
1224         one dimension arrays. Fixes #367670.
1225         (mono_reflection_get_type_internal): Ditto.
1226
1227 Tue Mar 4 19:04:02 CET 2008 Paolo Molaro <lupus@ximian.com>
1228
1229         * marshal.c: mono_load_remote_field_new() always returns object.
1230         so use the proper signature (fixes bug #366445).
1231
1232 2008-03-04  Zoltan Varga  <vargaz@gmail.com>
1233         
1234         * class-internals.h (MonoMethod): Remove unused uses_this flag, 
1235         add an 'inline_failure' flag instead.
1236
1237 2008-03-04  Mark Probst  <mark.probst@gmail.com>
1238
1239         * domain-internals.h, domain.c: Replaced MonoGenericSharingContext
1240         with a new structure, MonoGenericJitInfo, in the MonoJitInfo.  It
1241         contains the location of "this", used for exception handling.
1242
1243 2008-03-04  Zoltan Varga  <vargaz@gmail.com>
1244
1245         * class.c (mono_class_layout_fields): Set the min alignment of small structs to
1246         their size on all platforms for perf reasons.
1247
1248 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
1249
1250         * reflection.h: Move mono_reflection_is_valid_dynamic_token to
1251         object-internal.h
1252
1253         * object-internal.h: Same.
1254
1255 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
1256
1257         * reflection.h: Fix the build I just broke.
1258
1259 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
1260
1261         * reflection.c (mono_reflection_is_valid_dynamic_token): New function,
1262         Test if a token is valid, this remove explicit usage of 
1263         MonoDynamicImage::tokens from the verifier code.
1264
1265         * reflection.h: Added mono_reflection_is_valid_dynamic_token.
1266
1267         * verify.c (token_bounds_check): Use mono_reflection_is_valid_dynamic_token
1268         instead of direct access to MonoDynamicImage::tokens.
1269
1270 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
1271
1272         * verify.c (token_bounds_check): Fix the build I just broke.
1273
1274 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
1275
1276         * verify.c (token_bounds_check): Fix bounds check for dynamic images.
1277
1278         * verify.c (verifier_load_method): Fixed the errors message.
1279
1280         * verify.c (mono_method_verify): Fixed a debug message.
1281
1282 Thu Feb 28 19:49:45 CET 2008 Paolo Molaro <lupus@ximian.com>
1283
1284         * icall-def.h, domain.c, mono-perfcounters-def.h, mono-perfcounters.c,
1285         mono-perfcounters.h, class-internals.h: support for predefined
1286         writable counters, query of categories and counters, bugfixes.
1287
1288 2008-02-28 Rodrigo Kumpera  <rkumpera@novell.com>
1289
1290         * verify.c (do_refanytype): Verify the refanytype opcode.
1291
1292         * verify.c (mono_method_verify): Use do_refanytype.
1293
1294 2008-02-28 Rodrigo Kumpera  <rkumpera@novell.com>
1295
1296         * verify.c (do_mkrefany): Verify the mkrefany opcode.
1297
1298         * verify.c (mono_method_verify): Use do_mkrefany.
1299
1300 Wed Feb 27 19:49:16 CET 2008 Paolo Molaro <lupus@ximian.com>
1301
1302         * Makefile.am, icall-def.h, icall.c, mono-perfcounters-def.h,
1303         mono-perfcounters.c, mono-perfcounters.h: basic performance counter
1304         implementation.
1305
1306 2008-02-27  Zoltan Varga  <vargaz@gmail.com>
1307
1308         * marshal.c (mono_marshal_get_synchronized_wrapper): Fix the code which throws
1309         the type load exception.
1310
1311 2008-02-27 Rodrigo Kumpera  <rkumpera@novell.com>
1312
1313         * verify.c: Added a few FIXME for method signatures
1314
1315         * verify.c (do_invoke_method): Use mono_method_get_signature_full instead
1316         of mono_method_get_signature and get vararg call working. Removed unused
1317         checks for return value.
1318
1319         * verify.c (do_refanyval): Verify the refanyval opcode.
1320
1321         * verify.c (mono_method_verify): Implemented verification of arglist and
1322         use do_refanyval.
1323
1324 2008-02-27  Zoltan Varga  <vargaz@gmail.com>
1325
1326         * class.c (mono_class_setup_methods): Move the check for synchronized methods on
1327         vtypes to marshal.c.
1328
1329         * marshal.c (mono_marshal_get_synchronized_wrapper): Do the vtype check here so
1330         it works for AOT as well.
1331
1332 Tue Feb 26 17:46:32 CET 2008 Paolo Molaro <lupus@ximian.com>
1333
1334         * monitor.c, threads.c, threadpool.c: replace the use of GetTickCount ()
1335         with mono_msec_ticks () which is monotonic and doesn't cause bugs when
1336         the system time is adjusted.
1337
1338 Tue Feb 26 17:40:10 CET 2008 Paolo Molaro <lupus@ximian.com>
1339
1340         * icall.c, icall-def.h: use the new time functions (fixes the
1341         non-monotonic behaviour of TickCount).
1342
1343 2008-02-26  Zoltan Varga  <vargaz@gmail.com>
1344
1345         * reflection.c (mono_custom_attrs_from_builders): Revert the last change as
1346         it breaks the build.
1347         
1348         * reflection.c (mono_custom_attrs_from_builders): Assert instead of a crash if the
1349         cattr is not finished yet.
1350
1351 2008-02-25 Rodrigo Kumpera  <rkumpera@novell.com>
1352
1353         * verify.c: Proper token validation for field, method and type.
1354
1355 2008-02-25 Rodrigo Kumpera  <rkumpera@novell.com>
1356
1357         * loader.c (field_from_memberref): Generate a loader error if the type is not found.
1358
1359         * loader.c (method_from_memberref): Generate type load error instead of method missing
1360         if the type is not found.
1361
1362 2008-02-23  Zoltan Varga  <vargaz@gmail.com>
1363
1364         * marshal.c (mono_marshal_emit_managed_wrapper): Avoid generating invalid IL if
1365         some of the conversions caused the generation of a marshal directive exception.
1366
1367 2008-02-21 Rodrigo Kumpera  <rkumpera@novell.com>
1368
1369         verify.c: Report which exception should be thrown by the JIT.
1370         Added a lot of FIXME notes.
1371
1372 2008-02-22  Mark Probst  <mark.probst@gmail.com>
1373
1374         * generic-sharing.c: Runtime generic context slots are not
1375         instantiated on init anymore.  Instead, provide function to do the
1376         instantiating on demand.
1377
1378         * class-internals.h: Added vtable to runtime generic context.
1379         Macros for encoding direct and indirect slot offsets in one
1380         guint32.
1381
1382 2008-02-21  Mark Probst  <mark.probst@gmail.com>
1383
1384         * object.c, generic-sharing.c: Moved some generic sharing code
1385         from object.c to generic-sharing.c.
1386
1387         * generic-sharing.c: Added support for extensible runtime generic
1388         context.
1389
1390         * metadata-internals.h: Two new hash tables in MonoImage for
1391         extensible runtime generic context support.
1392
1393         * domain.c: Unregister generic vtables upon domain unloading.
1394
1395         * image.c: Destroy new hash tables upon image unloading.
1396
1397         * metadata.c: Unregister generic subclasses upon image unloading.
1398
1399         * class-internals.h: New data structure for runtime generic
1400         context template.  New fields in the runtime generic context for
1401         extensible part.
1402
1403         * Makefile.am: Added generic-sharing.c.
1404
1405 2008-02-21 Rodrigo Kumpera  <rkumpera@novell.com>
1406
1407         icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): If
1408         there is a pending loader exception, raise it.
1409
1410         icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
1411         same.
1412
1413         icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken): 
1414         same.
1415
1416         Fixes #363450.
1417
1418 2008-02-20  Zoltan Varga  <vargaz@gmail.com>
1419
1420         * icall.c (ves_icall_Type_GetPacking): Handle dynamic types.
1421
1422         * assembly.c (mono_assembly_load_from_full): Fix a leak in the previous patch.
1423         
1424         * assembly.c (mono_assembly_load_from_full): Return the non-refonly corlib for
1425         ref-only requests for compatibility with MS.
1426
1427 2008-02-20  Raja R Harinath  <harinath@hurrynot.org>
1428
1429         * reflection.c (mono_custom_attrs_from_method): Don't silently
1430         return an empty list for generic method instances.
1431         (mono_custom_attrs_from_param): Likewise.
1432
1433 2008-02-20  Rodrigo Kumpera  <rkumpera@novell.com>
1434             Raja R Harinath  <harinath@hurrynot.org>
1435
1436         Fix #354757
1437         * class-internals.h (struct _MonoMethodInflated.is_mb_open): Add.
1438         * class.c (mono_class_inflate_generic_method_full): Initialize it
1439         when a fully-open method is instantiated.
1440         * metadata.c (inflated_method_equal, inflated_method_hash): Update
1441         to new field.
1442         * reflection.c (inflate_mono_method): Don't create a temporary context.
1443
1444 2008-02-20  Raja R Harinath  <harinath@hurrynot.org>
1445
1446         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
1447         Compute correct value, to prepare for imethod->reflection_info going away.
1448
1449 2008-02-19  Zoltan Varga  <vargaz@gmail.com>
1450
1451         * class.c (mono_class_setup_vtable_general): Ignore static methods in interfaces.
1452
1453 2008-02-18 Rodrigo Kumpera  <rkumpera@novell.com>
1454
1455         * verify.c: Implement skip visibility flag.
1456
1457 2008-02-18 Rodrigo Kumpera  <rkumpera@novell.com>
1458
1459         * verify.h: Added MONO_VERIFY_SKIP_VISIBILITY and struct MonoVerifyInfoExtended
1460         which contains an extra field to tell the kind of exception that should be thrown.
1461
1462         * verify.c: Use MonoVerifyInfoExtended instead of MonoVerifyInfo.
1463
1464 2008-02-17  Raja R Harinath  <harinath@hurrynot.org>
1465
1466         * loader.c (mono_method_get_param_names): Initialize 'klass' after
1467         'method' is updated.
1468
1469 2008-02-11  Zoltan Varga  <vargaz@gmail.com>
1470
1471         * class.c (mono_class_layout_fields): Set class->min_align for classes using
1472         explicit layout as well. Fixes #360375.
1473
1474 2008-02-11  Geoff Norton  <gnorton@novell.com>
1475
1476         * loader.c: Guard and dereference against inflated generic methods
1477
1478 2008-02-10  Gert Driesen  <drieseng@users.sourceforge.net>
1479
1480         * class.c: Include Retargetable spec in assembly name.
1481         * assembly.c: Always include PublicKeyToken spec in assembly name
1482         (with value "null" if assembly is not signed), and include
1483         Retargetable spec.
1484         * icall-def.h: Added icall for Assembly.get_fullname.
1485         * icall.c: Added icall returning the fullname of an assembly.
1486
1487 2008-02-09  Zoltan Varga  <vargaz@gmail.com>
1488
1489         * class.c (mono_class_setup_vtable_general): Add a missing call to
1490         mono_class_setup_methods () which is needed in the AOT case.
1491
1492 2008-02-08 Rodrigo Kumpera  <rkumpera@novell.com>
1493
1494         * verify.c (mono_type_get_stack_name): Added. Return the name for the
1495         stack type of the given MonoType.
1496
1497         * verify.c (verify_type_compatibility_full): Handle the void type.
1498
1499         * verify.c (is_compatible_boxed_valuetype): Changed to fit the
1500         way stack merging works.
1501
1502         * verify.c (store_local): Improved verification message.
1503
1504         * verify.c (do_branch_op): If the merging is invalid, the method
1505         is unverifiable and not invalid. Improved error message.
1506
1507         * verify.c (merge_stacks): Properly merge a boxed valuetype and
1508         a reference type diferent than System.Object. Improved error
1509         message.
1510
1511 2008-02-07 Rodrigo Kumpera  <rkumpera@novell.com>
1512
1513         * verify.c (mono_type_is_enum_type): Added. Test if a type is an enum.
1514
1515         * verify.c (mono_type_get_underlying_type_any): Added. Return the underlying
1516         type of an enum even if the argument is byref.
1517
1518         * verify.c: Replace all explicit uses of enumtype and enum_basetype
1519         to calls to mono_type_is_enum_type and mono_type_get_underlying_type_any.
1520
1521         * verify.c: Check for an enum in all cases of MONO_TYPE_GENERICINST.
1522
1523         *verify.c (verify_type_compatibility_full): Make enum types
1524         compatible with their base types.
1525
1526         * verify.c (is_compatible_boxed_valuetype): Added. Check if both
1527         types are compatible for the special case of a boxed valuetype and
1528         System.Object.
1529
1530         * verify.c (verify_stack_type_compatibility): The function
1531         is_compatible_boxed_valuetype was extracted from here.
1532
1533         * verify.c (push_arg): Only set ctx->has_this_store if the method
1534         is not static.
1535
1536         * verify.c (do_ldelem): Fixed a typo in an error message and added
1537         strict check for mixing int32 and native int as the array type
1538         and ldelem type.
1539
1540         * verify.c (merge_stacks): Consider boxed valuetypes in the
1541         compatibility checks.
1542
1543 2008-02-07  Massimiliano Mantione  <massi@ximian.com>
1544         * profiler.h: (MonoGCEvent): Added start-stop the world events.
1545
1546 2008-02-06  Massimiliano Mantione  <massi@ximian.com>
1547         *class.c: use_new_interface_vtable_code: renamed the env var to have
1548         a "MONO_" prefix, and fix the logic to enable it by default.
1549
1550 2008-02-06  Massimiliano Mantione  <massi@ximian.com>
1551         *class.c:
1552         mono_class_setup_vtable_general: rewrote the way in which interface
1553         methods are added to vtables. Makes bug-77127.exe pass, and hopefully
1554         makes the code more maintainable.
1555         For now the old code is still there, and can be activated setting
1556         the env var "USE_NEW_INTERFACE_VTABLE_CODE".
1557
1558 2008-02-06 Rodrigo Kumpera  <rkumpera@novell.com>
1559
1560         * verify.c: guarded some debug functions around and #ifdef.
1561
1562         * verify.c (merge_stacks): implement proper PIII 1.8.1.3 stack state merging.
1563
1564 2008-02-06  Zoltan Varga  <vargaz@gmail.com>
1565
1566         * marshal.c (mono_marshal_get_runtime_invoke): Revert the direct_wrapper
1567         changes for now since they seem to break too many things.
1568
1569 2008-02-05  Mark Probst  <mark.probst@gmail.com>
1570
1571         * marshal.c, marshal.h (mono_marshal_find_bitfield_offset,
1572         mono_marshal_find_nonzero_bit_offset): Added macro and function
1573         for finding the byte- and bit-offset of a bitfield within a
1574         struct.
1575
1576 2008-02-05  Zoltan Varga  <vargaz@gmail.com>
1577
1578         * marshal.c (mono_marshal_get_ptr_to_struct): Make the signature non-pinvoke.
1579         (mono_marshal_get_struct_to_ptr): Ditto.
1580
1581         * marshal.c (mono_marshal_get_runtime_invoke): Fix the signature of 
1582         cctor_signature.
1583
1584 2008-02-03  Zoltan Varga  <vargaz@gmail.com>
1585
1586         * marshal.c (mono_marshal_get_runtime_invoke): Fix sharing of runtime wrappers
1587         between methods for non-corlib types.
1588
1589 2008-02-02  Geoff Norton  <gnorton@novell.com>
1590
1591         * loader.c (mono_method_get_param_names): Populate the parameter name for 
1592         generic parameters as well. (Fixes #342536)
1593
1594 2008-01-31 Rodrigo Kumpera  <rkumpera@novell.com>
1595
1596         * verify.c (is_valid_bool_arg): Allow boxed values and null literals as well.
1597
1598         * verify.c (do_invoke_method): Fix for calling with byref structs.
1599
1600         * verify.c (do_cast): push a boxed value type based on the type token and not
1601         the type of stack.
1602
1603 2008-01-31  William Holmes  <billholmes54@gmail.com>
1604
1605         * process.c (process_module_string_read): Check the size returned form 
1606           VerQueryValue to avoid out of memory exception. 
1607
1608 2008-01-30  Zoltan Varga  <vargaz@gmail.com>
1609
1610         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
1611         Handle properly modules which are not in the moduleref table. Fixes
1612         #356938.
1613
1614 2008-01-29  Zoltan Varga  <vargaz@gmail.com>
1615
1616         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Remove
1617         the dynamic case which is now in managed code.
1618         (ves_icall_System_Reflection_Assembly_GetTypes): Ditto.
1619
1620         * marshal.c (mono_string_to_bstr): Fix a warning.
1621         (init_com_provider_ms): Ditto.
1622
1623         * appdomain.c (ves_icall_System_AppDomain_createDomain): Add some FIXMEs.
1624
1625         * exception.c (mono_get_exception_out_of_memory): New helper function.
1626
1627 2008-01-28  Jonathan Chambers  <joncham@gmail.com>
1628
1629         * marshal.c: Add support for BSTR marshalling
1630         using other COM systems.
1631
1632         Code is contributed under MIT/X11 license.
1633
1634 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
1635
1636         * object.c (mono_runtime_invoke_array): reverted previous
1637         commit as it breaks the build.
1638
1639 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
1640
1641         * object.c (mono_runtime_invoke_array): Verify arguments for
1642         invalid types. Fixes #348522.
1643
1644 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
1645
1646         * verify.c: added IL_CODE_CALL_NONFINAL_VIRTUAL to track calls to
1647         non-final virtual calls using call. 
1648
1649         * verify.c (do_invoke): fixed some TODOs.
1650
1651         * verify.c (push_arg): set has_this_store for "ldarga 0".
1652
1653 2008-01-27  Zoltan Varga  <vargaz@gmail.com>
1654
1655         * reflection.c (reflection_methodbuilder_to_mono_method): Allow DynamicMethods
1656         which belong to an inflated class. Fixes #356531.
1657
1658 2008-01-26  Robert Jordan  <robertj@gmx.net>
1659
1660         * file-io.c: Implement and use wrappers for GetFileAttribute|Ex ()
1661         which resort to FindFirstFile when a certain error condition
1662         (ERROR_SHARING_VIOLATION) occured. Fixes bug #325212.
1663         Code is contributed under MIT/X11 license.
1664
1665 2008-01-24  Jonathan Chambers  <joncham@gmail.com>
1666
1667         * marshal.c (emit_marshal_string): Fix out string marshalling
1668         to use specified encoding. Fixes #323900.
1669
1670         Code is contributed under MIT/X11 license.
1671
1672 2008-01-24  Raja R Harinath  <harinath@hurrynot.org>
1673
1674         * class.c (mono_class_inflate_generic_method_full): Don't modify
1675         iresult->context after cache check.
1676
1677 2008-01-23  Zoltan Varga  <vargaz@gmail.com>
1678
1679         * class.c (mono_class_inflate_generic_method_full): Change the
1680         struct assignments to memcpy for better visibility and add some comments.
1681
1682 2008-01-23  Dick Porter  <dick@ximian.com>
1683
1684         * threads.c (mono_threads_set_shutting_down): Simplify shutdown
1685         procedure, and make it work on windows.
1686
1687 2008-01-22  Zoltan Varga  <vargaz@gmail.com>
1688
1689         * object-internals.h (MonoReflectionGenericClass): Make the 'generic_type' field
1690         a MonoReflectionTypeBuilder since it is always of that type.
1691
1692         * reflection.c (mono_type_get_object): Remove an unneccesary check.     
1693
1694         * reflection.c (mono_generic_class_get_object): Simplify this a bit.
1695
1696         * reflection.c (mono_reflection_bind_generic_parameters): Ditto.
1697         
1698         * icall.c (ves_icall_MonoGenericClass_GetParentType): Ditto.
1699
1700         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Ditto.
1701
1702         * reflection.c (mono_reflection_create_runtime_class): Remove already created
1703         instantiations from the type cache.
1704
1705 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
1706
1707         * verify.c (do_ldstr): fixed token verification. previous code was 100% broken.
1708
1709         * verify.c (do_unbox_value): push a controled mutability managed pointer.
1710
1711 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
1712
1713         * verify.c (do_ldstr): added, verifies if the #US token is valid.
1714
1715         * verify.c (mono_method_verify): removed old TODO
1716
1717 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
1718
1719         * verify.c (do_newobj): add visibility check.
1720
1721 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
1722
1723         * verify.c (do_load_function_ptr): add visibility check.
1724
1725 2008-01-21  Massimiliano Mantione  <massi@ximian.com>
1726         *class.c:
1727         mono_generic_class_get_class: hook profiler events.
1728         mono_field_get_offset: added to support heap-shot in the new profiler.
1729         *class.h: exported mono_field_get_offset.
1730         * reflection.c:
1731         mono_reflection_setup_internal_class: hook profiler events.
1732
1733 2008-01-20  Zoltan Varga  <vargaz@gmail.com>
1734
1735         * marshal.c (mono_marshal_emit_native_wrapper): Add a 'check_exceptions' 
1736         argument here too and use it to avoid checking for pending exceptions if 
1737         possible.
1738
1739 2008-01-20  Gert Driesen  <drieseng@users.sourceforge.net>
1740
1741         * assembly.c (build_assembly_name): add arg for passing the assembly
1742         flags. Do not consider a PublicKey with value "null" valid.
1743         (mono_assembly_name_parse_full): added boolean argument that will be
1744         set if the assembly name contains a PublicKeyToken spec. Added support
1745         for the Retargetable spec for which only Yes or No are allowed as valid
1746         value. Consider assembly name invalid if Retargetable spec is set, but
1747         either version, culture or public key (token) are not specified.
1748         * metadata-internals.h: sync signature of mono_assembly_name_parse_full
1749         with implementation in assembly.c.
1750         * icall.c (fill_reflection_assembly_name): also copy assembly flags
1751         from MonoAssemblyName.
1752         (ves_icall_System_Reflection_AssemblyName_ParseName): use newly
1753         introduced argument for mono_assembly_name_parse_full to know if the
1754         assembly name has a PublicKeyToken spec, and if it has instruct
1755         fill_reflection_assembly_name to use default value for keyToken (if
1756         PublicKeyToken is null).
1757
1758 2008-01-18  Rodrigo Kumpera  <rkumpera@novell.com>
1759
1760         * verify.c (mono_method_verify): fixed ovf ops with
1761         float values. They are unverifiable now.
1762
1763 2008-01-18  Rodrigo Kumpera  <rkumpera@novell.com>
1764
1765         * class.c (set_failure_from_loader_error): add BadImageException to the
1766         list of exceptions that can cause a type to fail to load.
1767
1768         * class.c (mono_class_get_exception_for_failure): same.
1769
1770 2008-01-17  Rodrigo Kumpera  <rkumpera@novell.com>
1771
1772         * verify.c (in_any_exception_block): added, check if offset
1773         is part of any exception handling clause.
1774
1775         * verify.c (get_stack_type): added VAR and MVAR types.
1776
1777         * verify.c (do_stobj): better error messages.
1778
1779         * verify.c (do_cpobj): added, check cpobj.
1780
1781         * verify.c (do_initobj): added, check initobj.
1782
1783         * verify.c (do_sizeof): added, check sizeof.
1784
1785         * verify.c (do_localloc): added, check localloc.
1786
1787         * verify.c: adde proper verification for cpobj, initobj, sizeof and localloc.
1788
1789 2008-01-17  Zoltan Varga  <vargaz@gmail.com>
1790
1791         * method-builder.c (mono_mb_emit_native_call): Get rid of the unused
1792         save_lmf/restore_lmf opcodes.
1793
1794         * threads.c (mono_threads_install_notify_pending_exc): New function to
1795         install a callback notifying the JIT there is a pending exception on a thread.
1796         (mono_thread_request_interruption): Call the new callback.
1797         (mono_thread_get_and_clear_pending_exception): New function to return the
1798         exception pending on a thread.
1799
1800         * marshal.c (mono_marshal_get_icall_wrapper): Add a check_exceptions argument
1801         to turn off checking for pending exceptions.
1802         (mono_marshal_get_native_wrapper): Ditto.
1803
1804 2008-01-16  Zoltan Varga  <vargaz@gmail.com>
1805
1806         * threads-types.h: Get rid of the unnecessary extern declarations.
1807
1808 2008-01-16  Gert Driesen  <drieseng@users.sourceforge.net>
1809
1810         * icall.c (ves_icall_Type_GetField): if NonPublic flag is set, only
1811         return field from parent class if not private.
1812         (ves_icall_Type_GetFields_internal): if NonPublic flag is set, only
1813         returns fields from parent class if they are not private.
1814         (method_nonpublic): added function to determine if a given method
1815         should be considered non-public. Returns false for private methods
1816         on parent class, and internal methods from parent on the 1.0 profile.
1817         (ves_icall_Type_GetMethodsByName): if NonPublic flag is set, then
1818         use method_nonpublic function to determine whether method should be
1819         returned.
1820         (property_accessor_public): use newly introduced method_nonpublic
1821         function to determine whether accessor is non-public. 
1822         (ves_icall_MonoType_GetEvent): If NonPublic flag is set, only return
1823         event from parent class if not private. Only return static event if
1824         Static flag is set, and only return static event from parent class if
1825         FlattenHierarchy flag is set.
1826         (ves_icall_Type_GetEvents_internal): If NonPublic flag is set, only
1827         include non-private events from parent class.
1828
1829 2008-01-16  Zoltan Varga  <vargaz@gmail.com>
1830
1831         * icall.c (ves_icall_System_NumberFormatter_GetFormatterTables): Fix a
1832         warning.
1833
1834 2008-01-16  Wade Berrier <wberrier@novell.com>
1835
1836         * security.c: Add assembly.h header to appease some warnings
1837
1838 2008-01-16  Dick Porter  <dick@ximian.com>
1839
1840         * process.c (process_module_string_read): Remove trailing null
1841         when saving string.
1842
1843 2008-01-16  Mark Probst  <mark.probst@gmail.com>
1844
1845         * class-internals.h: A new data structure describing the layout of
1846         a runtime generic context (MonoRuntimeGenericContextTemplate).
1847
1848         * metadata-internals.h: Added a hash table to MonoDomain that maps
1849         from open generic classes to their runtime generic context
1850         templates.
1851
1852         * object.c: Building of the runtime generic context, including
1853         proper handling of generic type arguments of superclasses.
1854         Building of the runtime generic context according to the template.
1855
1856 2008-01-15  Zoltan Varga  <vargaz@gmail.com>
1857
1858         * class.c (mono_class_setup_fields): Set field.count for generic instances.
1859         Fixes #350856.
1860
1861         * image.c (do_mono_image_open): Pass TRUE as last_exists to 
1862         mono_portability_find_file (). Fixes #325466.
1863         (mono_image_get_public_key): Fix a warning.
1864
1865 2008-01-14  Zoltan Varga  <vargaz@gmail.com>
1866
1867         * class.c (mono_class_from_name): Fix comments for NULL-ness of image parameter.
1868         Fixes #353550.
1869         (mono_class_from_name_case): Ditto.
1870
1871 2008-01-13  Eyal Alaluf <eyala@mainsoft.com>
1872
1873         * icall-def.h number-formatter.h icall.c: Implemented a cross app-domain
1874           common storage for the tables used in the System/NumberFormatter class.
1875
1876 2008-01-13  Zoltan Varga  <vargaz@gmail.com>
1877
1878         * marshal.c (mono_marshal_get_runtime_invoke): Fix a typo.
1879
1880 2008-01-11  Rodrigo Kumpera  <rkumpera@novell.com>
1881
1882         * verify.c (get_boxable_mono_type): check if the token is valid.
1883
1884         * verify.c (set_stack_value): changed to add an error if an
1885         invalid type is set on stack. Changed all callers due to signature change.
1886
1887         * verify.c (do_stobj): implement stobj validation.
1888
1889 2008-01-11  Zoltan Varga  <vargaz@gmail.com>
1890
1891         * reflection.c (reflection_methodbuilder_to_mono_method): No need to
1892         set container->is_method, it was set earlier.
1893
1894         * metadata.c (type_in_image): Handle MVARs which belong to not finished
1895         generic methods.
1896
1897         * reflection.c (mono_reflection_initialize_generic_parameter): Set
1898         is_method of the generic container to TRUE for methods.
1899
1900 2008-01-10  Zoltan Varga  <vargaz@gmail.com>
1901
1902         * metadata.c (type_in_image): Handle type parameters properly.
1903
1904         * class-internals.h (MonoGenericParam): Add an 'image' argument to track
1905         memory ownership of this structure.
1906
1907 2008-01-10  Rodrigo Kumpera  <rkumpera@novell.com>
1908
1909         * verify.c (get_boxable_mono_type): make typedref types been just
1910         unverifiable. check for void type.
1911
1912         * verify.c (do_unbox_any): added, verify opcode unbox.any.
1913
1914         * verify.c (do_load_function_ptr): accept method spec tokens.
1915
1916 2008-01-10  Zoltan Varga  <vargaz@gmail.com>
1917
1918         * marshal.c (mono_class_native_size): Always set *align even if this is called
1919         recursively.
1920
1921 2008-01-09  Zoltan Varga  <vargaz@gmail.com>
1922
1923         * verify.c (mono_verify_corlib): Remove this as it was not used and was 
1924         out-of-date.
1925
1926 2008-01-09  Rodrigo Kumpera  <rkumpera@novell.com>
1927
1928         * verify.c: removed some old unused tables. A huge bunch of small fixes
1929         to things found while testing the verifier with mono basic.
1930
1931         * verify.c (dump_stack_value): dump null literal flag to.
1932
1933         * verify.c (verify_type_compatibility_full): fix comparison
1934         for types that have a generic super type.
1935
1936         * verify.c (verify_stack_type_compatibility): fix compatibility
1937         between null literals and reference types. fix compatibility between
1938         boxed valuetypes and object. fix corner case test for enums.
1939
1940         * verify.c (do_cmp_op): proper verification of cgt.un in case
1941         of reference types.
1942
1943         * verify.c (do_invoke_method): fix error message.
1944
1945         * verify.c (do_store_indirect
1946
1947         * verify.c (check_is_valid_type_for_field_ops): proper verification
1948         of managed pointers to valuetypes and boxed valuetypes. proper verification
1949         of null literals.
1950
1951         * verify.c (do_unbox_value): expect valuetypes to be always boxed. don't
1952         allow token to be a reference type.
1953
1954         * verify.c (do_cast): proper handling of boxes valuetypes.
1955
1956         * verify.c (do_stelem): proper handling of storing a boxed valuetype
1957         in object[].
1958
1959         * verify.c (mono_method_verify): pass the opcode to do_cmp_op
1960         to handle cgt.un properly. Implement add/mul/sub ovf opcodes.
1961         fixed the decoding of unbox_any
1962
1963 2008-01-08  Zoltan Varga  <vargaz@gmail.com>
1964
1965         * boehm-gc.c (mono_gc_deregister_root): Fix the size passed to libgc.
1966
1967 2008-01-08  Rodrigo Kumpera  <rkumpera@novell.com>
1968
1969         * verify.c (do_newobj): do delegate verification.
1970
1971         * verify.c (verify_delegate_compatibility): perform delegate
1972         verification.
1973
1974         * verify.c (verify_ldftn_delegate): perform tests related to
1975         ldftn delegates.
1976
1977         * verify.c (mono_delegate_signature_equal): perform the
1978         slightly diferent signature comparison required by delegates.
1979
1980         * metadata.c (mono_metadata_type_equal_full): added and exported
1981         as MONO_INTERNAL. This is a version of mono_metadata_type_equal that
1982         allows signature only comparison.
1983
1984         * metadata-internal.h (mono_metadata_type_equal_full): added and exported
1985         as MONO_INTERNAL.
1986
1987 2008-01-07  Rodrigo Kumpera  <rkumpera@novell.com>
1988
1989         * verify.c: added a bunch of stack_slot_* functions to
1990         make access to stack slot type easier. This is required to
1991         allow optional flags, like null literal, boxed value and
1992         this pointer.
1993         All access paths to IlStackDesc::stype have been changed 
1994         to use these new funcions.
1995         Removed a bunch of unused functions and cleared all warnings.
1996         This patch introduces the usage of the this pointer and 
1997         boxed value flags.
1998
1999 2008-01-07  Zoltan Varga  <vargaz@gmail.com>
2000
2001         * boehm-gc.c (mono_gc_deregister_root): Fix win32 build.
2002
2003 2008-01-06  Zoltan Varga  <vargaz@gmail.com>
2004
2005         * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Change signature to
2006         match managed version.
2007
2008         * appdomain.c: Bump corlib version.
2009         
2010         * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Check for a null
2011         argument.
2012
2013 2008-01-06  Gert Driesen  <drieseng@users.sourceforge.net>
2014
2015         * icall.c (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies)
2016         Set public key token to zero-length byte array if assembly is not
2017         strongnamed.
2018
2019 2008-01-05  Zoltan Varga  <vargaz@gmail.com>
2020
2021         * icall.c (ves_icall_System_Array_SetValueImpl): Use a write barrier when
2022         writing a vtype array elem.
2023
2024 2007-01-05  Gert Driesen  <drieseng@users.sourceforge.net>
2025
2026         * assembly.c (build_assembly_name): return FALSE if length of token is
2027         not 16 (if not "null").
2028         (mono_assembly_name_parse_full): return FALSE if value of version,
2029         culture, token or key is 0.
2030         * icall.c (fill_reflection_assembly_name): add boolean arguments to
2031         specify whether public key and public key token must be set to default
2032         value (zero-length byte array) if not available. Set versioncompat to
2033         SameMachine. If public key is available or the default is set, then
2034         set PublicKey flag.
2035         (ves_icall_System_Reflection_Assembly_FillName): if no public key
2036         is available, use empty byte array as default value. On the 2.0
2037         profile, use default value for public key token if not set.
2038         (ves_icall_System_Reflection_InternalGetAssemblyName): on the 1.0
2039         profile, use default value for public key if not set. On the 2.0
2040         profile, use default value for public key token if not set.
2041         (ves_icall_System_Reflection_AssemblyName_ParseName): do not set
2042         default values for public key and public key token.
2043
2044 2008-01-05  Zoltan Varga  <vargaz@gmail.com>
2045
2046         * object-internals.h (MonoReflectionAssemblyName): Add 'processor_architecture'
2047         field to keep it in synch with the managed object.
2048
2049         * marshal.c (emit_marshal_object): Add support for byref marshalling of
2050         delegates. Fixes #351520.
2051
2052         * sgen-gc.c (conservatively_pin_objects_from): Tell valgrind that the pin queue
2053         contains defined memory.
2054         
2055         * sgen-gc.c: Fix 64 bit warnings. Fix some typos. Update GC stats in mono_stats.
2056
2057         * sgen-gc.c (build_nursery_fragments): Handle half-constructed objects correctly.
2058         
2059         * sgen-gc.c (check_consistency): New helper function to do a consistency check
2060         of the GC data structures.
2061
2062         * gc-internal.h: Moved the REGISTER/UNREGISTER macros here from os/gc_wrapper.h.
2063
2064         * *.c: Include metadata/gc-internal.h instead of os/gc_wrapper.h.
2065         
2066         * object.c (mono_array_full_copy): Fix detection of whenever to use a write
2067         barrier.
2068         (mono_array_clone_in_domain): Ditto.
2069         (mono_array_clone_in_domain): Ditto.
2070
2071         * threads.c (start_wrapper): Register the thread start argument as a GC root.
2072         (cache_culture): Use a write barrier.
2073
2074         * icall.c (ves_icall_System_Array_SetValueImpl): Call a write barrier.
2075         (ves_icall_get_property_info): Ditto.
2076
2077         * object.h (MONO_STRUCT_SETREF): New macro.
2078
2079         * class-internals.h (MonoStats): Add some GC statistics.
2080
2081         * boehm-gc.c null-gc.c: Define mono_gc_deregister_root ().
2082
2083 2008-01-04  Andreas Faerber  <andreas.faerber@web.de>
2084
2085         * exception.c (mono_exception_from_name_two_strings):
2086         Break from loop after method is found.
2087
2088 2008-01-04  Dick Porter  <dick@ximian.com>
2089
2090         * process.c (process_module_string_read): Rename variable to
2091         reflect correct usage, after fixing bug 345972.
2092
2093 2008-01-03  Rodrigo Kumpera  <rkumpera@novell.com>
2094
2095         * verify.c (mono_type_create_fnptr_from_mono_method): 
2096         created a MonoType function pointer instance to be used during
2097         verification. The verifier releases this memory at end.
2098
2099         * verify.c (mono_method_is_constructor): extracted repeated
2100         checks for constructor into a single class.
2101
2102         * verify.c (do_push_field): use new extracted method
2103         for constructor check.
2104
2105         * verify.c (do_newobj): same.
2106
2107         * verify.c (do_ldftn): renamed to do_load_function_ptr
2108         and make it verify ldvirtftn too.
2109
2110         * verify.c (mono_method_verify: proper verification
2111         of ldvirtftn. release created MonoMethod instances.
2112
2113 2007-12-31  Rodrigo Kumpera  <rkumpera@novell.com>
2114
2115         * verify.c (token_bounds_check): added.
2116
2117         * verify.c (do_ldftn): added.
2118
2119         * verify.c (mono_method_verify): proper verificartion of ldftn.
2120
2121 2007-12-31  Rodrigo Kumpera  <rkumpera@novell.com>
2122
2123         * metadata.c (mono_metadata_decode_row): Assert if index is bigger
2124         than the table row count. It's the resposibility of the caller to
2125         make the bounds check and raise the correct error.
2126
2127         * metadata.c (mono_metadata_decode_row_col): Same.
2128
2129         * loader.c (mono_get_method_from_token): perform bounds check
2130         on token for methoddef table.
2131
2132 2007-12-29  Miguel de Icaza  <miguel@novell.com>
2133
2134         * icall.c
2135         (ves_icall_System_CurrentSystemTimeZone_GetTimeZoneData): Turn the
2136         assert into a negative result, the managed code already coped with
2137         that.
2138
2139         Some folks on Windows reported this error. 
2140
2141 2007-12-28  Gert Driesen  <drieseng@users.sourceforge.net>
2142
2143         * appdomain.c: Bump corlib version.
2144         * icall.c:
2145         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies): Use
2146         CultureInfo.CreateCulture to create CultureInfo for name.
2147         (fill_reflection_assembly_name): Use CultureInfo.CreateCulture to
2148         create CultureInfo for name. Fixes bug #347174.
2149
2150 2007-12-27  Rodrigo Kumpera  <rkumpera@novell.com>
2151
2152         * verify.c: added IL_CODE_FLAG_STACK_INITED and IL_CODE_STACK_MERGED
2153         flags.
2154
2155         * verify.c (is_valid_branch_instruction): allow branching to the
2156         first instruction of the protected block.
2157
2158         * verify.c (is_valid_cmp_branch_instruction): same.
2159
2160         * verify.c (stack_init): use IL_CODE_FLAG_STACK_INITED flag to
2161         avoid double initialization.
2162
2163         * verify.c (merge_stacks): use IL_CODE_STACK_MERGED to
2164         detect which cases the eval stack should just be copied.
2165
2166         * verify.c (mono_method_verify): check if the eval stack
2167         is empty when entering a protected block.
2168
2169 2007-12-27  Rodrigo Kumpera  <rkumpera@novell.com>
2170
2171         * verify.c: added is_clause_in_range, is_clause_inside_range,
2172         is_clause_nested and verify_clause_relationship. They perform
2173         the verifications stated in P1 12.4.2.7.
2174
2175         * verify.c (mono_method_verify): remove some unused variables,
2176         add the new exception clause checks, add instruction border
2177         checks for protected block start/end, improved some error 
2178         messages and fixed a bug in the way invalid instruction access
2179         is detected.
2180
2181 2007-12-26  Zoltan Varga  <vargaz@gmail.com>
2182
2183         * boehm-gc.c (mono_gc_register_thread): Use the new GC_register_my_thread () routine
2184         from GC 7.0 if available.
2185
2186         * object.c: Remove an unused define.
2187         
2188         * object.c (mono_class_compute_gc_descriptor): Fix a warning.
2189
2190         * boehm-gc.c (mono_gc_make_descr_for_array): Implement.
2191
2192         * null-gc.c (mono_gc_make_descr_for_array): Implement.
2193
2194         * object.c (mono_class_compute_gc_descriptor): Remove an #ifdef SGEN_GC.
2195
2196         * gc-internal.h: Change the signature of mono_gc_make_descr_for_string ()
2197         to take the same arguments as the other make_descr functions.
2198
2199         * boehm-gc.c null-gc.c: Add implementation for make_descr functions.
2200
2201         * objects.c: Get rid of the MAKE_DESCRIPTOR macros, call make_descr functions
2202         directly.
2203
2204         * boehm-gc.c (mono_gc_base_init): Moved the setting of GC_stackbottom here from
2205         mini.c.
2206
2207         * object.c (mono_class_compute_gc_descriptor): Move the GC_init_gcj_malloc () 
2208         call to boehm-gc.c.
2209
2210         * boehm-gc.c (mono_gc_register_root): Fix a warning.
2211
2212         * null-gc.c (mono_gc_register_root): Fix a warning.
2213
2214         * reflection.c (ALLOC_REFENTRY): Use mono_gc_alloc_fixed for boehm as well.
2215
2216         * boehm-gc.c (mono_gc_register_root): Moved definition here from gc_wrapper.h.
2217         (mono_gc_base_init): Call GC_init ().
2218
2219         * null-gc.c: Define mono_gc_register_root () as a no-op.
2220
2221         * domain.c appdomain.c: Call mono_gc_base_init () instead of MONO_GC_PRE_INIT ().
2222
2223 2007-12-24  Rodrigo Kumpera  <rkumpera@novell.com>
2224
2225         * verify.c: add prototype for merge_stacks at top
2226
2227         * verify.c (do_switch): added.
2228
2229         * verify.c (merge_stacks): on some cases the stack merging
2230         was not happening properly. Unequal stack sizes at merge
2231         points should be invalid.
2232
2233         * verify.c (mono_method_verify): added more debug info on stack state.
2234         verify switch properly.
2235
2236 2007-12-24  Zoltan Varga  <vargaz@gmail.com>
2237
2238         * method-builder.h: New file, moved the mono_mb_ declarations here from 
2239         marshal.h.
2240
2241         * boehm-gc.c marshal.c: Include method-builder.h.
2242
2243         * marshal.c: Use mono_mb_emit_branch_label () in a few places.
2244
2245         * marshal.c: Remove some code which is now in method-builder.c.
2246
2247 2007-12-23  Zoltan Varga  <vargaz@gmail.com>
2248
2249         * method-builder.c: New file, extraction of the method builder functionality 
2250         from marshal.c.
2251
2252         * marshal.c: Move the mb functions into method-builder.c.
2253
2254         * marshal.h marshal.c: Export some mono_mb_... functions.
2255
2256         * marshal.c: Use mono_mb_get_label () and mono_mb_patch_branch () in all places.
2257
2258         * loader.c (field_from_memberref): Remove the dynamic case, it is handled in
2259         the caller.
2260
2261         * class.c (mono_class_get_full): Check the token type in the dynamic case.
2262
2263         * loader.c (mono_field_from_token): Ditto.      
2264
2265         * loader.c (mono_get_method_from_token): Change the check so it checks memberref
2266         type as well.
2267         
2268         * loader.c (mono_get_method_from_token): Check the token type in the dynamic case.
2269         Fixes #342565.
2270
2271         * class-internals.h: Add new loader error type MONO_EXCEPTION_BAD_IMAGE plus
2272         a helper function for setting it.
2273
2274         * loader.c (mono_loader_error_prepare_exception): Handle MONO_EXCEPTION_BAD_IMAGE.
2275
2276         
2277         * assembly.c: Significally simplify code now that referenced assemblies are 
2278         loaded lazily. Get rid of the 'loading' hashtables. Hopefully fixes #347629.
2279
2280         * threads.h: Don't include  the internal threads-types.h header file. Fixes
2281         #349952.
2282
2283 2007-12-21  Rodrigo Kumpera  <rkumpera@novell.com>
2284
2285         * verify.c: added enum value IL_CODE_FLAG_WAS_TARGET, to represent
2286         instructions that were target of branches or are at protected block boundaries.
2287
2288         * verify.c (in_same_block): handle filter clauses.
2289
2290         * verify.c (is_valid_branch_instruction): added. checks the target of
2291         instructions br or brtrue/false.
2292
2293         * verify.c (is_valid_cmp_branch_instruction): added. checks the target of
2294         binary branch instructions such as beq and bge.
2295
2296         * verify.c (init_stack_with_value): renamed to init_stack_with_value_at_exception_boundary
2297         and made it pin the instruction as been part of the exception block.
2298
2299         * verify.c (do_boolean_branch_op): use is_valid_branch_instruction instead
2300         of in_same_block.
2301
2302         * verify.c (do_branch_op): use is_valid_cmp_branch_instruction instead
2303         of in_same_block.
2304
2305         * verify.c (do_ret): ret from a protected block is unverifiable and
2306         not invalid.
2307
2308         * verify.c (do_static_branch): verify br and br.s instructions.
2309
2310         * verify.c (merge_stacks): add extra param to support detection
2311         of branches in the middle of instructions.
2312         
2313         * verify.c (mono_method_verify): verify branches and exception blocks
2314         that target the middle of instructions. Proper verification of br and br.s.
2315
2316 2007-12-21  Zoltan Varga  <vargaz@gmail.com>
2317
2318         * reflection.c (reflection_methodbuilder_from_ctor_builder): Initialize
2319         skip_visibility field.
2320         (reflection_methodbuilder_from_dynamic_method): Ditto.
2321
2322         * object.c (mono_class_compute_gc_descriptor): Remove more unused icall
2323         registrations. Fixes #348193.
2324
2325         * threads.h: Move the internal mono_thread_get_pending_exception () to
2326         threads-types.h and rename it to mono_thread_get_undeniable_exception ().
2327
2328 2007-12-20  Zoltan Varga  <vargaz@gmail.com>
2329
2330         * object.c (mono_class_compute_gc_descriptor): Remove unused GC_gcj_fast_malloc
2331         icall registration. Fixes #348193.
2332
2333         * marshal.c (mono_marshal_get_runtime_invoke): Put all runtime invoke wrappers
2334         for corlib classes into object. Fixes #349621.
2335
2336 2007-12-20  Gert Driesen  <drieseng@users.sourceforge.net>
2337
2338         * icall.c (property_accessor_nonpublic): new function to determine
2339         whether an accessor allows a property to be considered non-public.
2340         Returns false for private accessor(s) from parent class, and internal
2341         accessor(s) from parent on 2.0 profile (and higher).
2342         (ves_icall_Type_GetPropertiesByName): Use newly introduced function
2343         to determine whether property should be included if NonPublic flag
2344         is set. Fixes bug #349078.
2345
2346 2007-12-20  Rodrigo Kumpera  <rkumpera@novell.com>
2347
2348         * verify.c (init_stack_with_value): added.
2349
2350         * verify.c (mono_method_verify): extracted common
2351         code for exception initialization into init_stack_with_value.
2352
2353         * verify.c (mono_method_verify): initialize the exception
2354         for handler clauses as well.
2355
2356         * verify.c (mono_method_verify): fix the exception clause
2357         ordering rules, it should use handler end offset and not
2358         start offset.
2359
2360 Thu Dec 20 12:27:24 CET 2007 Paolo Molaro <lupus@ximian.com>
2361
2362         * rawbuffer.c: remove useless warning.
2363
2364 Thu Dec 20 12:10:38 CET 2007 Paolo Molaro <lupus@ximian.com>
2365
2366         * threads.h, threads-types.h: move functions to the correct header
2367         (fixes bug#349952).
2368
2369 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
2370
2371         * verify.c (mono_method_verify): proper verification
2372         of exception handling clauses ranges and fallthru in
2373         and out of protected blocks.
2374
2375 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
2376
2377         * verify.c (mono_method_verify): fixed compilation issue.
2378
2379 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
2380
2381         * verify.c (mono_method_verify): a printf slipped in, changed
2382         to use verifier debug macro.
2383
2384 2007-12-18  Rodrigo Kumpera  <rkumpera@novell.com>
2385
2386         * verify.c (is_correct_leave): check for filter clauses.
2387
2388         * verify.c (do_filter): added.
2389
2390         * verify.c (mono_method_verify): property verification of leave.
2391
2392
2393 2007-12-18  Mark Probst  <mark.probst@gmail.com>
2394
2395         * threads.c: Disable calls to _wapi_thread_signal_self() to fix
2396         Win32 build, until we figure out how to do the proper thing on
2397         Win32.
2398
2399 2007-12-17  Zoltan Varga  <vargaz@gmail.com>
2400
2401         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Fix a crash introduced
2402         by the previous patch.
2403         
2404         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Avoid calling
2405         the assembly resolve handler for refonly assemblies.
2406
2407 2007-12-17  Mark Probst  <mark.probst@gmail.com>
2408
2409         * threads.c, thread-types.h, icall.c: New shutdown safeguards.
2410         Make sure only one thread is allowed to commence shutdown, and
2411         don't allow new threads to be started once shutdown is in
2412         progress.
2413
2414 2007-12-14  Rodrigo Kumpera  <rkumpera@novell.com>
2415
2416         * verify.c (is_correct_endfilter): added.
2417
2418         * verify.c (is_unverifiable_endfilter): added.
2419
2420         * verify.c (do_endfilter): added.
2421
2422         * verify.c (mono_method_verify): property verification of endfilter
2423         and fixed a corner case or endfinally.
2424
2425 2007-12-13  Rodrigo Kumpera  <rkumpera@novell.com>
2426
2427         * verify.h: new flags to support fail fast of unverifiable code and
2428         do non-strict verification. Non-strict verification is required to
2429         have MS runtime compatibility. There are a huge amount of unverifiable
2430         code that it accepts as verifiable. The strict mode verifies the code
2431         as the specs says.
2432         Non-strict mode will be required in cases where code needs to be
2433         accepted as verifiable but fails under strict mode.
2434
2435         * pedump.c: added support to fail fast and non-strict verification.
2436
2437         * verify.c: added support for both fail fast and non-strict verification.
2438
2439 2007-12-12  Rodrigo Kumpera  <rkumpera@novell.com>
2440
2441         * verify.c (is_correct_endfinally): added.
2442
2443         * verify.c (mono_method_verify): property verification of endfinally.
2444
2445 2007-12-11  Rodrigo Kumpera  <rkumpera@novell.com>
2446
2447         * verify.c (in_any_block): check for filter clauses.
2448
2449         * verify.c (is_correct_rethrow): added.
2450
2451         * verify.c (mono_method_verify): property verification of rethrow.
2452
2453         * metadata.h: added MONO_OFFSET_IN_FILTER macro.
2454
2455 2007-12-11  Rodrigo Kumpera  <rkumpera@novell.com>
2456
2457         * verify.c (do_throw): added.
2458
2459         * verify.c (mono_method_verify): property verification of throw
2460
2461 2007-12-11  Zoltan Varga  <vargaz@gmail.com>
2462
2463         * assembly.c (mono_assembly_load_reference): Try an assembly resolve for ref-only
2464         assemblies. Fixes #346425.
2465
2466 2007-12-10  Zoltan Varga  <vargaz@gmail.com>
2467
2468         * reflection.c (mono_reflection_get_token): Call mono_image_create_token () for
2469         FieldBuilders.
2470
2471         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Fix a warning.
2472
2473         * class.c (mono_lookup_dynamic_token_class): Add a 'valid token' argument to
2474         prevent asserts when this is called with a token which might not be valid.
2475
2476         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Call
2477         lookup_dynamic_token_class with valid_token == FALSE.
2478
2479         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.       
2480
2481         * icall.c (ves_icall_System_Reflection_Module_ResolveStringToken): Ditto.
2482
2483         * icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
2484         
2485 2007-12-10  Mark Probst  <mark.probst@gmail.com>
2486
2487         * gc.c: Don't delay threadpool thread finalization unless Mono is
2488         shutting down.
2489
2490 Mon Dec 10 11:06:23 CET 2007 Paolo Molaro <lupus@ximian.com>
2491
2492         * threads.c: turn an assert into a non-fatal warning.
2493
2494 2007-12-09  Robert Jordan  <robertj@gmx.net>
2495
2496         * icall.c (GetVirtualMethod): Add missing argument validation.
2497
2498 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
2499
2500         * verify.c (do_cast): added.
2501
2502         * verify.c (mono_method_verify): property verification of castclass and isinst.
2503
2504
2505 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
2506
2507         * verify.c (mono_type_from_opcode): added opcodes for stelem.X.
2508
2509         * verify.c (do_stelem): added.
2510
2511         * verify.c (mono_method_verify): property verification of stelem.X.
2512
2513 2007-12-07  Mark Probst  <mark.probst@gmail.com>
2514
2515         * class.c, class-internals.h: Introduce an environment variable
2516         (MONO_GENERIC_SHARING) through which the extent of generic code
2517         sharing can be controlled (share all classes, share only corlib
2518         classes, or share nothing).
2519
2520         * object.c: Only create runtime generic context for classes for
2521         which sharing is enabled.
2522
2523 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
2524
2525         * verify.c (do_ldelem): refactor it to work with ldelem.any.
2526
2527         * verify.c (mono_method_verify): property verification of ldelem.any.
2528
2529 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
2530
2531         * verify.c (get_indirect_op_mono_type): renamed to mono_type_from_opcode,
2532         added ldelem.X opcodes.
2533
2534         * verify.c (do_ldelema): fixed possible invalid usage of MonoType.
2535
2536         * verify.c: proper verification of ldelem.X 
2537
2538 2007-12-06  Zoltan Varga  <vargaz@gmail.com>
2539
2540         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Allow interface cctors to be called too.
2541
2542 2007-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
2543
2544         * verify.c (mono_method_verify): null literal requires special handling,
2545         the value pushed on stack need to be flagged as so.
2546
2547         * verify.c (do_ldelema): Verify ldelema properly.
2548
2549 2007-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
2550
2551         * verify.c: Verify ldlen properly.
2552
2553 2007-12-05  Zoltan Varga  <vargaz@gmail.com>
2554
2555         * icall.c (ves_icall_MonoField_GetValueInternal): Check that the field belongs
2556         to the target object's type. Fixes #346160.
2557
2558 2007-12-05  Dick Porter  <dick@ximian.com>
2559
2560         * threadpool.c (socket_io_add_poll): Asynchronous connect() on
2561         Solaris needs the same workaround as BSD-derived systems.  Fixes
2562         bug 323524, patch by Burkhard Linke
2563         <burkhard.linke@CeBiTec.Uni-Bielefeld.DE>
2564
2565 2007-12-04  Gert Driesen  <drieseng@users.sourceforge.net>
2566
2567         * process.c: When ProcessStartInfo.ErrorDialog is true, pass window
2568         handle to use when error dialog is shown; otherwise, update mask
2569         to show no error dialog when an error occurs.
2570
2571 2007-12-03  Zoltan Varga  <vargaz@gmail.com>
2572
2573         * icall.c (ves_icall_MonoField_GetRawConstantValue): New icall.
2574
2575         * class.c (mono_class_get_field_default_value): New helper function to initialize
2576         field->def_type and field->data.
2577
2578 2007-11-30  Zoltan Varga  <vargaz@gmail.com>
2579
2580         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Use the delegate trampoline instead of
2581         the general one.
2582
2583         * object.c (mono_runtime_create_delegate_trampoline): New helper function.
2584
2585         * marshal.c: Avoid depending on delegate->method_info being set.
2586
2587         * object.c (mono_delegate_ctor): Avoid initializing delegate->method_info.
2588         
2589         * object.c (mono_delegate_ctor): Set delegate->method.
2590
2591         * object-internals.h (struct _MonoDelegate): Add 'method' field.
2592
2593         * appdomain.c: Bump corlib version.
2594
2595 2007-11-27  Raja R Harinath  <harinath@gmail.com>
2596
2597         * metadata.c (mono_generic_inst_equal_full): Short-circuit
2598         equality check if we're comparing canonicalized MonoGenericInsts.
2599
2600 2007-11-23  Zoltan Varga  <vargaz@gmail.com>
2601
2602         * class.c (generic_array_methods): Call mono_class_setup_methods () before
2603         accessing class->methods.
2604
2605 2007-11-22  Dick Porter  <dick@ximian.com>
2606
2607         * threads.c: Ensure that the synch_cs is set before trying to use
2608         it.
2609
2610 Thu Nov 22 12:34:04 CET 2007 Paolo Molaro <lupus@ximian.com>
2611
2612         * profiler.c: r89126 broke the statistial profiler, unbreak.
2613
2614 2007-11-22  Martin Baulig  <martin@ximian.com>
2615
2616         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 66.
2617
2618         * mono-debug.c
2619         (mono_debug_debugger_version): Bump to 3.
2620         (mono_debug_init): Hook `mono_debugger_class_loaded_methods_func'
2621         -> mono_debugger_class_initialized().
2622
2623         * mono-debug-debugger.c
2624         (mono_debugger_add_type): Renamed into mono_debugger_class_initialized().
2625
2626         * class.c
2627         (mono_debugger_start_class_init_func): Removed.
2628         (mono_debugger_class_loaded_methods_func): Added.
2629         (mono_class_setup_methods): Call it here.
2630
2631 2007-11-22  Martin Baulig  <martin@ximian.com>
2632
2633         * mono-debug.c
2634         (mono_debug_add_delegate_trampoline): New public method.
2635         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_DELEGATE_TRAMPOLINE'.
2636
2637         * mono-debug.h
2638         (MonoSymbolTable): Added `global_data_table'.
2639         (MonoDebuggerTypeKind): Removed.
2640
2641 2007-11-21  Zoltan Varga  <vargaz@gmail.com>
2642
2643         * marshal.c (mono_marshal_get_generic_array_helper): Skip visibility checks for
2644         these methods.
2645
2646         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
2647         
2648 Tue Nov 20 23:10:41 CET 2007 Paolo Molaro <lupus@ximian.com>
2649
2650         * object.c: some fields don't have a valid rva: ignore them (bug #343083).
2651
2652 2007-11-20  Martin Baulig  <martin@ximian.com>
2653
2654         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 65.
2655
2656         * mono-debug-debugger.c
2657         (mono_debugger_insert_method_breakpoint): Moved here from debug-mini.c
2658         (mono_debugger_remove_breakpoint): Likewise.
2659         (mono_debugger_check_breakpoints): Likewise.
2660         (mono_debugger_register_class_init_callback): New public method.
2661         (mono_debugger_remove_class_init_callback): Likewise.
2662         (mono_debugger_add_type): Likewise.
2663
2664         * mono-debug-debugger.h
2665         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_CLASS_INITIALIZED'.
2666
2667 Tue Nov 20 20:54:12 CET 2007 Paolo Molaro <lupus@ximian.com>
2668
2669         * class.c: more interface implementations needed for the
2670         array enumerator (fixes bug #341112).
2671
2672 2007-11-18  Gert Driesen  <drieseng@users.sourceforge.net>
2673
2674         * icall.c: Renamed arguments for ves_icall_System_Enum_ToObject to
2675         fix ParamName of ArgumentNullExceptions.
2676
2677 2007-11-17  Miguel de Icaza  <miguel@novell.com>
2678
2679         * reflection.c (mono_reflection_encode_sighelper): Generate the
2680         modopts and modreqs.   I have a useless test that crashes monodis,
2681         but that shows the code working.
2682
2683 2007-11-17  Zoltan Varga  <vargaz@gmail.com>
2684
2685         * boehm-gc.c (create_allocator): Fix size calculation for the string allocator.
2686         (mono_gc_get_managed_allocator): Enable the string allocator on amd64.
2687
2688 2007-11-15  Dick Porter  <dick@ximian.com>
2689
2690         * threads.c (ves_icall_System_Threading_Thread_Join_internal):
2691         When joining a thread, it's the thread that's calling Join that
2692         gets WaitSleepJoin state not the target.  Fixes the standalone
2693         test case in bug 334740, and hopefully the whole bug too.
2694
2695 2007-11-15  Dick Porter  <dick@ximian.com>
2696
2697         * process.c: Read file version info from the files pointed at by
2698         process modules, not the current process.  Fixes bug 315969.
2699
2700         Use windows typedef names in some places to fix warnings on the
2701         windows build.
2702
2703 2007-11-15  Mark Probst  <mark.probst@gmail.com>
2704
2705         * image.c, metadata-internals.h: Added a generic_class_cache hash
2706         to MonoImage for looking up generic classes when sharing generics.
2707
2708 Thu Nov 15 16:11:30 CET 2007 Paolo Molaro <lupus@ximian.com>
2709
2710         * sgen-gc.c: warning cleanups.
2711
2712 2007-11-15  Zoltan Varga  <vargaz@gmail.com>
2713
2714         * icall.c (ves_icall_Type_GetPropertiesByName): Implement proper hiding of
2715         inherited properties.
2716
2717 2007-11-14  Mark Probst  <mark.probst@gmail.com>
2718
2719         * object.c, class-internals.h: Added more information to the
2720         runtime generic context.
2721
2722 2007-11-13  Zoltan Varga  <vargaz@gmail.com>
2723
2724         * marshal.c (mono_marshal_get_delegate_invoke): Take a delegate as argument
2725         instead of just the target method. Generalize the abstract method handling to
2726         handle any non-static method.
2727
2728         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
2729         mono_marshal_get_delegate_invoke () signature change.
2730
2731 2007-11-13  Mark Probst  <mark.probst@gmail.com>
2732
2733         * class.c, class-internals.h: Made
2734         mono_type_get_basic_type_from_generic () public.  Fixed member
2735         access check for shared generics.
2736
2737         * loader.c: Don't insert field into field cache if it's part of a
2738         non-inflated generic class.
2739
2740         * domain.c, domain-internals.h: The generic sharing context is now
2741         part of the jit info data structure.  Added two accessor
2742         functions.
2743
2744 2007-11-12  Zoltan Varga  <vargaz@gmail.com>
2745
2746         * marshal.c (mono_marshal_get_runtime_invoke): Create a non-shared wrapper for
2747         the array Get/Set/Address methods, since the JIT inlines them.
2748
2749         * metadata-internals.h (MonoImage): Add 'runtime_invoke_direct_cache'.
2750
2751         * image.c (mono_image_close): Free runtime_invoke_direct_cache.
2752         (mono_image_init): Initialize runtime_invoke_direct_cache.      
2753
2754         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
2755         mono_marshal_get_delegate_invoke signature change.
2756
2757         * marshal.c (mono_marshal_get_delegate_invoke): Receive the target_method as
2758         an additional argument. Add support for invoking abstract methods.
2759
2760         * metadata-internals.h (MonoImage): Add 'delegate_abstract_invoke_cache'.
2761
2762         * image.c (mono_image_close): Free delegate_abstract_invoke_cache.      
2763
2764 2007-11-09  Mark Probst  <mark.probst@gmail.com>
2765
2766         * class.c: Do field layout for open generic classes as well.
2767
2768 2007-11-09  Mark Probst  <mark.probst@gmail.com>
2769
2770         * gc.c, gc-internal.h: Don't finalize threadpool threads with
2771         other objects, because the threadpool is still around.  Put them
2772         in a list instead and after finalizing all other objects in the
2773         root domain shut down the thread pool and then finalize the
2774         threads.  Fixes bug #337383.
2775
2776         * threads.c, thread-types.h: New mono_thread_create_internal()
2777         function for marking a thread with the threadpool flag before it
2778         started.  Set synch_cs to NULL after freeing it.
2779
2780         * threadpool.c: Mark threadpool threads before they start.
2781
2782 Thu Nov 8 15:31:21 CET 2007 Paolo Molaro <lupus@ximian.com>
2783
2784         * reflection.h, reflection.c: don't export random functions
2785         and lazy load dbnull and missing objects.
2786
2787 2007-11-07  Jonathan Chambers <joncham@gmail.com>
2788
2789         * class.c: Initialize COM types if COM interfaces
2790         are present (not just COM classes).
2791         
2792         Code is contributed under MIT/X11 license.
2793
2794 2007-11-07  Massimiliano Mantione  <massi@ximian.com>
2795         * reflection.c:
2796         create_dynamic_mono_image: hook module profiler events (dynamic case).
2797         mono_image_basic_init: hook assembly profiler events (dynamic case).
2798
2799 2007-11-07  Massimiliano Mantione  <massi@ximian.com>
2800         * profiler.c:
2801         simple_appdomain_unload: completely terminate the profiler
2802         instead of only processing the statistical samples.
2803         simple_shutdown: make sure this is really called exactly once,
2804         even in multithreaded applications, and always listen to
2805         appdomain events.
2806         * gc.c (mono_domain_finalize): don't call mono_profiler_appdomain_event
2807         here, the "[un]load" functions will do it.
2808         Fixes bugs #333791 and #325261.
2809
2810 2007-11-07  Geoff Norton  <gnorton@novell.com>
2811
2812         * socket-io.c:  Use the configure defines for HAVE_SOCKADDR_IN(6)_SIN_LEN
2813         rather than depend on __APPLE__.
2814
2815 2007-11-07  Mark Probst  <mark.probst@gmail.com>
2816
2817         * icall.c: Safety checks in InitializeArray.  Fixes bug #324535.
2818
2819 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com> 
2820
2821         * object.c: Fix mono_string_to_utf8 to handle NULL values inside the
2822         UTF16 MonoString. Fix the crash from bug #335488
2823
2824 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com>
2825
2826         * marshal.c: Correct (for non-Win32 OS) length != size in 
2827         mono_string_from_bstr. Fix #339530.
2828
2829 2007-11-06  Geoff Norton  <gnorton@novell.com>
2830
2831         * socket-io.c: Apple requires sin(6)_len to be set for getnameinfo
2832         to succeed
2833
2834 2007-11-05  Kornél Pál  <kornelpal@gmail.com>
2835
2836         * process.c: Added run-time GetProcessId API detection for Windows.
2837
2838 2007-11-04  Miguel de Icaza  <miguel@novell.com>
2839
2840         * reflection.c  (mono_param_get_objects): If a parameter has the
2841         attribute [System.Runtime.InteropServices.Optional] we should
2842         set the DefaultValue of the ParameterInfo to be
2843         System.Reflection.Missing instead of DBNull.
2844
2845         See bug #339013.
2846
2847         (mono_get_reflection_missing_object): New method,
2848         returns the System.Reflection.Missing.Value singleton instance.
2849
2850 2007-11-03  Atsushi Enomoto  <atsushi@ximian.com>
2851
2852         * culture-info-table.h : regenerated.
2853
2854 2007-11-02  Jonathan Chambers <joncham@gmail.com>
2855
2856         * icall.c: Use GetEnvironmentStrings on windows
2857         so we are using the same environment block as 
2858         GetEnvironmentVariable/SetEnvironmentVariable. Fixes
2859         #333740.
2860         
2861         Code is contributed under MIT/X11 license.
2862
2863 2007-10-31  Martin Baulig  <martin@ximian.com>
2864
2865         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 64.
2866
2867         * mono-debug-debugger.h
2868         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_TRAMPOLINE'.
2869
2870 2007-10-30  Zoltan Varga  <vargaz@gmail.com>
2871
2872         * reflection.c (mono_custom_attrs_from_class): Add support for dynamic inflated 
2873         classes.
2874
2875 2007-10-30  Atsushi Enomoto  <atsushi@ximian.com>
2876
2877         * culture-info-table.h : regenerated.
2878
2879 2007-10-30  Robert Jordan  <robertj@gmx.net>
2880
2881         * icall-def.h, icall.c:
2882         Add ves_icall_Remoting_RemotingServices_GetVirtualMethod ().
2883
2884         Code is contributed under MIT/X11 license.
2885
2886 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
2887
2888         * class.c (mono_class_setup_vtable): Find the inflated methods in the
2889         inflated class instead of inflating them again.
2890         
2891         * class.c (mono_class_setup_vtable): Inflate the override methods in the 
2892         dynamic case.
2893
2894         * class.c (mono_generic_class_get_class): Set klass->property.count as well.
2895         Call setup_supertypes () after klass->parent is set.
2896         (mono_class_setup_properties): Enable this to work on dynamic generic classes.
2897
2898         * reflection.c (mono_type_get_object): Only return a MonoGenericClass object
2899         for inflated instances of not yet created dynamic generic classes.
2900         (ctorbuilder_to_mono_method): Handle the case when this is called multiple
2901         times from inflated_method.
2902         (methodbuilder_to_mono_method): Ditto.
2903
2904 Mon Oct 29 21:02:53 CET 2007 Paolo Molaro <lupus@ximian.com>
2905
2906         * gc.c: code cleanup and removed old untested option of not creating the
2907         finalizer thread.
2908
2909 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
2910
2911         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Avoid
2912         creating a jump trampoline for dynamic methods.
2913
2914 2007-10-29 Rodrigo Kumpera <rkumpera@novell.com>
2915
2916         * reflection.c (mono_image_create_token): Correctly encode methods and constructors of
2917         generic TypeBuilders when called from another method of the same type (bug #335131).
2918
2919
2920 2007-10-27  Zoltan Varga  <vargaz@gmail.com>
2921
2922         * reflection.c (methodbuilder_to_mono_method): Revert the last change as it
2923         doesn't seem to work perfectly.
2924         
2925         * reflection.c (ctorbuilder_to_mono_method): Handle the case when this is
2926         called multiple times.
2927         (methodbuilder_to_mono_method): Ditto.
2928         (resolve_object): Inflate FieldBuilder's.
2929
2930 Fri Oct 26 19:38:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
2931
2932         * string-icalls.c, string-icalls.h, appdomain.c: patch from
2933         Tyler Larson <mono-devel@tlarson.com> to fix the handling of
2934         RemoveEmptyEntries in the string.Split implementation (bug #322375).
2935
2936 2007-10-26  Dick Porter  <dick@ximian.com>
2937
2938         * appdomain.c (MONO_CORLIB_VERSION): Bump version because of
2939         Thread initialisation changes
2940
2941 2007-10-26 Rodrigo Kumpera <rkumpera@novell.com>
2942
2943         * verify.c: fix compatibility check between arrays and System.Array
2944
2945 2007-10-26  Zoltan Varga  <vargaz@gmail.com>
2946
2947         * reflection.c (mono_reflection_get_custom_attrs_info): Handle MonoGenericClass
2948         too. Fixes #336999.
2949
2950 2007-10-25  Zoltan Varga  <vargaz@gmail.com>
2951
2952         * object.c (mono_value_box): Use typed allocation here.
2953
2954 2007-10-23  Zoltan Varga  <vargaz@gmail.com>
2955
2956         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Create a jump
2957         trampoline instead of compiling the method right away.
2958
2959         * class-internals.h object.c: Add a JIT callback to create a jump trampoline.
2960
2961 2007-10-21  Zoltan Varga  <vargaz@gmail.com>
2962
2963         * class.c (mono_generic_class_get_class): Avoid setting klass->size_inited and
2964         related fields for dynamic classes. Fixes #334493.
2965
2966 2007-10-20  Zoltan Varga  <vargaz@gmail.com>
2967
2968         * class.c (mono_generic_class_get_class): Set klass->field.count as well.
2969         
2970         * class.c (mono_class_layout_fields): Use 1 instead of TRUE for consistency.
2971
2972         * class.c (mono_class_layout_fields): Set size_inited for generic classes as well.
2973         (mono_class_setup_vtable): Obtain overrides for dynamic generic classes correctly.
2974
2975         * class.c (mono_class_setup_methods): Handle dynamic inflated classes correctly.
2976
2977         * reflection.c (create_generic_typespec): Initialize klass->generic_container
2978         if needed.
2979         (reflection_methodbuilder_to_mono_method): Set container->is_method to TRUE.
2980
2981 2007-10-18  Jonathan Chambers <joncham@gmail.com>
2982
2983         * marshal.c: Use correct key when removing item
2984         from ccw_hash.
2985         
2986         Code is contributed under MIT/X11 license.
2987
2988 2007-10-17  William Holmes  <billholmes54@gmail.com>
2989
2990         *marshal.c: Adding a case to marshal booleans to U1
2991
2992         Code is contributed under MIT/X11 license.
2993
2994 2007-10-18  Zoltan Varga  <vargaz@gmail.com>
2995
2996         * class.c (mono_class_from_name): Search the modules compromising dynamic
2997         assemblies. Fixes #331601.
2998
2999 2007-10-16  Zoltan Varga  <vargaz@gmail.com>
3000
3001         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Throw an
3002         exception if the type name contains an assembly component. Fixes #334203.
3003
3004         * reflection.c (mono_reflection_get_type_with_rootimage): Search all the
3005         modules inside dynamic assemblies. Fixes #334200.
3006         
3007         * reflection.c: Set image->public_key and image->public_key_length;
3008
3009         * metadata-internals.h (MonoDynamicImage): Add public_key and public_key_len
3010         fields.
3011
3012         * image.c (mono_image_get_public_key): Handle dynamic assemblies. Fixes #334173.        
3013         
3014 2007-10-16  Mark Probst  <mark.probst@gmail.com>
3015
3016         * metadata.c: Implemented correct comparing of generic classes.
3017         An inflated generic class can be equal to a non-inflated one if it
3018         is inflated with generic type variables as type arguments.  Fixes
3019         bug #333798.
3020
3021 2007-10-15  Dick Porter  <dick@ximian.com>
3022
3023         * monitor.c (mono_monitor_try_enter_internal): Set thread state to
3024         WaitSleepJoin while it is waiting to acquire a lock.  Fixes bug
3025         81646.
3026
3027         * threads.c: Turn the thread synch_lock into a CRITICAL_SECTION,
3028         instead of a monitor lock.  This means that monitor_try_enter and
3029         co can set the thread state safely.
3030         (ves_icall_System_Threading_Thread_Interrupt_internal): Always set
3031         thread_interrupt_requested, so interrupt actually works.
3032
3033         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal,
3034         ves_icall_System_Net_Sockets_Socket_Select_internal): Use thread
3035         state accessor function
3036
3037 2007-10-15  Martin Baulig  <martin@ximian.com>
3038
3039         * mono-debug.h
3040         (MONO_DEBUGGER_VERSION): Bump to 63 to make it impossible to use
3041         the debugger with the current runtime.
3042
3043 Mon Oct 15 10:20:56 CEST 2007 Paolo Molaro <lupus@ximian.com>
3044
3045         * object.c, object-internals.h: added the ability to set a single
3046         trampoline for all the slots in a vtable.
3047
3048 Fri Oct 12 17:50:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
3049
3050         * marshal.c: deal with a possible race condition during multicast
3051         delegate invocation.
3052
3053 Fri Oct 12 13:31:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
3054
3055         * class.c: ensure value type methods don't have the synchronized
3056         flag set.
3057
3058 Fri Oct 12 08:10:59 CEST 2007 Paolo Molaro <lupus@ximian.com>
3059
3060         * string-icalls.c, string-icalls.h: reverted unapproved patch that
3061         breaks the build.
3062
3063 2007-10-11  Joel Reed  <joelwreed@comcast.com>
3064
3065         * string-icalls.c, string-icalls.h: modify System_String_InternalSplit
3066         to take an options parameter so that empty entries can be removed during
3067         the split procedure. Patch from: Tyler Larson <mono-devel@tlarson.com>
3068
3069 Thu Oct 11 20:16:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
3070
3071         * marshal.c: make sure we don't store the signature from a dynamic
3072         method into the runtime invoke cache (bug #327189).
3073
3074 Thu Oct 11 18:22:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
3075
3076         * marshal.c: make sure the wrapper methods are properly initialized.
3077
3078 2007-10-11  Mark Probst  <mark.probst@gmail.com>
3079
3080         * metadata.c, metadata-internals.h: Generalized
3081         mono_type_stack_size() to mono_type_stack_size_internal() which
3082         takes an additional argument specifying whether it allows open
3083         types.
3084
3085 2007-10-10  Rodrigo Kumpera  <rkumpera@novell.com>
3086
3087         * verify.c (do_invoke_method): handle typedbyref params
3088         correctly and check for unverifiable return values.
3089
3090         * verify.c (do_newobj): fix a warning.
3091
3092 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
3093
3094         * verify.c: don't tread typedbyref as allways unverifable,
3095         so uses, like (ld/st)loc.0 are valid. verify for the cases
3096         that it matters, like boxing related operations.
3097
3098 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
3099
3100         * verify.c: add verification of the newobj opcode. verification
3101         of delegate instantation still missing due ldftn and virldftn not
3102         pushing the function type on stack
3103
3104 2007-10-08  Mark Probst  <mark.probst@gmail.com>
3105
3106         * class-internals.h: Runtime generic context data structure
3107         definition.
3108
3109         * object.c: Initialization of runtime generic context at runtime
3110         vtable creation time.
3111
3112 2007-10-08  Massimiliano Mantione  <massi@ximian.com>
3113         * class.c (mono_class_create_from_typedef,
3114         mono_class_from_generic_parameter, mono_ptr_class_get,
3115         mono_fnptr_class_get, mono_bounded_array_class_get)
3116         * domain.c (mono_domain_create, mono_domain_free)
3117         * assembly.c (mono_assembly_load_from_full, mono_assembly_close)
3118         * image.c (do_mono_image_load, mono_image_close):
3119         Hooked up load-unload profiler events.
3120
3121 Mon Oct 8 11:38:04 CEST 2007 Paolo Molaro <lupus@ximian.com>
3122
3123         * domain.c: track statistics about the actual amount of native code
3124         allocated.
3125
3126 Sat Oct 6 10:01:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
3127
3128         * class.c: the valuetype enumerators don't have the additional
3129         supertypes interfaces.
3130
3131 Fri Oct 5 20:33:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
3132
3133         * class.c: need more interfaces setup for the IEnumerator<T>
3134         object created for arrays (tests/ienumerator-interfaces.2.cs).
3135
3136 2007-10-05  Zoltan Varga  <vargaz@gmail.com>
3137
3138         * class.c (mono_ldtoken): Handle methodspec tokens as well. Fixes #331097.
3139
3140 2007-10-05  Alp Toker  <alp@atoker.com>
3141
3142         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
3143         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
3144         #315863.
3145
3146 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
3147
3148         * verify.c (verify_type_compatibility_full): verification of
3149         compatibility improved, validates correctly non-strict checks between
3150         native int and I4 types different than (unsigned)int32.
3151
3152         * verify.c (do_store_indirect): added, do all verification of
3153         ldind.X opcodes. 
3154
3155         * verify.c (get_load_indirect_mono_type): renamed to
3156         get_indirect_op_mono_type, as it now returns the MonoType for 
3157         ldind.X and stind.X opcodes.
3158
3159 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
3160
3161         * reflection.c: Fix the encoding of generic type definition for
3162         TypeBuilders.
3163
3164         * reflection.c (mono_image_typedef_or_ref_full: do the same thing as
3165         mono_image_typedef_or_ref but allows to specify if typespec lookups should
3166         be made. Typespec check is done prior to typeref cache lookup.
3167
3168         * reflection.c (mono_image_typedef_or_ref): now just delegate to
3169         mono_image_typedef_or_ref_full.
3170
3171         * reflection.c (encode_generic_class): encode the generic class
3172         directly instead of calling encode_type.
3173
3174         * reflection.c (encode_type): encode the generic type definition
3175         MonoClass as a generic instantiation.
3176
3177         * reflection.c (create_typespec): cache typespec tokens in
3178         the assembly->typespec cache. Don't create typespec for a generic
3179         instance MonoClass. Create typespec for the generic type defintion.
3180
3181         * reflection.c (create_generic_typespec): encode the generic
3182         class directly instead of calling encode_type.
3183
3184         * reflection.c (mono_image_create_token): encode the generic
3185         type definition not using a typespec for MonoType instances.
3186
3187
3188 2007-10-04  Raja R Harinath  <rharinath@novell.com>
3189
3190         Fix #328812
3191         * class.c (mono_image_init_name_cache): Don't return nested
3192         'protected internal' classes.
3193         (mono_class_from_name_case): Likewise.
3194
3195 2007-10-04  Atsushi Enomoto  <atsushi@ximian.com>
3196
3197         * icall-def.h, icall.c : get_bundled_machine_config() is now the
3198           common function used by both DefaultConfig in System.dll and
3199           InternalConfigurationHost in System.Configuration.dll.
3200
3201 Wed Oct 3 17:26:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
3202
3203         * class.c: automatically add to vectors only a few essential explicit
3204         generic interfaces. The rest of the interfaces that arrays should
3205         provide are currently implicitly added (but still not lazily, see the
3206         design in the discussion of bug#325495 for the details of what is
3207         needed for that). Additionally, implicit interfaces are assigned the
3208         same vtable slot as the explicit interfaces (as they are compatible):
3209         this enables huge memory savings since we don't need to instantiate
3210         as many memthods and as large vtables anymore. Also, Since
3211         GetEnumerator<T> returns an instance of a type that is required to
3212         support a similarly large set of interfaces as arrays, we add
3213         implicit interfaces and interface offset sharing support to those
3214         types, too. This change adds all the required interfaces so that
3215         the anonarray.cs test case in the bug report works (we don't add
3216         all the interfaces to arrays of arrays 3-level deep and more because
3217         of the memory requirements explained in the bug and since they are much
3218         less common: the lazy-loading support will enabled them to work, too).
3219
3220 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
3221
3222         * verify.c (merge_stacks): major clean up, all type compatibility
3223         checks are done by verify_type_compatibility. This fix my earlier lack
3224         of understanding of the CLR type system and merge_stacks no longer looks
3225         scary.
3226
3227         * verify.c: fixed some bad spelling.
3228
3229 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
3230
3231         * verify.c (mono_type_from_stack_slot): added. returns the MonoType for
3232         a given stack slock.
3233         
3234         * verify.c: killed verify_type_compat in favor of verify_type_compatibility and
3235         verify_type_compatibility_full. This removed a near indentical function and fixed
3236         handling of Int32 and IntPtr across all opcodes.
3237
3238 Tue Oct 2 15:24:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
3239
3240         * class.c: only vectors have the additional generic interfaces.
3241
3242 2007-10-01  Jonathan Chambers <joncham@gmail.com>
3243
3244         * mono-config.c: Use g_strcasecmp instead of
3245         strcasecmp like everywhere else to fix
3246         compilation with MSVC.
3247         
3248         Code is contributed under MIT/X11 license.
3249
3250 Mon Oct 1 14:39:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
3251
3252         * object.c, object-internals.h: refactored the IMT code to enable
3253         building a single slot at a time and lazily creating the IMT trampolines
3254         and thunks.
3255
3256 2007-09-29  Zoltan Varga  <vargaz@gmail.com>
3257
3258         * loader.c (inflate_generic_signature): Allocate inflated signatures from the heap.
3259
3260         * metadata.c (mono_metadata_free_inflated_signature): Free the signature itself too.
3261         Fixes #328501.
3262         
3263 2007-09-29  Raja R Harinath  <harinath@gmail.com>
3264
3265         * loader.c (method_from_methodspec): Rearrange to avoid
3266         un-necessary exposition.  Don't assert out if the method's
3267         declaring type is a generic type definition.
3268
3269 2007-09-28  Martin Baulig  <martin@ximian.com>
3270
3271         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 61.
3272
3273 Fri Sep 28 20:15:47 CEST 2007 Paolo Molaro <lupus@ximian.com>
3274
3275         * class-internals.h: optimize field layout of MonoClass to
3276         requires less cachelines at runtime and save a few bytes on 64 bit
3277         systems.
3278
3279 2007-09-28  Jb Evain  <jbevain@novell.com>
3280
3281         * reflection.c: when encoding type names in custom attributes,
3282         if the type is a closed generic type, its generic arguments
3283         have to be serialized as AssemblyQualifiedName, so that when
3284         they are deserialized, it's possible to re-create them properly.
3285         Fixes #329450.
3286
3287
3288 Fri Sep 28 19:19:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
3289
3290         * object.c, class-internals.h: added delegate-creation counter.
3291
3292 Fri Sep 28 18:07:53 CEST 2007 Paolo Molaro <lupus@ximian.com>
3293
3294         * class.c: cleanup of the code that synthetizes interfaces for
3295         arrays in 2.0: saves quit a bit of corlib mempool memory.
3296         Code to fix bug #325495 ifdeffed out for now until the issues
3297         with memory usage and O(n^2) behaviour are fixed.
3298
3299 Fri Sep 28 17:19:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
3300
3301         * marshal.c: when possible, do not duplicate the name of the methods
3302         in the method builder and in the generated MonoMethod.
3303
3304 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
3305         * verify.c: added support for type checking ldind_* opcodes.
3306
3307 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
3308
3309         * class-internals.h (struct _MonoGenericClass): new field is_tb_open
3310         which is used to distinguish the fully open instantiation of a TypeBuilder
3311         with the rest. This temporary hack is required to restore the property that
3312         the fully open instantiation is the same type of the generic type definition.
3313
3314         * class-internals.h (mono_generic_class_is_generic_type_definition):
3315         new function as part of the internal API.
3316
3317         * class.c (inflate_generic_type): return NULL when the generic inst is
3318         fully open. The fully open generic type is now the same as the generic type
3319         definition for non TypeBuilder types.
3320
3321         * class.c (mono_generic_class_get_class): removed assert since it is
3322         no longer valid, gklass->cached_class can point to the generic type definition.
3323
3324         * class.c (mono_generic_class_is_generic_type_definition): new.
3325
3326         * metadata.c (mono_generic_class_hash): added is_tb_open field
3327         to the hash calculation.
3328
3329         * metadata.c (free_generic_class): if the generic class is associated
3330         with the generic type definition, its field will come from the mempool and
3331         must not be freed.
3332
3333         * metadata.c (mono_metadata_is_type_builder_generic_type_definition):
3334         new, this function identifies the corner case of a TypeBuilder fully open
3335         instantiation.
3336
3337         * metadata.c (mono_metadata_lookup_generic_class): use is_tb_open
3338         for lookup. Set gclass->cached_class to be the container class in case of
3339         the fully open instantiation of non TypeBuilder types.
3340
3341         * metadata.c (_mono_metadata_generic_class_equal): use is_tb_open
3342         to compare generic classes.
3343
3344         * reflection.c (method_encode_methodspec): remove assert that
3345         no longer is valid.
3346
3347         * reflection.c (mono_reflection_generic_class_initialize): add
3348         an aditional assert to ensure the proper type is used.
3349
3350 2007-09-26  Rodrigo Kumpera  <rkumpera@novell.com>
3351
3352         * verify.c: disabled all debug spew by default, define MONO_VERIFIER_DEBUG
3353         to enjoy it.
3354
3355 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
3356
3357         * verify.c (push_arg): Fixed support for ldarga
3358         * verify.c (set_stack_value): Removed superfluous parameter, fixed the
3359         MonoType used as first arg in case of instance calls.
3360
3361 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
3362
3363         * verify.c: Support for verifying VAR and MVAR types, 
3364
3365 2007-09-25  Zoltan Varga  <vargaz@gmail.com>
3366
3367         * icall.c (ves_icall_get_property_info): Set the reflected type of the
3368         accessors correctly.
3369
3370 Tue Sep 25 14:56:03 CEST 2007 Paolo Molaro <lupus@ximian.com>
3371
3372         * threads.c: support OSX and other systems in
3373         mono_thread_get_stack_bounds (bug #328026).
3374
3375 2007-09-25  Martin Baulig  <martin@ximian.com>
3376
3377         * mono-debug.h
3378         (MonoDebugVarInfo): Replace `MonoClass *klass' with `MonoType *type'.
3379
3380 2007-09-24  Martin Baulig  <martin@ximian.com>
3381
3382         * mono-debug.h
3383         (MonoDebugClassEntry): Moved the definition of this struct into
3384         mono-debug.c to make it private.
3385
3386         * mono-debug.c
3387         (MonoDebugClassEntry): Removed `symfile_id'; since we now use one
3388         type table per symbol file, we don't need to store the symfile id
3389         any longer.
3390
3391 2007-09-24  Martin Baulig  <martin@ximian.com>
3392
3393         Create one type table per symbol file, since a `MonoClass *' gets
3394         invalid when its image is unloaded.
3395
3396         * mono-debug.h (MonoSymbolTable): Removed `type_table'.
3397         (MonoDebugHandle): Added `type_table'.
3398
3399 Mon Sep 24 17:25:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
3400
3401         * mempool.c, mempool.h: added mono_mempool_new_size () API
3402         to be able to specify a smaller initial size for the pool.
3403         Adjusted the code to slowly increase pool size before using
3404         the previous default size.
3405         * image.c: use a small initial size for image mempools.
3406
3407 2007-09-23  Zoltan Varga  <vargaz@gmail.com>
3408
3409         * marshal.c (emit_marshal_array): Generate valid IL for byref array case.
3410         Fixes ##320990.
3411
3412         * icall.c (ves_icall_System_Reflection_Assembly_get_ManifestModuleInternal): 
3413         Rename this to ves_icall_System_Reflection_Assembly_GetManifestModuleInternal.
3414
3415 2007-09-22  Zoltan Varga  <vargaz@gmail.com>
3416
3417         * metadata.c (mono_type_create_from_typespec): Remove an invalid
3418         free. Fixes #327438.
3419
3420 2007-09-21  Raja R Harinath  <harinath@gmail.com>
3421
3422         * metadata.c (type_in_image) <MONO_TYPE_SZARRAY>: Handle arrays of
3423         generic instantiations, etc.
3424         <MONO_TYPE_ARRAY>: Likewise.
3425
3426 2007-09-21  Martin Baulig  <martin@ximian.com>
3427
3428         * mono-debug.h (MonoSymbolFilePriv, MonoDebugHandlePriv): Removed;
3429         these structs were never defined.
3430         (MonoDebugHandle): Removed the `_priv' field, it was never used.
3431
3432 2007-09-21  Martin Baulig  <martin@ximian.com>
3433
3434         * mono-debug.h (MonoDebugVarInfo): Add `MonoClass *klass'.
3435
3436 Fri Sep 21 14:39:45 CEST 2007 Paolo Molaro <lupus@ximian.com>
3437
3438         * image.c: removed the guid hash tables: we can get the same info
3439         without the additional memory usage hit (partially fixes also bug #327052).
3440
3441 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
3442
3443         * profiler.h, profiler-private.h, profiler.c: add a new profiler
3444         event to handle unloading methods. After the event is called, the
3445         corresponding MonoMethod* must be considered invalid.
3446         * loader.c (mono_free_method): call the new mono_profiler_method_free
3447         event.
3448
3449 2007-09-20  Mark Probst  <mark.probst@gmail.com>
3450
3451         * domain-internals.h: New flag in MonoJitInfo which marks shared
3452         generic methods.  New hash table (shared_generics_hash) in
3453         MonoDomain to keep track of shared generic methods.  Prototypes
3454         for functions to register and lookup shared generic methods.
3455
3456         * domain.c: Support for registering and looking up shared generic
3457         methods via a hash table (shared_generics_hash) in MonoDomain.
3458
3459         * class-internals.h: New exception to signal failure of shared
3460         compilation of a generic method.  New counters for generics
3461         sharing in MonoStats.
3462
3463 Thu Sep 20 16:59:36 CEST 2007 Paolo Molaro <lupus@ximian.com>
3464
3465         * image.c, metadata-internals.h: don't keep a file descriptor open
3466         for loaded assemblies (bug#325988).
3467
3468 2007-09-19  Raja R Harinath  <rharinath@novell.com>
3469
3470         * metadata.c (signature_in_image): New.  Carve out of type_in_image.
3471         (ginst_in_image, gclass_in_image): Simplify.  Change signature to
3472         use the corresponding datatypes.
3473         (type_in_image): Update to changes.
3474         (CleanForImageUserData): Simplify.
3475         (steal_gclass_in_image): Carved out of old 'gclass_in_image'.
3476         Avoid quadratic behaviour in handling the "stolen" list by
3477         separating the filter predicate out, and by prepending the stolen
3478         items rather than appending them.
3479         (steal_ginst_in_image): Likewise.
3480         (mono_metadata_clean_for_image): Update to changes.
3481
3482 2007-09-19  Martin Baulig  <martin@ximian.com>
3483
3484         * domain.c (mono_cleanup): Call mono_debug_cleanup() here.
3485
3486 2007-09-19  Martin Baulig  <martin@ximian.com>
3487
3488         * mono-debug.c (mono_debug_cleanup): Don't call
3489         mono_debugger_cleanup(); this is now called earlier from mini_cleanup().
3490
3491 2007-09-19  Raja R Harinath  <harinath@gmail.com>
3492
3493         Fix crash on 'make run-test' in mcs/errors
3494         * metadata.c (type_in_image): New.  Carve out of ginst_in_image.
3495         Avoid more potential allocations in mono_class_from_mono_type.
3496         (ginst_in_image): Update to changes.
3497         (gclass_in_image): Rearrange slightly.
3498
3499 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
3500
3501         * class.c (mono_class_init): Move the code that sets up class->methods to 
3502         mono_class_setup_methods () for inflated generic classes too. Ditto for properties.
3503
3504         * metadata.c (mono_metadata_get_inflated_signature): New function to return a
3505         canonical instance of an inflated generic signature.
3506         (mono_type_create_from_typespec): Remove an invalid free.
3507
3508         * loader.c (mono_method_get_signature_full): Use mono_metadata_get_inflated_signature.  
3509
3510 2007-09-18  Marek Habersack  <mhabersack@novell.com>
3511
3512         * domain-internals.h: added a declaration of the
3513         mono_assembly_load_full_nosearch internal function.
3514
3515         * assembly.c (mono_assembly_load_with_partial_name): use
3516         mono_try_assembly_resolve return value properly.
3517         (mono_assembly_load_full_nosearch): copied the function body from
3518         mono_assembly_load_full, without the code to invoke assembly
3519         search hooks.
3520         (mono_assembly_load_full): calls the above new function and if the
3521         assembly is not resolved, invokes the search hooks.
3522
3523         * appdomain.c (mono_runtime_init): restore the global postload
3524         assembly search handlers.
3525
3526 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
3527
3528         * class.c (mono_class_init): Make sure class->methods and class->properties
3529         are never NULL in the generics case.
3530
3531         * metadata.c (free_generic_class): Enable this again, skip the dynamic case.
3532
3533 2007-09-17  Zoltan Varga  <vargaz@gmail.com>
3534
3535         * metadata.c (free_generic_class): Disable some code to fix the build.
3536
3537         * domain.c (mono_cleanup): Fix a crash introduced by a previous patch.
3538
3539         * marshal.c (mono_marshal_get_xappdomain_dispatch): Allocate a piece of data
3540         from the image mempool.
3541
3542         * metadata.c (free_generic_class): Free more data from the inflated class.
3543
3544         * class.c (mono_class_from_generic_parameter): Allocate memory from the mempool.
3545
3546         * metadata.c (mono_metadata_parse_generic_param): Allocate memory from the image
3547         mempool.
3548         (mono_type_create_from_typespec): Ditto.
3549
3550         * domain.c (get_runtimes_from_exe): Add an out parameter to return the opened
3551         MonoImage to the caller.
3552         (mono_init_internal): Save the opened image in a global variable.
3553         (mono_cleanup): Close the image opened in get_runtimes_from_exe.
3554
3555         * reflection.c (resolve_object): Fix a leak.
3556
3557         * metadata.c: Fix the freeing of data in the generics caches.
3558         
3559         * metadata.c (free_generic_inst): Comment this out to fix the build.
3560         (free_generic_class): Ditto.
3561
3562         * metadata.c: Free cached generic methods, instantinations and classes when
3563         they are removed from the caches.
3564         (mono_metadata_free_type): Free the type itself.
3565
3566         * class.c: Free the result of mono_class_inflate_generic_type () in a few
3567         places.
3568
3569 Mon Sep 17 16:14:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
3570
3571         * boehm-gc.c: restrict managed allocs to __thread supporting
3572         architectures.
3573
3574 2007-09-16  Zoltan Varga  <vargaz@gmail.com>
3575
3576         * class.c (mono_class_inflate_generic_type): Add a comment describing memory ownership.
3577         (mono_generic_class_get_class): Fix a leak.
3578
3579         * metadata.c (do_mono_metadata_parse_type): Remove an unneccesary call to
3580         mono_metadata_free_type ().
3581         (mono_metadata_inflate_generic_inst): Fix a leak.
3582
3583 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
3584
3585         * mono-debug.c (free_header_data): Fix a leak missed earlier.
3586
3587         * metadata.c (mono_metadata_parse_array_full): Allocate memory from the image
3588         mempool.
3589
3590         * mono-debug.c (mono_debug_close_image): Fix call to 
3591         g_hash_table_remove ().
3592
3593 Fri Sep 14 19:36:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
3594
3595         * icall-def.h: redirect all the string ctor to the managed
3596         CreateString () methods.
3597         * string-icalls.c, string-icalls.h: removed dead code for string
3598         ctors and icalls.
3599
3600 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
3601
3602         * mono-debug.c: Fix memory leaks.
3603
3604 2007-09-14  Jonathan Chambers <joncham@gmail.com>
3605
3606         * threads-types.h: Implement mono_hazard_pointer_set and 
3607         mono_hazard_pointer_clear macros using do/while(0) to fix
3608         compilation with MSVC.
3609         
3610         Code is contributed under MIT/X11 license.
3611
3612 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
3613
3614         * gc.c (ves_icall_System_GCHandle_GetAddrOfPinnedObject): Use a return value of
3615         -2 to communicate to managed code that the handle is not pinned. Fixes #82848.
3616
3617 Fri Sep 14 14:04:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
3618
3619         * icall-def.h, string-icalls.c: get rid of old, no longer used, string
3620         icalls.
3621
3622 Fri Sep 14 11:41:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
3623
3624         * boehm-gc.c, gc-internal.h, object.c: allow strings to be
3625         managed-code allocated as well.
3626
3627 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
3628
3629         * class.c (mono_class_is_assignable_from): Add support for generic variance.
3630
3631 Thu Sep 13 11:55:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
3632
3633         * boehm-gc.c: fixed the build after the AOT changes.
3634
3635 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
3636
3637         * wrapper-types.h: Add an ALLOC wrapper type.
3638
3639         * gc-internals.h boehm-gc.c null-gc.c sgen-gc.c: Add functions needed by AOT to
3640         reference managed allocator methods.
3641
3642 2007-09-12  Marek Safar  <marek.safar@gmail.com>
3643
3644         * icall.c (ves_icall_MonoType_GetGenericArguments): Create an instance
3645         of Type array and not MonoType, a fix suggested by Hari.
3646         
3647 2007-09-12  Jonathan Chambers <joncham@gmail.com>
3648
3649         * domain-internals.h, domain.c : Remove delegate_invoke_impl_with_target_hash
3650         and delegate_invoke_impl_no_target_hash from _MonoDomain struct.
3651         
3652         Code is contributed under MIT/X11 license.
3653
3654 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
3655
3656         * domain.c, object.c, mono-config.c, object-internals.h: Fixed  #82416.
3657
3658 2007-09-12  Marek Habersack  <mhabersack@novell.com>
3659
3660         * image.c (do_mono_image_open): if assembly file fails to open and
3661         MONO_IOMAP is in effect, try to find the path in a
3662         case-insensitive way.
3663
3664         * appdomain.c (mono_runtime_init): do not install postload hooks -
3665         tests show that MS.NET doesn't use anything of that sort to
3666         trigger the AppDomain.AssemblyResolve event.
3667         (mono_try_assembly_resolve): renamed from try_assembly_resolve and
3668         made non-static.
3669         (mono_runtime_init): init portability helpers here.
3670
3671         * assembly.c (mono_assembly_load_with_partial_name): if other   
3672         attempts fail, trigger the AppDomain.AssemblyResolve event handler
3673         to resolve the assembly.
3674
3675         * domain-internals.h: added mono_try_assembly_resolve and marked
3676         it as internal.
3677
3678 2007-09-11  Jb Evain  <jbevain@novell.com>
3679
3680         * object-internals.h (MonoReflectionDynamicMethod): add
3681         a `MonoReflectionType *owner` field. The owner is used
3682         * reflection.c:
3683         (mono_reflection_create_dynamic_method): use the owner of the dynamic
3684         method as the class declaring the dynamic method.
3685         (reflection_methodbuilder_from_dynamic_method): copy the owner of the
3686         dynamic method to the declaring type of the methodbuilder.
3687
3688 2007-09-11  Mark Probst  <mark.probst@gmail.com>
3689
3690         * icall.c (ves_icall_InternalInvoke): Enforce CoreCLR security
3691         rules for calling methods via reflection.
3692
3693 2007-09-11  Zoltan Varga  <vargaz@gmail.com>
3694
3695         * reflection.c (resolve_object): Add support for MonoGenericClass. 
3696         Inflate MonoType's.
3697
3698 Tue Sep 11 16:08:08 CEST 2007 Paolo Molaro <lupus@ximian.com>
3699
3700         * gc-internal.h, boehm-gc.c, null-gc.c, sgen-gc.c: allow the GC to
3701         provide a managed method that does fast allocations without needing
3702         a managed->unmanaged transition. Boehm GC implementation currently
3703         enabled for ptrfree objects on sane architectures.
3704
3705 Tue Sep 11 16:00:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
3706
3707         * marshal.c, marshal.h: exported a couple of useful functions and
3708         added mono_mb_get_label () to easily handle backward branches.
3709
3710 2007-09-10  Zoltan Varga  <vargaz@gmail.com>
3711
3712         * reflection.c (resolve_object): Inflate generic methods. Fixes #82782.
3713
3714 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
3715
3716         * loader.c (find_method): Fixed the regression introduced while
3717         fixing bug #81466.
3718
3719 2007-09-09  Zoltan Varga  <vargaz@gmail.com>
3720
3721         * class.c (mono_lookup_dynamic_token_class): Pass along the context here as
3722         well.
3723         
3724         * class.c loader.c metadata.c object.c class-internals.h object-internals.h
3725         icall.c reflection.c: Pass a MonoGenericContext argument to 
3726         mono_lookup_dynamic_token ().
3727
3728         * reflection.c (resolve_object): Handle GenericTypeParameterBuilder. Fixes
3729         #82744.
3730         
3731 2007-09-09  Robert Jordan  <robertj@gmx.net>
3732
3733         * object.c (mono_class_proxy_vtable): Don't create remoting trampolines
3734         for generic methods.
3735
3736         * object.c (mono_object_get_virtual_method): Handle generic methods.
3737         Fixes bug #78882.
3738
3739         Code is contributed under MIT/X11 license.
3740
3741 Sat Sep 8 18:16:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
3742
3743         * image.c: fix locking in mono_image_load_file_for_image ().
3744
3745 Thu Sep 6 19:48:00 CEST 2007 Paolo Molaro <lupus@ximian.com>
3746
3747         * reflection.c, icall.c, icall-def.h: the methodinfos name field is
3748         used only as a cache: added an icall to fill it.
3749
3750 2007-09-16  Rodrigo Kumpera  <rkumpera@novell.com>
3751
3752         * reflection.h: exposed mono_reflection_free_type_info
3753         * reflection.c (mono_reflection_get_type_internal): type_args is always freed
3754         since mono_reflection_bind_generic_parameters makes a copy of it.
3755         * reflection.c (free_type_info): subinfos should be freed.
3756         * reflection.c (free_type_info): renamed to mono_reflection_free_type_info and 
3757         made non static.
3758         * icall.c (type_from_name and ves_icall_System_Reflection_Assembly_InternalGetType):
3759         replaced explicit cleanup of MonoTypeNameParse struct with a call to mono_reflection_free_type_info,
3760         this fixes #82695 and #81726.
3761    
3762
3763 2007-09-03  Atsushi Enomoto  <atsushi@ximian.com>
3764
3765         * process.h, process.c:  added support for user profile/info in
3766           ProcessStartInfo. For now only Windows works.
3767
3768 Fri Aug 31 17:30:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
3769
3770         * metadata.c: consider the generic arguments when comparing
3771         signatures (bug #82614).
3772
3773 Thu Aug 30 18:34:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
3774
3775         * cil-coff.h, image.c: updated assembly loader to cope with the
3776         PE32+ 64 bit file format.
3777
3778 Thu Aug 30 16:47:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
3779
3780         * assembly.c, class.c, domain.c, loader.c: remove useless
3781         inclusion of cil-coff.h.
3782
3783 2007-08-29  Jonathan Chambers  <joncham@gmail.com>
3784
3785         * marshal.c (cominterop_get_ccw): Walk up interface hierarchy
3786         if interface is marked with CoClassAttribute. 
3787    
3788         Code is contributed under MIT/X11 license.
3789
3790 Wed Aug 29 19:27:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
3791
3792         * sgen-gc.c: ensure no object from the to space is copied again or finalized
3793         if it's seen twice in major collections.
3794
3795 Wed Aug 29 18:46:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
3796
3797         * sgen-gc.c: big objects are not copied to the gray area, but they
3798         need to be considered for scanning, too, if they are brought alive
3799         by an object ready for finalizations or a survived one.
3800
3801 Wed Aug 29 18:43:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
3802
3803         * sgen-gc.c: properly account the number of disappearing links when
3804         they are nullified.
3805
3806 Wed Aug 29 18:37:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
3807
3808         * sgen-gc.c: share the code to scan the registered roots between the
3809         different types of collections.
3810
3811 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
3812
3813         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunModuleConstructor): New icall.
3814
3815 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
3816
3817         * object.c (mono_class_proxy_vtable): Use max_interface_id instead of
3818         class->max_interface_id in a one place. Fixes transparentproxy.exe test on ia64.
3819
3820 2007-08-28  Mark Probst  <mark.probst@gmail.com>
3821
3822         * security-manager.c (mono_security_manager_get_methods):
3823         LinkDemandSecurityException now has 2 arguments instead of 3.
3824
3825 2007-08-27  Zoltan Varga  <vargaz@gmail.com>
3826
3827         * class.c (mono_class_layout_fields): Only do the struct alignment hack on
3828         platforms which need it.
3829
3830 Mon Aug 27 18:29:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
3831
3832         * sgen-gc.c: unregister thread data structures with a pthread_key_t
3833         dtor.
3834
3835 Mon Aug 27 18:27:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
3836
3837         * threads.c: free the thread static data on thread exit.
3838
3839 Mon Aug 27 10:55:54 CEST 2007 Paolo Molaro <lupus@ximian.com>
3840
3841         * class.c: walk the hierarchy to find the generic definition for
3842         a class (fixes runtime part of bug #82498).
3843
3844 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
3845
3846         * assembly.c (mono_assembly_close): Move the closing of the referenced assemblies to
3847         ...
3848
3849         * image.c (mono_image_close): Here. Hopefully fixes #82510.
3850
3851 2007-08-24  Mark Probst  <mark.probst@gmail.com>
3852
3853         * monodiet.c (handle_cattrs): Fixed a custom attr leak.
3854
3855 2007-08-24  Robert Jordan  <robertj@gmx.net>
3856
3857         * appdomain.c: don't perform the ':'->';' substitution on Win32.
3858
3859 2007-08-24  Jb Evain  <jbevain@novell.com>
3860
3861         * class.c (mono_type_get_name_recurse): fix AssemblyQualifiedName
3862         for byref types.
3863
3864 2007-08-24  Mark Probst  <mark.probst@gmail.com>
3865
3866         * threads.c: Make sure a thread gets cleaned up only once.  Fixes
3867         #82286.
3868
3869 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
3870
3871         * assembly.c: Fix a warning.
3872         
3873 2007-08-23  Marek Habersack  <mhabersack@novell.com>
3874
3875         * appdomain.c: parse the <runtime> section looking for the probing
3876         element with the 'privatePath' attribute, which sets additional
3877         directories in which the runtime should look for assemblies.
3878
3879 2007-08-23  Robert Jordan  <robertj@gmx.net>
3880
3881         * marshal.c (Marshal_ReAllocHGlobal) : Fix GlobalReAlloc's flags.
3882         Fixes #82499.
3883
3884 2007-08-23  Martin Baulig  <martin@ximian.com>
3885
3886         * mono-debug.[ch]: Rename mono_debug_init_corlib() into
3887         _mono_debug_init_corlib() and remove it from the header file.
3888
3889 2007-08-23  Martin Baulig  <martin@ximian.com>
3890
3891         * mono-debug-debugger.c
3892         (mono_debugger_unhandled_exception): Ignore `ThreadAbortException';
3893         don't notify the debugger about it.
3894
3895         * mono-debug-debugger.h
3896         (MonoDebuggerEvent): Removed `THREAD_ABORT'.
3897
3898 2007-08-23  Robert Jordan  <robertj@gmx.net>
3899
3900         * icall-def.h, process.*: implemented Get|SetPriorityClass icalls.
3901         Code is contributed under MIT/X11 license.
3902
3903 Wed Aug 22 18:35:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
3904
3905         * sgen-gc.h, sgen-gc.c: abstracted most of the OS-specific code.
3906
3907 2007-08-22  Martin Baulig  <martin@ximian.com>
3908
3909         * mono-debug.c: Store debugging info on a per-domain basis and
3910         free it on domain unload.  Add support for unloading symbol files.
3911
3912         * mono-debug.h
3913         (MonoDebugList): New typedef.
3914         (MonoSymbolTable):
3915         - add `data_tables and `type_table'.
3916         - replace 'symbol_files' and `num_symbol_files' with a
3917           `MonoDebugList *'.
3918         (mono_debug_data_table): Removed.
3919         (mono_debug_list_add): New public function.
3920         (mono_debug_list_remove): New public function.
3921         (mono_debug_init_1): Renamed into mono_debug_init_corlib().
3922         (mono_debug_init_2_memory): Renamed into
3923         mono_debug_open_image_from_memory().
3924         (mono_debug_close_image): New public function.
3925         (mono_debug_domain_create): Likewise.
3926         (mono_debug_domain_unload): Likewise.
3927         (MONO_DEBUGGER_VERSION): Bump to 60.
3928
3929         * mono-debug-debugger.h
3930         (MonoDebuggerEvent):
3931         - remove `RELOAD_SYMTABS' and `METHOD_COMPILED'.
3932         - rename `ADD_MODULE' into `LOAD_MODULE'; add `UNLOAD_MODULE'.
3933         - add `DOMAIN_CREATE' and `DOMAIN_UNLOAD'.
3934         - rename `THREAD_CREATED' and `THREAD_EXITED' into
3935           `GC_THREAD_CREATED' and `GC_THREAD_EXITED'.
3936         - re-add `THREAD_CREATED' and `THREAD_EXITED'; with different
3937           meaning.
3938         (mono_debugger_add_symbol_file): Removed.
3939         (mono_debugger_add_type): Removed.
3940         (mono_debugger_lookup_type): Removed.
3941         (mono_debugger_lookup_assembly): Removed.
3942
3943         * domain.c
3944         (mono_domain_create): Call mono_debug_domain_create().
3945         (mono_init_internal): Call mono_debug_init_corlib().
3946
3947         * assembly.c
3948         (mono_assembly_close): Call mono_debug_close_image().
3949
3950 Wed Aug 22 17:26:02 CEST 2007 Paolo Molaro <lupus@ximian.com>
3951
3952         * sgen-gc.c: use the mono-mmap facilitites instead of hard-coding the
3953         mmap call.
3954
3955 Wed Aug 22 17:17:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
3956
3957         * sgen-gc.c: ensure section->pin_queue_end is initialized
3958         correctly when non pinning objects in the section have been found.
3959
3960 2007-08-22  Marek Habersack  <mhabersack@novell.com>
3961
3962         * appdomain.c (set_domain_search_path): cope with PrivateBinPath
3963         containing a list of directories separated by ':'. MSDN docs say
3964         the directories should be separated with ';'. Part of a bugfix for
3965         bug #81446
3966
3967 2007-08-21  Rodrigo Kumpera  <rkumpera@novell.com>
3968
3969         * class.c (mono_type_retrieve_from_typespec) : fixed the return type
3970         it should MonoType and not MonoClass.
3971
3972 2007-08-21  Atsushi Enomoto  <atsushi@ximian.com>
3973
3974         * culture-info-table.h : regenerated.
3975
3976 2007-08-20  William Holmes  <billholmes54@gmail.com>
3977
3978         *file-io.c: Added ves_icall_System_IO_MonoIO_ReplaceFile
3979          to call ReplaceFile Kernel32 on windows or in io-layer.
3980         *file-io.h: Added deceleration for ves_icall_System_IO_MonoIO_ReplaceFile
3981         *icall-def.h: Register ves_icall_System_IO_MonoIO_ReplaceFile
3982          as an internal call.
3983
3984         Code is contributed under MIT/X11 license.
3985
3986 2007-08-20  Jb Evain  <jbevain@novell.com>
3987
3988         * class-internals: add definitions for MONO_EXCEPTION_METHOD_ACCESS
3989         and MONO_EXCEPTION_FIELD_ACCESS.
3990
3991         * debug-helpers.[c|h]: new mono_field_full_name function.
3992
3993 2007-08-20  Mark Probst  <mark.probst@gmail.com>
3994
3995         * class.c: Removed class_security_level() and moved it to
3996         security-core-clr.c.
3997
3998         * security-core-clr.c, security-core-clr.h: class_security_level()
3999         is now public and renamed to mono_security_core_clr_class_level().
4000         It also looks for security attributes in the classes a class is
4001         nested in.
4002
4003 2007-08-20  Mark Probst  <mark.probst@gmail.com>
4004
4005         * security-core-clr.c, security-core-clr.h: CoreCLR security
4006         utility functions.
4007
4008         * Makefile.am: Added security-core-clr.[ch].
4009
4010         * security-manager.c, security-manager.h: Functions and enum for
4011         setting and getting the security mode.
4012
4013         * class.c: CoreCLR security checks.
4014
4015 Mon Aug 20 12:38:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
4016
4017         * icall-def.h, process.c, process.h: implemented icall to get
4018         user/system processor times.
4019
4020 2007-08-17  Mark Probst  <mark.probst@gmail.com>
4021
4022         * domain.c, threads.c, class-internals.h, domain-internals.h: New
4023         reader-lock-free jit_info_table.
4024
4025 2007-08-17  Zoltan Varga  <vargaz@gmail.com>
4026
4027         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_CUSTOM.
4028
4029         * marshal.c (mono_marshal_type_size): Ditto. Fixes #82465 and #82466.   
4030
4031         * object-internals.h (MonoException): Add missing _data member.
4032
4033 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
4034
4035         * loader.c (find_method, find_method_in_class): Fixed bug #81466,
4036         checking that only methods with matching qname or fqname are picked
4037         from implemented interfaces.
4038
4039 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
4040
4041         * verify.c (do_newarr):added, do type verification of
4042         newarr ops, push the right value on the eval stack.
4043         * verify.c (mono_method_verify): use do_newarr
4044
4045
4046 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
4047
4048         * verify.c (do_ldobj_value, do_unbox_value and do_box_value):
4049         factored the common code into get_boxable_mono_type, which
4050         is now using mono_type_get_full, this fixed byref related tests.
4051
4052 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
4053
4054         * class.c: added mono_type_get_full, this function has the same
4055         behavior of mono_class_get_full but the returned MonoType has
4056         all metadata of the associated token in case of a typespec token.
4057         * class.c: added mono_type_retrieve_from_typespec, used by 
4058         mono_type_get_full to retrieve the token type.
4059         * class.c (mono_class_create_from_typespec): changed to use
4060         mono_type_retrieve_from_typespec.
4061         * class.c (mono_ldtoken): changed to use mono_type_get_full
4062         for MONO_TOKEN_TYPE_(DEF|REF|SPEC).
4063         * class-internals.h: exported mono_type_get_full for internal use.
4064
4065 2007-08-16  Jb Evain  <jbevain@novell.com>
4066
4067         * domain.c (supported_runtimes): add entry for
4068         the 'moonlight' runtime version.
4069
4070 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
4071
4072         * verify.c (mono_method_verify): small typo sliped in.  
4073
4074 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
4075
4076         * verify.c (do_unbox_value): added, do type verification of
4077         unboxing ops
4078         * verify.c (mono_method_verify): use do_unbox_value
4079
4080
4081 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
4082
4083         * verify.c (dump_stack_value): fixed typo, was printing string
4084         instead of object on stack.
4085         * verify.c (do_box_value): moved the byref check up as it leads
4086         to invalid code and should be done earlier.
4087         * verify.c: improved error messages for and ldobj
4088
4089 2007-08-15  William Holmes  <billholmes54@gmail.com>
4090
4091         * marshal.c (emit_marshal_custom): Omit the call to 
4092           marshal_native_to_managed when calling native to managed 
4093           and the argument is specified as an out argument.
4094
4095         Code is contributed under MIT/X11 license.
4096
4097 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
4098
4099         * verify.c: fixed the type checks for generics, function pointers and vectors.
4100         Added type verification for ldobj and ldtoken. The verifier
4101         would segfault if header or signature of a method contained references
4102         to non-existant types.
4103
4104 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
4105
4106         * marshal.c (cominterop_get_ccw): Patch from
4107         Bill Holmes to no walk up interface hierarchy. 
4108         All parent methods should be present in the interface for COM.
4109    
4110         Code is contributed under MIT/X11 license.
4111
4112 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
4113
4114         * marshal.c (emit_marshal_com_interface): Patch from
4115         Bill Holmes to handle COM Interfaces as return values
4116         for native->managed calls.
4117    
4118         Code is contributed under MIT/X11 license.
4119
4120 2007-08-14  Jonathan Chambers  <joncham@gmail.com>
4121
4122         * marshal.c (cominterop_get_idispatch_for_object): Implement
4123         for runtime callable wrappers.
4124    
4125         Code is contributed under MIT/X11 license.
4126
4127 2007-08-13  Rodrigo Kumpera  <rkumpera@novell.com>
4128
4129         * pedump.c (main): changed from mono_init to mono_init_from_assembly
4130         so 2.0 types are accessible
4131
4132
4133 2007-08-13  Miguel de Icaza  <miguel@novell.com>
4134
4135         * domain.c (mono_init_internal): Call mono_assembly_load_friends
4136         once we load mscorlib.   Due to the order in which we initialize,
4137         the mono_assembly_load_full routine that loads mscorlib did not
4138         load friends.   We now load it once we load the
4139         mono_defaults.internals_visible_class class. 
4140
4141         * assembly.c: Expose the mono_load_friend_assemblies method.
4142
4143 2007-08-11  Rodrigo Kumpera  <rkumpera@novell.com>
4144
4145         * verify.c: improved the handling of boxing, better
4146         type checking for unary ops and conversion. Fix bug
4147         regarding managed pointer compatibility checking
4148
4149 2007-08-11  Zoltan Varga  <vargaz@gmail.com>
4150
4151         * icall.c (ves_icall_System_Array_SetGenericValueImpl): New icall.
4152
4153         * threads.c threads-types.h: Export mono_thread_get_stack_bounds.
4154
4155 2007-08-09  Raja R Harinath  <rharinath@novell.com>
4156
4157         * reflection.c (dup_type): Remove.
4158         * class.c (dup_type): Remove.
4159         (mono_metadata_signature_deep_dup): Use 'mono_metadata_type_dup'
4160         instead of the dodgy 'dup_type'.
4161         (inflate_generic_type): Likewise.  Fix the VAR/MVAR cases to
4162         handle the case where 'dup_type' needed the second argument.
4163
4164 2007-08-08  Zoltan Varga  <vargaz@gmail.com>
4165
4166         * domain.c: Fix a warning.
4167
4168 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
4169
4170         * class.c (mono_class_setup_vtable_general): Fixed bug #77127,
4171         checking that methods with the same fqname are not overridden
4172         with a method from an ancestor.
4173
4174 2007-08-07  Zoltan Varga  <vargaz@gmail.com>
4175
4176         * threads.c (free_thread_static_data_helper): Avoid a crash if
4177         thread->static_data is not yet set.
4178
4179 2007-08-07  Jonathan Chambers  <joncham@gmail.com>
4180
4181         * marshal.c: Use correct image when emitting
4182         native wrapper for COM calls.
4183    
4184         Code is contributed under MIT/X11 license.
4185
4186 2007-08-07  Atsushi Enomoto  <atsushi@ximian.com>
4187
4188         * icall-def.h, security.c, security.h :
4189           added icall wrapper to ProtectedMemory.[Unprotect|Protect]Data().
4190
4191 2007-08-07  Martin Baulig  <martin@ximian.com>
4192
4193         * mono-debug-debugger.h
4194         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD'.
4195
4196         * domain.c (mono_domain_free): Call
4197         `mono_debugger_event (MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD)'.
4198
4199 2007-08-06  Rodrigo Kumpera  <rkumpera@novell.com>
4200
4201         * verify.c (check_underflow, check_overflow): error message now returns IL offset
4202         * verify.c (in_same_block): code should test if either offset is inside the clauses
4203         * verify.c (mono_method_verify): push the exception into the eval stack of exception
4204         and filter blocks
4205
4206 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
4207
4208         * image.c (mono_image_close): Fix a leak.
4209
4210         * object.c (mono_runtime_invoke_array): Avoid using alloca.
4211
4212         * icall.c (ves_icall_FieldInfo_SetValueInternal): Ditto.        
4213
4214 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
4215
4216         * domain.c, threads.c, threads-types.h: fix memory retention issue
4217         with thread static variables not being cleared on domain unload.
4218         Reuse thread static slots after domain unload.
4219
4220 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
4221
4222         * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
4223         nullable type.
4224
4225         * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
4226         now done in mono_runtime_invoke_array.
4227
4228         * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the 
4229         receiver is a nullable type.
4230
4231         * class.c (mono_class_is_assignable_from): Handle the case when klass is a 
4232         generic parameter.
4233
4234 2007-08-03  Jonathan Chambers  <joncham@gmail.com>
4235
4236         * marshal.c: Implement COM Objects as return type for 
4237         managed->unmanaged calls. Added Release calls for COM Object
4238         out/return values in managed->unmanaged calls.
4239
4240         Code is contributed under MIT/X11 license.
4241
4242 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
4243
4244         * threads.h, threads-type.h: move the hazard pointer declarations
4245         to the private header.
4246
4247 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
4248
4249         * file-io.c, appdomain.c: memory leak fixes.
4250
4251 2007-08-02  Dick Porter  <dick@ximian.com>
4252
4253         * socket-io.c
4254         (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
4255         SO_REUSEADDR setting into io-layer/sockets.c.
4256
4257 2007-08-01  Zoltan Varga  <vargaz@gmail.com>
4258
4259         * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
4260         from Object when called on a generic parameter. Fixes #82211.
4261
4262 2007-08-01  Dick Porter  <dick@ximian.com>
4263
4264         * file-io.c (convert_share): Test FileShare values bit-by-bit.
4265         Fixes bug 79250 yet again.
4266
4267 2007-07-30  Martin Baulig  <martin@ximian.com>
4268
4269         Merged the `debugger-dublin' branch.
4270
4271         * mono-debug.h
4272         (MonoDebugDataTable): New typedef.
4273         (MonoDebugMethodAddressList): New typedef.
4274         (MonoDebugWrapperData): Removed.
4275         (MonoDebugSymbolTable): Removed `current_data_table',
4276         `current_data_table_size', `current_data_table_offset'.
4277         (MonoDebugDataItemType): Moved into mono-debug.c.
4278         (MonoDebugMethodJitInfo): Remove `address'.
4279         (mono_debug_data_table): New global variable.
4280         (mono_debug_lookup_method_addresses): New public function.
4281         (mono_debug_find_method): Take a `MonoMethod *', not a
4282         `MonoDebugMethodInfo *'.
4283
4284         * mono-debug.c: Drop support for the old symbol tables.
4285
4286 2007-06-28  Martin Baulig  <martin@ximian.com>
4287
4288         * mono-debug.c (mono_debug_debugger_version): New public variable.
4289
4290 2007-07-31  William Holmes  <billholmes54@gmail.com>
4291
4292         * metadata.c Changed mono_type_create_from_typespec to not insert
4293           the type into the hash map until after
4294           do_mono_metadata_parse_type has completed.
4295         Fixes Bug #82194
4296         Code is contributed under MIT/X11 license.
4297
4298 2007-07-31  Zoltan Varga  <vargaz@gmail.com>
4299
4300         * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
4301         generic parameter. Fixes #82211.
4302
4303 2007-07-27  Jb Evain  <jbevain@novell.com>
4304
4305         * pedump.c (dump_metadata, dump_metadata_header): dump
4306         versions contained in the metadata header.
4307
4308 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
4309
4310         * threads.c: register small_id_table with the GC.
4311
4312 2007-07-27  Mark Probst  <mark.probst@gmail.com>
4313
4314         * threads.c, threads.h, class-internals.h, object-internals.h:
4315         Hazard pointers, to be used by lock-free parallel algorithms.
4316
4317 2007-07-26  Dick Porter  <dick@ximian.com>
4318
4319         * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
4320         routine on non-windows platforms, as I've not managed to think of
4321         a non-kludgy way of doing this.  Finishes off bug 78739.
4322
4323 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
4324
4325         * object.c: properly setup interface_bitmap in proxy vtables.
4326
4327 2007-07-25  Marek Habersack  <mhabersack@novell.com>
4328
4329         * appdomain.c (get_shadow_assembly_location): do not use TickCount
4330         to create unique shadow copy target directories, use the domain's
4331         serial number instead. Each domain gets a unique target directory
4332         that way.
4333
4334         * domain.c (mono_domain_create): added code to increment domain
4335         shadow copy serial number and cache the value in the current
4336         domain structure.
4337
4338         * domain-internals.h (struct _MonoDomain): added a new field -
4339         shadow_serial to hold the serial number used in generation of
4340         shadow-copy directories. This is to make sure that the directory
4341         name is unique for each and every domain created. We avoid a race
4342         condition with overriding assemblies already in use by other app
4343         domains.
4344
4345 2007-07-24  Rodrigo Kumpera  <rkumpera@novell.com>
4346
4347         * class.c (mono_bounded_array_class_get): fixed memory leak when 
4348         binding generic parameters.
4349
4350 2007-07-24  Raja R Harinath  <rharinath@novell.com>
4351
4352         * metadata.c (do_mono_metadata_parse_generic_class): Use
4353         mono_metadata_lookup_generic_class.  Don't g_assert on a metadata
4354         error.
4355
4356 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
4357
4358         * loader.c, class-internals.h, reflection.c: removed the per-method
4359         generics hashtable: we use the global one through the call of
4360         mono_class_inflate_generic_method ().
4361
4362 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
4363
4364         * class.c, metadata.c, class-internals.h: introduce yet another
4365         generics global cache for inflated methods (fixes 98% of the perf
4366         issue in bug #81806).
4367
4368 2007-07-23  Raja R Harinath  <rharinath@novell.com>
4369
4370         Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
4371         * metadata.c (mono_metadata_lookup_generic_inst): Kill.
4372         (mono_metadata_get_generic_inst): New.  Given a list of MonoType*,
4373         return a MonoGenericInst containing (a copy) of those types.
4374         (mono_metadata_inflate_generic_inst): Update to changes.
4375         (mono_metadata_parse_generic_inst): Likewise.
4376         (mono_get_shared_generic_inst): Likewise.
4377         * reflection.c (mono_class_bind_generic_parameters): Likewise.
4378         (mono_reflection_bind_generic_method_parameters): Likewise.
4379         * metadata-internals.h: Likewise.
4380         * icall.c (free_generic_context): Kill.
4381         (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
4382
4383         * reflection.c (reflection_methodbuilder_to_mono_method): Use
4384         mono_metadata_type_dup.
4385         * marshal.c (mono_mb_create_method): Likewise.
4386
4387         * metadata.c (mono_metadata_type_dup): Rename from
4388         mono_metadata_type_dup_mp.  Take an optional mempool instead of a
4389         MonoImage.  Handle a few more cases, esp. when no mempool is given.
4390         * marshal.c, metadata-internals.h: Update to changes.
4391
4392 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
4393
4394         * class.c: fixed a small leak for array classes and removed warning.
4395
4396 2007-07-22  Zoltan Varga  <vargaz@gmail.com>
4397
4398         * loader.c (mono_method_get_param_token): Make this work on generic methods.
4399         Return 0x8000000 for return parameters. Fixes #82161.
4400
4401 2007-07-21  Marek Habersack  <grendello@gmail.com>
4402
4403         * appdomain.c (get_shadow_assembly_location): append the current
4404         ticks value to the path. Avoids overwriting the same assemblies by
4405         several threads at the same time.
4406
4407 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
4408         and Raja R Harinath  <rharinath@novell.com>
4409
4410         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
4411         Simplify slightly.
4412         (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
4413         property for testing if a method is a generic method definition.
4414
4415 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
4416
4417         * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
4418
4419 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
4420
4421         * verify.c: used function from private branch, reverted to the one in class.h 
4422
4423 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
4424
4425         * verify.c: a typo slipped in and the code wont compile
4426
4427 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
4428
4429         * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
4430         disabled box instruction as it is doing the wrong thing
4431         improved stack dump messages, now it is easier to debug type related issues
4432
4433
4434 2007-07-19  Juraj Skripsky  <js@hotfeet.ch>
4435
4436         * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak. 
4437
4438 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
4439
4440         * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from 
4441         TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
4442         grouped with class and valuetype. This change will simply 
4443         the code as it should be handled just like unmanaged pointers.
4444
4445 2007-07-19  Mark Probst  <mark.probst@gmail.com>
4446
4447         * class.c (concat_two_strings_with_zero): Fixed a silly bug.
4448
4449 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
4450
4451         * verify.c: several stack merge issues fixed, reference comparisons now
4452         check the type size. strict type check now works correctly.
4453         added more uses of IS_MANAGED_POINTER macro.
4454         fixed issues pointed by running the test suite against .net.
4455         
4456
4457 2007-07-19  Mark Probst  <mark.probst@gmail.com>
4458
4459         * class.c, loader.c, class-internals.h: Removed the
4460         MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
4461         defines.
4462
4463         * icall.c: Better error checking in some internal reflection
4464         methods.
4465
4466 2007-07-18  William Holmes  <billholmes54@gmail.com>
4467
4468         * filewatcher.c : removed unused variable 'filename' in 
4469           ves_icall_System_IO_FSW_SupportsFSW
4470
4471 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
4472
4473         * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
4474         obsolete, removed.
4475
4476 2007-07-15  Zoltan Varga  <vargaz@gmail.com>
4477
4478         * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
4479         
4480         * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
4481
4482 2007-07-14  Zoltan Varga  <vargaz@gmail.com>
4483
4484         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
4485         Implement generics support.
4486         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
4487
4488         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
4489         type_args and method_args arguments.
4490         (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
4491         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
4492         (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
4493
4494 2007-07-13  Rodrigo Kumpera  <rkumpera@novell.com>
4495
4496         * reflection.c: patch from Thong Nguyen to fix atribute resolution.
4497           It adds a rootimage parameter to mono_reflection_get_type_internal,
4498           adds new function mono_reflection_get_type_with_rootimage and use
4499           the rootimage to resolve the types instead of the current image
4500
4501 2007-07-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4502
4503         * culture-info-table.h: Forgot to update after r78304.
4504
4505 2007-07-13  Raja R Harinath  <rharinath@novell.com>
4506
4507         * class.c (mono_class_is_open_constructed_type)
4508         <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
4509
4510 2007-07-12  Rodrigo Kumpera  <rkumpera@novell.com>
4511
4512         * class.c (mono_bounded_array_class_get):  method fails if used with
4513         an incomplete TypeBuilder enum (no basetype field), fixed it by 
4514         avoiding calculating the size for such array as it cannot be instantiated.
4515         Fix bug #82015
4516
4517 2007-07-12  Raja R Harinath  <rharinath@novell.com>
4518
4519         * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
4520         field.
4521         * metadata.c, reflection.c: Update to changes.
4522
4523 2007-07-11  Rodrigo Kumpera  <rkumpera@novell.com>
4524
4525         * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
4526         mono_class_is_valid_enum, they are used to valide a enum when loading.
4527         * reflection.c: used new functions to throw TypeLoadException when and
4528         invalid enum is build with TypeBuilder. Fixes #82018
4529   
4530 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
4531
4532         * object.c: forgot commit of mono_class_setup_methods () to access
4533         iface->methods.
4534         * object-internals.h: added a few more handy fields to
4535         MonoIMTCheckItem.
4536
4537 2007-07-11  Zoltan Varga  <vargaz@gmail.com>
4538
4539         * object.c (build_imt): Call mono_class_setup_methods () before accessing 
4540         iface->methods.
4541
4542 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
4543
4544         * class-internals.h, object-internals.h, object.c: IMT-based
4545         interface invocation core from Massimiliano Mantione
4546         (massi@ximian.com) with a reworked arch-specific interface,
4547         bsearch implementation and a few bugfixes and memory savings by me.
4548
4549 2007-07-10  Rodrigo Kumpera  <rkumpera@novell.com>
4550
4551         * class.c (mono_class_create_from_typedef): mono would segfault if 
4552         an enum did not have a __value field. It now throws a TypeLoadException
4553         for such cases. Fix bug #82022
4554
4555 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
4556
4557         * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
4558
4559 2007-07-09  Mark Probst  <mark.probst@gmail.com>
4560
4561         * class.c (mono_class_init): If a class is already inited but has
4562         an exception_type set, return FALSE, not TRUE.  Fixes: 82050.
4563
4564 2007-07-09  Mark Probst  <mark.probst@gmail.com>
4565
4566         * class.c: Properly handle the case of an unimplemented interface
4567         method.  Fixes: 81673.
4568
4569 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
4570
4571         * class-internals.h, object.c: cleanup patch from massi: use
4572         MonoVTable->interface_bitmap since the vtable interfaces offset array
4573         is going away.
4574
4575 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
4576
4577         * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
4578         GetMDStreamVersion icall instead.
4579
4580 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
4581
4582         * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
4583         not use mono_dl_build_path() with a full library name: makes
4584         fallbacks to libgaim and libfam work.
4585
4586 2007-07-06  William Holmes  <billholmes54@gmail.com>
4587
4588         * assembly.c: Added a continue statement in probe_for_partial_name when
4589          parse_assembly_directory_name fails.  Fixes : 82002
4590
4591 2007-07-06  Rodrigo Kumpera  <rkumpera@novell.com>
4592
4593         * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
4594         and added a verification  for TYPEDBYREF.
4595         * verify.c (verify_stack_type_compatibility): fix handling of byref types,
4596         make native int interchangeable with int32 and some small cleanup and formating.
4597         * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
4598         handle byref of byref.
4599         * verify.c (push_local): handle byref of byref.
4600         * verify.c (do_binop): invalid mix of values is unverifiable
4601         * verify.c (do_invoke_method): fixed the handling of bad params on stack and
4602         added visibility checks
4603         * verify.c (field related method): added visibility checks
4604         * verify.c (do_push_field): cannot take the address of a temporary valuetype field
4605
4606 2007-07-06  Zoltan Varga  <vargaz@gmail.com>
4607
4608         * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
4609         string.
4610
4611 2007-07-05  Zoltan Varga  <vargaz@gmail.com>
4612
4613         * profiler.c (mono_profiler_load): Fix an off-by-one error.
4614
4615         * marshal.c (emit_marshal_string): When returning a string from managed code,
4616         allways make a copy even for unicode strings. Fixes #81990.
4617
4618 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
4619
4620         * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
4621         of byref generic inst types (bug #81997).
4622
4623 2007-07-03  Rodrigo Kumpera  <rkumpera@novell.com>
4624
4625         * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
4626         * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
4627
4628 2007-07-02  Zoltan Varga  <vargaz@gmail.com>
4629
4630         * marshal.c (emit_marshal_string): Add support for unicode strings in
4631         MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
4632
4633 2007-07-02 Rodrigo Kumpera  <rkumpera@novell.com>
4634
4635         * verify.c: field load/store are now verified, missing only access checks now
4636
4637 2007-06-28  Martin Baulig  <martin@ximian.com>
4638
4639         * mono-debug.c (mono_debug_debugger_version): New public variable.
4640
4641 2007-06-24  Gert Driesen  <drieseng@users.sourceforge.net>
4642
4643         * locales.c: When constructing DateTimeFormat or NumberFormat for
4644         MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
4645         MonoCultureInfo contructed from the current locale is always
4646         read-only and has UseUserOverride set to true. All MonoCultureInfo
4647         instances returned for GetCultures have both IsReadOnly and
4648         UseUserOverride set to true. Fixes part of bug #81930.
4649
4650 2007-06-22  Jonathan Chambers  <joncham@gmail.com>
4651
4652        * icall-def.h: Update System.__ComObject icalls
4653        * marshal.c: Avoid managed transition (and object creation)
4654        when looking up COM interface in RCW.
4655        * marshal.h: Ditto.
4656        
4657        Code is contributed under MIT/X11 license.
4658
4659 2007-06-22  Zoltan Varga  <vargaz@gmail.com>
4660
4661         * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
4662         to avoid crashes during assembly unloading.
4663
4664 2007-06-22  Raja R Harinath  <rharinath@novell.com>
4665
4666         Fix MethodInfo.IsGenericMethodDefinition
4667         * reflection.c (mono_reflection_bind_generic_method_parameters):
4668         Rearrange code to ensure we always uses a generic method definition.
4669         * class.c (mono_class_inflate_generic_method_full): Set
4670         'generic_container' field only for generic method definitions.
4671         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
4672         Use presense of 'generic_container' field as indication of being a
4673         generic method definition.
4674
4675 2007-06-21  Zoltan Varga  <vargaz@gmail.com>
4676
4677         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4678
4679         * object-internals.h: Reflect changes in the layout of the managed Delegate
4680         class.
4681         
4682         * object-internals.h reflection.c icall-def.h: Applied patch from Robert
4683         Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
4684         runtime memory used by the dynamic method. Fixes #77146.
4685
4686 2007-06-21  Dick Porter  <dick@ximian.com>
4687
4688         * file-io.h: 
4689         * file-io.c (convert_share): Cope with FileShare.Delete.  Patch
4690         from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
4691         81767.
4692
4693 2007-06-21  Raja R Harinath  <rharinath@novell.com>
4694
4695         * reflection.c (method_encode_methodspec): Add a tripwire.
4696         * class.c (inflate_generic_type): The fully open generic type is
4697         not the same as the generic type definition.
4698
4699 2007-06-21  Martin Baulig  <martin@ximian.com>
4700
4701         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
4702
4703         * mono-debug-debugger.h
4704         (MonoDebuggerBreakpointInfo): Removed.
4705         (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
4706         (mono_debugger_remove_breakpoint): Likewise.
4707         (mono_debugger_breakpoint_callback): Likewise.
4708         (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
4709
4710 2007-06-21  Raja R Harinath  <rharinath@novell.com>
4711
4712         * metadata.c (mono_metadata_lookup_generic_class): The fully open
4713         generic type is not the same as the generic type definition.
4714         * class.c (mono_generic_class_get_class): Likewise.
4715
4716 2007-06-20  Geoff Norton  <gnorton@customerdna.com>
4717
4718         * icall.c: The second argument to 
4719         System.Reflection.MethodBase.GetMethodFromHandleInternalType
4720         is a MonoType not a MonoClass.
4721
4722 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
4723
4724         * verify.c: support for function pointers in the verifier
4725
4726 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
4727
4728         * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
4729
4730 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
4731
4732         * assembly.c: removed Mono.Data.SqliteClient from the list of
4733         forward-compatible assemblies as it breaks the ABI (bug #81899).
4734
4735 2007-06-19  Raja R Harinath  <rharinath@novell.com>
4736
4737         * metadata.c (mono_metadata_lookup_generic_class): Protect cache
4738         lookup/update with the loader lock.
4739         * reflection.c (mono_class_bind_generic_parameters): No need to
4740         protect mono_metadata_lookup_* with the loader lock.
4741         * class.c (inflate_generic_type): Likewise.
4742         
4743         * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
4744         on a generic instantiated type.
4745
4746 2007-06-18  Rodrigo Kumpera <kumpera@gmail.com>
4747
4748         *verify.c: produce meanfull error messages on verification error
4749         *verify.c: fixed some cases of verification errors reported as validation errors
4750         *pedump.c: fixed the error name array, now it shows validation errors properly
4751         *verify.h: fixed the contant that should be used for verification errors
4752
4753 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
4754
4755         * metadata.c, image.c, metadata-internals.h: part of the fixes needed
4756         for bug #77596, 81858 and 80743 (generics data structures on domain
4757         unload).
4758
4759 2007-06-15  Raja R Harinath  <rharinath@novell.com>
4760
4761         Avoid allocating 'MonoGenericContext' on the heap.
4762         * class-internals (_MonoMethodInflated::context): Make field
4763         inline, not a pointer.
4764         * loader.c (method_from_methodspec): Allocate 'new_context' on the
4765         stack.  Use the context embedded within the inflated method as the
4766         hash key, rather than 'new_context'.
4767         * class.c (inflate_generic_context): Simplify.  Return a struct
4768         rather than allocating on the heap.
4769         (mono_class_inflate_generic_method_full): Update to changes.  Now,
4770         doesn't salt away a copy of the context -- simplifying the
4771         lifetime rules of a 'MonoGenericContext *'.
4772         (mono_method_get_context): Return pointer to embedded context.
4773         (setup_generic_array_ifaces): Allocate temporary context on stack.
4774         * reflection.c (inflate_mono_method): Likewise.
4775         (mono_reflection_bind_generic_method_parameters): Likewise.
4776         Use the context embedded within the inflated method as the hash key.
4777
4778         Avoid a source of allocation of 'MonoGenericContext'.
4779         * class-internals.h (_MonoGenericClass::context): Combine 'inst'
4780         and 'cached_context' fields into embedded 'MonoGenericContext' field.
4781         * class.c: Update to changes.
4782         (mono_generic_class_get_context): Simplify drastically.  Now just
4783         returns a pointer to the field.
4784         * metadata-internals.h (mono_metadata_generic_context_hash): Mark
4785         argument as a const pointer.
4786         (mono_metadata_generic_context_equal): Likewise.
4787         * metadata.c, loader.c, icall.c, reflection.c, verify.c:
4788         Update to changes.
4789
4790 2007-06-14  Rodrigo Kumpera  <kumpera@gmail.com>
4791
4792         * verify.c improved the handling of brtrue/brfalse, factored out common code
4793
4794 2007-06-14  Raja R Harinath  <rharinath@novell.com>
4795
4796         Kill MonoGenericMethod.
4797         * class-internals.h (MonoGenericContext::method_inst): Rename from
4798         'gmethod' and convert to a MonoGenericInst.
4799         (MonoGenericMethod): Remove.
4800         * metadata.h (MonoGenericMethod): Note that the name is obsolete.
4801         * loader.c (method_from_methodspec): Update to changes.  Use a
4802         MonoGenericContext as the key to the hashtable.
4803         * metadata.c (mono_metadata_generic_context_equal): Rename from 
4804         'mono_metadata_generic_method_equal' and take MonoGenericContext.
4805         (mono_metadata_generic_context_hash): Likewise from
4806         'mono_metadata_generic_method_hash'.  Change hash function.
4807         (mono_metadata_load_generic_params): Update to changes.
4808         (mono_get_shared_generic_method): Remove.
4809         * metadata-internals.h (mono_get_shared_generic_method): Remove.
4810         * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
4811         (inflate_generic_context): Likewise.
4812         (mono_class_inflate_generic_method_full): Likewise.
4813         (setup_generic_array_ifaces): Likewise.
4814         (mono_class_create_from_typespec): Likewise.
4815         * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
4816         (method_encode_methodspec): Update callsite.
4817         (reflection_methodbuilder_to_mono_method): Update to changes.
4818         (mono_reflection_bind_generic_method_parameters): Likewise.  Use a
4819         MonoGenericContext as the key to the hashtable.
4820         (inflate_mono_method): Update to changes.
4821
4822         * class-internals.h (MonoGenericMethod::container): Remove.
4823         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
4824
4825 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
4826
4827         * profiler-private.h, profiler.c, profiler.h: added API to profile
4828         exception events.
4829
4830 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
4831
4832         * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments 
4833
4834 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
4835
4836         * verify.c: method invocation is now validated, now we verify parameter types on stack.
4837         Fixed overflow and underflow not aborting the verification process.
4838
4839 2007-06-13  Mark Probst  <mark.probst@gmail.com>
4840
4841         * class-internals.h (MonoStats): Added stats entries for dynamic
4842         code allocations.
4843
4844 2007-06-12  Zoltan Varga  <vargaz@gmail.com>
4845
4846         * loader.c (mono_free_method): Free header->locals and header->clauses.
4847
4848         * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
4849         dynamic case.
4850
4851         * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
4852
4853         * class.c (setup_interface_offsets): Allocate memory from the image mempool.
4854
4855 2007-06-12  Raja R Harinath  <rharinath@novell.com>
4856
4857         * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
4858         the tables.
4859
4860 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
4861
4862         *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
4863
4864 2007-06-11  Raja R Harinath  <harinath@gmail.com>
4865
4866         MonoGenericMethod on a diet
4867         * class-internals.h (_MonoMethodInflated::reflection_info): Move
4868         here ...
4869         (_MonoGenericMethod::reflection_info): ... from here.
4870         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
4871         Update to changes.
4872         * reflection.c (inflate_mono_method): Likewise.
4873         (mono_reflection_bind_generic_method_parameters): Likewise.
4874
4875 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
4876
4877         *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
4878         *verify.c: factored long ldarg forms to share code with short forms
4879
4880 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
4881
4882         *verify.c: fixed code formating factored some duplicate code
4883         into a new function
4884
4885         *verify.h: fixed binary incompatibility introduced earlier
4886
4887         *pedump.c: fixed formating
4888
4889 2007-06-11  Raja R Harinath  <harinath@gmail.com>
4890
4891         Fix assertion when disassembling Mono.C5.dll
4892         * loader.c (method_from_methodspec): Avoid inflating a method
4893         twice with the same context.  If the methodref is inflated, use
4894         the declaring method instead.
4895
4896         * class.c (mono_class_from_generic_parameter): Fix case similar to
4897         bug #81830 handled below, but for method containers.
4898
4899 2007-06-10  Raja R Harinath  <harinath@gmail.com>
4900
4901         * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
4902         get_shared_generic_class.  Directly inflate the instance.
4903         [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
4904         (inflate_generic_class): Delete.
4905         (get_shared_generic_class): Delete.  Move setting of
4906         'cached_class' and 'cached_context' ...
4907         * metadata.c (mono_metadata_lookup_generic_class): ... here.
4908
4909         * metadata.c (mono_metadata_lookup_generic_class): Change
4910         signature to take the components of a MonoGenericClass rather than
4911         an allocated MonoGenericClass.  Change semantics to be intern-like.
4912         * reflection.c (mono_class_bind_generic_parameters): Update to
4913         changes.  Make locking region tighter.
4914         * class.c (inflate_generic_class): Update to changes.
4915         (get_shared_generic_class): Likewise.
4916         * metadata-internals.h: Likewise.
4917
4918         * reflection.c (mono_class_bind_generic_parameters): Take and
4919         return a MonoClass*, not a MonoType*.  Add 'is_dynamic' parameter.
4920         (mono_reflection_bind_generic_parameters): Use
4921         'mono_class_bind_generic_parameters' rather than duplicate the code.
4922         * class.c (mono_bounded_array_class_get): Update to changes.
4923         * object-internals.h: Likewise.
4924
4925         * reflection.c (mono_class_bind_generic_parameters): Only support
4926         parameterizing generic type definitions.  Remove support for other
4927         open types.
4928
4929 2007-06-08  Zoltan Varga  <vargaz@gmail.com>
4930
4931         * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
4932
4933         * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
4934         in the dynamic case.
4935
4936 2007-06-08  Gert Driesen  <drieseng@users.sourceforge.net>
4937
4938         * threads.c: When cleaning up thread, reset the Background bit.
4939         Fixes bug #81720.
4940
4941 2007-06-08  Jonathan Chambers  <joncham@gmail.com>
4942
4943        * metadata.c: Move variable declarations to top of scope.
4944        * verify.c: Move variable declarations to top of scope.
4945
4946        Code is contributed under MIT/X11 license.
4947
4948 2007-06-08  Raja R Harinath  <rharinath@novell.com>
4949
4950         * reflection.c (mono_class_bind_generic_parameters): Replace
4951         open-coded loop with mono_metadata_inflate_generic_inst.
4952
4953         * class.c (get_shared_generic_class): Don't call
4954         mono_get_shared_generic_inst.  Use the container's own
4955         'class_inst'.
4956
4957         * metadata.c (mono_metadata_load_generic_params): Move
4958         initialization of 'context' field here from ...
4959         * class.c (mono_class_create_from_typedef): ... here, and ...
4960         * loader.c (mono_get_method_from_token): ... here.
4961
4962         * class.c (get_shared_generic_class): Rename from
4963         mono_get_shared_generic_class and make static.
4964         (mono_get_shared_generic_inst): Move to metadata.c.
4965         * loader.c (mono_get_shared_generic_method): Likewise.
4966         * class-internals.h, metadata-internals.h: Update to changes.
4967
4968         Fix #81830
4969         * class.c (mono_class_from_generic_parameter): Don't assume a
4970         generic container owner exists.  Generic containers from monodis
4971         don't have any.
4972
4973 2007-06-06  Rodrigo Kumpera  <kumpera@gmail.com>
4974
4975         * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
4976         * verify.h: new typedefs to returns the non-verifiable status
4977         * verify.c: initial implementation of generics, stack merging and object compatibility check
4978
4979 2007-06-06  Mark Probst  <mark.probst@gmail.com>
4980
4981         * class.c, image.c, class-internals.h (MonoImage): class_cache is
4982         a MonoInternalHashTable again (fixed bug in internal hash table
4983         code).
4984
4985 2007-06-06  Mark Probst  <mark.probst@gmail.com>
4986
4987         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
4988         MonoInternalHashTable again (fixed bug in internal hash table
4989         code).
4990
4991 2007-06-06  Mark Probst  <mark.probst@gmail.com>
4992
4993         * class.c, image.c, class-internals.h, domain.c,
4994         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
4995         changes.  Have to figure out what makes them break the SWF
4996         regression.
4997
4998 2007-06-04  Mark Probst  <mark.probst@gmail.com>
4999
5000         * class.c, image.c, class-internals.h (MonoImage): class_cache is
5001         a MonoInternalHashTable now.
5002
5003 2007-06-04  Mark Probst  <mark.probst@gmail.com>
5004
5005         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
5006         MonoInternalHashTable now.
5007
5008 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
5009
5010         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
5011         invoke_impl code.
5012
5013         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
5014
5015         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
5016         dependent trampoline.
5017
5018         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5019
5020         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
5021
5022 2007-05-29  Robert Jordan  <robertj@gmx.net>
5023
5024         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
5025
5026 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
5027
5028         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
5029
5030 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
5031
5032        * marshal.c: Fix interface lookup loops for
5033        cominterop_get_com_slot_for_method and 
5034        cominterop_get_method_interface. Only need to lookup
5035        if type is a class, else use interface type method is on.
5036
5037        Code is contributed under MIT/X11 license.
5038
5039 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
5040
5041         * reflection.c: HasSecurity can be present even if no specially 
5042         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
5043         SecurityAttribute). Fix CAS regression tests on buildbot.
5044
5045 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
5046
5047        * appdomain.c: Add configure checks for header files.
5048        * image.c: Add configure checks for header files.
5049        * file-io.c: Add configure checks for header files.
5050        * debug-mono-symfile.c: Add configure checks for header files.
5051        * threadpool.c: Add configure checks for header files.
5052        * console-io.c: Add configure checks for header files.
5053        * profiler.c: Add configure checks for header files.
5054        * rawbuffer.c: Add configure checks for header files.
5055        * icall.c: Add configure checks for header files.
5056        * rand.c: Add configure checks for header files.
5057        * socket-io.c: Add configure checks for header files.
5058
5059        Code is contributed under MIT/X11 license.
5060
5061 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
5062
5063         * reflection.c (mono_custom_attrs_from_builders): Remove the 
5064         assertion as it breaks the build.
5065         
5066         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
5067
5068         * reflection.c (lookup_custom_attr): Make a copy here too.
5069
5070         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
5071         dynamic images.
5072
5073         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
5074         images.
5075
5076         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
5077         info.
5078
5079 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
5080
5081         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
5082         (load_cattr_value): Ditto.
5083
5084 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
5085
5086         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
5087
5088 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
5089
5090         * threads.c: In "start_wrapper", set apartment_state to MTA if
5091         apartment_state is Unknown and we're running on 2.0 profile or
5092         higher.
5093         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
5094         to main method, then set apartment_state to Unknown on 1.0 profile,
5095         and MTA on 2.0 profile.
5096
5097 2007-05-16  Jb Evain  <jb@nurv.fr>
5098
5099         * class-internals.h (MonoDefaults): Add an attribute_class and
5100           customattribute_data_class.
5101         * domain.c (mono_init_internal): Populate them.
5102         * reflection.c: Use them to remove duplicates. Make a vew
5103         MonoClass variables `static'.
5104
5105 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
5106
5107         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
5108         step in implementing IMT, so that all isinst checks now can go
5109         through the bitmap.
5110         This was needed because vtables for TransparentProxy need to look
5111         like the vtable of the "target" class, so they need to point to
5112         its interface bitmap directly.
5113
5114         * object.c: inside "mono_class_create_runtime_vtable" and
5115         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
5116
5117 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
5118
5119         * object-internals.h
5120           culture-info.h : added territory field in MonoCulture and
5121           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
5122         * locales.c : fill territory field above too.
5123         * culture-info-table.h : regenerated.
5124
5125 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
5126
5127         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
5128         Fixes #81599.
5129
5130 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
5131
5132         * object.c: Always initialize apartment, even if 
5133         there is no custom attributes on entry point.
5134         
5135         Code is contributed under MIT/X11 license.
5136
5137 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
5138
5139         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
5140         * metadata.c: If no encoding is set, check for unicode
5141         on class.
5142         
5143         Code is contributed under MIT/X11 license.
5144
5145 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
5146
5147         * threads.c: Handle if mono_thread_current returns NULL 
5148         
5149         Code is contributed under MIT/X11 license.
5150
5151 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
5152
5153         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
5154         in start_wrapper. Added mono_thread_init_apartment_state and
5155         mono_thread_cleanup_apartment_state.
5156         * object.c: Initialize thread apartment state on main thread
5157         by checking for STAThreadAttribute on entry point.
5158         * object-internals.h: Add apartment_state field to MonoThread.
5159         * threads-types.h: Add unmanaged definition of 
5160         System.Threading.ApartmentState, MonoThreadApartmentState.
5161         
5162         Code is contributed under MIT/X11 license.
5163         
5164 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
5165
5166         * class.c: Fix windows build.
5167         * class-internals.h: Fix windows build.
5168         
5169         Code is contributed under MIT/X11 license.
5170
5171 2007-05-08  Robert Jordan  <robertj@gmx.net>
5172
5173         * process.c (CreateProcess_internal):
5174         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
5175         .CreateNoWindow was specified. Fixes #81496.
5176
5177 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
5178
5179         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
5180         step in implementing IMT, replaced it with two compact arrays
5181         (interfaces_packed and interface_offsets_packed) and a bitmap that
5182         is used for isinst checks (interface_bitmap).
5183
5184         * class.c: (compare_interface_ids): compare function to pass to
5185         bsearch when looking for an interface with a given id.
5186         (mono_class_interface_offset): reimplemented using bsearch on
5187         interfaces_packed, getting the offset from interface_offsets_packed.
5188         (print_implemented_interfaces): utility debugging function.
5189         (setup_interface_offsets): reworked to initialize interfaces_packed,
5190         interface_offsets_packed and interface_bitmap.
5191
5192         * object.c: replaced all accesses to "MonoClass.interface_offsets"
5193         with uses of interfaces_packed and interface_offsets_packed.
5194
5195 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
5196
5197         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
5198         mono_class_interface_offset prototype to wrap all accesses to
5199         "MonoClass.interface_offsets".
5200
5201         * class.c: Implemented mono_class_interface_offset, and wrapped all
5202         accesses to "MonoClass.interface_offsets".
5203
5204         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
5205         "MonoClass.interface_offsets".
5206
5207 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
5208
5209         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
5210         GetMethodFromHandle overloads (bug #78637).
5211
5212 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
5213
5214         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
5215         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
5216
5217 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
5218
5219         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
5220         #81498.
5221
5222         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
5223         gracefully.
5224         (mono_custom_attrs_from_index): Ditto.
5225
5226         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
5227         Fixes #81501.
5228
5229 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
5230
5231         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
5232         is now allocated from a mempool.
5233
5234 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
5235
5236         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
5237         caller holds threads_lock, leading to deadlocks. Fixes #81476.
5238
5239 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
5240
5241         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
5242         mono_loader_clear_error () too late. Fixes #81463.
5243
5244 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
5245
5246         * culture-info-table.h : regenerated.
5247
5248 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
5249
5250         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
5251         is missing.
5252
5253 2007-04-25  Dick Porter  <dick@ximian.com>
5254
5255         * Makefile.am: Put the mingw enforced-optimisation back into the
5256         PLATFORM_WIN32 section.
5257
5258 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
5259
5260         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
5261         patch.
5262
5263         * image.c (mono_image_load_module): New API function to load a module reference.
5264
5265         * image.c (load_modules): Load modules lazily. Fixes #80812.
5266
5267         * class.c (mono_class_from_typeref): Use mono_image_load_module.
5268         
5269         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
5270
5271         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
5272         to mono_image_load_module_dynamic.
5273
5274 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
5275
5276         * marshal.c: Fix calling convention for CCW on non-windows
5277         platforms. STDCALL on windows, CDECL everywhere else to work 
5278         with XPCOM and MainWin COM.
5279         
5280         Code is contributed under MIT/X11 license.
5281
5282 2007-04-23  Martin Baulig  <martin@ximian.com>
5283
5284         Fix #80969.
5285
5286         * loader.c
5287         (method_from_memberref): Added `gboolean *used_context' argument.
5288         (mono_get_method_from_token): Likewise.
5289         (mono_get_method_full): Don't insert the method in the cache when
5290         `used_context' is true.
5291
5292 2007-04-23  Raja R Harinath  <rharinath@novell.com>
5293
5294         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
5295
5296         * reflection.c (mono_reflection_bind_generic_parameters): Don't
5297         create new MonoTypes for returned types.
5298         * class.c (mono_generic_class_get_class): Export mono-internal.
5299         * class-internals.h: Update to changes.
5300
5301 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
5302
5303         * threadpool.c, threadpool.h, icall-def.h: patch from
5304         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
5305
5306 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
5307
5308         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
5309         
5310         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
5311
5312         * threads.c (mono_thread_get_stack_bounds): New helper function.
5313
5314         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
5315         Correctly compute stack bounds when attaching. Fixes #81394.
5316
5317 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
5318
5319         * reflection.c: fix handling of doubles in custom attributes
5320         for the arm-fpa format (bug #81368).
5321
5322 2007-04-18  Raja R Harinath  <rharinath@novell.com>
5323
5324         * reflection.c (assembly_add_win32_resources): Mildly relax an
5325         bounds check to let the end pointer point just past the end of the
5326         allocated buffer.  (may fix #81384)
5327
5328 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
5329
5330         * culture-info-table.h : regenerated.
5331
5332 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
5333
5334         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
5335         the thread is aborted early.
5336
5337 2007-04-05  Dick Porter  <dick@ximian.com>
5338
5339         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
5340         FindFirstFile()/FindNextFile() to find entries.  This lets the
5341         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
5342         81038.
5343
5344         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
5345         the parameters of
5346         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
5347
5348 2007-04-04  Martin Baulig  <martin@ximian.com>
5349
5350         * debug-helpers.c
5351         (mono_method_desc_full_match): Add support for nested classes.
5352
5353 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
5354
5355         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
5356
5357 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
5358
5359         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
5360         waiting for too many threads.
5361
5362 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
5363
5364         * environment.c: Fix return value check on uname so we can get the 
5365         executing version on Solaris operating systems.
5366
5367 2007-03-28  Jb Evain  <jbevain@gmail.com>
5368
5369         * class.c (mono_type_get_name_recurse): Complete the
5370         fix for the creation of assembly qualified names for
5371         pointer types. Fixes #81208.
5372
5373 2007-03-27  Dick Porter  <dick@ximian.com>
5374
5375         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
5376         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
5377         changed.
5378
5379         * threads.c
5380         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
5381         the value of ReleaseMutex().
5382
5383 2007-03-27  Dick Porter  <dick@ximian.com>
5384
5385         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
5386         in little-endian order, not network endian, so must be converted
5387         to host endian here.  Fixes bug 80593.
5388
5389 2007-03-22  Jb Evain  <jbevain@gmail.com>
5390
5391         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
5392         qualified names for pointer types. Fixes #81208.
5393
5394 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
5395
5396         * marshal.c: Add support for PreserveSigAttribute. 
5397         
5398         Code is contributed under MIT/X11 license.
5399
5400 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
5401
5402         * process.c: Fix endianness issues. Fixes #81126.
5403
5404         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
5405         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
5406
5407         * image.c (mono_image_lookup_resource): Make this work on big-endian
5408         machines.Change API contract so the caller needs to free the return value.
5409         
5410         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
5411         API change.
5412         
5413 2007-03-14  Martin Baulig  <martin@ximian.com>
5414
5415         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
5416         mono_type_get_desc() as well.
5417
5418 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
5419
5420         * icall.c:  Fix environ access in VS.  
5421         
5422 2007-03-13  Alp Toker  <alp@atoker.com>
5423
5424         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
5425         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
5426         #63841.
5427
5428 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
5429
5430         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
5431         circular references among dynamic methods. Fixes #81091.
5432
5433         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
5434
5435 2007-03-09  Martin Baulig  <martin@ximian.com>
5436
5437         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
5438
5439 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
5440
5441         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
5442         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
5443         
5444         Code is contributed under MIT/X11 license.
5445         
5446 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
5447
5448         * loader.c: Reapply patch for bug #79424.
5449
5450 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
5451
5452         * metadata.c (mono_type_to_unmanaged): Only convert object to
5453         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
5454
5455 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
5456
5457         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
5458         (and incorrectly set) is_reference field from MonoGenericInst.
5459
5460 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
5461
5462         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
5463         a little earlier.
5464
5465         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
5466
5467         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
5468
5469 2007-03-05  Miguel de Icaza  <miguel@novell.com>
5470
5471         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
5472         FileOptions.1 value to mean "temporary", map that to
5473         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
5474
5475         Fixes 80688
5476
5477 2007-03-03  Marek Habersack  <mhabersack@novell.com>
5478
5479         * appdomain.c: implement MS .Net style shadow copying. Copies of
5480         the assemblies are made in a subdirectory of the dynamic base
5481         directory, the assembly names are preserved.
5482         Copy .mdb and .config files along with the assemblies being shadowed.
5483
5484 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
5485
5486         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
5487         (emit_marshal_handleref): Ditto.
5488
5489         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
5490         on Visual C++. Fixes #80671.
5491
5492 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
5493
5494         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
5495         for clone operations.
5496
5497 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
5498
5499         * marshal.c: Fix warnings.
5500
5501 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
5502
5503         * loader.c: allow case-insensitive matching of the dll name
5504         in dllmap handling when prefixed with "i:".
5505
5506 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
5507
5508         * threads.c: Fix #ifdef for dummy_apc function for VS.
5509
5510 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
5511
5512         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
5513
5514 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
5515         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
5516         giving precedence to the methods with a fully qualified name
5517         (InterfaceName.MethodName) when building the interface sections
5518         of the vtable.
5519
5520 2007-02-16  Dick Porter  <dick@ximian.com>
5521
5522         * threadpool.c (append_job): Fix fast-path array handling, so it's
5523         less likely the array will grow exponentially when the load is
5524         heavy.
5525
5526 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
5527
5528         * metadata-internals.h, loader.c: fix dllmap lookup order
5529         for non-function maps, too, and prepare for fallback code.
5530
5531 2007-02-12  Robert Jordan  <robertj@gmx.net>
5532
5533         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
5534         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
5535         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
5536         GlobalFree. Fixes a part of bug #77075.
5537
5538 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
5539
5540         * loader.c: implemented typedef parent in field memberref.
5541
5542 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
5543
5544         * marshal.c: Fix warnings and remember to call Release on
5545         IUnknown of RCW.
5546         
5547         Code is contributed under MIT/X11 license.
5548
5549 2007-02-10  Miguel de Icaza  <miguel@novell.com>
5550
5551         * class-internals.h: Add MonoHandleRef definition, and
5552         handleref_class to mono_defaults. 
5553
5554         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
5555         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
5556
5557         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
5558         (do nothing on this stage)
5559         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
5560         (emit_marshal_handleref): New method, used for argument handling
5561         of HandleRefs. 
5562
5563 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
5564
5565         * class.c (mono_class_setup_parent): Lazily init com types.
5566         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
5567         init com types.
5568         * object.c (mono_remote_class_vtable): Lazily init com types.
5569         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
5570         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
5571         * domain-internals.h: Expose mono_init_com_types.
5572         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
5573         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
5574         Add support for COM Callable Wrapper marshalling.
5575         * marshal.h: Add icall definitions.
5576         * gc.c: Handle freeing of CCWs in finalizer code.
5577         
5578         Code is contributed under MIT/X11 license.
5579
5580 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
5581
5582         * reflection.c: changed all the signature encoding code to use
5583         a variable-sized buffer.
5584
5585 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
5586
5587         * marshal.c: locking fixes: never take the loader lock
5588         or other runtime locks when holding the marshal lock
5589         (fixes bug#80664).
5590
5591 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
5592
5593         * marshal.c: make the delegate function pointer mapping
5594         work for the moving GC.
5595
5596 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
5597
5598         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
5599         for bug #80618.
5600
5601 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
5602
5603         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
5604         gmodule.
5605
5606 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
5607
5608         * threadpool.c: made the code moving-GC safe.
5609
5610 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
5611
5612         * assembly.c, boehm-gc.c, class-internals.h, class.c,
5613         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
5614         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
5615         warning cleanup.
5616         * reflection.c: warning cleanup, some threading and moving GC fixes.
5617
5618 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
5619
5620         * class.c, loader.c: create the needed Set/Get/Address array methods
5621         as well as the .ctors in mono_class_init (), fixes bug #80567.
5622
5623 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
5624
5625         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
5626         we doesn't decrease its alignment. Should fix the sparc build.
5627
5628 2007-01-24  Dick Porter  <dick@ximian.com>
5629
5630         * socket-io.c
5631         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
5632         Create the returned object if we need to ignore an unsupported
5633         socket option.  Fixes a segfault reported by Atsushi.
5634
5635 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
5636
5637         * class.c, object.c: restrict GC-tracked fields to
5638         UIntPtr fields used inside corlib, so we provide better
5639         type info to the GC and also allow broken packing as in
5640         bug #80580.
5641
5642 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
5643
5644         * sgen-gc.c: removed duplicated function.
5645
5646 2007-01-19  Miguel de Icaza  <miguel@novell.com>
5647
5648         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
5649         value that means that the value is not supported, but that we
5650         should not return a failure, but instead report this as a
5651         successful operation.
5652
5653 2007-01-19  Raja R Harinath  <rharinath@novell.com>
5654
5655         Fix tests/bug79956.2.il
5656         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
5657         (mono_generic_class_get_class): If the generic definition in an
5658         enum, copy over other fields related to it.
5659
5660 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
5661
5662         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
5663         genericinst enums (bug #79215).
5664
5665 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
5666         * class.c: Fix bug 80307.
5667
5668 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
5669
5670         * image.c: if the file table is not present, try to load
5671         all the modules, since we don't have info about them
5672         having or not metadata (bug #80517).
5673         * assembly.c: allow mono_assembly_load_references () to
5674         work for netmodules.
5675
5676 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
5677
5678         * image.c, metadata-internals.h, object.c: execute module
5679         cctors when running on the 2 runtime if present (bug #80487).
5680
5681 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
5682
5683         * icall.c: optimized InitializeArray() on bigendian.
5684
5685 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
5686
5687         * icall.c: fix for the broken ARM FPA double format.
5688
5689 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
5690
5691         * icall.c: handle endian issues for r4 and r8 types, too, in
5692         the InitializeArray() icall.
5693
5694 2007-01-15  Miguel de Icaza  <miguel@novell.com>
5695
5696         * loader.c (mono_loader_error_prepare_exception): Clear the error
5697         once we have extracted the information from it, do this before we
5698         call into the JIT's class loading mechanisms.
5699
5700         * object.c (mono_class_create_runtime_vtable): Do not clear the
5701         loader error before calling mono_class_get_exception_for_failure
5702         as the loader error is needed inside
5703         mono_class_get_exception_for_failure to throw the error (thinko).
5704
5705         Fixes #80521
5706         
5707 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
5708
5709         * reflection.c: align fields rva data so it's faster to load at
5710         runtime.
5711
5712 2007-01-12  Raja R Harinath  <rharinath@novell.com>
5713
5714         Prepare to simplify GenericMethod handling.
5715         * class-internals.h (mono_method_get_context): New accessor function.
5716         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
5717         rather than directly accessing '->context' field.
5718
5719         * class-internals.h (_MonoGenericParam.method): Move ...
5720         (_MonoGenericContainer): ... here.  Add into union with klass field.
5721         * class.c, icall.c, loader.c, metadata.c, reflection.c:
5722         Update to changes.
5723
5724 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
5725
5726         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
5727         the wrapper type enum and reduce relocations.
5728
5729 2007-01-12  Raja R Harinath  <rharinath@novell.com>
5730
5731         * reflection.c (inflate_mono_method): Reuse method instantiation
5732         from the generic method, if available.
5733
5734 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
5735
5736         * marshal.c (emit_marshal_variant): Fix conv_arg
5737         type in last commit, based on whether parameter is byref.
5738         
5739 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
5740
5741         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
5742         marshalling.
5743         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
5744         MONO_TYPE_OBJECT back for VARIANT support.
5745
5746 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
5747
5748         * marshal.c, marshal.h, icall-def.h: Implement 
5749         Marshal.ReAllocCoTaskMem.
5750
5751 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
5752
5753         * marshal.c: memory retention fixes: use the proper
5754         image cache for runtime_invoke method lookups.
5755
5756 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
5757
5758         * mempool.c: added code to help debug mempool allocations.
5759
5760 2007-01-11  Dick Porter  <dick@ximian.com>
5761
5762         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
5763         support (experimenting with faking it with IP_MTU_DISCOVER for
5764         systems that don't have IP_DONTFRAGMENT.)
5765         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
5766         icall.
5767
5768         * icall-def.h: new System.Net.Sockets.Disconnect icall.
5769
5770         * socket-io.h: Add new fields to MonoSocketAsyncResult
5771         corresponding to the new ones in Socket.cs.
5772
5773 2007-01-11  Raja R Harinath  <rharinath@novell.com>
5774
5775         Fix IronPython regression mentioned in #80249
5776         * metadata.c (do_mono_metadata_parse_generic_class): Clear
5777         'cached_context' field, since it may have been initialized as a
5778         side-effect of metadata parsing.
5779
5780         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
5781         (_MonoGenericClass.cached_class): Move here and rename from lone
5782         remaining field of ...
5783         (_MonoInflatedGenericClass): ... this.  Remove.
5784         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
5785         to changes.
5786
5787         Fix mcs/tests/test-128.cs regression.
5788         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
5789         2007-01-10 change below.
5790         [MONO_TYPE_OBJECT]: Recurse into array case.
5791
5792 2007-01-11  Raja R Harinath  <harinath@gmail.com>
5793
5794         * class-internals.h (mono_get_inflated_generic_class): Remove.
5795         * class.c (mono_get_inflated_generic_class): Remove.
5796         (mono_generic_class_get_class): Rename from
5797         mono_class_create_generic.
5798         (mono_class_from_mono_type) [GENERICINST]: Use it.
5799         * reflection.c, metadata.c: Update to changes.  Use
5800         'mono_class_from_mono_type'.
5801
5802 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
5803
5804         * reflection.c: use passed type when encoding an array element
5805         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
5806
5807 2007-01-09  Robert Jordan  <robertj@gmx.net>
5808
5809         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
5810         result arguments (someDelegate.EndInvoke (unrelatedAres)).
5811         Fixes bug #80392.
5812
5813 2007-01-09  Raja R Harinath  <rharinath@novell.com>
5814
5815         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
5816
5817         * object.c (set_value): Avoid aliasing between type->data.klass
5818         and type->data.generic_class.
5819
5820         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
5821
5822 2007-01-08  Raja R Harinath  <rharinath@novell.com>
5823
5824         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
5825         between type->data.klass and type->data.generic_class.
5826
5827 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
5828
5829         * marshal.c: In MS.NET, StringBuilder objects are not copied by
5830         value in out parameters.
5831
5832 2007-01-08  Raja R Harinath  <rharinath@novell.com>
5833
5834         Simplify invariant for MonoGenericClass::klass field.
5835         * class.c (mono_class_create_generic): Verify 'klass' is null.
5836         * metadata.c (do_mono_metadata_parse_generic_class): Don't
5837         initialize 'klass' field.
5838
5839 2007-01-05  Raja R Harinath  <rharinath@novell.com>
5840
5841         Ongoing work to avoid redundant data and simplify invariants.
5842         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
5843         'generic_class', and change type to a GenericInst.
5844         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
5845         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
5846
5847 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
5848
5849         * class.c : skip io-layer under PLATFORM_WIN32.
5850
5851 2007-01-03  Tor Lillqvist  <tml@novell.com>
5852
5853         Fix #80305: In a bundled executable, look in the bundled exe
5854         assembly to determine the runtime version. Add the possibility to
5855         bundle also the machine.config file.
5856         
5857         * assembly.c (mono_assembly_open_from_bundle): Make
5858         non-static. Allow being called even if we have no bundled
5859         assemblies, and return NULL right away in that case.
5860
5861         * domain-internals.h: Declare mono_assembly_open_from_bundle()
5862         here.
5863
5864         * domain.c (app_config_parse): Take an assembly exe file name as
5865         parameter instead of a config file name. Check for a bundled
5866         config file for that assembly by calling
5867         mono_config_string_for_assembly_file() (see below) before looking
5868         for one in the file system.
5869         (get_runtimes_from_exe): Corrsponding change to call of
5870         app_config_parse().
5871         (get_runtimes_from_exe): Check for bundled assembly exe file first
5872         by calling mono_assembly_open_from_bundle(). If no bundled
5873         assembly exe file is found, call mono_image_open() as before to
5874         look it up in the file system.
5875
5876         * mono-config.c: Add variable bundled_machinec_onfig.
5877         (mono_config_string_for_assembly_file): New function.
5878         (mono_config_for_assembly): Move code snippet that looks for a
5879         bundled assembly .config file into the above new function. Call
5880         it.
5881         (mono_register_machine_config, mono_get_machine_config): New
5882         functions to set and retrieve
5883
5884         * assembly.h: Declare mono_register_machine_config().
5885
5886         * mono-config.h: Declare mono_get_machine_config() and
5887         mono_config_string_for_assembly_file().
5888
5889         * icall.c: No declaration of environ necessary on Win32. It is
5890         declared (as a macro expanding to a function call) in stdlib.h.
5891         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
5892         New internal mono function. Returns the value of
5893         mono_get_machine_config() as a Mono string.
5894
5895         * icall-def.h: Add get_bundled_machine_config().
5896
5897 2007-01-04  Raja R Harinath  <rharinath@novell.com>
5898
5899         Remove redundant field
5900         * class-internals.h (_MonoGenericContext.container): Remove field.
5901         * loader.c (mono_method_get_signature_full): Don't parse a
5902         "container" for a signature parse when the signature is inflated
5903         immediately.
5904         (method_from_methodspec): Likewise, for a generic_inst.
5905         * class.c, metadata.c, reflection.c: Update to changes.
5906
5907 2006-01-04  Raja R Harinath  <rharinath@novell.com>
5908
5909         * class-internals.h (_MonoGenericClass): Rename 'context' field to
5910         'cached_context', and change semantics -- it starts off NULL, and
5911         is initialized on demand.
5912         * class.c (mono_generic_class_get_context): New accessor to
5913         replace 'context' field accesses.
5914         (mono_class_get_context): New helper.
5915         (*): Update to changes.
5916         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
5917
5918 2007-01-03  Miguel de Icaza  <miguel@novell.com>
5919
5920         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
5921         before the memcpy.   Fixes Marshal2 regression.
5922
5923 2007-01-02  Jb Evain  <jbevain@gmail.com>
5924
5925         * blob.h: add a MONO_TYPE_ENUM definition
5926         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
5927         fix the encoding of arrays of enums in custom attributes.
5928
5929         Fixes #79666.
5930
5931 2007-01-01  Miguel de Icaza  <miguel@novell.com>
5932
5933         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
5934         string is null terminated, but only cut the string short if it
5935         overflows the buffer.   
5936         
5937         (mono_string_to_byvalstr): Also fix this routine.   The code here
5938         was not properly terminating a string (it was only terminated
5939         because of the previous catch-all memset). 
5940
5941         I left the memset, because I do not know if applications expect
5942         the runtime to clear this region. 
5943
5944         Fixes #79944.
5945
5946         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
5947         Clear the error before returning to unmanaged code to prevent the
5948         runtime from being confused later on (fixes  80420).
5949         (ves_icall_type_from_name): Always call mono_loader_clear_error
5950         after parsing a type that could have failed.
5951         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
5952
5953         * loader.c (mono_loader_clear_error): Fix indentation.
5954
5955 2006-12-28  Martin Baulig  <martin@ximian.com>
5956
5957         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
5958
5959 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
5960
5961         * reflection.c: patch from Rolf Bjarne Kvinge to fix
5962         getting a token for an EnumBuilder.
5963
5964 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
5965
5966         * reflection.c: be more careful in case resource generation
5967         fails to create the data array.
5968
5969 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
5970
5971         * sgen-gc.c: write barrier for clone and fix unregister handles.
5972
5973 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
5974
5975         * reflection.c: some fixes needed in the generics code for the moving GC.
5976
5977 2006-12-22  Robert Jordan  <robertj@gmx.net>
5978
5979         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
5980         account. Fixes bug #80299.
5981
5982 2006-12-21  Raja R Harinath  <rharinath@novell.com>
5983
5984         Fix WaitHandle usage in delegates.
5985         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
5986         * object.c (mono_wait_handle_new): Use the property set method to
5987         initialize the handle.
5988         (mono_wait_handle_get_handle): New.
5989         * threadpool.c (mono_async_invoke): Use it.
5990         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
5991         Likewise.
5992         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
5993
5994 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
5995
5996         * marshal.c (emit_marshal): Call emit_marshal_variant and
5997         emit_marshal_com_interface when applicable.
5998         (emit_marshal_variant, emit_marshal_com_interface): Add
5999         methods for this case and remove if's from emit_marshal_object.
6000         
6001 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
6002
6003         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
6004
6005 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
6006
6007         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
6008         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
6009         and GlobalFree on Windows. Remove FIXME.
6010
6011 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
6012
6013         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
6014         implementation for managed objects.
6015
6016 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
6017
6018         * object.c: implemented code to be used for checking
6019         that no reference field overlaps with non-references.
6020
6021 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
6022
6023         * threadpool.c: fix queue code to be compatible with the
6024         moving GC.
6025
6026 2006-12-18  Miguel de Icaza  <miguel@novell.com>
6027
6028         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
6029         in structures by throwing ArgumentNullException.
6030
6031         (emit_marshal_safehandle): Also when they are null parameters.
6032
6033         (emit_marshal_safehandle): Add support for ref
6034         SafeHandles parameters
6035
6036 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
6037
6038         * profiler.c: updated to use the mono-dl API instead of
6039         gmodule.
6040
6041 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
6042
6043         * profiler.c: updated to use the mono-dl dynamic loading
6044         API instead of gmodule.
6045
6046 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
6047
6048         * profiler.c: use readlink, older versions of glib don't have
6049         g_file_read_link ().
6050
6051 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
6052
6053         * profiler.c: try to detect the path to mono if libc fails to provide
6054         a useful name (bug #80286).
6055
6056 2006-12-16  Raja R Harinath  <rharinath@novell.com>
6057
6058         Fix #80242
6059         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
6060         instance, use the generic type definition instead.
6061         (ves_icall_Type_GetNestedTypes): Likewise.
6062         * class.c (mono_class_create_generic): Always set the
6063         nested_classes of a generic instance to NULL, even if the generic
6064         type definition has nested types.
6065
6066 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
6067
6068         * marshal.c (mono_string_from_bstr): Revert previous Windows change
6069         and fix on Linux.
6070         
6071 2006-12-15  Miguel de Icaza  <miguel@novell.com>
6072
6073         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
6074         my arguments were in the wrong order.   I also fixed the Windows
6075         version which seems to have had the same issue.
6076
6077         (mono_free_bstr): On Unix, this is g_free.
6078         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
6079         conversions (for the tests in corlib to pass).
6080
6081 2006-12-14  Miguel de Icaza  <miguel@novell.com>
6082
6083         * marshal.c (emit_ptr_to_object_conv): For now, ignore
6084         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
6085         exception if a ref SafeHandle in a struct has changed).
6086         
6087         (emit_struct_conv): Do not perform layout checks for classes
6088         derived from SafeHandle, as those are specially handled. 
6089
6090         (emit_object_to_ptr_conv): Add support for
6091         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
6092
6093         (emit_marshal_safehandle): Implement conversion of return values
6094         of safehandles (MARSHAL_ACTION_CONV_RESULT).
6095         
6096         * threads.c: WaitHandle now is compiled with two different handles
6097         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
6098         for 2.0.
6099         
6100         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
6101         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
6102         these routines to cope with both kinds of fields.
6103
6104 2006-12-12  Miguel de Icaza  <miguel@novell.com>
6105
6106         * metadata.c (mono_type_to_unmanaged): Handle the case where
6107         type->data.klass is a SafeHandle, and in that case, return the
6108         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
6109         MONO_MARSHAL_CONV_SAFEHANDLE. 
6110
6111 2006-12-11  Miguel de Icaza  <miguel@novell.com>
6112
6113         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
6114         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
6115         calling emit_marshal_object.
6116
6117         (emit_marshal_safehandle): Implement marshalling of
6118         SafeHandle parameters (no ref support yet).
6119
6120         (MarshalAction): Document the defines as I implement
6121         them for SafeHandle.
6122
6123         (emit_marshal_object): indentation police.
6124
6125         * class-internals.h: Define MonoSafeHandle.
6126         Add safehandle_class to MonoDefaults type.
6127
6128         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
6129         list of classes to check for fields. 
6130
6131         * domain.c (mono_init_internal): Add SafeHandle to the list of
6132         mono_defaults loaded.
6133
6134 2006-12-15  Raja R Harinath  <rharinath@novell.com>
6135
6136         Fix #80253
6137         * reflection.c (mono_reflection_bind_generic_parameters): If the
6138         generic type definition is a type builder, ensure that it is fully
6139         initialized before instantiating it.  Kill some dead code.
6140
6141 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
6142
6143         * object.c: clear the loader_error () before loading
6144         more metadata stuff (bug #80258).
6145
6146 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
6147
6148         * icall.c, icall-defs.h: type modifiers icalls for
6149         parameters and properties.
6150
6151 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
6152
6153         * object.c, icall.c: fixed warnings.
6154
6155 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
6156
6157         * marshal.c: fixed a couple of leaks and coding style in a few places.
6158
6159 2006-12-08  Dick Porter  <dick@ximian.com>
6160
6161         * process.c: Cope with NULL ProcessStartInfo arguments on windows
6162         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
6163         80173.
6164
6165 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
6166
6167         * process.c: ProcessStartInfo may have only filename set and
6168         arguments can be NULL.
6169
6170 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
6171
6172         * icall.c: fix leak found by Robert Jordan.
6173
6174 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
6175
6176         * marshal.c, marshal.h: generate managed method to access an element
6177         of a multi-dimensional array.
6178
6179 2006-11-30  Paolo Molaro (lupus@ximian.com)
6180
6181         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
6182
6183 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
6184
6185         * icall.c: back out GetFields () fix until the serialization code is
6186         fixed to not depend on the incorrect behaviour.
6187
6188 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
6189
6190         * profiler.c: provide defaults if none are set.
6191
6192 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
6193
6194         * Makefile.am, attrdefs.h: new public header file with
6195         constants for attributes for use by embedders.
6196
6197 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
6198
6199         * icall.c: GetFields () fix for bug #80064.
6200
6201 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
6202
6203         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
6204         removed long unused icalls.
6205
6206 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
6207   
6208         * marshal.c: 
6209                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
6210                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
6211                 can be generated without a delegate class.
6212                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
6213         
6214         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
6215
6216 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6217
6218         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
6219         #80069.
6220
6221 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
6222
6223         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
6224         icall-def.h: added icalls needed by System.GC.
6225
6226 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
6227
6228         * loader.c: ensure the class in catch clauses is handled
6229         correctly for generics methods (fixes bug#79980).
6230
6231 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
6232
6233         * monitor.h, monitor.c: added mono_locks_dump () function
6234         to help debug deadlocks involving managed locks.
6235
6236 2006-11-13  Dick Porter  <dick@ximian.com>
6237
6238         * file-io.c (get_file_attributes): If the file is a symlink try
6239         and get the stat data for the target, but also add the
6240         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
6241         the specs for the windows symlink support, but will probably have
6242         to be reworked when I have test data from a vista machine.  Fixes
6243         bug 79887.
6244
6245 2006-11-13  Dick Porter  <dick@ximian.com>
6246
6247         * gc.c (mono_domain_finalize): 
6248         * marshal.c (mono_delegate_begin_invoke): 
6249         * threadpool.c (socket_io_init, mono_thread_pool_init)
6250         (mono_thread_pool_finish): 
6251         * monitor.c (mono_monitor_try_enter_internal): 
6252         * threads.c (mono_thread_resume, mono_thread_init)
6253         (mono_thread_suspend_all_other_threads)
6254         (mono_thread_execute_interruption): 
6255         * appdomain.c (mono_domain_unload): Check for NULL error returns
6256         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
6257         75733.
6258
6259 2006-11-11  Miguel de Icaza  <miguel@novell.com>
6260
6261         * process.c
6262         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
6263         Only close the handle if the value of the handle is not
6264         INVALID_HANDLE_VALUE.  This just makes the process a bit more
6265         robust.
6266
6267         Improvement for #75733, so that we do not run into this problem. 
6268
6269         
6270         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
6271         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
6272         internal variables.  Fixes #79462 
6273         
6274
6275 2006-11-09  Dick Porter  <dick@ximian.com>
6276
6277         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
6278         Use poll() not select().  Fixes bug 79397.
6279
6280 2006-11-09  Raja R Harinath  <rharinath@novell.com>
6281
6282         Fix #79872
6283         * assembly.c (mono_assembly_load_from_full): Check that the given
6284         image has an assembly manifest.
6285
6286 2006-11-09  Ankit Jain  <jankit@novell.com>
6287
6288         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
6289         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
6290         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
6291
6292 2006-11-07  Dick Porter  <dick@ximian.com>
6293
6294         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
6295         Put the old resolver behaviour back for pre-2.0 profiles.
6296
6297 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
6298
6299         * threadpool.c: precise GC and locking fixes.
6300
6301 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
6302
6303         * class.c: don't load types that have an explicit unaligned
6304         managed reference. Provide better info in the TypeLoad exception.
6305         Part of the fix for bug #79744.
6306         * object.c: use the correct check for class type load issues.
6307
6308 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
6309
6310         * class.c: enforce alignment of fields with managed references
6311         even when Pack=1 is forced by the user (bug #77788).
6312
6313 2006-11-03  Dick Porter  <dick@ximian.com>
6314
6315         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
6316         If the address reverse lookup fails, return it as the hostname
6317         anyway.  Fixes bug 79721.
6318
6319 2006-11-03  Dick Porter  <dick@ximian.com>
6320
6321         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
6322         Fix build on Windows.
6323
6324 2006-11-02  Dick Porter  <dick@ximian.com>
6325
6326         * icall-def.h: 
6327         * object-internals.h: 
6328         * exception.c (mono_get_exception_thread_interrupted): 
6329         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
6330         Fixes bug 74525.
6331
6332         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
6333         Check for pending Thread.Interrupt.
6334
6335 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
6336         * loader.c: Fixed bug 79684.
6337
6338 2006-10-27  Dick Porter  <dick@ximian.com>
6339
6340         * file-io.c (get_file_attributes): Force symlinks to directories
6341         to be returned as a regular file.  Fixes bug 79733.
6342 2006-10-26  Dick Porter  <dick@ximian.com>
6343
6344         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
6345         CreateFile to open a directory then we need to set the
6346         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
6347
6348 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
6349
6350         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
6351         friends.
6352
6353 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
6354
6355         * sgengc.c: small cleanup of timer code.
6356
6357 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
6358
6359         * sgen-gc.c: fix some warnings and start adding support for
6360         complete object removal on domain unload.
6361
6362 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
6363
6364         * assembly.c: build_assembly_name should not consider a version
6365         number without build or revision number invalid. Fixes bug #79715.
6366
6367 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
6368
6369         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
6370         call kernel32 function OutputDebugString directly.
6371         
6372         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
6373         
6374 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
6375
6376         * reflection.c: small cleanup, using a function to insert a MonoString
6377         in the string heap.
6378
6379 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
6380
6381         * reflection.c: moving GC fixes.
6382
6383 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
6384
6385         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
6386         all the objects with finalizers belonging to an unloading appdomain.
6387
6388 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
6389
6390         * sgen-gc.c: added ability to allocate even when the nursery is fully
6391         pinned and fixed a couple of bugs.
6392
6393 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
6394
6395         * threads.h: Revert the last change for now.
6396
6397         * threads.h (mono_thread_get_pending_exception): Rename this to
6398         mono_thread_get_undeniable_exception ().
6399
6400 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
6401
6402         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
6403         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
6404         when fname does not refer to valid assembly. This result in a more
6405         meaningful error message.
6406         * exception.c: added mono_get_exception_bad_image_format2 which 
6407         constructs a BadImageFormatException using the ctor taking a custom
6408         message and the file name. Passing in a NULL msg results in a default
6409         message.
6410         * exception.h: define mono_get_exception_bad_image_format2 function.
6411         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
6412         when file name pointed to an invalid IL image. Use 
6413         mono_get_exception_file_not_found2 to construct FileNotFoundException,
6414         as this results in a more meaningful error message.
6415
6416 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
6417
6418         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
6419         #79465.
6420
6421 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
6422
6423         * metadata.c (mono_type_size): Change the align parameter to guint32 for
6424         consistency with the other _size functions.
6425         (mono_type_stack_size): Ditto.
6426
6427         * class.c object.c icall.c: Fix warnings caused by the above change.
6428
6429         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
6430
6431         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
6432
6433         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
6434
6435 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
6436
6437         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
6438         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
6439         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
6440         threadpool.h, threads-types.h: mark more internal functions.
6441
6442 2006-10-11  Dick Porter  <dick@ximian.com>
6443
6444         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
6445         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
6446         reproduce the bug even before applying the fix.)
6447
6448 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
6449
6450         * reflection.c: allow retrieving attributes for arguments in generic
6451         methods (bug #79241).
6452
6453 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
6454
6455         * debug-mono-symfile.c: properly check fopen () result (found by
6456         coverity).
6457
6458 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
6459
6460         * reflection.c: make error message clearer and fixed two
6461         issuelets found by Coverity.
6462
6463 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
6464
6465         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
6466
6467 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
6468
6469         * object-internals.h, gc-internal.h, profiler-private.h:
6470         mark internal functions.
6471
6472 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
6473
6474         * reflection.c: put data in the text section.
6475         * icall.c: recognize more types in type_from_typename ().
6476         * process.c, marshal.c: added some GC FIXMEs.
6477
6478 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
6479
6480         * loader.c: check for NULL before initializing.
6481
6482 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
6483
6484         * gc.c (finalizer_thread): Use a non-alertable wait here.
6485
6486         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
6487         until the correct solution is found.
6488
6489 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
6490
6491         * reflection.c (mono_module_get_object): Avoid an assert when operating on
6492         modules with no metadata. Fixes #79596.
6493
6494         * image.c (load_metadata_ptrs): Put back the error message when
6495         the #- heap is encountered since the support is not complete yet.
6496
6497 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
6498
6499         * gc.c: do not allow the user to SuppressFinalize () a
6500         delegate because it would leak the trampoline if present.
6501
6502 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
6503
6504         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
6505         PropertyPtr table.
6506
6507 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
6508
6509         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
6510
6511         * metadata.c (mono_metadata_get_param_attrs): Ditto.
6512
6513         * row-indexes.h: Add definitions for *Ptr tables.
6514
6515         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
6516
6517         * metadata.c (mono_metadata_translate_token_index): New helper function to
6518         translate table indexes used in uncompressed metadata.
6519         (mono_metadata_decode_table_row): Ditto.
6520         (mono_metadata_decode_table_row_col): Ditto.
6521
6522         * metadata.c: Add table schema for *Ptr tables.
6523
6524         * class.c loader.c: Use the new helper function to access the affected metadata
6525         tables.
6526         
6527         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
6528         #38532.
6529         
6530 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
6531
6532         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
6533         sequences which can be unbounded in size. Fixes #79583.
6534
6535 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
6536
6537         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
6538         static initialization.
6539
6540         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
6541
6542         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
6543
6544         * domain.c (mono_domain_free): Free up type_init_exception_hash.
6545
6546         * object.c (mono_runtime_class_init): Implement correct semantics when a static
6547         ctor fails, i.e. throw the same exception on subsequent accesses.
6548         
6549 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
6550
6551         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
6552         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
6553         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
6554         Handle marshalling of interfaces and VARIANTs contained in structs.
6555         
6556         Code is contributed under MIT/X11 license.
6557         
6558 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
6559
6560         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
6561         
6562         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
6563         mempool.
6564
6565 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6566
6567         * console-io.c: ignore previous SIGINT handler.
6568
6569 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
6570
6571         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
6572         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
6573         #79460, #79461, #79485.
6574
6575         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
6576
6577         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
6578         #79217.
6579
6580 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
6581
6582         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
6583         could be generated from it.
6584
6585 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
6586
6587         * rand.c: fix read loop to correctly handle EINTR.
6588
6589 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
6590
6591         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
6592         internal calls are defined to keep methods closer to the declaring
6593         type and allow a significant reduction in runtime relocations and
6594         memory usage.
6595
6596 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
6597
6598         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
6599         exception message to have FileNotFoundException use the default
6600         assembly load error message. Fixes bug #79426.
6601         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
6602
6603 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6604
6605         * threadpool.c: (start_thread_or_queue) use the root domain when
6606         creating the thread instead of the async object one.
6607
6608 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
6609
6610         * class.c, object.c, class-internals.h, reflection.c:
6611         for arrays, store element_size inside MonoClass (speedup
6612         for array object creation).
6613
6614 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
6615
6616         * icall.c: fixed CodeBase to use the file name and not the module
6617         name (bug #79365).
6618
6619 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
6620
6621         * mono-debug.c, mono-debug.h: export find_method as
6622         mono_debug_find_method ().
6623
6624 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
6625
6626         * debug-helpers.c, class-internals.h: added a few functions useful
6627         when debugging under gdb.
6628
6629 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6630
6631         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
6632         characters that need special handling.
6633
6634 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
6635
6636         * mono-config.c: make the os/cpu specification more flexible,
6637         allowing lists and negation.
6638
6639 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
6640
6641         * marshal.c: COM Interop fixes. Handle case where method->klass.
6642         is interface. Handle BSTR/MonoString when null. Use CDECL as 
6643         calling convention on non-windows platforms. This is for
6644         compatibility with XPCOM and MainWin COM.
6645         
6646         Code is contributed under MIT/X11 license.
6647         
6648
6649 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
6650
6651         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
6652         correctly. Fixes #79217.
6653
6654         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
6655
6656 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
6657
6658         * mono-config.c: allow both an os and cpu attribute for dllmap
6659         and dllentry elemnets to enable a single config file to be used
6660         for multiple architectures.
6661
6662 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
6663
6664         * loader.c: MonoLoaderError was cleared too soon on load failure.
6665         Fixes bug #79424.
6666
6667 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
6668
6669         * icall.c: use the defining class vtable when accessing a
6670         static field, not a pobblibly derived class.
6671
6672 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
6673
6674         * icall.c string-icalls.c: Remove references to unicode.h.
6675
6676         * unicode.h unicode.c Makefile.am: Remove these unused source files.
6677
6678         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
6679
6680         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
6681         indicating the image where custom marshaller types should be looked up.
6682         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
6683         custom marshallers, instead of corlib. Fixes #79425.
6684
6685 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
6686
6687         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
6688
6689 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
6690
6691         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
6692         Implement Environment.ProcessorCount.
6693         
6694         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
6695         Implement Environment.ProcessorCount.
6696         
6697         * icall.c: 
6698         Add Environment.ProcessorCount icall.
6699         
6700         Patch by Jason McFall.
6701
6702 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6703
6704         * assembly.c: don't append .exe/.dll when the filename already contains
6705         one of those extensions.
6706
6707 2006-09-12  Martin Baulig  <martin@ximian.com>
6708
6709         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
6710         to array interfaces.
6711
6712 2006-09-11  Martin Baulig  <martin@ximian.com>
6713
6714         * reflection.c (mono_image_build_metadata): Create the
6715         MethodImpl's after emitting all types and methods, so we don't
6716         need another fixup pass for them.
6717
6718 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
6719
6720         * class.c (mono_class_from_name_case): Fix regression introduced by the last
6721         change.
6722
6723 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
6724
6725         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
6726         unload.
6727
6728 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
6729
6730         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
6731         args is not set. Fixes #78926.
6732
6733 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
6734
6735         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
6736
6737         * image.c (load_class_names): Move this to class.c, and rename it to 
6738         'mono_image_init_name_cache'.
6739         (load_modules): Fix a warning.
6740
6741         * class.c icall.c image.c: Initialize image->name_cache lazily.
6742
6743         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
6744         on its name using information in the AOT file.
6745
6746         * class.c (mono_class_from_name): Use the new hook function.
6747
6748 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
6749
6750         * reflection.c (mono_param_get_objects): Handle enum default parameter values
6751         correctly.
6752
6753         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
6754         Fixes #79289.
6755         
6756 2006-09-06  Martin Baulig  <martin@ximian.com>
6757
6758         * icall.c (mono_lookup_internal_call): Small fix.
6759
6760 2006-09-05  Raja R Harinath  <rharinath@novell.com>
6761
6762         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
6763         double g_free.
6764
6765 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
6766
6767         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
6768         when --debug is specified.
6769
6770 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
6771
6772         * class.c (setup_generic_array_ifaces): Fix a warning.
6773
6774 2006-09-04  Miguel de Icaza  <miguel@novell.com>
6775
6776         * Temporarily remove the patch to assemly.c that checks the
6777         assembly versions as it breaks our gacutil.
6778
6779 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
6780
6781         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
6782
6783         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
6784         a net 1.0 runtime.
6785
6786         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
6787         created using the default ctor. Fixes #79152.
6788         (mono_string_builder_to_utf16): Ditto.
6789
6790 2006-09-01  Martin Baulig  <martin@ximian.com>
6791
6792         Fix handling of the generic array interfaces.
6793
6794         * class-internals.h
6795         (MonoDefaults): Removed `generic_array_class' and added
6796         `generic_ilist' class.
6797
6798         * class.c
6799         (mono_bounded_array_class_get): Add the new generic array interfaces.
6800         (setup_generic_array_ifaces): New static method; create vtable
6801         entries for each method in the generic array interfaces.
6802
6803         * metadata.c
6804         (select_container): Allow "parent-less" generic methods.
6805
6806         * marshal.c
6807         (mono_marshal_get_generic_array_helper): New public method.
6808
6809         * icall.c
6810         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
6811         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
6812         moved the interncall into System.Array.
6813
6814 2006-09-01  Raja R Harinath  <rharinath@novell.com>
6815
6816         A few more cases of avoiding work on types with ->byref set.
6817         Has the real fix for #79238
6818         * icall.c (is_generic_parameter): New helper.
6819         (ves_icall_Type_GetGenericParameterPosition): Use it.
6820         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
6821         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
6822         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
6823         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
6824         reference types.
6825         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
6826         reference types.
6827         (ves_icall_Type_get_IsGenericInstance): Likewise.
6828         (ves_icall_Type_get_IsGenericType): Likewise.
6829
6830 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
6831
6832         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
6833         class if possible.
6834
6835         * mempool.h (mono_mempool_get_allocated): New helper function.
6836
6837         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
6838         change.
6839
6840         * mempool.c: Fix warnings and the calculation of stats.
6841
6842         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
6843
6844         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
6845
6846         * loader.c (mono_get_method_from_token): Update method_count stat.
6847
6848         * class-internals.h (MonoStats): Add some stats.
6849
6850 2006-08-31 Robert Jordan  <robertj@gmx.net>
6851
6852         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
6853         with managed variants.
6854         All code is contributed under the MIT/X11 license.
6855         
6856 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
6857
6858         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
6859         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
6860
6861         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
6862
6863         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
6864         with cycles in classes.
6865
6866         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
6867
6868         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
6869         missing a [MarshalAs] directive. Fixes #79203.
6870
6871         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
6872         klass->marshal_info. Fixes #79217.
6873
6874 2006-08-30  Martin Baulig  <martin@ximian.com>
6875
6876         Committing a patch from Joachim Ante <joe@otee.dk>:
6877         Add support for binary data symbol stores.
6878
6879         * debug-mono-symfile.c
6880         (mono_debug_open_mono_symbol_file): Renamed into
6881         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
6882         arguments.
6883
6884         * mono-debug.c
6885         (mono_debug_open_image): Added `raw_contents' and `size' args.
6886         (mono_debug_init_2_memory): New public function.
6887
6888 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
6889
6890         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
6891
6892 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6893
6894         * appdomain.c: implement support for ShadowCopyFiles.
6895
6896 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
6897
6898         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
6899         when value is NULL (and should remove CID #51).
6900
6901 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6902
6903         * image.c: moved 2 functions to ../utils.
6904
6905 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
6906
6907         * gc.c: cope with the target object of a GC handle being NULL
6908         (bug #78877).
6909
6910 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
6911
6912         * class.c: recursively check parent's explicit implementations
6913         of interface methods (fixes bug #79125).
6914
6915 2006-08-19  Miguel de Icaza  <miguel@novell.com>
6916
6917         * filewatcher.c: Avoid warnings when building, do not redefine
6918         constants that are defined.
6919
6920         Remove warnings.
6921
6922 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6923
6924         * image.c: don't fail when the link points to an absolute path.
6925
6926 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
6927
6928         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
6929         Fix CID #3.
6930
6931 2006-08-17  Miguel de Icaza  <miguel@novell.com>
6932
6933         * image.c (full_path): A new method used to obtain the actual path
6934         of an assembly even in the presence of symbolic links.  
6935
6936         This is necessary for the case where we are running a binary that
6937         has been GACed, but we are using the "published" path name
6938         ($prefix/mono/1.0/blah.exe) which happens to point to the real
6939         file in the GAC.
6940
6941         This was the source of the failure for the `xsp' command with the
6942         recent AppDomain changes, as far as the runtime was concerned,
6943         there were two different assemblies: $prefix/mono/1.0/blah.exe and
6944         $prefix/mono/gac/blah/version/blah.exe.
6945
6946         (do_mono_image_open): use full path
6947
6948 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
6949
6950         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
6951
6952 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
6953
6954         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
6955         domain_id is supplied. Fix CID #241 and corlib's unit tests.
6956
6957 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
6958
6959         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
6960         small structures. Fixes #78990.
6961
6962 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
6963
6964         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
6965
6966         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
6967
6968 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6969
6970         * appdomain.c:
6971         * marshal.c: don't load all the assemblies from a domain into newly
6972         created ones. The new domains might have different rules and load
6973         assemblies from different locations. Fixes bug #76757.
6974
6975         Patch by Lluis. Conflicts resolved by Brian Crowell.
6976
6977 2006-08-16  Alp Toker  <alp@atoker.com>
6978
6979         * socket-io.c: First half of the fix for #79084.
6980         Set sa_size to the length of the content, not that of the struct.
6981         Don't add NULL suffix to the content, this should be done in
6982         managed code if needed.
6983
6984 2006-08-14  Raja R Harinath  <rharinath@novell.com>
6985
6986         Fix part of #79012
6987         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
6988         mono_metadata_parse_type returns NULL.
6989
6990 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
6991
6992         * normalization-tables.h : new file for string normalization data.
6993         * locales.c, locales.h, icall.c :
6994           added load_normalization_resource() for string normalization,
6995           and icall as well.
6996         * Makefile.am : added normalization-tables.h to the sources.
6997
6998 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
6999
7000         * marshal.c: Add more helper functions to reduce code duplication and use them
7001         everywhere.
7002
7003 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
7004
7005         * marshal.c: Fix non-x86 stdcall warnings.
7006         
7007         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
7008         them everywhere.
7009
7010 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
7011
7012         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
7013         type check on multi-dimensional arrays. Fixes #79000.
7014
7015 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
7016
7017         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
7018         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
7019         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
7020         * class-internals.h: add is_com_object to class structure.
7021         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
7022         null checks to COM object marshalling. Fix .ctor call on RCW.
7023         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
7024         
7025         All code is contributed under the MIT/X11 license.
7026
7027 2006-08-09  Dick Porter  <dick@ximian.com>
7028
7029         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
7030         racing mono_monitor_allocator_lock() somewhere, so don't delete
7031         the critical section for now.  Found by running and exiting
7032         monodevelop.
7033
7034 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
7035
7036         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
7037         (ves_icall_System_ComObject_FindInterface): Ditto.
7038         (ves_icall_System_ComObject_CacheInterface): Ditto.
7039
7040         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
7041         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
7042
7043 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7044
7045         * threadpool.c: treat pipes from process asynchronous reads as sockets
7046         when reading from them, so we get select/poll or epoll to wait for
7047         data.
7048
7049 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
7050
7051         * loader.c: Fix a typo (CID #233) in the null check.
7052
7053 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
7054
7055         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
7056         Hopefully fixes #78949.
7057         
7058         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
7059         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
7060         bytes. Fixes #78972.
7061
7062 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7063
7064         * filewatcher.c: we need to set errno here.
7065
7066 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7067
7068         * filewatcher.c: let Win32Exception get the error value.
7069
7070 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7071
7072         * filewatcher.c: translate errno into win32 errors for Win32Exception
7073         to know what happened.
7074
7075 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
7076
7077         * threadpool.c: Fix more warnings.
7078
7079         * assembly.c (search_loaded): Fix warnings.
7080
7081         * threadpool.c (mono_thread_pool_finish): Fix warnings.
7082         (mono_async_invoke): Ditto.
7083
7084 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
7085
7086         * object.c (mono_remote_class_vtable): Need to create proxy vtable
7087         entries for __ComObject type in addition to ComImport types.
7088         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
7089         about hash table.
7090         
7091         All code is contributed under the MIT/X11 license.
7092
7093 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
7094
7095         * image.c: avoid tentative loading of modulerefs that contain
7096         no metadata (P/Invoke library names).
7097
7098 2006-07-28  Dick Porter  <dick@ximian.com>
7099
7100         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
7101         mono_loader_lock() somewhere, so don't delete the critical section
7102         for now.  Found by running and exiting monodevelop.
7103
7104 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7105
7106         * filewatcher.c: define the inotify syscalls when we're building on
7107         linux and have sys/syscall.h. The build system might not have support
7108         for inotify but the target system might have it.
7109
7110 2006-07-26  Miguel de Icaza  <miguel@novell.com>
7111
7112         * domain.c: Documentation updates.
7113
7114         * loader.c (mono_free_method): Do not release the method
7115         information if we are being profiled, as profilers will use this
7116         information at shut down to present some data to the user.
7117
7118         This is needed so that the profiler does not crash, as the
7119         profiler tends to keep MonoMethods around, and they might become
7120         invalid if we free these.
7121
7122         (mono_get_method_constrained): Return the original CIL stream
7123         method as well, so verification can be performed against it.
7124
7125 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7126
7127         * filewatcher.[ch]: support for inotify file system watcher.
7128         * icall.c: add new internal calls for the inotify file system watcher.
7129
7130 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7131
7132         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
7133         #78888.
7134
7135 2006-07-20  Dick Porter  <dick@ximian.com>
7136
7137         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
7138         warning.
7139
7140 2006-07-20  Dick Porter  <dick@ximian.com>
7141
7142         * threads.c (start_wrapper): Do the thread cleanup while we still
7143         hold a reference to its object.  Fixes bug 78123.
7144
7145 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
7146
7147         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
7148         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
7149           "managed-to-managed".
7150         * icall.c: Redirect string constructors that take sbyte* to
7151           ves_icall_System_String_ctor_RedirectToCreateString.
7152         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
7153           to CreateString () methods with matching signature.
7154         * reflection.c: Use original security informations for
7155           MONO_WRAPPER_MANAGED_TO_MANAGED.
7156         * security-manager.c: Use original security informations for
7157           MONO_WRAPPER_MANAGED_TO_MANAGED.
7158         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
7159           that is a placeholder and only its address should be used.
7160         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
7161           that is a placeholder and only its address should be used.
7162
7163 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
7164
7165         Begin implementing COM Interop.
7166         * appdomain.c: Increment corlib version.
7167         * class.c: Set ComImport classes' parent to __ComObject.
7168         * loader.c: Mark cominterop methods as such.
7169         * domain.c: Add __ComObject class to MonoDefaults structure.
7170         * image.c: Add 2 hashtables to the image for COM Interop related methods
7171         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
7172         using the mempool allocator
7173         
7174         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
7175         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
7176         declaration for mono_metadata_type_dup_mp.
7177         
7178         * debug-helpers.c: Added strings for two additional wrapper types
7179         * object.c: Create proxy objects for ComImport classes
7180         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
7181         and added __ComObject class to MonoDefaults structure.
7182         
7183         * object-internals.h: Finish MonoRealProxy definition, and add definition of
7184         MonoComInteropProxy and MonoComObject.
7185         
7186         * marshal.c: Added support for COM Interop
7187         (signature_cominterop): Converts managed signature to corresponding
7188         unmanaged COM signature.
7189         (cominterop_get_function_pointer): gets unmanaged function pointer via
7190         COM object vtable
7191         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
7192         (cominterop_get_method_interface): returns interface type that method is defined on
7193         (mono_mb_emit_cominterop_call): emits native call to function pointer
7194         gotten from vtable
7195         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
7196         that matches signature of unmanaged function.
7197         (cominterop_get_native_wrapper): wrapper around adjusted method call.
7198         (cominterop_get_invoke): forwards call from proxy to __ComObject
7199         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
7200         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
7201         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
7202         
7203         * marshal.h: Added Marshal icall declarations.
7204         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
7205         so we can access them in finalizer
7206         
7207 2006-07-14  Dick Porter  <dick@ximian.com>
7208
7209         * object.c (mono_type_initialization_cleanup): Fix a race
7210         condition by temporarily commenting out the critical section
7211         deletion.
7212
7213 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
7214
7215         * reflection.c (create_custom_attr): Fix some warnings.
7216         (create_custom_attr_data): Ditto.
7217         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
7218         types. Fixes #78855.
7219
7220 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
7221
7222         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
7223
7224         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
7225
7226 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
7227
7228         * reflection.c (resolve_object): Add support for DynamicMethod.
7229
7230         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
7231         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
7232
7233 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
7234
7235         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
7236         don't leak GPtrArray's pdata has we have no use (nor free) for it.
7237
7238 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
7239
7240         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
7241         Fixes #77888.
7242
7243 2006-06-30  Raja R Harinath  <rharinath@novell.com>
7244
7245         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
7246         slightly: remove a shadow local variable.
7247
7248 2006-06-29  Raja R Harinath  <rharinath@novell.com>
7249
7250         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
7251         definition that introduces the virtual function slot.
7252         Also fix Coverity #105.
7253
7254 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
7255
7256         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
7257         for dynamic assemblies. Fixes #78724.
7258
7259 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
7260
7261         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
7262         Fixes #78722.
7263
7264 2006-06-21  Martin Baulig  <martin@ximian.com>
7265
7266         * reflection.c
7267         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
7268         fixes #76484.
7269
7270 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
7271
7272         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
7273
7274 2006-06-20  Raja R Harinath  <rharinath@novell.com>
7275
7276         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
7277         nor TYPEREFs.
7278         * class.c (mono_class_create_from_typespec): Add 'context' argument.
7279         Inflate result if necessary.
7280         (mono_class_get_full): Remove old version.  Rename from
7281         'mono_class_get' and add 'context' argument.  Pass it to
7282         ..._create_from_typespec.
7283         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
7284         (mono_ldtoken): Revert change below.
7285
7286 2006-06-20  Martin Baulig  <martin@ximian.com>
7287
7288         * class.c (mono_ldtoken): Don't pass the generic context to
7289         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
7290
7291 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
7292
7293         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
7294         and later freeing it. Fixes #78638.
7295
7296 2006-06-15  Miguel de Icaza  <miguel@novell.com>
7297
7298         * icall.c (mono_class_get_throw): Revert over-zealous error
7299         throwing, the caller for mono_class_get_throw will cope with
7300         errors when classes are not properly initialized already.
7301
7302         The code still copes with loader exceptions though.
7303
7304         Fixes the regression in reftype1 and reftype3 from the CAS tests.
7305         
7306 2006-06-14  Miguel de Icaza  <miguel@novell.com>
7307
7308         Fixes the `make run1' version of RuntimeAbort (to be commited,
7309         source is in Bugzilla).
7310         
7311         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
7312         FALSE on class loading failure instead of returning true.
7313
7314         * class.c (mono_class_create_from_typedef): It is possible for
7315         mono_metadata_interfaces_from_typedef_full to fail if a class is
7316         not found, cope with this.
7317         
7318
7319 2006-06-14  Dick Porter  <dick@ximian.com>
7320
7321         * socket-io.c: 
7322         * process.c: Fix a bunch of signed/unsigned warnings from gcc
7323         4.1.1
7324
7325 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
7326
7327         * culture-info-table.h : oops, forgot to make it nsync with r61548.
7328
7329 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
7330
7331         * icall.c: Another fix for building mono in Visual Studio.
7332
7333 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
7334
7335         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
7336         
7337 2006-06-09  Martin Baulig  <martin@ximian.com>
7338
7339         * debug-mono-symfile.c: Put this back and really fix it this
7340         time. Sorry for all the trouble.
7341
7342 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
7343
7344         * icall.c (mono_class_get_throw): Fix a warning.
7345         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
7346         ReflectionTypeLoadException if needed. Fixes #78606.
7347
7348         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
7349         (mono_class_init): Ditto.
7350
7351         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
7352         ref_only exceptions.
7353         (mono_loader_clear_error): Make this work even if there is no error.
7354
7355 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
7356
7357         * object-internals.h marshal.c marshal.h icall.c: Implement method 
7358         Marshal.GetComSlotForMethodInfo using internal call.
7359
7360 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
7361
7362         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
7363         a function for signalling it.
7364
7365         * class.c (mono_class_from_typeref): Use the new kind of loader error when
7366         a referenced assembly is not found.
7367
7368         * loader.c (mono_loader_error_prepare_exception): Add support for 
7369         LOADER_ERROR_ASSEMBLY. Fix formatting.
7370
7371 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
7372
7373         * domain.c appdomain.c class-internals.h marshal.c: Add support 
7374         for VARIANT marshalling on windows and increment corlib version
7375         since Variant struct was added.
7376
7377 2006-06-03  Miguel de Icaza  <miguel@novell.com>
7378
7379         * debug-mono-symfile.c: Revert Martin's previous patch which broke
7380         stack trace line information:
7381
7382         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
7383         (Martin) when looking up B which is between A and C, return A not C.
7384
7385         Bug is #78573.
7386
7387         Thanks to Alexander Olk for tracking this down.
7388
7389 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
7390
7391         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
7392         
7393         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
7394         avoid clobbering its value.
7395         (mono_string_to_lpstr): Fix a warning on windows.
7396
7397 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
7398
7399         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
7400
7401         * reflection.c loader.c: Removed references to 'dummy' flag.
7402
7403         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
7404
7405         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
7406         it gets GC tracking.
7407
7408         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
7409         GC tracking.
7410         
7411         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
7412
7413         * marshal.c threadpool.c: Update callers of mono_async_result_new.
7414
7415         * appdomain.c: Bump corlib version.
7416
7417 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
7418
7419         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
7420         CEE_STIND_REF when working with object references.
7421
7422 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
7423
7424         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
7425         Fixes #78539.
7426
7427 2006-05-30  Miguel de Icaza  <miguel@novell.com>
7428
7429         * loader.c (method_from_memberref): Fix argument value for
7430         mono_loader_set_error_method_load (I was passing the MonoClass
7431         instead of the class name char *).
7432
7433 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
7434
7435         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
7436         CEE_STIND_REF when working with object references.
7437
7438 2006-05-30  Martin Baulig  <martin@ximian.com>
7439
7440         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
7441         mono_method_full_name() change and replace the ':' with a '.'
7442         here.
7443
7444 2006-05-30  Martin Baulig  <martin@ximian.com>
7445
7446         * debug-mono-symfile.c
7447         (mono_debug_symfile_lookup_location): Fix the algorithm:
7448         when looking up B which is between A and C, return A not C.
7449
7450 2006-05-29  Martin Baulig  <martin@ximian.com>
7451
7452         * mono-debug.h
7453         (MonoDebugMethodInfo): Make the typedef public.
7454         (MonoDebugSourceLocation): New public struct.
7455
7456         * mono-debug.c
7457         (mono_debug_source_location_from_address): Removed.
7458         (mono_debug_source_location_from_il_offset): Removed.
7459         (mono_debug_il_offset_from_address): Removed.
7460         (mono_debug_address_from_il_offset): Removed.
7461         (mono_debug_lookup_method): New public function.
7462         (mono_debug_lookup_source_location): New public function; replaces
7463         the old mono_debug_source_location_from_*() functions; see the
7464         inline documentation.
7465         (mono_debug_free_source_location): New public function.
7466         (mono_debug_print_stack_frame): New public function; see the
7467         inline documentation.
7468
7469         * debug-mono-symfile.c
7470         (mono_debug_find_source_location): Renamed into
7471         mono_debug_symfile_lookup_location(); only take a
7472         `MonoDebugMethodInfo *' and an `offset' argument; added inline
7473         documentation.
7474         (mono_debug_find_method): Renamed into
7475         mono_debug_symfile_lookup_method().
7476
7477 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
7478
7479         * assembly.c (mono_assembly_open_full): Dont overwrite the status
7480         returned by mono_image_open_full ().
7481
7482         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
7483         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
7484         #78517.
7485
7486         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
7487         #78518.
7488
7489 2006-05-27  Miguel de Icaza  <miguel@novell.com>
7490
7491         * class.c (mono_class_from_typeref): handle missing images
7492         earlier, deals with bug #78418.   Refactor code; 
7493
7494         Fix a warning introduced in my previous commit (some stale code
7495         from before I revisited my patch).
7496
7497         * class.c (mono_class_create_from_typedef): On failure, remove the
7498         class from the MonoImage->class_cache as the class is not
7499         initialized;   Fixes the leak pointed out by Paolo.
7500
7501 2006-05-25  Dick Porter  <dick@ximian.com>
7502
7503         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
7504         DeleteCriticalSections until I figure out which one may still be
7505         sometimes locked when mono_thread_cleanup is called.
7506
7507 2006-05-24  Dick Porter  <dick@ximian.com>
7508
7509         * threads.c (mono_thread_cleanup): Move the threading cleanup out
7510         of mono_thread_manage and back into its own function, so it can be
7511         called after the finalizer thread has finished.
7512
7513         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
7514
7515 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
7516
7517         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
7518         Fixes #78495.
7519
7520         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
7521         with non-blittable elements.
7522         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
7523
7524 2006-05-24  Martin Baulig  <martin@ximian.com>
7525
7526         * mono-debug-debugger.h (MonoDebuggerEvent): Added
7527         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
7528
7529         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
7530         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
7531         `mono_debugger_event_handler' to NULL.
7532
7533 2006-05-24  Martin Baulig  <martin@ximian.com>
7534
7535         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
7536
7537 2006-05-24  Martin Baulig  <martin@ximian.com>
7538
7539         * mono-debug-debugger.h
7540         (mono_debugger_create_notification_function): Added
7541         `MonoCodeManager *' argument.
7542
7543 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
7544
7545         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
7546
7547 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
7548
7549         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
7550         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
7551         implementation.
7552
7553 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
7554
7555         * icall.c: precise GC support: objects can't be stored in unmanaged
7556         memory anymore, even if they are kept alive by other references: since
7557         they can move the GC needs to be able to always find them.
7558
7559 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
7560
7561         * object.c: precise GC support for static fields. Support
7562         for moving GCs: write barriers and pinned allocation for interned
7563         strings.
7564
7565 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
7566
7567         * domain.c, domain-internals.h: precise GC support for the MonoDomain
7568         structure.
7569
7570 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
7571
7572         * class.c, gc.c: sgen and precise GC updates.
7573
7574 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
7575
7576         * marshal.h, marshal.c: added write barrier wrapper and precise type
7577         fixes.
7578
7579 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
7580
7581         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
7582         support.
7583
7584 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
7585
7586         * reflection.c: precise and sgen GC updates.
7587
7588 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
7589
7590         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
7591
7592 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
7593
7594         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
7595
7596 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
7597
7598         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
7599         MONO_TYPE_OBJECT. Fixes #78462.
7600
7601 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
7602
7603         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
7604         and blittable types.
7605
7606 2006-05-17  Miguel de Icaza  <miguel@novell.com>
7607
7608         * class.c (mono_class_get_exception_for_failure): Implement parts
7609         of a TODO: if the loader error is set (instead of the class
7610         error), we return a Loader exception that can be properly thrown
7611         elsewhere.
7612
7613         This was exposed by some Winforms 2.0 code that I tried to run
7614         (Atsushi pointed me to it).
7615
7616 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
7617
7618         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
7619         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
7620         
7621         * marshal.c (emit_marshal_vtype): Add limited support for 
7622         UnmanagedType.LPStruct. Fixes #78427.
7623
7624         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
7625         Applied a patch from kangaroo to fix #77523.
7626
7627 2006-05-17  Martin Baulig  <martin@ximian.com>
7628
7629         * threads.c
7630         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
7631         (debugger_thread_created): Removed.
7632         (debugger_thread_exited): Removed.
7633
7634 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
7635
7636         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
7637
7638         * object-internals.h (MonoReflectionResource): Sync with managed version.
7639
7640 2006-05-12  Wade Berrier <wberrier@novell.com>
7641
7642         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
7643
7644 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
7645
7646         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
7647         functions try to allocate from the image mempool.
7648
7649 2006-05-12  Dick Porter  <dick@ximian.com>
7650
7651         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
7652
7653 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
7654
7655         * object.c: The FieldGetter and FieldSetter methods require the full
7656         name of the class, not only the name. Fixes bug #78277.
7657
7658 2006-05-11  Miguel de Icaza  <miguel@novell.com>
7659
7660         * loader.c (method_from_memberref): Do not pass the NULL klass to
7661         mono_loader_set_error_() methods.  Pass the non-NULL value
7662         (class). 
7663
7664 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
7665
7666         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
7667         (mono_assembly_close): Null out assembly->image->references after freeing it.
7668
7669         * image.c (mono_image_close): Free image->references.
7670         
7671         * reflection.c (mono_image_basic_init): Fix a small memory leak.
7672
7673 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
7674
7675         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
7676         before checking if it's NULL (g_assert).
7677
7678 2006-05-10  Martin Baulig  <martin@ximian.com>
7679
7680         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
7681         I thought I already killed that two months ago, but now it somehow reappeared.
7682
7683 2006-05-10  Martin Baulig  <martin@ximian.com>
7684
7685         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
7686
7687 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
7688
7689         * reflection.c: Allocate memory for dynamically created methods in the image
7690         mempools.
7691
7692 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
7693
7694         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
7695         don't use the ad pointer before checking if it's NULL (g_assert).
7696
7697 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
7698
7699         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
7700         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
7701
7702         * marshal.c: Allocate all signatures from mempools.
7703
7704         * marshal.c: Allocate some more signatures from mempools.
7705
7706 2006-05-09  Miguel de Icaza  <miguel@novell.com>
7707
7708         * object.c (mono_load_remote_field): The code used to provide a
7709         temporary variable for returning results if the user did not
7710         provide a result pointer.  But our temporary variable was allocted
7711         on the satck.
7712
7713         Fix calling code to always pass a result area.   Coverity ID 103.
7714
7715 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
7716
7717         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
7718         value, not the old. Fixes #78312.
7719         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
7720
7721         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
7722         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
7723         per-image cache.
7724
7725         * assembly.c (mono_assembly_close): Free image->references.
7726
7727         * assembly.c (mono_assembly_names_equal): Fix a warning.
7728         (mono_assemblies_cleanup): Cleanup more global data.
7729
7730         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
7731
7732         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
7733         ptr_cache and image->modules.
7734
7735         * image.c (mono_image_init): Allocate array_cache lazily.
7736         
7737 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7738
7739         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
7740         behavior was changed recently and has bad side effects.
7741
7742 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
7743
7744         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
7745         
7746         * assembly.c (mono_assembly_close): Remove a debug printf.
7747
7748         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
7749
7750         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
7751         to also allow for temporary references between mono_image_open ()/close ().
7752
7753         * domain.c (get_runtimes_from_exe): Add a FIXME.        
7754
7755 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
7756
7757         * marshal.c: Fix support for dynamic methods.
7758
7759         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
7760
7761         * marshal.c (mono_marshal_cleanup): New cleanup function.
7762
7763         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
7764         image mempools.
7765
7766         * class.c (mono_class_init): Fix leaking class->nested_classes.
7767
7768         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
7769
7770         * image.c (mono_image_init): Initialize the new cashes.
7771
7772         * image.c (mono_image_close): Destroy the new cashes.
7773
7774         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
7775
7776         * mempool.c (mono_mempool_strdup): New helper function.
7777
7778         * class-internals.h: Add prototype for mono_loader_unlock ().
7779
7780         * domain.c (mono_jit_info_table_find): Fix a warning.
7781         (mono_debugger_check_runtime_version): Ditto.
7782
7783         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
7784         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
7785         functions to these modules.
7786
7787         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
7788         metadata modules.
7789         
7790         * marshal.c (mono_free_bstr): Fix a warning.
7791
7792         * assembly.c (mono_assembly_open_full): Fix another small leak.
7793
7794         * object.c: Fix some unload leaks in the remoting code.
7795
7796         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
7797         function.
7798
7799         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
7800
7801         * reflection.c: Fix some unload leaks in dynamic assemblies.
7802
7803 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
7804
7805         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
7806         * marshal.h: Add BSTR support on Win32
7807         * icall.c: Add BSTR icalls
7808         * metadata.h: Add BSTR enums
7809
7810 2006-04-28  Miguel de Icaza  <miguel@novell.com>
7811
7812         Work to catch the crash from #76795 and turn it into an
7813         exception.   As I stubbed out pieces of the VisualBasic support,
7814         I found a number of places where the code was failing and I added
7815         checks to those places. 
7816         
7817         * metadata.c (do_mono_metadata_parse_generic_class): Make this
7818         function return a status code.  If we fail to parse the signature
7819         from mono_metadata_parse_generic_inst, return FALSE.
7820
7821         * loader.c (mono_get_method_from_token): If we fail to load the
7822         method (mono_class_get) return NULL.   
7823
7824         * (method_from_memberref): Return NULL if we are unable to parse
7825         the method signature
7826
7827         (mono_loader_error_prepare_exception): Since we now use the
7828         loader_error flag internally to stop processing, and obtaining
7829         exceptions that might be thrown will walk this code path the
7830         proper way of going from a MonoLoaderError into a
7831         MonoException was convoluted.   This new routine encapsulates the
7832         process of turning the error into an exception and *clearing* the
7833         error afterwards.
7834         
7835 2006-04-27  Miguel de Icaza  <miguel@novell.com>
7836
7837         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
7838         with missing assemblies), and to cope with:
7839
7840                 * Missing fieldref from a non-existing assembly.
7841                 * Missing methodref from a non-existing assembly.
7842
7843         The first batch of work to address *some* of the issues from 76661.
7844         
7845         * object.c (mono_class_create_runtime_vtable): If we fail to
7846         initialize the class raise the exception here. 
7847
7848         * metadata.c (mono_class_get_overrides_full): If any methods fail
7849         to load return the failure to the caller.
7850
7851         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
7852         flagging assemblies that failed to load.   
7853
7854         Do not crash if we are unable to load the assembly.
7855
7856         (mono_assembly_close): Do nothing with REFERENCE_MISSING
7857         assemblies. 
7858
7859         * loader.c (mono_loader_set_error_type_load): Change the
7860         convention to always pass unallocated strings, so we make our own
7861         copies (I know our own code had duplicated strings before, but
7862         this keeps the normal conventions).
7863         (method_from_memberref): Call mono_loader_set_error_method_load
7864         for all possible failures of loading the class. 
7865         Remove assert, turn into a loader error.
7866
7867         (mono_loader_error_to_exception): Move this routine from mini
7868         (mini_loader_error_to_exception) there was no need to have that in
7869         mini. 
7870
7871         * class.c (mono_class_from_typeref): If we were not able to load
7872         the assembly with mono_assembly_load_reference, call the
7873         mono_loader_set_error_type_load to register the problem.
7874
7875         (mono_class_setup_fields): If we fail to load the type from
7876         mono_metadata_parse_type_full, call mono_class_set_failure and
7877         break from the loop.
7878
7879         If class->exception_type is set, we do not layout the fields as
7880         that might crash the runtime, and instead return (from breaking
7881         from the previous loop).
7882
7883         (mono_class_setup_vtable): This now returns a boolean indicating
7884         whether the table was properly setup.   The decision is driven by
7885         mono_class_get_overrides_full which might run into non-existing
7886         methods. 
7887         
7888         (mono_class_init): Returns TRUE on success or FALSE if there was a
7889         problem in loading the type (incorrect assemblies, missing
7890         assemblies, methods, etc).
7891
7892         When we call mono_class_setup_fields we also check for a potential
7893         error inside this call (either a class exception or a general
7894         loader exception).
7895
7896         (mono_class_create_from_typedef): If the parent fails to load
7897         (calling mono_class_get_full) return NULL.
7898         
7899         ** Important **
7900
7901         calls to mono_metadata_parse_type_full should be checked
7902         everywhere and set the mono_class_set_failure
7903         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
7904
7905         The current patch checks the places where my manually constructed
7906         tests show the errors are showing up, but we should do it
7907         everywhere. 
7908
7909         ** Important2 **
7910
7911         mono_class_init return values should be tested everywhere, like
7912         the previous case this is something that we should audit
7913         everywhere and not only on the cases exposed by the tests I
7914         created. 
7915
7916 2006-04-26  Miguel de Icaza  <miguel@novell.com>
7917
7918         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
7919         boolean parameter and instead pass the information on `options'
7920         parameter (FileOptions).
7921
7922         * icall.c: Register the new signature for MonoIO.Open.
7923
7924         * debug-helpers.c (dis_one): Trying to understand how coverity
7925         works.  Fix Run 5, item 78.
7926
7927 2006-04-26  Dick Porter  <dick@ximian.com>
7928
7929         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
7930         dereference.
7931
7932 2006-04-25  Martin Baulig  <martin@ximian.com>
7933
7934         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
7935
7936         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
7937         debugger_thread_created().
7938         (debugger_gc_push_all_stacks): Don't handle the main thread in any
7939         special way.
7940         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
7941         (mono_debugger_finalize_threads): New function; undo the effects
7942         of mono_debugger_init_threads().
7943         (mono_debugger_create_all_threads): Removed.
7944
7945 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
7946
7947         * image.c (mono_image_close): Tidy up trace messages.
7948
7949         * assembly.c (mono_assembly_close): Ditto.
7950
7951         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
7952         no longer references an already freed assembly. Fixes #78168.
7953
7954 2006-04-21  Dick Porter  <dick@ximian.com>
7955
7956         * threads.c (mono_thread_detach): Fix reference counting when
7957         detaching threads.
7958
7959 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
7960
7961         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
7962         #78155.
7963
7964 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
7965
7966         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
7967         (mono_type_to_stind): Ditto.
7968
7969         * marshal.c: Use the new helper functions to simplify code.
7970
7971         * image.c (mono_image_close): Add some code for help debug assembly unloading
7972         problems.
7973
7974         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
7975         image mempool.
7976
7977         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
7978         assembly was already loaded in another appdomain. Fixes #78083.
7979
7980 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
7981
7982         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
7983         referenced assemblies.
7984         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
7985
7986         * domain.c (mono_domain_free): Add a trace message.
7987
7988         * appdomain.c (add_assemblies_to_domain): Ditto.        
7989
7990         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
7991         field.  
7992
7993 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
7994
7995         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
7996
7997 2006-04-12  Martin Baulig  <martin@ximian.com>
7998
7999         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
8000         `USE_INCLUDED_LIBGC'.   
8001
8002 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
8003
8004         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
8005         the patch contains ../ and a small directory name later. Hopefully fixes
8006         #78035.
8007
8008 2006-04-10  Martin Baulig  <martin@ximian.com>
8009
8010         Clean up the debugger's thread-handling code.
8011
8012         The debugger's thread-handling code has been moved from
8013         ../mini/debug-debugger.c to threads.c.  We now iterate directly
8014         over the `threads' hash, keep track of exiting threads and also
8015         use proper locking.
8016
8017         We can now debug XSP and XSP based applications with the debugger.
8018
8019         * object-internals.h (MonoThread): Added `gpointer end_stack'.
8020
8021         * threads.h
8022         (MonoThreadCallbacks): Removed; this was only used by the debugger.
8023         (mono_install_thread_callbacks): Likewise.      
8024
8025         * threads.c (mono_thread_callbacks): Removed.
8026         (debugger_thread_created, debugger_thread_exited): New static functions.
8027         (start_wrapper): Call debugger_thread_created().
8028         (thread_cleanup): Call debugger_thread_exited().
8029         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
8030         (mono_debugger_init_threads): New public function.
8031         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
8032         iterate directly over the `threads' hash and also use proper locking.
8033
8034         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
8035
8036         * mono-debug-debugger.h
8037         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
8038
8039 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
8040
8041         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
8042         argument type=array. Fixes #78057.
8043
8044 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
8045
8046         * culture-info-table.h : regenerated. Fixed bug #69652.
8047
8048 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
8049
8050         * loader.c metadata.c: Reapply a variant r59116.
8051         
8052         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
8053
8054         * class.c (mono_class_setup_interface_offsets): New internal function.
8055
8056         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
8057         interfaces too. Fixes #77398.
8058
8059         * reflection.c (encode_cattr_value): Add support for 
8060         parameter type=object, argument type=array.
8061         (load_cattr_value): Ditto. Fixes #77916.
8062
8063         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
8064         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
8065
8066         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
8067         a byval char array and CharSet is Ansi.
8068
8069         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
8070
8071 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
8072
8073         * metadata.c: Add some locking comments.
8074         
8075         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
8076         mempool.
8077         (mono_metadata_free_method_signature): Don't free the signature itself.
8078
8079         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
8080
8081         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
8082         reference the same MonoImage.
8083         (mono_assembly_load_from_full): Add an assert.
8084
8085 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
8086
8087         * image.c (mono_image_close): Don't put the image we are about to free into the
8088         loaded_images_guid_hash.
8089
8090         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
8091         to reduce code duplication.
8092
8093         * marshal.c: Register the native functions called by this module as icalls, to
8094         somewhat centralize the creation of MonoMethodSignature's.
8095
8096         * loader.c (mono_method_signature): Add a cache for method signatures.
8097
8098         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
8099         the parameter attributes of a method.
8100         (mono_metadata_parse_method_signature_full): Refactored the computation of
8101         parameter attributes into a separate function. Also avoid one allocation in
8102         most cases.
8103
8104         * assembly.c (mono_assembly_close): Ditto.
8105
8106         * image.c (mono_image_close): Log trace messages with INFO level.
8107
8108         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
8109
8110         * image.c reflection.c: Correct reference counting of image modules.
8111         
8112         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
8113         of this function from the image mempool.
8114         
8115         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
8116         to allow more cached types to be used.
8117
8118         * mono-debug.c (mono_debug_add_method): Appled patch from
8119         David S. Miller  <davem@sunset.davemloft.net>: Access 
8120         minfo->lexical_blocks[] entry elements using read32().
8121
8122 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
8123
8124         * loader.c (mono_free_method): No longer free the method header for non-dynamic
8125         methods as it is allocated from the mempool.
8126
8127         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
8128         image mempool.
8129
8130         * metadata-internals.h: Add comments describing the reference counting scheme
8131         used for MonoImage and MonoAssembly.
8132
8133         * image.c assembly.c reflection.c: Rework reference counting of images and 
8134         assemblies so they are freed when the runtime is shut down. Free some 
8135         additional memory structures when an image is unloaded.
8136         
8137 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
8138
8139         * class.c loader.c reflection.c: Allocate more data structures in
8140         the image mempool.
8141
8142 2006-03-31  Miguel de Icaza  <miguel@novell.com>
8143
8144         * icall.c
8145         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
8146         build on pre glib 2.4 systems.
8147
8148 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
8149
8150         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
8151
8152         * icall.c: Fix some warnings.
8153
8154 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
8155
8156         * culture-info-table.h : regenerated.
8157
8158 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
8159
8160         * threads.c, object-internals.h, verify.c: changed the culture caching
8161         code to use a normal MonoArray for storage so the GC can keep track of
8162         them easily. Fixed bits of the cache logic, too and simplified the
8163         code.
8164
8165 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
8166
8167         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
8168         thread for non-Boehm GCs.
8169
8170 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
8171
8172         * domain.c, object.c, domain-internals.h: reduce the amount of memory
8173         needed to keep track of the data for static fields.
8174
8175 2006-03-29  Raja R Harinath  <rharinath@novell.com>
8176
8177         Fix #75172
8178         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
8179         for interface classes.  Use 'num_methods' instead.
8180         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
8181         before using '->vtable_size' field.
8182
8183 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
8184
8185         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
8186         doesn't contain managed pointers, so use a normal hashtable.
8187
8188 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
8189
8190         * reflection.c, class-internals.h, domain.c: fixed handling of types
8191         used as values for objects in custom attributes (bug #77915):
8192
8193 2006-03-24  Martin Baulig  <martin@ximian.com>
8194
8195         * class.c (mono_class_setup_fields): Added support for generic
8196         instances; fixes #77580.
8197
8198 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8199
8200         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
8201
8202 2006-03-24  Dick Porter  <dick@ximian.com>
8203
8204         * file-io.c (get_file_attributes): More stat macro breakage.
8205         Fixes bug 77759.
8206
8207 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
8208
8209         * profiler.c: added the file=filename option in the default profiler
8210         to output the profile data to filename.
8211
8212 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8213
8214         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
8215         bug #77877.
8216
8217 2006-03-22  Martin Baulig  <martin@ximian.com>
8218
8219         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
8220         allocated `MonoClassField *' in `fb->handle'.
8221
8222 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
8223
8224         * class.c, image.c, metadata-internals.h: implemented new mechanism to
8225         allocate interface ID to save memory and allow better ID reuse on
8226         appdomain unload. setup_generic_vtable () removal from Martin.
8227
8228 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
8229
8230         * object.h, appdomain.c, domain.c, exception.c, icall.c,
8231         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
8232         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
8233         write barriers for reference stores with managed objects accessed with
8234         C structures in the runtime and in embedding programs.
8235
8236 2006-03-20  Raja R Harinath  <rharinath@novell.com>
8237
8238         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
8239         'interface_id' and 'max_interface_id' fields of MonoClasses
8240         representing open generic types.
8241
8242 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
8243
8244         * object.h, object.c, icall.c: added functions to deal with
8245         storing valuetypes that contain references in managed objects.
8246         * reflection.c, string-icalls.c, threads.c, marshal.c: small
8247         fixes and comments around uses of mono_array_addr ().
8248
8249 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
8250
8251         * object.h, icall.c, monitor.c: object.GetHashCode ()
8252         implementation that supports the moving garbage collector.
8253
8254 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
8255
8256         * icall.c, threads-types.h, threads.c: implemented finalizer for
8257         LocalDataStoreSlot.
8258
8259 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
8260
8261         * metadata.c (mono_type_size): Add a fixme.
8262         (mono_type_stack_size): Ditto.
8263
8264         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
8265         'type_forwarders' field.
8266
8267         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
8268         attribute from net 2.0.
8269
8270         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
8271         from class.c.
8272
8273         * class.c (mono_class_setup_fields): Fix a warning.
8274         
8275         * class.c (mono_class_from_name): Add support for assemblyref entries
8276         in the EXPORTEDTYPE table.
8277
8278         * reflection.c: Add support for handling type forwarders under net 2.0.
8279
8280         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
8281         
8282 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
8283
8284         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
8285         overwriting entries in ModuleBuild->types, also clean up the code
8286         a little. Fixes #77774.
8287
8288 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
8289
8290         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
8291         load friend assembly info when present.
8292
8293 2006-03-14  Raja R Harinath  <rharinath@novell.com>
8294
8295         Fix crasher on gtest-158.cs.
8296         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
8297         the return value if the MonoClass we want is yet in an
8298         inconsistent state.
8299         * class.c (mono_class_create_from_typedef): Add an comment
8300         explaining an order dependency between mono_class_setup_parent and
8301         mono_class_setup_mono_type.
8302
8303 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
8304
8305         * class.c: documentation updates and events bug fix.
8306
8307 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
8308
8309         * class.c: some cleanup, locking fixes.
8310
8311 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
8312
8313         * class.c: fix the generics code to setup nested
8314         type info to the instantiated type (bug #77770).
8315
8316 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
8317
8318         * marshal.c: fixed a few type correctness issues.
8319
8320 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
8321
8322         * loader.c: the Set/Get/Addrtess array methods should be public.
8323
8324 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
8325
8326         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
8327         
8328         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
8329         info->wrapper.
8330
8331 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
8332
8333         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
8334
8335         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
8336
8337         * mempool.c (mono_mempool_alloc): Speed this up a bit.
8338         (mono_mempool_alloc0): Ditto.
8339
8340 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8341
8342         * socket-io.c:
8343         (create_object_from_sockaddr): it was allocating 4 extra bytes
8344         for the AF_UNIX data. Fixes bug #77747.
8345
8346 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
8347
8348         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
8349
8350 2006-03-09  Dick Porter  <dick@ximian.com>
8351
8352         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
8353         Fixes bug 76966 again.
8354
8355 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
8356
8357         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
8358         names from r57532
8359         * appdomain.c: Bumped corlib version to 48 (due to r57532)
8360
8361 2006-03-07  Martin Baulig  <martin@ximian.com>
8362
8363         * object.c
8364         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
8365
8366 2006-03-07  Martin Baulig  <martin@ximian.com>
8367
8368         * class.c
8369         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
8370         regression introduced in r56970; see gtest-252.cs.
8371
8372         * loader.c (mono_get_method_constrained): Correctly handle generic
8373         methods; see gtest-253.cs.
8374
8375 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
8376
8377         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
8378
8379 2006-03-04  Martin Baulig  <martin@ximian.com>
8380
8381         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
8382         compute the parent type at runtime, just like we're already doing
8383         it for interfaces.
8384
8385         * reflection.c
8386         (mono_reflection_bind_generic_parameters): Don't compute the
8387         parent type anymore.
8388
8389         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
8390
8391 2006-03-04  Martin Baulig  <martin@ximian.com>
8392
8393         * mono-debug-debugger.h
8394         (mono_debugger_create_notification_function): Allocate memory at
8395         runtime and return a pointer to it.
8396
8397 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
8398
8399         * assembly.c: Fix windows build.
8400         
8401         * assembly.c: Fix build.
8402
8403         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
8404
8405         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
8406         
8407 2006-03-03  Dick Porter  <dick@ximian.com>
8408
8409         * process.c
8410         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
8411         Check parameters before dereferencing them.  Fixes Aaron's part of
8412         bug 77393.
8413
8414 2006-03-03  Raja R Harinath  <rharinath@novell.com>
8415
8416         Fix performance regression.
8417         * loader.c (find_method_in_class): Add 'from_class' argument.
8418         Rename 'klass' argument to 'in_class'.  The signature is compared
8419         against the method in 'in_class', and the corresponding method is
8420         returned from 'from_class'.
8421         (find_method): Walk both 'in_class' and 'from_class' in parallel.
8422         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
8423         type definition and generic instantiation in parallel.
8424         (mono_get_method_constrained): Update to changes.
8425
8426 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
8427
8428         * threads.c: make sure the domain is correct, too when doing
8429         mono_thread_attach ().
8430
8431 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
8432
8433         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
8434         windows. Fixes #77683.
8435
8436 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
8437
8438         * object.h, *: introduced specific way to set elements of an array
8439         of references to be used as write barrier. Still need to audit the
8440         uses of mono_array_addr.
8441
8442 2006-03-01  Miguel de Icaza  <miguel@novell.com>
8443
8444         * object-internals.h: New field to cache the assmebly name, patch
8445         from Tambet Ingo (tambet@ximian.com)
8446
8447 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
8448
8449         * decimal.h, class-internals.h, metadata-internals.h,
8450         file-io.h: mark a few function declarations as internal, to
8451         reduce the number of PLT entries.
8452
8453 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8454
8455         * file-io.c: fix typo in warning message.
8456
8457 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
8458
8459         * loader.c: on unix, lookup the "*A" version of a function
8460         if charset is auto as a second option before failing.
8461
8462 2006-02-28  Raja R Harinath  <rharinath@novell.com>
8463
8464         * class.h (mono_class_inflate_generic_method): Revert to two
8465         argument version.
8466         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
8467         (mono_class_inflate_generic_method_full): Add.
8468         * class.c (mono_class_inflate_generic_method_full): Rename from
8469         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
8470         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
8471         * loader.c, reflection.c: Update to changes.
8472
8473 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
8474
8475         * icall.c: const fixes and small improvements.
8476
8477 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8478
8479         * threadpool.c: for asynchronous connect(), enable the same workaround
8480         for BSD 6 as for the Mac. Fixes bug #77637.
8481
8482 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
8483
8484         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
8485         formatted classes. Fixes #77524.
8486
8487 2006-02-24  Raja R Harinath  <rharinath@novell.com>
8488
8489         * class.c (inflate_generic_type): Add a couple more
8490         micro-optimizations.
8491         (inflate_generic_context): Don't use the 'gmethod' from
8492         'inflate_with'.
8493         (mono_class_inflate_generic_method): If the method has generic
8494         parameters, but the passed-in context doesn't have a 'gmethod',
8495         create one.  Use the possibly simplified generic instantiation
8496         from the declaring class instead of the one passed in.
8497
8498 2006-02-24  Raja R Harinath  <harinath@gmail.com>
8499
8500         Make generic method signature and method header handling lazy.
8501         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
8502         (inflate_generic_header): Likewise.
8503         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
8504         parameter to avoid inflating types.
8505         (mono_get_inflated_method): Empty out.
8506         * class.h (mono_class_inflate_generic_method): Update to changes.
8507         * loader.c (mono_get_method_from_token): Don't parse signature for
8508         generic methods, nor methods of generic classes.
8509         (mono_method_signature): Rename from 'mono_method_signature'.
8510         Inflate signature on demand.
8511         (mono_method_get_header): Inflate method header on demand.
8512         * reflection.c: Update to changes.
8513
8514 2006-02-23  Raja R Harinath  <rharinath@novell.com>
8515
8516         * metadata.c (mono_metadata_inflate_generic_inst): If the
8517         instantiation is closed, don't bother expanding it in the new
8518         context.
8519         * class.c (inflate_generic_class): If the generic instantiation
8520         doesn't change after inflation, return the argument itself.
8521         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
8522         Add bounds checks.
8523         (inflate_generic_context): If neither the generic class nor the
8524         generic method instantiations change, return the original context.
8525         * reflection.c (mono_method_get_object): Do
8526         'mono_get_inflated_method' before accessing the ->klass field.
8527         (inflate_mono_method): Don't create a MonoGenericMethod unless
8528         necessary.
8529         (inflate_method): Don't pass a constructed type as the declaring
8530         type of a methodbuilder.
8531
8532 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
8533
8534         * object.c: fix memory overwrite.
8535
8536 2006-02-22  Dick Porter  <dick@ximian.com>
8537
8538         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
8539         it doesn't work any more.
8540         (mono_threads_request_thread_dump): Fix unused variable warnings.
8541
8542 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
8543
8544         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
8545         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
8546         the public header file.
8547
8548 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
8549
8550         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
8551
8552 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
8553
8554         * class-internals.h, object.c: reduce the size of MonoVTable
8555         and store the interface_offsets array at negative offsets.
8556
8557 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
8558
8559         * metadata.c: tweak table descriptors data structures to reduce
8560         size and runtime relocations.
8561
8562 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
8563
8564         * marshal.c: fix some types and opcodes to be type-safe
8565         in marshaling wrappers.
8566
8567 2006-02-21  Ankit Jain  <jankit@novell.com>
8568
8569         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
8570
8571 2006-02-21  Raja R Harinath  <rharinath@novell.com>
8572
8573         * metadata.c (get_constraints): Relax debugging checks for monodis.
8574
8575 2006-02-21  Ankit Jain  <jankit@novell.com>
8576
8577         * metadata.c (mono_metadata_load_generic_params): Move the code
8578         checking for ambiguous generic params from here to mono/dis/get.c
8579         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
8580
8581 2006-02-21  Raja R Harinath  <harinath@gmail.com>
8582
8583         Fix assertion triggered when compiling nemerle.
8584         * class.c (mono_get_shared_generic_inst): Rename from
8585         get_shared_inst and make non-static.
8586         * loader.c (mono_get_shared_generic_method): New.  Used to create
8587         the MonoGenericContext-equivalent of a MonoGenericContainer.
8588         (mono_get_method_from_token): Initialize the 'context' field of
8589         the created MonoGenericContainer.
8590         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
8591         * metadata.c (get_constraints): Add sanity check.
8592         * class-internals.h: Add new internal methods.
8593
8594         * reflection.c (verify_safe_for_managed_space): New sanity check.
8595         Currently checks that owner-less generic parameters aren't allowed
8596         in managed space.
8597         (mono_type_get_object): Use it.
8598         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
8599         that are now in mono_type_get_object.
8600         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
8601
8602 2006-02-19  Raja R Harinath  <harinath@gmail.com>
8603
8604         * metadata.c (mono_type_create_from_typespec): Rename from
8605         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
8606         argument and caching of types in the generic container.
8607         (unwrap_arrays, find_generic_param): Remove.
8608         * metadata-internals.h: Update.
8609         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
8610
8611 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
8612
8613         * class.c (mono_class_get_exception_for_failure): Fix a warning.
8614
8615         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
8616         return values. Fixes #77581.
8617
8618         * class.c (mono_fnptr_class_get): Switch name and name_space.
8619
8620         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
8621         classes and add support for [In, Out] attributes.
8622         (mono_marshal_free_asany): Ditto. Fixes #77524.
8623
8624 2006-02-18  Raja R Harinath  <harinath@gmail.com>
8625
8626         * class.c (mono_class_from_generic_parameter): Make more robust to
8627         incomplete MonoGenericContainers from monodis.
8628
8629 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
8630
8631         * class-internals.h: added some more exception types.
8632         * class.c, metadata.c: added a few checks to handle missing
8633         types.
8634
8635 2006-02-17  Raja R Harinath  <rharinath@novell.com>
8636
8637         Use owner-less generic-params some more.
8638         * class.c (my_mono_class_from_generic_parameter): Remove.
8639         (mono_class_from_generic_parameter): Handle null image,
8640         param->name and param->owner.
8641         (mono_class_from_mono_type): Update.
8642         (mono_class_create_from_typespec): Remove 'container' parameter.
8643         If that parameter is non-null, the result is always inflated by
8644         'mono_class_get_full' anyway.
8645         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
8646         parameter.
8647         (mono_class_get_full): Update.
8648
8649         * class.c (inflate_generic_type) [GENERICINST]: If the generic
8650         instance is not open, don't bother inflating.
8651         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
8652         parse metadata for inflated classes.
8653         (_mono_class_get): Change GenericContext* parameter to
8654         GenericContainer*.
8655         (mono_class_create_from_typespec): Likewise.  Simplify, and
8656         implement trivially.  All the cases are handled in
8657         mono_class_from_mono_type.  Don't inflate returned class.
8658         (mono_class_get_full): Delegate GENERICINST optimization to
8659         inflate_generic_type.
8660         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
8661
8662 2006-02-16  Dick Porter  <dick@ximian.com>
8663
8664         * socket-io.c (create_object_from_sockaddr): Fix typo.
8665         (create_sockaddr_from_object): Check array lengths before
8666         potentially accessing items off the end.
8667         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
8668         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
8669         (ves_icall_System_Net_Sockets_Socket_Send_internal)
8670         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
8671         length checks to avoid wraparound overflows.
8672         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
8673         contents of the array of sockets
8674         (hostent_to_IPHostEntry2)
8675         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
8676         Check return value of inet_ntop ().
8677         (addrinfo_to_IPHostEntry): Fix typo
8678
8679 2006-02-16  Raja R Harinath  <rharinath@novell.com>
8680
8681         Type metadata parsing doesn't use generic-instantiation information.
8682         * metadata.c (mono_metadata_parse_array_full): Change
8683         MonoGenericContext* parameter to MonoGenericContainer*.
8684         (mono_metadata_parse_type_full): Likewise.
8685         (mono_type_create_from_typespec_full): Likewise.
8686         (mono_metadata_parse_mh_full): Likewise.
8687         (mono_metadata_parse_generic_inst): Likewise.
8688         (do_mono_metadata_parse_generic_class): Likewise.
8689         (do_mono_metadata_parse_type): Likewise.
8690         * metadata-internals.h: Update to changes.
8691         * class.c (mono_class_find_enum_basetype): Likewise.
8692         (mono_class_setup_fields): Likewise.
8693         (mono_class_create_from_typespec): Likewise.
8694         * loader.c (method_from_methodspec): Likewise.
8695         (mono_get_method_from_token): Likewise.
8696         (mono_method_get_header): Likewise.
8697
8698 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
8699
8700         * marshal.c: handle additional GENERICINST case (patch from
8701         Thong Nguyen <tum@veridicus.com>).
8702         Fix a few cases where LDIND_I/STIND_I was used for references.
8703
8704 2006-02-16  Raja R Harinath  <rharinath@novell.com>
8705
8706         * reflection.c (mono_reflection_get_token): Remove unused variable.
8707
8708 2006-02-16  Martin Baulig  <martin@ximian.com>
8709
8710         * reflection.c (mono_reflection_get_token): Add support for fields
8711         in instantiated generic types.
8712
8713         * icall.c
8714         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
8715
8716 2006-02-15  Martin Baulig  <martin@ximian.com>
8717
8718         * icall.c
8719         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
8720         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
8721         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
8722         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
8723
8724 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
8725
8726         * class.c, metadata.c, metadata.h, object.c, icall.c,
8727         marshal.c: changed mono_type_get_underlying_type () to do
8728         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
8729         Fixed handling of instantiated generic valuetypes (bug #75479).
8730
8731 2006-02-15  Raja R Harinath  <rharinath@novell.com>
8732
8733         * metadata.c (mono_metadata_decode_signed_value): Simplify.
8734         Delegate to mono_metadata_decode_value, and work on the returned value.
8735
8736         * icall.c (ves_icall_MonoType_GetGenericArguments):
8737         Add consistency check here too.
8738         
8739 2006-02-15  Ankit Jain  <jankit@novell.com>
8740
8741         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
8742         char/short etc.
8743
8744 2006-02-15  Ankit Jain  <jankit@novell.com>
8745
8746         * metadata.c (mono_metadata_decode_signed_value): New function to decode
8747         signed values, used only for representing lower bounds of arrays.
8748         (mono_metadata_parse_array_full): Use new
8749         mono_metadata_decode_signed_value to decode lower bounds.
8750
8751 2006-02-14  Martin Baulig  <martin@ximian.com>
8752
8753         * reflection.c
8754         (mono_reflection_get_token): Support "MonoGenericMethod" and
8755         "MonoGenericCMethod" and allow generic instances / methods.
8756
8757 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
8758
8759         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
8760         to obtain the terminal size using an ioctl.
8761
8762         * object.c (mono_nullable_init): Revert this as nullable reference
8763         types are not valid.
8764         (mono_nullable_box): Ditto.
8765
8766 2006-02-09  Dick Porter  <dick@ximian.com>
8767
8768         * threads.c (mono_thread_detach): Drop a reference to the thread
8769         we're detaching.
8770
8771 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
8772
8773         * object.c (mono_nullable_init): Handle nullable reference types.
8774         (mono_nullable_box): Ditto. Fixes #77446.
8775
8776 2006-02-07  Martin Baulig  <martin@ximian.com>
8777
8778         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
8779
8780 2006-02-07  Ankit Jain  <jankit@novell.com>
8781
8782         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
8783         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
8784         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
8785         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
8786         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
8787         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
8788
8789 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
8790
8791         * class.c (mono_class_create_generic): Set type_token as well.
8792
8793         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
8794         compatible with MS.
8795
8796 2006-02-02  Martin Baulig  <martin@ximian.com>
8797
8798         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
8799         has never been used so far.
8800
8801 2006-02-02  Martin Baulig  <martin@ximian.com>
8802
8803         * mono-debug-debugger.h: Changed comment at the top of this file;
8804         the header is not installed, but it's safe to #include it from
8805         within the JIT.
8806
8807         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
8808         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
8809
8810 2006-02-02  Martin Baulig  <martin@ximian.com>
8811
8812         * mono-debug.h
8813         (MonoSymbolTable): Removed the `metadata_info' field.
8814
8815         * mono-debug.c
8816         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
8817
8818         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
8819         (mono_debugger_add_builtin_types): Removed.
8820         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
8821         (mono_debugger_create_notification_function): We now operate on a
8822         pre-allocated area; take a `gpointer' and return `void'.
8823
8824         * mono-debug-debugger.c
8825         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
8826         (mono_debugger_add_builtin_types): Removed.
8827
8828 2006-02-02  Martin Baulig  <martin@ximian.com>
8829
8830         * threads.c (mono_debugger_create_all_threads): New public method.
8831
8832 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
8833
8834         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
8835         breaks on several platforms.
8836
8837 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
8838
8839         * assembly.c: the VS.NET build doesn't supply default values for
8840         MONO_ASSEMBLIES and MONO_CFG_DIR.
8841
8842 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
8843
8844         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
8845         helper function.
8846
8847         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
8848
8849         * loader.c (method_from_memberref): Fix a warning.
8850
8851         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
8852
8853         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
8854         with explicit layout. Fixes #77433.
8855
8856 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
8857
8858         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
8859         max_interface_id is initialized before using it. Fixes #77398.
8860         (ves_icall_Type_GetInterfaces): Ditto.
8861
8862 2006-01-30  Raja R Harinath  <rharinath@novell.com>
8863
8864         * metadata.c (mono_metadata_parse_method_signature_full): Don't
8865         allocate memory for parameter attributes when parsing memberref
8866         signatures.
8867         * loader.c (mono_loader_set_error_method_load): Don't warn.
8868         (method_from_memberref): Ensure MissingMethodException gets thrown
8869         if method is not found.  Make warning more informative.
8870
8871 2006-01-29  Raja R Harinath  <harinath@gmail.com>
8872
8873         Fix #77397
8874         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
8875         return true if is byref.
8876         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
8877         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
8878         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
8879
8880 2006-01-27  Raja R Harinath  <rharinath@novell.com>
8881
8882         Fix tests/find-method.2.il
8883         * loader.c (find_method, find_method_in_class): Remove is_inflated
8884         argument.  Revert 2006-01-18 change.
8885         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
8886         is generic, search for method in its generic definition.
8887         * class.c (mono_class_setup_vtable_general): Print generic
8888         arguments of generic types in debugging printf.
8889
8890 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
8891
8892         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
8893
8894         * threads.c (mono_threads_request_thread_dump): New helper function.
8895
8896 2006-01-25  Raja R Harinath  <rharinath@novell.com>
8897
8898         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
8899
8900 2006-01-25  Ankit Jain  <jankit@novell.com>
8901
8902         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
8903         move definition to ..
8904         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
8905         
8906 2006-01-25  Ankit Jain  <jankit@novell.com>
8907             Raja R Harinath  <rharinath@novell.com>
8908
8909         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
8910         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
8911         as necessary.
8912
8913 2006-01-25  Martin Baulig  <martin@ximian.com>
8914
8915         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
8916         `MonoDebuggerThread' into debug-debugger.c.
8917
8918 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
8919
8920         * profiler.c: fix printing of data.
8921
8922 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
8923
8924         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
8925           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
8926
8927 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
8928
8929         * object.c: fix deadlock related to string interning.
8930
8931 2006-01-23  Martin Baulig  <martin@ximian.com>
8932
8933         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
8934
8935         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
8936
8937 2006-01-23  Martin Baulig  <martin@ximian.com>
8938
8939         * mono-debug.h: Moved the prototypes of some functions which are
8940         used by the JIT here from mono-debug-debugger.h.
8941
8942 2006-01-21  Martin Baulig  <martin@ximian.com>
8943
8944         * Makefile.am: Don't install mono-debug-debugger.h.
8945
8946 2006-01-21  Martin Baulig  <martin@ximian.com>
8947
8948         * mono-debug-debugger.h: Enforce the private status of this header
8949         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
8950         Moved some stuff from mono-debugger-jit-wrapper.h here.
8951
8952 2006-01-20  Raja R Harinath  <rharinath@novell.com>
8953
8954         * class.c (mono_class_from_typeref): Add a sanity test to help
8955         catch lack of assembly load/search hooks.
8956
8957 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
8958
8959         * marshal.c (emit_struct_conv): Relax the fields with same offset
8960         check even more. Fixes #77230.
8961
8962 2006-01-18  Martin Baulig  <martin@ximian.com>
8963
8964         * loader.c (find_method_in_class): Added `gboolean is_inflated'
8965         argument; if false, we compare the uninstantiated signatures.
8966         (method_from_memberref): Compare the uninstantiated signatures;
8967         fixes #76417.
8968
8969 2006-01-18  Robert Jordan  <robertj@gmx.net>
8970
8971         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
8972         Clear the weak link. Fixes bug #77170.
8973
8974         * gc.c (mono_gchandle_free):
8975         Reflect *-gc.c changes (tiny optimization).
8976
8977 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
8978
8979         * metadata.c (mono_metadata_signature_dup): Applied patch from
8980         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
8981         Fixes #77288.
8982
8983 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
8984
8985         * marshal.c (emit_struct_conv): Allow fields with the same offset when
8986         marshalling from native to managed code. Fixes #77230.
8987
8988 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8989
8990         * threadpool.c: fix problem (Mac only) when more than one asynchronous
8991         connect. Fixes bug #77020.
8992
8993 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
8994
8995         * class.c: fixed id assignement for nested interfaces (bug #77275).
8996         Added also better info for --print-vtable debugging.
8997
8998 2006-01-12  Martin Baulig  <martin@ximian.com>
8999
9000         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
9001         interfaces on-the-fly; fixes #76625.
9002
9003         * class-internals.h
9004         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
9005         don't need that anymore.
9006
9007 2006-01-12  Miguel de Icaza  <miguel@novell.com>
9008
9009         * socket-io.c
9010         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
9011         To avoid initing the nested_classes when not needed I turned the
9012         PeerCredData as a toplevel internal class, as it has to be shared
9013         anyways. 
9014
9015         Fixes the CASA issue.
9016
9017 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
9018
9019         * domain.c: Accessors for MonoJitInfo
9020
9021         * profiler-private.h: Add jitinfo to the end jit hook
9022
9023         * profiler.[ch]: Define new hooks, called after jitting which give
9024         the MonoJitInfo that was compiled
9025
9026 2006-01-10  Martin Baulig  <martin@ximian.com>
9027
9028         * class.c (mono_class_setup_events): Add support for generic
9029         classes; fixes #76440.
9030
9031 2006-01-06  Raja R Harinath  <rharinath@novell.com>
9032
9033         Fix #77160.
9034         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
9035         on passed-in method.
9036
9037 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
9038
9039         * object.c (mono_runtime_invoke_array): Add Nullable support.
9040
9041         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
9042
9043 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
9044
9045         * file-io.c: Don't consider sockets as directory and avoid an endless
9046         loop. Fix bug #76966.
9047
9048 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
9049
9050         * object.c (mono_nullable_init): New helper function.
9051         (mono_nullable_box): Ditto.
9052
9053         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
9054
9055         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
9056
9057         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
9058         
9059 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
9060
9061         * class.c (mono_class_is_assignable_from): Make T assignable to 
9062         Nullable<T>.
9063
9064 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
9065
9066         * appdomain.c: Bump corlib version to 46.
9067         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
9068         serialization purpose) and changed ves_icall_System_Reflection_
9069         Assembly_get_code_base signature to accept a boolean (to escape, or 
9070         not, the assembly code base).
9071
9072 2005-12-23  Dick Porter  <dick@ximian.com>
9073
9074         * icall.c: 
9075         * threads-types.h: 
9076         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
9077         CreateEvent icall now returns "created" boolean parameter.
9078
9079 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
9080
9081         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
9082         #76967.
9083
9084         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
9085         when attr_klass is an interface. Fixes #77045.
9086
9087 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
9088
9089         * marshal.c (emit_struct_conv): Fix previous patch.
9090         
9091         * marshal.c (emit_struct_conv): Add a check for fields with the same
9092         offset.
9093
9094 2005-12-20  Raja R Harinath  <rharinath@novell.com>
9095
9096         Fix regression in Mono.C5.
9097         * class.c (mono_class_create_generic): If 'klass' is an interface
9098         set up the interface offsets.
9099         (mono_class_is_assignable_from): Don't throw away generic arguments.
9100
9101 2005-12-19  Raja R Harinath  <rharinath@novell.com>
9102
9103         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
9104         type parameters.
9105
9106 2005-12-15  Raja R Harinath  <rharinath@novell.com>
9107
9108         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
9109         dead store.
9110         (do_mono_metadata_parse_generic_class): Don't pass the current
9111         generic context when parsing the type being instantiated: it
9112         cannot use it, anyway.
9113
9114         * loader.c (method_from_memberref): Don't inflate a signature if
9115         it doesn't contain any type parameters.
9116
9117 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
9118
9119         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
9120
9121 2005-12-14  Martin Baulig  <martin@ximian.com>
9122
9123         * class.c
9124         (mono_type_get_name_recurse): Don't return null for type
9125         parameters and open generic classes.
9126         (mono_class_setup_methods): Don't exclude generic instances.
9127         (mono_get_unique_iid): Use different IDs for different
9128         instantiations of the same generic type.
9129         (mono_class_setup_vtable): Only use setup_generic_vtable() for
9130         open generic instances; create a normal vtable for closed generic
9131         instances.
9132         (mono_class_setup_vtable_general): We're now also called for
9133         closed generic instances.
9134
9135         * reflection.c
9136         (mono_reflection_bind_generic_parameters): Correctly use
9137         mono_metadata_lookup_generic_inst() everywhere.
9138
9139 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
9140
9141         * object.c (mono_class_create_runtime_vtable): Call 
9142         mono_class_setup_vtable ().
9143
9144         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
9145         function.
9146         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
9147         #76959.
9148
9149         * loader.c (mono_loader_set_error_type_load): Print the type load
9150         warnings to the console so they are more visible to the user.
9151         (mono_loader_set_error_method_load): Ditto.
9152
9153         * reflection.c (ensure_runtime_vtable): Revert the last change as it
9154         is still broken.
9155         
9156         * reflection.c (ensure_runtime_vtable): Fix build.
9157
9158         * reflection.c (ensure_runtime_vtable): Disable an optimization which
9159         doesn't work in all cases.
9160
9161 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
9162
9163         * object.c (mono_array_new_full): Treat a single dimensional array
9164         with 0 lower bounds as an szarray. Fixes #76973.
9165
9166         * reflection.c (custom_attr_visible): Really fix this.
9167
9168 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
9169
9170         * reflection.c (custom_attr_visible): Allow nested public attributes
9171         as well.
9172
9173         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
9174         interface check.
9175
9176 2005-12-12  Raja R Harinath  <harinath@gmail.com>
9177
9178         * class.c (set_generic_param_owner): Delete.
9179         (mono_class_create_from_typedef): Don't set ->owner field of
9180         generic parameters to "param containers" of enclosing classes.
9181         * reflection.c (mono_reflection_initialize_generic_parameter):
9182         Likewise.
9183
9184 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
9185
9186         * reflection.c (custom_attr_visible): Fix build.
9187
9188 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
9189
9190         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
9191         private attributes.
9192         
9193         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
9194         handling of null parameter defaults.
9195
9196 2005-12-09  Raja R Harinath  <rharinath@novell.com>
9197
9198         * class.c (mono_class_from_generic_parameter): Don't set
9199         klass->generic_container.
9200         (my_mono_class_from_generic_parameter): Likewise.
9201
9202 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
9203
9204         * reflection.c (load_public_key): Fix a warning.
9205         (method_encode_code): Fix unaligned accesses.
9206
9207 2005-12-07  Martin Baulig  <martin@ximian.com>
9208
9209         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
9210
9211         * reflection.c
9212         (write_generic_param_entry): Encode our custom attrs.
9213
9214         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
9215
9216 2005-12-07  Martin Baulig  <martin@ximian.com>
9217
9218         * reflection.c (encode_new_constraint): Removed; we don't use the
9219         `NewConstraintAttribute' anymore.
9220
9221 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
9222
9223         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
9224         not fire a TypeResolve event when Assembly.GetType () is called.
9225
9226 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
9227
9228         Beginning of support for nullable types in the runtime. Parts of
9229         this patch are from Martin.
9230
9231         * appdomain.c (MONO_CORLIB_VERSION): Bump
9232
9233         * domain.c (mono_init_internal): get the nullable type
9234
9235         * class.c (mono_class_is_nullable): New method
9236         (mono_class_get_nullable_param): New mehod
9237         (mono_class_create_generic): In types T? set cast_class to T
9238
9239         * class-internals.h (MonoDefaults): new nullable default class
9240         (mono_class_get_nullable_param, mono_class_get_nullable_param):
9241         new methods.
9242
9243 2005-12-05  Raja R Harinath  <rharinath@novell.com>
9244
9245         * metadata.c (select_container): New.  Refactor code to select the
9246         appropriate GenericContainer given the type of generic parameter
9247         we are looking for.
9248         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
9249         not a MonoGenericContext.  Use select_container.  Update parameters.
9250         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
9251         and MONO_TYPE_MVAR.
9252         (unwrap_arrays): Remove duplicate tests.
9253         (find_generic_param): Rename from 'has_same_context'.  Now walks a
9254         generic instantiated class to find any arguments that are generic
9255         parameters.
9256         (mono_type_create_from_typespec_full): Use find_generic_param to
9257         avoid evicting some generic instantiations from the typespec
9258         cache.
9259
9260 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
9261
9262         * reflection.c: fixed writing of doubles on ARM FPA.
9263
9264 2005-12-02  Robert Jordan  <robertj@gmx.net>
9265
9266         * icall.c: Fixed EventInfo.ReflectedType (#76829).
9267
9268 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9269
9270         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
9271         least on SUSE 10 they are not the same (on debian, they are just the
9272         same thing).
9273
9274 2005-12-01  Raja R Harinath  <rharinath@novell.com>
9275
9276         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
9277         DeclaringType for VARs and MVARs.
9278         * class.c (set_generic_param_owner): Fix initialization of owner
9279         fields.
9280
9281 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
9282
9283         * icall.c: fixed Enum.ToObject() to correctly convert the values.
9284
9285 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9286
9287         * threadpool.c: workaround for a bug that shows up on the Mac:
9288         select()+connect() on a blocking socket is not like it should
9289         be, so we proceed to connect() in that case, wasting the I/O
9290         threadpool thread until connect succeedes. Fixes bug #75436.
9291
9292 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9293
9294         * threadpool.c: fix typo when setting file descriptor states.
9295
9296 2005-11-28  Raja R Harinath  <rharinath@novell.com>
9297
9298         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
9299         * metadata.c (mono_metadata_parse_method_signature_full): Don't
9300         create a temporary signature container.
9301         (mono_metadata_parse_generic_param): Update to changes.
9302         (mono_type_create_from_typespec_full): Update to changes.
9303         * loader.c (method_from_memberref): Don't use a
9304         MonoGenericContainer while parsing a memberref signature.
9305         (method_from_methodspec): Remove dead-store of the 'container'
9306         variable.  It's overwritten before use.
9307
9308         * metadata.c (mono_type_create_from_typespec_full): Make debugging
9309         checks tighter.
9310         (mono_metadata_parse_generic_param): Likewise.
9311         * loader.c (find_method_in_class): Does not need a
9312         MonoGenericContainer.  Use 'mono_method_signature' rather than
9313         'mono_method_signature_full'.
9314         (find_method, mono_get_method_constrained, method_from_memberref):
9315         Update to changes.
9316
9317         * metadata.c (mono_type_create_from_typespec_full): Ensure that
9318         owner-less generic-parameters are never evicted from the typespec
9319         cache.
9320
9321         * loader.c (method_from_memberref): Don't use the current context
9322         when parsing signatures.
9323         (method_from_methodspec, mono_get_method_from_token): Update to changes.
9324
9325         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
9326         side-effects in g_assert.
9327         * loader.c (mono_get_method_from_token): Resolve klass earlier so
9328         that we don't potentially lose information.
9329
9330 2005-11-26  Dick Porter  <dick@ximian.com>
9331
9332         * icall.c:
9333         * threads.c: icalls to implement basic (ie, not named)
9334         System.Threading.Semaphore.
9335
9336 2005-11-24  Dick Porter  <dick@ximian.com>
9337
9338         * process.c
9339         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
9340         Use GetProcessId() if it's available.
9341
9342 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
9343
9344         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
9345
9346 2005-11-23  Raja R Harinath  <rharinath@novell.com>
9347             Ankit Jain  <jankit@novell.com>
9348
9349         * loader.c (mono_get_method_from_token): Initialize 'method' field
9350         of all generic parameters before parsing the signature.  Remove
9351         code that "fixed"-up MVAR references.
9352
9353 2005-11-23  Ankit Jain  <jankit@novell.com>
9354
9355         * metadata.c (mono_metadata_has_generic_params):
9356         (mono_metadata_load_generic_param_constraints):
9357         (mono_metadata_load_generic_params): Move duplicate code ...
9358         (mono_metadata_get_generic_param_row): ... here. Returns the
9359         first row-id in GenericParam table for a given owner (token).
9360         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
9361         prototype.
9362
9363 2005-11-23  Raja R Harinath  <rharinath@novell.com>
9364             Ankit Jain  <jankit@novell.com>
9365
9366         * metadata.c (mono_metadata_class_equal): Pass signature_only when
9367         comparing VARs too.
9368         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
9369         type->data.generic_param only if the type is an MVAR.
9370         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
9371         leak owner-less VARs and MVARs into managed space.
9372
9373 2005-11-21  Martin Baulig  <martin@ximian.com>
9374
9375         * class-internals.h
9376         (MonoMethod): Moved the `generic_container' here from
9377         `MonoMethodNormal' since we now also need it for
9378         `MonoMethodPInvoke';
9379         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
9380         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
9381         an union containing both `MonoMethodNormal' and
9382         `MonoMethodPInvoke'.
9383
9384         * loader.c
9385         (mono_get_method_from_token): Allow implementing generic methods
9386         as interncalls.
9387
9388         * threads.c
9389         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
9390         icall.
9391
9392 2005-11-17  Dick Porter  <dick@ximian.com>
9393
9394         * icall.c: 
9395         * process.h: 
9396         * process.c: Split the Process Start_internal icall into
9397         ShellExecuteEx_internal and CreateProcess_internal, which are
9398         called depending on whether UseShellExecute is true.  Fixes bug
9399         76670.
9400
9401         * appdomain.c (MONO_CORLIB_VERSION): Incremented
9402
9403 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
9404
9405         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
9406         'msize' parameters, use the information in 'mspec' instead.
9407         (emit_object_to_ptr_conv): Ditto.
9408
9409         * marshal.c (emit_struct_conv): Handle explicit layout structs with
9410         fields out of order. Fixes #76733.
9411
9412 2005-11-17  Ankit Jain  <jankit@novell.com>
9413
9414         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
9415
9416 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
9417
9418         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
9419           bug #76575.
9420
9421 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
9422
9423         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
9424         for types with non-auto layout. Fixes #76717.
9425
9426 2005-11-16  Ankit Jain  <jankit@novell.com>
9427
9428         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
9429         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
9430         if generic_context is null.
9431           (mono_metadata_generic_param_equal): param->owner can be null.
9432           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
9433         null.
9434
9435 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
9436
9437         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
9438         the correct value.
9439
9440 2005-11-15  Martin Baulig  <martin@ximian.com>
9441
9442         * object.c (set_value): Use mono_class_from_mono_type() instead of
9443         the hack for generic instances; fixes #76136.
9444
9445 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
9446
9447         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
9448         fields.
9449
9450         * image.c (load_metadata_ptrs): Initialize the new fields.
9451
9452         * reflection.c (create_dynamic_mono_image): Ditto.
9453
9454         * reflection.c (build_compressed_metadata): Use the new fields.
9455
9456         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
9457         icall.
9458
9459         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
9460         icall.
9461         
9462 2005-11-15  Ankit Jain  <jankit@novell.com>
9463             Raja R Harinath  <harinath@gmail.com>
9464
9465         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
9466         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
9467         new per-generic_container cache if the cached MonoType's context matches
9468         the current context.
9469           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
9470         to the expected context.
9471           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
9472
9473 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9474
9475         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
9476         we changed the signature of an icall.
9477         * icall.c: Modify to mono_double_ParseImpl return true/false 
9478         depending on the success, instead of throwing the exception. This will
9479         help us in Double.TryParse methods.
9480         
9481 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
9482
9483         * marshal.c (emit_marshal_object): Throw an exception when
9484         marshalling 'object' instead of crashing. Fixes #76696.
9485
9486 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
9487
9488         * class-internals.h: Add prototype for mono_type_get_full_name ().
9489
9490 2005-11-11  Dick Porter  <dick@ximian.com>
9491
9492         * threads.c (mono_thread_manage): Make sure the main thread has
9493         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
9494
9495 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
9496
9497         * loader.c (mono_loader_set_error_type_load): Log a warning to the
9498         console about the missing type.
9499         (mono_loader_set_error_method_load): Ditto.
9500
9501 2005-11-09  Miguel de Icaza  <miguel@novell.com>
9502
9503         * mono-config.c (mono_get_config_dir): Set the system defaults if
9504         none is specified.
9505
9506         * assembly.c (mono_set_dirs): New API entry point to set the
9507         assembly and the config directory in one call
9508
9509 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
9510
9511         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
9512         the ftnptr was created from a delegate in a domain other than the
9513         current domain. Fixes #75377.
9514
9515         * exception.h exception.c: Add mono_get_exception_not_supported ().
9516
9517 2005-11-08  Martin Baulig  <martin@ximian.com>
9518
9519         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
9520
9521 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
9522
9523         * security-manager.h: Added definitions to deal with strongname key 
9524         pairs bigger (and smaller) than 1024 bits.
9525         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
9526         adjust wrt the public key length being used.
9527
9528 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
9529
9530         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
9531           Windows build (r51396-51397).
9532
9533 2005-11-03  Martin Baulig  <martin@ximian.com>
9534
9535         * class.c (mono_class_setup_vtable_general): Also add generic
9536         methods to the vtable; fixes #76581.
9537
9538 2005-11-01  Miguel de Icaza  <miguel@novell.com>
9539
9540         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
9541         sure that we lookup GetString method from the System.Text.Encoding
9542         class, not the derived class or we get an empty method.
9543
9544         Fixed class #76612.
9545
9546 2005-10-25  Miguel de Icaza  <miguel@novell.com>
9547
9548         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
9549         if it has been previously set (embedders). 
9550
9551         Make mono_set_rootdir available also on Unix.
9552
9553 005-10-24  Robert Jordan  <robertj@gmx.net>
9554
9555         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
9556
9557 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
9558
9559         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
9560         only calls which are made to native code use this flag.
9561
9562         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
9563
9564 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
9565
9566         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
9567         Add support for FieldBuilders.
9568
9569 2005-10-29  Martin Baulig  <martin@ximian.com>
9570
9571         * mono-debug.c
9572         (mono_debug_using_mono_debugger): New public method; returns
9573         whether we're running inside the debugger.
9574
9575 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
9576
9577         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
9578         for Method/Constructor/FieldBuilders.
9579
9580 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
9581
9582         * reflection.c (module_add_cattrs): Save custom attributes for global methods
9583         and fields as well.
9584
9585 2005-10-26  Martin Baulig  <martin@ximian.com>
9586
9587         * mono-debug-debugger.c
9588         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
9589
9590 2005-10-24  Raja R Harinath  <harinath@gmail.com>
9591
9592         * icall.c (base64_to_byte_array): Don't pass an out-of-range
9593         integer to isspace.
9594
9595 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
9596
9597         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
9598         when passing valuetypes byref. Fixes #76502.
9599
9600 2005-10-19  Jackson Harper  <jackson@ximian.com>
9601
9602         * profiler.c: Don't put a . in front of types that are not in a
9603         namespace.
9604
9605 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
9606
9607         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
9608
9609 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
9610
9611         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
9612         #76436.
9613         (mono_marshal_get_ldflda_wrapper): Fix a warning.
9614
9615 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9616
9617         * assembly.c metadata-internals.h icall.c: Define an additional
9618         parameter for mono_assembly_name_parse_full, so we can avoid creating
9619         S.R.AssemblyName.Version when no version info wasn't passed.
9620         
9621 2005-10-09  Miguel de Icaza  <miguel@novell.com>
9622
9623         * class.c (mono_type_get_full_name): Reimplement method that was
9624         removed. 
9625
9626         * image.c: Some docs
9627
9628 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
9629
9630         * profiler.c (output_newobj_profile): Fix printing of Total memory
9631         on x86.
9632
9633 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
9634
9635         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
9636
9637 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
9638
9639         * threads.c: remove debug output.
9640
9641 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
9642
9643         * threads.c (mono_thread_manage): Fix crashes if more than 64
9644         threads need to be aborted. Hopefully fixes #75899.
9645
9646         * assembly.c (mono_stringify_assembly_name): New helper function.
9647
9648         * class.c: Use mono_stringify_assembly_name instead of the similar
9649         static function.
9650
9651         * assembly.h assembly.c: Add support for calling a postload search 
9652         hook if an assembly cannot be loaded.
9653
9654         * appdomain.c: Register new search hooks which call the AssemblyResolve
9655         events in AppDomain. Fixes #75231
9656
9657 2005-10-07  Martin Baulig  <martin@ximian.com>
9658
9659         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
9660         methods without debug info.
9661
9662 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
9663
9664         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
9665         wrappers.
9666
9667 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9668
9669         * file-io.c: now that we return symlinks, use lstat and, when the file
9670         is a symbolic link, stat, to get the file attributes. Also avoid the
9671         conversion to/from utf16/external.
9672
9673 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
9674
9675         * class.c (mono_class_layout_fields): Compute klass->has_references
9676         correctly if an embedded valuetype is not yet initialized. Fixes
9677         #76331.
9678
9679 2005-10-04  Martin Baulig  <martin@ximian.com>
9680
9681         * metadata.c
9682         (mono_metadata_load_generic_param_constraints): New public
9683         function; splitted the constraints loading out from
9684         mono_metadata_load_generic_params().
9685
9686         * class.c (mono_class_create_from_typedef): Call
9687         mono_metadata_load_generic_param_constraints() after setting up
9688         the type and creating our parent; fixes #75329.
9689
9690 2005-10-04  Martin Baulig  <martin@ximian.com>
9691
9692         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
9693         non-dynamic parent classes.
9694
9695 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
9696
9697         * file-io.c : win32 build fix (ETXTBSY seems not found).
9698
9699 2005-10-04  Martin Baulig  <martin@ximian.com>
9700
9701         * reflection.c
9702         (mono_image_get_methodspec_token): Make the cache actually work;
9703         fixes #75974.
9704
9705 2005-10-04  Martin Baulig  <martin@ximian.com>
9706
9707         * class.c (mono_class_name_from_token): Removed the unneccessary
9708         `MonoGenericContext *' argument.
9709
9710 2005-10-04  Martin Baulig  <martin@ximian.com>
9711
9712         * loader.c
9713         (method_from_methodspec): Make the caching work again; fixes the
9714         performance regression from #76262.
9715
9716 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9717
9718         * file-io.c:
9719         * file-io.h:
9720         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
9721         GetFileSystemEntries that performs the same work but without going
9722         into io-layer, locking, etc.
9723
9724 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
9725
9726         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
9727         ThreadState_Stopped as well. Fixes #76047.
9728
9729 2005-09-29  Martin Baulig  <martin@ximian.com>
9730
9731         * class.c
9732         (inflate_generic_context): If the new context has a `gmethod', set
9733         its `container' that that gmethod's `container'.
9734
9735         * metadata.c
9736         (mono_metadata_parse_generic_param): Simplify things;
9737         `generic_container = generic_context->container;' is just fine.
9738
9739         * loader.c (method_from_methodspec): Code cleanups.
9740
9741 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
9742
9743         * decimal.c: fix warning (and let gcc generate correct
9744         code on ARM with optimizations).
9745
9746 2005-09-28  Martin Baulig  <martin@ximian.com>
9747
9748         * loader.c
9749         (method_from_memberref): Added `MonoGenericContext *class_context'
9750         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
9751         (method_from_methodspec): If we're a memberref, use the enclosing
9752         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
9753
9754 2005-09-28  Martin Baulig  <martin@ximian.com>
9755
9756         * object.c (mono_runtime_invoke_array): Added support for
9757         MONO_TYPE_GENERICINST; fixes #75917.
9758
9759 2005-09-27  Martin Baulig  <martin@ximian.com>
9760
9761         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
9762         `k->byval_arg.type' to determine the actual type.
9763
9764         * loader.c (method_from_methodspec): Removed some hacks.
9765
9766 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
9767
9768         * class-internals.h (mono_field_is_deleted): Do the test for
9769         rtspecialname before we check the actual name of the field. This
9770         prevents us from dereferencing a pointer into the string table,
9771         saving us from accessing a few pages
9772
9773         * *.c: Replace the use of {Enter,Leave}CriticalSection with
9774         macros. This will allow a deadlock debugger to easily be plugged
9775         in.
9776
9777 2005-09-27  Martin Baulig  <martin@ximian.com>
9778
9779         * loader.c (method_from_methodspec): Create a "signature"
9780         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
9781
9782 2005-09-27  Martin Baulig  <martin@ximian.com>
9783
9784         * class.c
9785         (inflate_generic_class): Correctly set the new context's
9786         container.
9787
9788         * loader.c
9789         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
9790         instead of a `MonoGenericContext *'.
9791         (mono_method_signature_full): Take a `MonoGenericContainer *'
9792         instead of a `MonoGenericContext *'.
9793
9794         * metadata.c
9795         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
9796         instead of a `MonoGenericContext *'.
9797         (mono_metadata_parse_method_signature_full): Likewise.
9798
9799 2005-09-26  Martin Baulig  <martin@ximian.com>
9800
9801         * class.c
9802         (mono_class_from_generic_parameter): Set `klass->generic_container'
9803         (mono_class_from_generic_parameter): Likewise.
9804         (mono_bounded_array_class_get): We inherit the generic container
9805         from the element class.
9806
9807         * loader.c
9808         (find_method, find_method_in_class): Take a `MonoGenericContext *'
9809         argument rather than computing it here.
9810         (method_from_memberref): Correctly set the generic context before
9811         parsing the signature.  Fixes #75681.
9812
9813 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
9814
9815         * object.c (mono_class_has_special_static_fields): Fix warnings.
9816
9817 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9818
9819         * assembly.c: Add parse_public_key function, to
9820         par the public keys. Also added mono_assembly_name_parse_full,
9821         to define it the parsed key should be freed or not.
9822         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
9823         to parse a long format assembly name.
9824         * metadata-internals.h: Keep mono_assembly_name_parse_full as
9825         private, since calling it to preserve the key requires
9826         freeing it manually.
9827         
9828 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
9829
9830         * locales.c : removed HAVE_ICU part.
9831
9832 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
9833
9834         * object.c (mono_class_create_runtime_vtable): Avoid calling 
9835         field_is_special_static if the klass has no special static fields.
9836
9837         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
9838         (MonoCachedClassInfo): Likewise.
9839
9840         * object.c (mono_class_has_special_static_fields): New helper function.
9841
9842 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
9843
9844         * class.c (mono_class_create_from_typedef): Don't call 
9845         interfaces_from_typedef_full for enums.
9846         (mono_class_create_from_typedef): Compute the base types of enums directly
9847         without calling mono_class_setup_fields ().
9848         (mono_class_find_enum_basetype): New helper function.
9849
9850         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
9851         one place inside the string heap.
9852         
9853 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
9854
9855         * class.c: locking fixes, code cleanups, some docs added.
9856         Allocate some data structures in the image mempool.
9857
9858 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
9859
9860         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
9861         the example code.
9862         
9863 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
9864
9865         * class-internals.h, class.c, reflection.c: reduce memory taken by
9866         MonoClass.
9867
9868 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
9869
9870         * metadata.c, metadata.h, loader.h: documentation updates, code and
9871         API cleanups.
9872
9873 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
9874
9875         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
9876         the example code.
9877
9878         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
9879         page faults caused by the runtime while reading metadata.
9880
9881 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9882
9883         * socket-io.c: the field names were changed 3 months ago and no one
9884         realized until bug #76077 got filed!
9885
9886 2005-09-20  Martin Baulig  <martin@ximian.com>
9887
9888         * icall.c (assembly_icalls): Removed some unused debugger icalls.
9889
9890 2005-09-20  Martin Baulig  <martin@ximian.com>
9891
9892         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
9893         write the rank into the class entry.
9894
9895 2005-09-20  Martin Baulig  <martin@ximian.com>
9896
9897         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
9898
9899 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
9900
9901         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
9902
9903         * icall.c (custom_attrs_defined_internal): New icall.
9904
9905         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
9906         function.
9907         (mono_custom_attrs_construct_by_type): New helper function.
9908
9909 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
9910
9911         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
9912         terminate the resulting string. Fixes #76123.
9913
9914 2005-09-16  Martin Baulig  <martin@ximian.com>
9915
9916         * mono-debug.c
9917         (mono_debug_add_method): Ignore inflated methods for the moment.
9918
9919 2005-09-14  Martin Baulig  <martin@ximian.com>
9920
9921         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
9922
9923 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
9924
9925         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
9926         return a success/failure indication.
9927         (mono_metadata_interfaces_from_typedef_full): Ditto.
9928         (get_constraints): Ditto.
9929
9930 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
9931
9932         * marshal.c (emit_marshal_array): Fix handling of null arrays.
9933         
9934         * marshal.c (emit_marshal_array): Add support for returning string
9935         arrays from delegates. Fixes #76063.
9936
9937         * marshal.c: Use the emit_ldloc/stloc macros where possible.
9938
9939 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
9940
9941         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
9942         icall.
9943
9944 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
9945
9946         * reflection.c icall.c: Fix after mono_get_exception_type_load
9947         signature change.
9948
9949         * assembly.c (mono_assembly_get_assemblyref): New helper function.
9950         (mono_assembly_load_reference): Use the new helper.
9951
9952         * class-internals.h (MonoLoaderError): New structure containing 
9953         information about type loading errors.
9954
9955         * class-internals.h loader.c: Add APIs to store per-thread loader
9956         error information.
9957
9958         * loader.c class.c: Set the loader error if needed.
9959
9960         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
9961
9962 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
9963
9964         * decimal.c: fixed to handle the broken ARM fp format.
9965
9966 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
9967
9968         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
9969         broken.
9970
9971 2005-09-06  Martin Baulig  <martin@ximian.com>
9972
9973         * domain.c (supported_runtimes): Added v2.0.50727.
9974
9975 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
9976
9977         * culture-info.h: reduce the size of some structures.
9978
9979 2005-09-05  Martin Baulig  <martin@ximian.com>
9980
9981         Reflect latest API changes in the August CTP.
9982
9983         * icall.c
9984         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
9985         ("MonoType.HasGenericArguments"): Removed.
9986         ("MonoMethod.BindGenericParameters"): Renamed to
9987         "MakeGenericMethod".
9988         ("MethodBuilder.BindGenericParameters"): Renamed to
9989         "MakeGenericMethod".    
9990
9991 2005-09-05  Martin Baulig  <martin@ximian.com>
9992
9993         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
9994
9995 2005-09-05  Martin Baulig  <martin@ximian.com>
9996
9997         Applying a patch from Michal Moskal <malekith@nemerle.org>.
9998
9999         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
10000         generic_container is non-NULL.
10001
10002 2005-09-05  Martin Baulig  <martin@ximian.com>
10003
10004         Applying a patch from Michal Moskal <malekith@nemerle.org>.
10005
10006         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
10007
10008 2005-08-29  Michal Moskal  <malekith@nemerle.org>
10009
10010         * reflection.c (encode_locals,
10011         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
10012         for large generic types.
10013
10014 2005-09-05  Martin Baulig  <martin@ximian.com>
10015
10016         Applying a patch from Michal Moskal <malekith@nemerle.org>.
10017
10018         * class.c (mono_dup_array_type): New public method.
10019         (mono_metadata_signature_deep_dup): New public method.
10020         (dup_type): Correctly duplicate array and function types.
10021
10022 2005-09-05  Martin Baulig  <martin@ximian.com>
10023
10024         Applying a patch from Michal Moskal <malekith@nemerle.org>.
10025
10026         * reflection.c (get_default_param_value_blobs): Handle generic types
10027         and generic methods.
10028
10029 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
10030
10031         * class.c: Fixed error reporting (method/class were inversed) for 
10032         inheritance demands.
10033         * security-manager.c|h: Added the AppDomain when calling the managed
10034         System.Security.SecurityManager.InheritanceDemand method.
10035
10036 2005-09-01  Raja R Harinath  <rharinath@novell.com>
10037
10038         * reflection.c (encode_marshal_blob): 'marshaltype' and
10039         'marshaltyperef' are alternate sources for the custom marshaler
10040         name.
10041
10042 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
10043
10044         * class.c: fix creation of array classes with rank == 1
10045         (patch by Ankit Jain <jankit@novell.com>).
10046
10047 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
10048
10049         * object.c: fix check for creating the bound data for arrays vs
10050         szarrays.
10051
10052 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10053
10054         * object.c: configuration file name is now based on the executable name,
10055         not the image name. Fixes bug #75931.
10056
10057 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
10058
10059         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
10060         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
10061
10062 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
10063
10064         * rand.c: Use wincrypt.h instead of WinCrypt.h.
10065
10066 2005-08-24  Ankit Jain  <jankit@novell.com>
10067             Raja R Harinath  <rharinath@novell.com>
10068
10069         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
10070           called by it recursively.
10071           (mono_class_init): Remove special case in pending_init handling, since it's
10072           superseded by the fix to mono_class_from_typeref.
10073
10074 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
10075
10076         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
10077         BROKEN_THREAD_START stuff.
10078
10079 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
10080
10081         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
10082         trampoline.
10083
10084         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
10085         
10086         * object.c (mono_delegate_ctor): Replace the original function address with
10087         a delegate trampoline.
10088
10089 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
10090
10091         * icall.c: add boolean argument to base64_to_byte_array and 
10092         InternalFromBase64String to control whether a whitespace-only string
10093         is allowed (or should casue a FormatException to be thrown). We need
10094         this as the behavior has changed between MS.NET 1.x and 2.0, and we
10095         to match the MS behaviour in both profiles.
10096         * appdomain.c: Bump corlib version.
10097
10098 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10099
10100         This patch implements a big portion of publisher policy
10101         support, used to bind assembly versions and redirect
10102         one assembly from version A to version B.
10103
10104         * assembly.c:
10105         New GSList loaded_assembly_bindings, for storing the cached
10106         assembly bindings.
10107         (assembly_binding_maps_name): New static function for checking if a 
10108         assembly binding information maps an assembly name.
10109         (mono_assembly_binding_info_free): New function for freeing
10110         assembly binding information resources.
10111         (get_publisher_policy_info): New static function for retrieving 
10112         assembly binding information from a MonoImage.
10113         (compare_versions): New static function for comparing an assembly
10114         binding information data and the version of an assembly name.
10115         (check_policy_versions): New static function for checking if an
10116         assembly binding info mapping an assembly name is valid for it.
10117         (mono_assembly_load_publisher_policy): New static function for
10118         loading the 'policy.major.minor.MyAssembly' image for an assembly
10119         with an assembly name 'aname'.
10120         (mono_assembly_bind_version): New static function for updating
10121         assembly redirection.
10122         (mono_assembly_apply_binding): New static function for applying
10123         assembly binding.
10124         (search_binding_loaded): New static function for searching 
10125         loaded assembly binding infos in the cache domain.
10126         (mono_assembly_load_full): Don't apply assembly binding for
10127         reflection only assemblies.
10128
10129         * metadata-internals.h: Add MonoAssemblyBindingInfo,
10130         which contains information about assembly binding. Also
10131         declare signature for mono_config_parse_publisher_policy ()
10132         function, used to retrieve pub policy info.
10133         
10134         * mono-config.c:
10135         (publisher_policy_start): New static function used to parse publisher 
10136         policy config files.
10137         (publisher_policy_parser): New static MonoParseHandler containing 
10138         the functions used when parsing config files.
10139         (mono_config_parse_publisher_policy): New function for parsing
10140         publisher policy files.
10141         
10142 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
10143
10144         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
10145
10146         * marshal.c (mono_delegate_free_ftnptr): Ditto.
10147
10148         * object.c (mono_get_addr_from_ftnptr): New helper function.
10149
10150         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
10151
10152         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
10153
10154 2005-08-19  Dick Porter  <dick@ximian.com>
10155
10156         * threads.c, threads.h, appdomain.c, appdomain.h,
10157         profiler-private.h, monitor.c, object.c, object-internals.h,
10158         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
10159         store the thread ID, so it can hold a 64 bit value if needed.
10160
10161 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
10162
10163         * reflection.c (mono_reflection_create_dynamic_method): Store the
10164         handle class into the method references as well so ldtoken works in
10165         dynamic methods.
10166
10167         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
10168         types.
10169
10170 2005-08-19  Ankit Jain <jankit@novell.com>
10171
10172         Fix #75847.
10173         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
10174           here rather than using the method signature of a arbitrary function
10175           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
10176           two arguments.
10177           Hack done with Harinath.
10178
10179 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10180
10181         * threadpool.c: disable printing stack traces when we get a exception
10182         in a threadpool thread. I need to do more testing to figure out which
10183         cases actually print this. Fixes bug #75828.
10184
10185 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10186
10187         * icall.c: there might be ignored whitespace after the last '='. This
10188         fixes length computation and bug #75840.
10189
10190 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
10191
10192         * assembly.c (mono_assembly_load_full): Consider .exe extension as
10193         well. Fixes #75809.
10194
10195         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
10196         #75784.
10197         
10198         * reflection.c (create_custom_attr_data): Ditto.
10199
10200 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
10201
10202         * locales.c, culture-info.h : removed RegionLCIDMap.
10203         * culture-info-tables.h : regenerated.
10204
10205 2005-08-16  Martin Baulig  <martin@ximian.com>
10206
10207         * class.c (mono_type_get_name_recurse): Small fix.
10208
10209 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
10210
10211         * locales.c : indentation fixie.
10212
10213 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
10214
10215         * object-internals.h,
10216           locales.h,
10217           locales.c,
10218           culture-info.h,
10219           icall.c : added RegionInfo table support.
10220         * culture-info-table.h : regenerated for region support.
10221
10222 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
10223
10224         * reflection.c (resolve_object): handle all kinds of MonoMethod
10225         including generic ones
10226
10227 2005-08-12  Ankit Jain <jankit@novell.com>
10228
10229         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
10230           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
10231
10232 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
10233
10234         * process.c: Don't close a thread handle when it's NULL. This is a
10235         workaround for bug #75733.
10236
10237 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
10238
10239         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
10240
10241 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
10242
10243         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
10244
10245 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10246
10247         * threadpool.c: if a work item in the thread pool has a callback that
10248         catches a exception, don't propagate it after invoking the callback.
10249         Fixes bug #75336.
10250
10251 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
10252
10253         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
10254
10255         * class-internals.h (MonoCachedClassInfo): Add some new fields.
10256
10257         * class.c (mono_class_init): Load field info lazily in the AOT case.    
10258
10259         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
10260
10261 2005-08-03  Ankit Jain  <jankit@novell.com>
10262
10263         Fix #75683.
10264         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
10265           PInvoke calling convention is 0.
10266
10267 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
10268
10269         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
10270         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
10271
10272 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
10273
10274         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
10275         to handle threads not started by the GC (patch by Michael Meeks
10276         <michael.meeks@novell.com>).
10277
10278 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
10279
10280         * reflection.c: Make buffer used in emitting types larger for some
10281         big generic types (patch by Michal Moskal).
10282
10283 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
10284
10285         * mono-debug.c: Fix some (not all) alignment problems.
10286
10287 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10288
10289         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
10290         Invoke mono_image_load_from_data_full passing the refonly
10291         parameter.
10292
10293         * assembly.c
10294         (mono_assembly_open_from_bundle): Add the refonly argument, 
10295         in order to pass it to other methods it calls to.
10296         (do_mono_assembly_open): Add the refonly argument, in order 
10297         to pass it to other methods it calls to.
10298         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
10299         the refonly parameter to it.
10300
10301         * image.c: Add loaded_images_refonly_hash and
10302         loaded_images_refonly_guid_hash to cache the reflection
10303         only loaded images.
10304         (mono_images_init): Initialize the hash tables used for
10305         caching the reflection only images.
10306         (load_modules): Invoke mono_image_open_full passing the refonly
10307         parameter to load the modules the correct way.
10308         (build_guid_table): Add the refonly argument, to re-build the 
10309         correct hash table.
10310         (do_mono_image_open): Added the refonly argument, in order to
10311         define it for the loaded image.
10312         (mono_image_loaded_full): New function, which receives an
10313         additional parameter to look for the image in the refonly or
10314         non-refonly section.
10315         (mono_image_loaded): Updated, using mono_image_loaded_full.
10316         (mono_image_loaded_by_guid_full): The same case that happens
10317         with mono_image_loaded_full.
10318         (mono_image_loaded_by_guid): Likewise.
10319         (register_image): Use the ref_only variable inside MonoImage
10320         to decide in which hash table store the current image.
10321         (mono_image_open_from_data_full): Rename
10322         mono_image_open_from_data to mono_image_open_from_data_full,
10323         adding the refonly argument, to define the ref_only variable 
10324         inside MonoImage.
10325         (mono_image_open_from_data): Return 
10326         mono_image_open_from_data_full.
10327         (mono_image_open_full): Rename mono_image_open to
10328         mono_image_open_full, receiving the new refonly argument,
10329         to pass it to inner methods.
10330         (mono_pe_file_open): Update this function, to open
10331         a MonoImage as a non-refonly image.
10332         (mono_image_close): Use the refonly variable inside
10333         MonoImage to remove the image from the correct caches.
10334
10335         * image.h: Add the signatures of mono_image_open_full,
10336         mono_image_open_from_data_full, mono_image_loaded_full,
10337         mono_image_loaded_by_guid_full.
10338
10339         * metadata-internals.h: Add the ref_only field to 
10340         MonoImage.
10341         
10342 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10343
10344         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
10345         Fix the last behavior, which used to load the assemblies and
10346         extract MonoReflectionAssemblyName information, instead of
10347         extract it from the metadata tables. Needed for Reflection
10348         Only assemblies.
10349         
10350 2005-07-29  Martin Baulig  <martin@ximian.com>
10351
10352         * mono-debug-debugger.c
10353         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
10354         not initialized.
10355
10356         * mono-debug.c
10357         (mono_debug_address_from_il_offset): Check whether we have
10358         debugging support before attempting to take the lock.
10359         (mono_debug_source_location_from_address): Likewise.
10360         (mono_debug_source_location_from_il_offset): Likewise.
10361         (mono_debug_il_offset_from_address): Likewise.
10362         (mono_debug_address_from_il_offset): Likewise.
10363
10364 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
10365
10366         * class.c (mono_class_from_name_case): Add support for dynamic images.
10367         Fixes #75650.
10368
10369         * object.c (mono_class_compute_gc_descriptor): Add a workaround
10370         for #75479.
10371
10372 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
10373         
10374         * reflection.c (mono_method_get_object): Fix warning.
10375
10376 2005-07-28  Martin Baulig  <martin@ximian.com>
10377
10378         * mono-debug.c
10379         (mono_debug_add_wrapper): Also write the wrapper type.
10380
10381 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
10382
10383         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
10384         
10385         * class.c (mono_class_init): Avoid reading nested classes if the AOT
10386         data indicates the class has none.
10387
10388 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
10389
10390         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
10391         loader lock with the debugger lock. Prevents deadlocks for beagle.
10392
10393         Beagle can now run on an smp box for a weekend without any
10394         issues. Woohoo!
10395
10396 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
10397
10398         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
10399         in a module. Fixes #75629.
10400
10401 2005-07-26  Martin Baulig  <martin@ximian.com>
10402
10403         * mono-debug.c (mono_debug_add_wrapper): New static method.
10404         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
10405         interncall or a wrapper.
10406
10407         * mono-debug.h (MonoDebugWrapperData): New public typedef.
10408         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
10409         (MONO_DEBUGGER_VERSION): Bump to 51.
10410
10411         * mono-debug-debugger.c
10412         (mono_debugger_add_type): Removed this empty function.
10413         (mono_debugger_add_method): Likewise.
10414
10415 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
10416
10417         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
10418         before accessing method->slot.
10419
10420 2005-07-21  Jb Evain  <jbevain@gmail.com>
10421
10422         * reflection.c (method_encode_clauses/class): Handle filters clauses.
10423         Fixes #75010.
10424
10425 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
10426
10427         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
10428         #75587.
10429
10430 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
10431
10432         * image.h image.c: Add mono_image_get_guid () API function.
10433
10434 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
10435
10436         There were issues when multiple threads tried to load
10437         assemblies. A deadlock was created between assemblies_mutex and
10438         mono_domain_assemblies_lock. This fixes the issue by making the
10439         assembly ref counting be lock free. See bug 75586.
10440         
10441         * image.c (mono_image_close): The add ref function here was using
10442         Interlocked operations while the unref was using a mutex and a
10443         --. I don't think this was ever a bug that would be exposed in a
10444         non-pendantic way (ie, by an embedder doing a ref on one thread
10445         and an unref on another), but for the sake of correctness, this is
10446         now Interlocked.
10447
10448         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
10449         (mono_assembly_load_reference): Call mono_assembly_addref rather
10450         than touching the refcount ourselves.
10451         (mono_assembly_close): Use InterlockedDecrement to unref the
10452         assembly. Don't acquire the lock unless it is actually needed.
10453
10454 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
10455
10456         * class.c (mono_class_layout_fields): Fix calculation of has_references
10457         for generic types.
10458
10459 2005-07-12  Martin Baulig  <martin@ximian.com>
10460
10461         Applying a patch from Michal Moskal <malekith@nemerle.org>.
10462
10463         * metadata.c
10464         (mono_type_hash): Provide better hashing for generic instances.
10465         (mono_generic_inst_hash): Improve hashing.
10466         (mono_generic_class_hash): Likewise.
10467
10468         * reflection.c (mymono_metadata_type_hash): Improve hashing for
10469         generic instances.
10470
10471 2005-07-12  Martin Baulig  <martin@ximian.com>
10472
10473         * reflection.c (mono_reflection_create_runtime_class): Remove the
10474         hack for generic type definitions and non-`Run' assemblies.
10475         (mono_reflection_bind_generic_parameters): Also use
10476         `klass->wastypebuilder' to check for TypeBuilders.
10477
10478 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
10479
10480         * class.c (mono_class_layout_fields): Fix calculation of has_references
10481         for generic types.
10482
10483         * class.c (inflate_generic_class): Fix a leak.
10484         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
10485         for generic types.
10486
10487 2005-07-11  Martin Baulig  <martin@ximian.com>
10488
10489         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
10490         on error.
10491
10492 2005-07-11  Martin Baulig  <martin@ximian.com>
10493
10494         * loader.c (find_method): Also lookup in
10495         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
10496
10497 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
10498
10499         * appdomain.c (mono_domain_unload): Don't free the error message
10500         before passing it to mono_get_exception_...
10501
10502         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
10503         
10504 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
10505
10506         * threads.c: try to better guess an available RT signal (bug #75387).
10507
10508 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
10509
10510         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
10511         and CACHE_OBJECT.
10512
10513 2005-07-07  Martin Baulig  <martin@ximian.com>
10514
10515         * class.c (mono_type_get_name_full): Return NULL for
10516         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
10517         fixes #75408.
10518
10519 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
10520
10521         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
10522         exit the appdomain as well being aborted.
10523
10524         * threadpool.c: Create all threadpool threads inside the root appdomain, and
10525         change back to the root domain after calling managed code. This enables
10526         appdomains using threadpools to be unloaded.
10527
10528 2005-07-07  Martin Baulig  <martin@ximian.com>
10529
10530         * class-internals.h
10531         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
10532         into `MonoDynamicGenericClass' since we only need it for dynamic
10533         types.
10534
10535         * reflection.c (mono_class_bind_generic_parameters): We don't need
10536         to compute the `parent' here.
10537
10538 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
10539
10540         * culture-info-table.h : regenerated.
10541
10542 2005-07-06  Martin Baulig  <martin@ximian.com>
10543
10544         * icall.c
10545         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
10546
10547         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
10548
10549 2005-07-06  Martin Baulig  <martin@ximian.com>
10550
10551         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
10552         we're doing a signature-only comparision; fixes #74945.
10553
10554 2005-07-06  Martin Baulig  <martin@ximian.com>
10555
10556         * class-internals.h (MonoGenericClass): Moved some things out into
10557         a new `MonoInflatedGenericClass' type.  
10558         (MonoInflatedGenericClass): New type; the `klass' of a
10559         `MonoGenericClass' is now computed lazyly in
10560         mono_get_inflated_generic_class().      
10561
10562         * class.c (mono_get_inflated_generic_class): New public function.
10563         (mono_class_inflate_generic_method): Removed the unused
10564         `MonoClass *' argument.
10565         (setup_generic_vtable): Don't call mono_get_inflated_method() on
10566         all the methods.
10567         (mono_class_create_generic): Make this static and merge it with
10568         mono_class_create_generic_2(); we're now called automatically from
10569         mono_get_inflated_generic_class().
10570
10571         * loader.c (mono_method_signature): Call
10572         mono_get_inflated_method() here.
10573
10574 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
10575
10576         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
10577         type of fields with RVA.
10578
10579         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
10580         for this pseudo class.
10581         (my_mono_class_from_generic_parameter): Likewise.
10582         (mono_class_init): Allow interfaces to have cctors.
10583
10584 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
10585
10586         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
10587         lazily for AOT methods.
10588
10589 2005-07-05  Martin Baulig  <martin@ximian.com>
10590
10591         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
10592         returns FALSE for a successful match, not TRUE.
10593
10594 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
10595
10596         * loader.c (mono_method_get_index): Optimize this a bit.
10597
10598 2005-07-04  Martin Baulig  <martin@ximian.com>
10599
10600         * class.c
10601         (class_compute_field_layout): Move the check for generic type
10602         definitions into mono_class_layout_fields().  Fixes #74684.
10603         (mono_class_from_generic_parameter): Correctly compute
10604         `klass->parent'; fixes #75457.
10605
10606         * reflection.c (register_assembly, register_module): Make sure
10607         `domain->rejobject_hash' is already created.
10608
10609 2005-07-02  Martin Baulig  <martin@ximian.com>
10610
10611         * class-internals.h
10612         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
10613         `MonoDynamicGenericClass'.      
10614
10615 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
10616
10617         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
10618         returned by a field getter is null, since null is a valid value.
10619
10620 2005-07-01  Martin Baulig  <martin@ximian.com>
10621
10622         * reflection.c (mono_reflection_generic_class_initialize): Update
10623         the `dgclass->fields [i].parent' to the correct class.
10624         (mono_image_get_fieldref_token): Use the declaring type, not the
10625         reflected type.
10626
10627 2005-07-01  Martin Baulig  <martin@ximian.com>
10628
10629         * loader.c (find_method): Also look in the interfaces; fixes #75429.
10630
10631 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
10632
10633         * threads.c (thread_cleanup): assert that thread != NULL
10634         (wait_for_tids_or_state_change): We were using the wrong variable
10635         when accessing wait->threads. `i' was always out of the bounds of
10636         the array.
10637
10638 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10639
10640         * loader.c: map user32 and kernel32 to libMonoSupportW
10641
10642 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
10643
10644         * appdomain.c (unload_thread_main): Mark this as WINAPI.
10645
10646 2005-06-28  Martin Baulig  <martin@ximian.com>
10647
10648         * loader.c (method_from_methodspec): Fix #75334.
10649
10650 2005-06-28  Martin Baulig  <martin@ximian.com>
10651
10652         Fix #74953 - Arrays now implement the generic IList<T> interface
10653         on the 2.0 platform.
10654
10655         * class-internals.h (MonoDefaults): Added `generic_array_class'.
10656
10657         * reflection.c (mono_class_bind_generic_parameters): New public
10658         function; similar to mono_reflection_bind_generic_parameters(),
10659         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
10660
10661         * domain.c (mono_init_internal): Try to initialize.
10662         `mono_defaults.generic_array_class' here; this'll only succeed if
10663         we're using the 2.0 corlib.
10664
10665         * icall.c
10666         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
10667         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
10668         (mono_lookup_internal_call): Added support for nested classes.
10669
10670         * loader.c
10671         (mono_get_method_from_token): Set `result->signature->pinvoke' if
10672         we're an interncall and have generic arguments.
10673
10674         * class.c
10675         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
10676         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
10677         instance of System.Array.InternalArray<T> for arrays, so they
10678         implement the generic IList<T> interface.
10679
10680 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
10681
10682         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
10683         (chastamar@yahoo.com). Fixes #75374.    
10684
10685 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
10686
10687         * culture-info-table.h: regenerated.
10688
10689 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10690
10691         * icall.c: handle spaces correctly for base64 strings.
10692
10693 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
10694
10695         * *.c: Kill some warnings.
10696
10697 2005-06-23  Duncan Mak  <duncan@novell.com>
10698
10699         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
10700         that this builds on Solaris 10 (x86).
10701
10702 2005-06-23  Martin Baulig  <martin@ximian.com>
10703
10704         * class.c
10705         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
10706         generic type definitions.
10707
10708 2005-06-23  Martin Baulig  <martin@ximian.com>
10709
10710         Fix #75331.
10711
10712         * metadata.c (mono_class_get_overrides): Renamed to
10713         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
10714         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
10715         pass it to mono_get_method_full().
10716
10717 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
10718
10719         * reflection.c (mono_reflection_create_runtime_class): take the
10720         mono_domain_lock in this method. Prevents deadlocks
10721
10722 2005-06-22  Martin Baulig  <martin@ximian.com>
10723
10724         * loader.c (method_from_methodspec): Fix #75330.
10725
10726 2005-06-22  Martin Baulig  <martin@ximian.com>
10727
10728         * reflection.c (type_get_qualified_name): Use
10729         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
10730         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
10731         argument; use it if we don't have an assembly name.
10732
10733 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
10734
10735         * object.c: In mono_message_init, set "copy out" flag for in
10736         parameters with the [Out] flag.
10737
10738 2005-06-21  Martin Baulig  <martin@ximian.com>
10739
10740         * class.c
10741         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
10742         and MONO_TYPE_PTR.
10743
10744 2005-06-21  Martin Baulig  <martin@ximian.com>
10745
10746         * class.c (mono_class_init): Don't initialize `class->fields' for
10747         generic instances since they're initialized again in
10748         compute_field_layout(). 
10749         (compute_field_layout): Set the field's `generic_info' here; fix
10750         #75320. 
10751
10752 2005-06-21  Martin Baulig  <martin@ximian.com>
10753
10754         * class-internals.h
10755         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
10756
10757         * metadata.c (mono_metadata_generic_method_equal): Also
10758         distinguish the `generic_class'; fixes #75334.
10759
10760 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10761
10762         * domain.c:
10763         * appdomain.c:
10764         * domain-internals.h:
10765         * reflection.c: 'domain_assemblies' field is now protected by its own
10766         lock. Don't call into managed code to run the AssemblyLoad event if we
10767         now there are no registered delegates for it.
10768
10769 2005-06-20  Martin Baulig  <martin@ximian.com>
10770
10771         * class.c (mono_class_is_assignable_from): Use a custom version of
10772         mono_class_has_parent() to make things work for generic instances;
10773         fix #75300.
10774
10775 2005-06-20  Martin Baulig  <martin@ximian.com>
10776
10777         * loader.c (method_from_methodspec): Apply a patch from
10778         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
10779
10780 2005-06-20  Martin Baulig  <martin@ximian.com>
10781
10782         * class.c (mono_class_init): Reverted Zoltan's last change; it
10783         breaks generics.
10784
10785 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
10786
10787         * threads.c (wait_for_tids_or_state_change): Add missing locking.
10788
10789 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10790
10791         * socket-io.c: fix the index in the socket array for writable/error
10792         sockets. Fixes bug #75306.
10793
10794 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
10795
10796         * class.c (mono_class_init): Allow interfaces to have static ctors.
10797
10798 2005-06-17  Martin Baulig  <martin@ximian.com>
10799
10800         * loader.c (method_from_methodspec): Use `context->container' when
10801         parsing the `gmethod->inst'.
10802
10803 2005-06-17  Martin Baulig  <martin@ximian.com>
10804
10805         * class.c (mono_type_get_name_recurse): Don't add the assembly
10806         name for type arguments.
10807
10808 2005-06-15  Martin Baulig  <martin@ximian.com>
10809
10810         * reflection.c (mono_image_get_inflated_method_token): Encode
10811         correct klass; fixes #75260.
10812
10813 2005-06-13 Michal Moskal <malekith@nemerle.org>
10814
10815         * icall.c: Make GetCorrespondingMethod/Constructor take
10816         MonoReflectionMethod method not MonoMethod. Removed
10817         MonoType.GetCorrespondingField, and make
10818         MonoGenericType.GetCorrespondingField take name not
10819         MonoClassField.
10820
10821 2005-06-13  Michal Moskal <malekith@nemerle.org>
10822
10823         * reflection.c (field_encode_signature, encode_locals):
10824          Make sizes of buffers for types larger (for big generic types).
10825          (create_generic_typespec,
10826          mono_reflection_sighelper_get_signature_local,
10827          mono_reflection_sighelper_get_signature_field):
10828          Add asserts for too small buffers.
10829
10830 2005-06-15  Martin Baulig  <martin@ximian.com>
10831
10832         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
10833         if our parent is not a dynamic type.
10834
10835 2005-06-15  Martin Baulig  <martin@ximian.com>
10836
10837         * class-internals.h (MonoTypeNameFormat): New enum.
10838
10839         * class.c
10840         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
10841         (mono_type_get_full_name): Removed.
10842         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
10843         argument instead of the boolean's.
10844
10845         * icall.c (ves_icall_System_MonoType_getFullName):
10846         Added `gboolean assembly_qualified'.    
10847
10848         * reflection.h
10849         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
10850
10851         * reflection.c (mono_reflection_parse_type): Parse the new type
10852         name format.
10853
10854 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10855
10856         * icall.c: no need to convert from utf16 to utf8 and then back again
10857         after the call to GetLogicalDrives.
10858
10859 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10860
10861         * icall.c: frombase64. Fix problems exposed by new tests.
10862
10863 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10864
10865         * icall.c: added internal calls for converting char [] and strings in
10866         base64 into byte [].
10867
10868 2005-06-10  Martin Baulig  <martin@ximian.com>
10869
10870         * class.c (mono_class_create_generic_2): Read the nested classes
10871         from the metadata rather than from `gklass->nested_classes' since
10872         `gklass' might not be initialized yet.
10873
10874 2005-06-09  Duncan Mak  <duncan@novell.com>
10875
10876         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
10877         all public headers. Fixes #74919.
10878
10879 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
10880
10881         * domain.c: The key for proxy_vtable_hash is now a pointer
10882         array. Added new GHashFunc and GCompareFunc functions for this.
10883
10884         * class.h: The list of interfaces in MonoRemoteClass is known in
10885         advance and can't grow (we create a new MonoRemoteClass if needed),
10886         so now the interface array can be allocated together with
10887         MonoRemoteClass.
10888         
10889         * object.c: Added a new method create_remote_class_key.
10890         Fixed mono_remote_class so it does not depend on
10891         mono_upgrade_remote_class.
10892         Removed extend_interface_array.
10893         Added new method clone_remote_class(), which makes a copy of a remote
10894         class and adds a new interface or class to it.
10895         mono_upgrade_remote_class() now creates a new remote class (or gets
10896         it from the cache) if an vtable upgrade is needed. In this way
10897         we make sure that other objects sharing the same remote class
10898         don't get the new vtable with unwanted interfaces.
10899         
10900         * object-internals.h:
10901         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
10902         
10903         * marshal.c: Track changes in mono_upgrade_remote_class().
10904
10905 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
10906         * icall.c: Add runtime methods for obtaining members of inflated
10907         class, which were created from supplied non-inflated members. It
10908         is used in internal Get{Method,Constructor,Field} methods in
10909         System.Type
10910
10911 2005-06-09  Martin Baulig  <martin@ximian.com>
10912
10913         * reflection.c
10914         (mono_reflection_bind_generic_method_parameters): Fix #75169.
10915
10916 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10917         * reflection.c (mono_image_basic_init): Define
10918         Version in MonoDynamicAssembly. 
10919         
10920 2005-06-08  Martin Baulig  <martin@ximian.com>
10921
10922         Fix #75136.
10923
10924         * loader.c
10925         (mono_method_signature_full): New public method; takes a
10926         `MonoGenericContext *'.
10927         (find_method): Use mono_method_signature_full() and pass the
10928         klass'es context to it.
10929
10930         * class.c (mono_class_is_inflated_method): Use
10931         mono_method_signature_full() and pass the context to it.
10932
10933 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
10934
10935         * object.c: add proper locking in mono_remote_class_vtable(),
10936         fixes possible memory corruption.
10937
10938 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
10939
10940         * marshal.c (mono_remoting_marshal_init): set
10941         initialized after initialization.
10942
10943 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
10944
10945         * locales.c : hush.
10946
10947 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
10948
10949         * object.c (extend_interface_array): fix really silly
10950         memory corrupting / comparison bug.
10951
10952 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10953
10954         * reflection.c: Functions added to support the creation
10955         of CustomAttributeData, which includes Attribute data
10956         used by ReflectionOnly methods.
10957
10958         * reflection.h:  mono_reflection_get_custom_attrs_data and
10959          mono_custom_attrs_data_construct added (functions exposed).
10960
10961          * icall.c: Added mono_reflection_get_custom_attrs_data
10962          as icall.
10963         
10964 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
10965
10966         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
10967         lupus's request.
10968
10969 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
10970
10971         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
10972
10973         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
10974         dynamic DllImportAttribute.
10975
10976         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
10977         dynamic DllImportAttribute.
10978
10979         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
10980         Fixes #75162.
10981
10982 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10983
10984         * threads.c: avoid segfault when an unstarted thread is aborted.
10985
10986 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
10987
10988         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
10989         Returns the name and version of the runtime for reporting.
10990
10991 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10992
10993         * appdomain.c: bump corlib version.
10994         * object-internals.h: new field in MonoReflectionAssembly.
10995
10996 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10997
10998         * object-internals.h: Carlos forgot to add this field.
10999
11000 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11001
11002         * icall.c: Added create_version to create instances
11003         of Version of MonoReflectionAssemblyName. This change helps
11004         the AssemblyName tests to keep running fine.
11005         
11006 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
11007   
11008         * object.c (mono_method_return_message_restore): A somehow less
11009         intrusive fix for #75138.
11010
11011 2005-06-03  Raja R Harinath  <rharinath@novell.com>
11012
11013         * object.c (mono_method_return_message_restore): Fix computation
11014         of expected number of out args.
11015
11016 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
11017
11018         * reflection.c (mono_image_get_method_info): Fix the case when the
11019         charset is empty.
11020
11021 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
11022
11023         * object.c: Added missing null check in
11024           mono_method_return_message_restore.
11025
11026 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
11027
11028         * reflection.c (mono_image_get_method_info): Handle the case when
11029         dllentry is empty.
11030
11031 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
11032
11033         * object.c: When creating the vtable for a proxy, take into account
11034         all inherited interfaces, not only the ones registered in
11035         iclass->interfaces. This fixs bug #74996.
11036         Also, in mono_method_return_message_restore, verify that the array
11037         of out args has the expected lengh.
11038
11039 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11040
11041         * socket-io.c: update the timeout in Poll when the call is interrupte.
11042
11043 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11044
11045         * socket-io.c: support abort/suspend in Select_internal after last
11046         change.
11047
11048 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11049
11050         * threadpool.c: remove warning.
11051
11052 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11053
11054         * icall.c:
11055         * socket-io.[ch]: Select_internal uses poll() now when available, thus
11056         removing the 1024 limit from select(). Runtime part of the fix for
11057         bug #71203.
11058
11059 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11060
11061         * socket-io.c: when resolving the addresses for the same
11062         host returned by gethostname(), get the local IPs from the interface
11063         list. Loopback addresses are discarded if the are interfaces up with
11064         non-loopback ones. Fixes bug #63265.
11065
11066 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
11067
11068         * appdomain.c, verify.c, object-internals.h, reflection.c:
11069         bumped corlib number to 36, and added new extra_flags field
11070         to ReflectionMethodBuilder and friends.  Fixes #75060.
11071
11072 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
11073
11074         * gc.c: register a new weak link only if the object is non-null
11075         (fixes bug#75047).
11076
11077 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
11078
11079         * culture-info.h : short time pattern too.
11080
11081 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
11082
11083         * culture-info.h : expand long time pattern string length.
11084
11085 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
11086
11087         * culture-info-table.h : update (more French date format; #72788).
11088
11089 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
11090
11091         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
11092         the method is static. Fixes #75029.
11093
11094 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
11095
11096         * reflection.c: Update the table_idx field of method builders after
11097         saving the module, since it can change. This is a workaround for
11098         bug #74914. 
11099
11100 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
11101
11102         * culture-info-table.h : update (additional French date format).
11103
11104 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
11105
11106         * icall.c (ves_icall_type_Equals): Revert last change.
11107         
11108         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
11109
11110         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
11111
11112 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
11113
11114         * class-internals.h: Added executioncontext_class field to 
11115         MonoDefaults structure.
11116         * domain.c: Cache System.Threading.ExecutionContext class in 
11117         mono_defaults.
11118         * object.c: Capture the ExecutionContext for asynchroneous calls in
11119          mono_async_result_new.
11120         * object-internals.h: Added execution_context and original_context 
11121         fields to MonoAsyncResult. Added execution_context to MonoThread.
11122         * security-manager.c|.h: Added mono_get_context_capture_method to 
11123         return the capture method (if required by the security manager or by
11124         the framework version used).
11125         * threadpool.c: Apply capture (if present) ExecutionContext in 
11126         mono_async_invoke and revert to original context after it completes.
11127
11128 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
11129
11130         * culture-info-table.h : updated (real hacky solution for zh-CHT).
11131
11132 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
11133
11134         * culture-info-table.h : zh-CHT related workaround.
11135
11136 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
11137
11138         * marshal.c (emit_marshal_custom): Add some error checking and call the
11139         methods in the ICustomMarshaler interface. Fixes #74875.
11140         
11141         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
11142         native->managed wrappers.
11143
11144 2005-05-12  Martin Baulig  <martin@ximian.com>
11145
11146         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
11147         here and use the loader lock.
11148
11149         * mono-debug.c: Properly lock when the debugger is not attached.
11150         (mono_debug_init): Release the initial lock if we're not running
11151         in the debugger.
11152
11153 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
11154
11155         * marshal.c (emit_marshal_custom): Pass through NULL values without
11156         calling the custom marshalling routines.
11157
11158         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
11159         conversion in structures. Fixes #74882.
11160
11161 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
11162
11163         * culture-info-table.h : zh-* cultures were missing.
11164
11165 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
11166
11167         * threads.c: Added a new event background_change_event which is signaled
11168         when a thread changes its background mode.
11169         Moved here several checks previously done in managed code. The checks
11170         require the thread lock, and using the thread lock in managed code
11171         can result in deadlocks.
11172         Merged Start_internal and Thread_internal into a single method. Now 
11173         Thread_internal does all work of creating and starting a thread.
11174         Added icalls for setting and getting the state of the object. Moved from
11175         managed code to avoid locking there.
11176         Added wait_for_tids_or_state_change() which is called instad of
11177         wait_for_tids when waiting for non-backround threads to end. This method
11178         will return if one of the threads ends or the background_change_event
11179         is signaled.
11180         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
11181         the background mode. This method signals the background_change_event
11182         event.
11183         * icall.c:
11184         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
11185         removed Start_internal.
11186         
11187 2005-05-11  Martin Baulig  <martin@ximian.com>
11188
11189         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
11190         to order of some fields to get proper alignment on 64-bit machines.
11191
11192 2005-05-11  Martin Baulig  <martin@ximian.com>
11193
11194         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
11195         changes as they're broken and completely fuck up the debugger.
11196
11197         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
11198
11199 2005-05-10  Martin Baulig  <martin@ximian.com>
11200
11201         * reflection.c (mono_reflection_generic_class_initialize): Don't
11202         call mono_class_setup_parent() here.
11203
11204 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11205
11206         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
11207         send/receive timeout use an integer in milliseconds. We were using a
11208         struct timeval.
11209
11210 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11211
11212         * locales.c:
11213         (internal_get_cultures): reserve the first slot of the array for the
11214         InvariantCulture, which will be filled in managed code.
11215
11216 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
11217
11218         * reflection.c (mono_image_fill_module_table): Initialize the
11219         GENERATION field as well.
11220
11221 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11222
11223         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
11224         Monitor.Enter on the object.
11225
11226 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
11227
11228         * threads.c: Enable the wait for running threads when exiting.
11229         * icall.c: Suspend all threads before exiting.
11230
11231 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
11232
11233         * assembly.c (mono_assembly_load_reference): Fix warning.
11234
11235 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11236
11237         * threadpool.c: changed the default number of threads per cpu. From now
11238         on, the default will be 20 + (5 * number of cpus) instead of 50.
11239
11240 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
11241
11242         * loader.c (mono_method_get_signature_full): Add locking here.
11243
11244 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
11245
11246         * appdomain.c: Moved methods for parsing and freeing assembly
11247         names to assembly.c.
11248         * assembly.c, domain-internals.h: Created public methods for parsing
11249         assembly names. Fixed mono_assembly_load_with_partial_name:
11250         it now finds the best match, taking into account the version,
11251         token and culture specified in the partial name. Also return
11252         the latest version if no version information is specified.
11253
11254 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
11255
11256         * threadpool.c: replace check for SocketAsyncCall class.
11257
11258 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11259
11260         * threadpool-internals.h:
11261         * Makefile.am: added threadpool-internals.h
11262
11263         * threadpool.c: call mono_unhandled_exception on exceptions not handled
11264         that happen in threadpool threads (tested on MS).
11265         (mono_thread_pool_remove_socket): new function that dispatch any pending
11266         AIO call on a socket that is closing. By now only epoll really needs it,
11267         as select/poll wake up when the socket closes.
11268
11269
11270         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
11271
11272 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
11273
11274         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
11275
11276 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
11277
11278         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
11279
11280 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
11281
11282         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
11283         has an abort request, convert it into a suspend request.
11284
11285 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
11286
11287         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
11288         warning for the usage of `UnmanagedFunctionPointerAttribute' which
11289         is not supported yet.
11290
11291 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11292
11293         * image.c: register assemblies loaded from data (bundles) in the loaded
11294         assemblies hash. Fixes bug #74772.
11295
11296 2005-04-29  Martin Baulig  <martin@ximian.com>
11297
11298         * class.c (mono_type_get_name_recurse): Update to the new naming
11299         schema from the latest .NET 2.x beta2.
11300         (mono_class_setup_vtable_general): If we're a generic instance,
11301         copy the vtable from our generic type definition and inflate all
11302         the methods in it.
11303
11304         * loader.c (find_method): Update to the new naming schema from the
11305         latest .NET 2.x beta2.
11306
11307 2005-04-29  Raja R Harinath  <harinath@gmail.com>
11308
11309         * class.c (mono_class_init): Add a mono_loader_unlock to the
11310         #74734 fix.
11311
11312 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
11313
11314         * icall.c (ves_icall_System_Environment_Exit): Remove the 
11315         suspend_all_other_threads () call for the time being, since it can hang.
11316
11317         * threads.c (mono_thread_manage): Similarly, disable the waiting for
11318         the background threads to exit, since it can also hang.
11319
11320         * class.c (mono_class_init): Applied patch from Ankit Jain 
11321         (radical@gmail.com). Avoid pending init errors when a field refers
11322         to a nested class using a typeref. Fixes #74734.
11323
11324         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
11325         this for dynamic modules.
11326
11327 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11328
11329         * threads.c: don't wait for threads that are in the process of aborting
11330         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
11331         and waiting for background threads to finish. This makes xsp and
11332         mod-mono-server exit without random length delays and/or hangs.
11333
11334 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11335
11336         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
11337
11338 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
11339
11340         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
11341         dynamic types to prevent infinite loops. Fixes #74727.
11342
11343         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
11344         ..._is_assignable_to.
11345
11346 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
11347
11348         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
11349
11350 2005-04-25  Martin Baulig  <martin@ximian.com>
11351
11352         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
11353
11354         * domain.c
11355         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
11356
11357         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
11358
11359         * reflection.c (build_compressed_metadata): Set metadata header
11360         version to 2.0.
11361
11362 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
11363
11364         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
11365         number into an integral and a decimal part. Fixes #70473.
11366
11367         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
11368
11369 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
11370
11371         * culture-info-table.h : reflected the latest locale-builder output.
11372
11373 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11374
11375         * threadpool.c: check for SuspendRequested too when deciding if
11376         mono_thread_interruption_checkpoint should be called.
11377
11378 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11379
11380         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
11381         * threads.c: remove interruption_mutex and use Interlocked instead. When
11382         suspending all the threads, wait for all the suspended events at once.
11383         If we're shutting down and get an APC that is going to be queued,
11384         call mono_thread_execute_interruption immediately, as the thread might
11385         be sleeping on a pthread condition or mutex.
11386
11387         * icall.c: call mono_runtime_set_shutting_down before suspending the
11388         threads.
11389
11390         Fixes bug #74693. And now xsp is happier when exiting.
11391
11392 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
11393
11394         * loader.c (mono_stack_walk): Fix #74690.
11395
11396 2005-04-22  Martin Baulig  <martin@ximian.com>
11397
11398         * mono-debug.h (MonoDebugMethodJitInfo): Added
11399         `MonoDebugMethodJitInfo *jit'.
11400
11401         * mono-debug.c (mono_debug_read_method): Cache the
11402         MonoDebugMethodJitInfo in `address->jit'.
11403         (mono_debug_free_method_jit_info): New public method.
11404
11405 2005-04-22  Martin Baulig  <martin@ximian.com>
11406
11407         * class.c (mono_class_is_assignable_from): Disallow
11408         type parameter -> interface.
11409
11410 2005-04-21  Dick Porter  <dick@ximian.com>
11411
11412         * threads.c (mono_thread_create): Turn an assertion into an error.
11413
11414 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
11415
11416         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
11417         
11418         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
11419         Fix some gcc 4.0 warnings.
11420
11421 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
11422
11423         * file-io.c: fix alt dir separator char on unix systems
11424         and cleanup (fixes bug #71214).
11425
11426 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
11427
11428         * marshal.c: Use CALLVIRT instead of CALL when dispatching
11429         a call to a remote domain, since the method may be an
11430         interface method in the client domain. This fixes bug #74192.
11431
11432 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11433
11434         * threadpool.c: recv/send are now performed before going back to managed
11435         code to save one transition.
11436
11437 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11438
11439         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
11440
11441         * metadata/threadpool.c: removed hack to workaround the bug above.
11442
11443         Fixes bug #74618.
11444
11445 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
11446
11447         * reflection.c reflection.h: Fix handling of parameter defaults in
11448         dynamic methods. Also fixes handling of parameter attributes.
11449         Fixes #74609.
11450
11451         * mono-debug.c (mono_debug_close_image): Fix warning.
11452
11453 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11454
11455         * socket-io.h: replaced old unused field with new 'blocking'.
11456         * threadpool.c: restore socket blocking state on windows(tm).
11457
11458 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
11459
11460         * icall.c: don't return the codebase in the AssemblyName[] returned by
11461         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
11462         * object-internals.h: Removed FIXME (fields were presents) and fixed
11463         versioncompat declaration.
11464
11465 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11466
11467         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
11468         not closed, so don't cleanup when it happens.
11469
11470 2005-04-13  Chris Toshok  <toshok@ximian.com>
11471
11472         * mono-debug-debugger.h: change prototype for
11473         mono_debugger_lookup_type.
11474
11475         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
11476         this function, although it should probably be named
11477         mono_debugger_init_type.
11478
11479 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11480
11481         * threadpool.c: fix non-AIO case.
11482
11483 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
11484
11485         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
11486         the built-in profiler to measure just JIT compilation times.
11487
11488 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11489
11490         * threadpool.c: the epollfd might be closed by another thread at
11491         any time, so ignore EBADF at treat it as a "we're closing" sign.
11492
11493 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11494
11495         * threadpool.c: release the semaphores with a count equals to the number
11496         of working threads in both IO and regular pools. Fixed typo that messed
11497         up the count of IO pool threads. Don't initialize the pipe handles if
11498         we're using epoll.
11499
11500 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11501
11502         * threadpool.c: some systems don't like a NULL when deleting the socket
11503         from epoll.
11504
11505 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11506
11507         * threadpool.c: fix semaphore allocation.
11508
11509 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11510
11511         * threadpool.c: added epoll() based implementation for asynchronous IO
11512         that is used instead of the default poll() when available.
11513         It can be disabled by setting MONO_DISABLE_AIO.
11514
11515 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11516
11517         * threadpool.c: windows needs 'closesocket' and instead of returning
11518         0 when the stream is closed while in select, it returns -1. Fixes bug
11519         #74573.
11520
11521 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
11522
11523         * class.c (class_compute_field_layout): Fix the regression caused by
11524         the previous try.
11525
11526 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11527
11528         * threadpool.c: separate pool for socket async. IO.
11529         * threadpool.h: mono_max_worker_threads is not a global any more.
11530
11531 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
11532
11533         * class.c (class_compute_field_layout): Fix #74549.
11534
11535 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11536
11537         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
11538         use 2 connected sockets instead.
11539
11540 2005-04-08  Miguel de Icaza  <miguel@novell.com>
11541
11542         * mono-config.c: Add new entry point for mkbundle
11543         mono_config_parse_memory. 
11544
11545 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11546
11547         * threadpool.c: removed another unused function.
11548
11549 2005-04-08  Ankit Jain  <radical@corewars.org>
11550
11551         * reflection.c (get_default_param_value_blobs): Add 'types'
11552         parameter to get the types encoded in the constant table.
11553         (mono_param_get_objects): Use the type from the constant table,
11554         not the type of the parameter, when creating default values.
11555         Handle null default values correctly.
11556
11557 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11558
11559         * file-io.c:
11560         * file-io.h:
11561         * threadpool.c:
11562         * threadpool.h:
11563         * icall.c:
11564         * socket-io.c: removed dead code for async IO.
11565
11566 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11567
11568         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
11569
11570         * threadpool.c: intercept socket async. calls and pass them to a thread
11571         that is polling and dispatching the job items to the threadpool as
11572         socket become ready. Fixes bugs #71217, #71933.
11573
11574         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
11575         between char and short/ushort arrays.
11576
11577         * socket-io.c: remove dead code.
11578
11579 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
11580
11581         * locales.c,
11582           icall.c : removed InternalToUpper_Comp() and
11583           InternalToLower_Comp().
11584
11585 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
11586
11587         * char-conversions.h : The tables were incorrectly generated. Should
11588           be generated against invariant culture.
11589
11590 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
11591
11592         * object.c (mono_runtime_invoke_array): Fix return value when 
11593         passing pre-created valuetype objects to ctors.
11594
11595         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
11596         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
11597         Fixes #74338.
11598
11599 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
11600
11601         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
11602         only used with --security and hides the wrong corlib version error.
11603
11604 2005-03-30  Joshua Tauberer  <tauberer@for.net>
11605
11606         * class.c: Changed mono_class_name_from_token so that types
11607         outside of a namespace don't have an initial period.  Improved
11608         the g_warning message used in _mono_class_get when loading
11609         fails.
11610         * assembly.c: In mono_assembly_load_reference, when an assembly
11611         can't be found, "No such file or directory" is misleading and
11612         unhelpful because a few paths were checked for the presence of
11613         the assembly.  When that happens (ENOENT), display a nicer
11614         message indicating the directories that were searched.  In all
11615         cases, the warning is made easier to read for non-hackers.
11616
11617 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
11618
11619         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
11620         project/solution.
11621         * appdomain.h|domain.c: Removed inline from functions.
11622         * appdomain.c: Reduced warnings when compiling on windows.
11623         * icall.c: Fixed output_debug declaration to gunichar2*.
11624         * mono-config.c: Reduced warnings when compiling on windows.
11625         * rand.c: Added missing "windows.h". Added missing return value.
11626         * rawbuffer.c: Added missing winsock2.h for windows.
11627         * sysmath.h: Added mono-compiler.h header to allow/ease 
11628         compilation with non-GCC compilers.
11629         * threads.c: Fixed declarations to compile with VS.NET C compiler.
11630         Removed cast warnings.
11631
11632         Adapted from the work of J Lothian (for VC6).
11633
11634 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
11635
11636         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
11637         from default_path.
11638
11639 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
11640
11641         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
11642         the 2.0 profile.
11643
11644 2005-03-27  Raja R Harinath  <harinath@gmail.com>
11645
11646         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
11647         has to be in $(exec_prefix).  $(prefix) is for arch-independent
11648         stuff, and it would probably use $(prefix)/share rather than
11649         $(prefix)/lib.
11650
11651 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11652
11653         * console-io.c: added 2 includes that might be missing.
11654
11655 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
11656
11657         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
11658         profile.
11659
11660         * reflection.c (create_custom_attr): Allocate the params array using
11661         alloca so it gets GC tracking.
11662
11663 2005-03-23  Chris Toshok  <toshok@ximian.com>
11664
11665         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
11666         out some spew.
11667
11668 2005-03-24  Raja R Harinath  <rharinath@novell.com>
11669
11670         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
11671         changes to pick up any changes in prefix, etc.
11672
11673 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
11674
11675         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
11676         
11677         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
11678         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
11679
11680 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
11681
11682         * class-internals.h object-internals.h class.c reflection.c: Extend the
11683         mono_lookup_dynamic_token () function to return the class of the
11684         token as well. 
11685
11686         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
11687         well. Fixes #73848.
11688
11689 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
11690
11691         * security-manager.c: Skip inheritance checks for intra-corlib
11692         class inheritance and method overrides. This skips a lot of checks
11693         and (anyway) permissions cannot work until corlib is loaded.
11694
11695 2005-03-23  Martin Baulig  <martin@ximian.com>
11696
11697         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
11698         MONO_TYPE_GENERICINST.  
11699
11700 2005-03-23  Martin Baulig  <martin@ximian.com>
11701
11702         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
11703
11704 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
11705
11706         * class.c: added locking comments to some functions.
11707         Cache the interface offsets arrays (saves about 20 KB
11708         of runtime memory in a typical app).
11709         Reduce the time overhead in mono_class_setup_supertypes ().
11710
11711 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
11712
11713         * icall.c: speedup and fix leaks in GetMethodsByName and
11714         GetPropertiesByName.
11715
11716 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
11717
11718         * reflection.c: some locking fixes.
11719
11720 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
11721
11722         * metadata.c: added missing break in case statement.
11723
11724 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
11725
11726         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
11727         typedbyref return values. Fixes #73941.
11728
11729 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
11730
11731         * security-manager.c|h: Added demandunmanaged method and 
11732         suppressunmanagedcodesecurity class to MonoSecurityManager.
11733         Renamed aptc class to allowpartiallytrustedcallers.
11734
11735 2005-03-17  Martin Baulig  <martin@ximian.com>
11736
11737         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
11738
11739 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11740
11741         * file-io.c: disabled file async. IO using aio_*. It uses the
11742         threadpool now. Workaround for bug #73718.
11743
11744 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
11745
11746         * assembly.h, mono-config.c: added code to deal with bundled configs
11747         for bundled assemblies.
11748
11749 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
11750
11751         * *.c, private.h: cleanup, removing old private.h header file.
11752
11753 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
11754
11755         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
11756         and throw_on_unmappable_char attributes.
11757
11758 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
11759
11760         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
11761         _ProcessName_internal.
11762
11763 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
11764
11765         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
11766         #73631.
11767
11768         * icall.c threads.c threads-types.h: Remove slothash icalls as they
11769         are no longer used.
11770
11771 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
11772
11773         * object.c (compute_class_bitmap): Add support for generics. Fixes
11774         #73527.
11775
11776 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
11777
11778         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
11779
11780 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11781
11782         * filewatcher.c: commented out the code for windows watcher, as we don't
11783         use it (we use the managed implementation instead).
11784
11785 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
11786
11787         * object-internals.h (MonoThread): Remove 'unused1' field.
11788
11789         * appdomain.c: Bump corlib version.
11790
11791         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
11792
11793         * reflection.c (mono_reflection_create_runtime_class): Remove the
11794         AssemblyBuilder.Save optimization since it causes too many problems.
11795
11796 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
11797
11798         * exception.c|h: Added mono_get_exception_reflection_type_load to
11799         create a ReflectionTypeLoadException object.
11800         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
11801         to return NULL is a InheritanceDemand fails during reflection. Updated
11802         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
11803         ReflectionTypeLoadException if an InheritanceDemand fails during 
11804         reflection. Added icall mapping for GetLinkDemandSecurity.
11805         * security-manager.c|h: Added ves_icall_System_Security_
11806         SecurityManager_GetLinkDemandSecurity internal call to return the
11807         class and methods permissions set for a LinkDemand. Removed unused
11808         fields in MonoSecurityManager.
11809
11810 2005-03-10  Martin Baulig  <martin@ximian.com>
11811
11812         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
11813         it's a generic instance.
11814
11815 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
11816
11817         * reflection.c (mono_get_object_from_blob): Applied patch from
11818         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
11819
11820         * class.c (mono_class_is_assignable_from): Another try at fixing 
11821         #73469 without breaking anything.
11822
11823 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
11824
11825         * class.c: (mono_class_is_assignable_from): Revert the last changes
11826         since they don't work with generics.
11827         
11828         * class.c (mono_class_is_assignable_from): Fix build bustage.
11829
11830         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
11831         the managed IsAssignableFrom method. Fixes #73469.
11832
11833         * reflection.c (mono_reflection_call_is_assignable_from): New helper
11834         function.
11835
11836 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
11837
11838         * object.c (mono_load_remote_field_new): Fix returning uninitialized
11839         memory when the remoting callback does not sets the out arguments.
11840         Fixes #73007.
11841
11842         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
11843         by mistake.
11844
11845         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
11846
11847         * object-internals.h (MonoStackFrame): Sync with managed object layout.
11848
11849         * appdomain.c: Bump corlib version.
11850
11851 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
11852
11853         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
11854         function.
11855
11856         * threads.c (mono_thread_attach): Detect threads which are not started
11857         by the GC pthread wrappers.
11858
11859 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
11860
11861         * icall.c: Added new icall for RNG.
11862         * rand.c|h: Added new icall to open the RNG. This allows to share a 
11863         single handle on Linux to access /dev/urandom and fix #73183.
11864
11865 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
11866
11867         * object.c: setting the new vtable in a transparent proxy object must
11868         not change the GC descriptor.
11869
11870 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
11871
11872         * object.c: fixed compilation without GCJ support.
11873         * reflection.c: for runtime-created types ensure klass->has_references
11874         is correct (bug #73215).
11875
11876 2005-03-02  Martin Baulig  <martin@ximian.com>
11877
11878         * class.c (mono_class_is_assignable_from): Make this work if
11879         `oklass' is a generic instance; fixes #72831.
11880
11881 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
11882
11883         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
11884         with hasthis set.
11885         
11886         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
11887
11888         * marshal.c: Reorganize native->managed marshalling code to also use
11889         the emit_marshal_... functions.
11890
11891 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
11892
11893         * object.c: typed allocs have issues with bitmap sizes > 30,
11894         so check for max_set >= 30.
11895
11896 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
11897
11898         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
11899         managed code. Fixes #73012.
11900
11901         * metadata.h (MonoMarshalSpec): Add elem_mult field.
11902
11903         * metadata.c reflection.c: Load/Emit elem_mult as well.
11904         
11905         * metadata.h (MonoMarshalSpec): Add comment.
11906
11907         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
11908
11909         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
11910         num_elem to -1 if not given.
11911
11912         * object-internals.h (MonoReflectionMarshal): Add has_size field.
11913
11914         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
11915         given values.
11916
11917 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
11918
11919         * null-gc.c (mono_gc_free_fixed): Was not compilable.
11920
11921 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
11922
11923         * reflection.c (encode_marshal_blob): Encode param_num field as well.
11924
11925         * object-internals.h (MonoReflectionMarshal): Add param_num field.
11926
11927 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
11928
11929         * object.c: generalized the reference bitmap creation
11930         and added hooks for the new GC.
11931         * class-internals.c: removed the gc_bitmap field from MonoClass.
11932
11933 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
11934
11935         * domain.c: help the compiler to produce better code
11936         in mono_jit_info_table_find ().
11937
11938 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
11939
11940         * object.c: make all allocations look typed.
11941
11942 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
11943
11944         * socket-io.c: load Mono.Posix if it's not loaded already
11945         (fixes bug#73033).
11946
11947 2005-02-24  Martin Baulig  <martin@ximian.com>
11948
11949         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
11950         * reflection.c (dup_type): Likewise.
11951
11952 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
11953
11954         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
11955         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
11956
11957 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
11958
11959         * domain.c, threads.c, object-internals.h: make the critical thread
11960         local vars use the fast access mode (even when we're compiled in
11961         a lib). Provide accessors to be used by the jit during codegen.
11962
11963 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11964
11965         * appdomain.c: Changed hook functios behavior to include
11966         support for the reflection only assemblies. Some icalls were changed
11967         to support the mentioned assemblies too. Signatures of static methods
11968         try_assembly_resolve and real_load now have an additional parameter:
11969         refonly.
11970
11971         * assembly.c: General changes to mono_assembly_ methods to support
11972         reflection only api. Functions mono_assembly_open, mono_assembly_load,
11973         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
11974         suffix, to support an additional gbool parameter to specify whether
11975         the assembli is reflection only or not. Created some new hook functions 
11976         to add support for reflection only assemblies. Signatures of static 
11977         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
11978         have now an additional parameter: refonly.
11979
11980         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
11981         indicating whether the assembly is reflection only or not.
11982
11983         * exception.c: Add mono_get_exception_invalid_operation.
11984
11985         * icall.c: Throw an InvalidOperationException when trying to invoke
11986         a property/method/event, or trying to set/get the value of a field.
11987         Also add an icall to retrieve the ref_only flag to the
11988         MonoReflectionAssembly.
11989
11990 2005-02-23  Chris Toshok  <toshok@ximian.com>
11991
11992         Part of fix for #72827.
11993         * mono-debug.c (mono_debug_add_method): add lexical block data to
11994         the info we write.  Kind of a hack at the moment - we copy the
11995         lexical block info from the MonoDebugMethodInfo to the
11996         MonoDebugMethodJitInfo here, before writing it.
11997         (mono_debug_read_method): read the lexical block info.
11998
11999         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
12000
12001         * debug-mono-symfile.h: add lexical block support.
12002
12003         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
12004         support.
12005
12006 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
12007
12008         * loader.c (mono_lookup_pinvoke_call): Fix warning.
12009
12010         * object.c (mono_runtime_free_method): Call mono_free_method () and
12011         put the TODOs there.
12012
12013         * loader.c (mono_free_method): Free up most memory allocated for 
12014         dynamic methods.
12015
12016 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
12017
12018         * reflection.c: properly flag a Type argument to a
12019         named custom attr value (bug #72248).
12020
12021 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
12022
12023         * reflection.c: reduce code duplication in named custom
12024         attribute encoding.
12025
12026 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
12027
12028         * reflection.c: properly encode custom attrs of type object
12029         (bug #72649).
12030
12031 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
12032
12033         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
12034
12035 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
12036
12037         * socket-io.c: load System.dll if it's not loaded already
12038         (bug #72850 and #70477).
12039
12040 2005-02-21  Martin Baulig  <martin@ximian.com>
12041
12042         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
12043         generic instances.
12044
12045 2005-02-21  Martin Baulig  <martin@ximian.com>
12046
12047         * reflection.c (mono_image_build_metadata): We also need to
12048         "fixup" the MethodImpl table after we computed the final method
12049         indices.  Call fixup_methodimpl() to do that.
12050         (fixup_methodimpl): New private method.
12051
12052 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
12053
12054         * assembly.c: special case mscorlib.dll (bug#72536),
12055         patch from Carlos Alberto Cortez.
12056
12057 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
12058
12059         * threads-types.h threads.c: Fix build bustage.
12060
12061         * threads.c: Use a union for long<->double conversions.
12062
12063         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
12064         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
12065
12066         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
12067         containing the checkpoint call with NOT_TAKEN.
12068         
12069         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
12070         checkpoint before pushing the arguments, so they won't have to be
12071         spilled to stack.
12072
12073 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
12074
12075         * domain.c, assembly.c, domain-internals.h: make some data
12076         const and relocation-free.
12077
12078 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
12079
12080         * object.c, appdomain.c, class-internals.h: introduce the
12081         MonoClassRuntimeInfo structure to hold the info needed to
12082         use a class at runtime. Made mono_class_vtable() lock-free
12083         for all the appdomains.
12084
12085 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
12086
12087         * metadata-internals.h, image.c: introduce a per-image mempool to
12088         be used for memory that has the same lifetime as the image.
12089
12090 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
12091
12092         * domain.c: In mono_init_internal(), instead of selecting the first
12093         runtime version supported by an executable, get a list of all
12094         supported versions and select the one for which an mscorlib exists
12095         (since even if the runtime supports a given version, it doesn't mean
12096         that the framework for that version is installed).
12097         Modified get_runtimes_from_exe to support this behavior.
12098         In supported_runtimes, added information about additional system
12099         assembly versions.
12100         
12101         * assembly.c: Added support for more than one system assembly version
12102         per runtime version. Updated the assembly list.
12103         In mono_assembly_remap_version, removed the initial version check,
12104         since we don't know to which version we need to compare until we
12105         get the version set on which the assembly is based.
12106         Moved the code for loading corlib into the new method
12107         mono_assembly_load_corlib(), so it can be used by the initialization
12108         code.
12109         
12110         * domain-internals.h: Updated data structures and added declaration
12111         for mono_assembly_load_corlib.
12112
12113 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
12114
12115         * reflection.c (resolve_object): Fix the creation of the signature in 
12116         the SignatureHelper case.
12117
12118         * assembly.c (mono_assembly_remap_version): Fix binary search.
12119         
12120 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
12121  
12122         * class.c: Added inheritance check when a method is overloaded (from a
12123         virtual method or when implementing an interface) and when a class is
12124         inherited. Added functions to set a failure for a class and to 
12125         retreive the exception from a failure.
12126         * class-internals.h: Added fields to MonoClass to keep the exception
12127         information status for inheritance (or other exceptions) to be thrown
12128         later (i.e. not at load time).
12129         * object.c: Throw the inheritance SecurityException when a type is to 
12130         be created with either class or method inheritance violations.
12131         * reflection.c|h: Fix when getting declsec from a class. Removed 
12132         unrequired code for class. Improved sanity in parameter naming.
12133         * security-manager.c|h: Added functions to check for class and method
12134         inheritance.
12135
12136 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
12137
12138         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
12139         and has_finalize in dynamic types as well.
12140
12141 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
12142
12143         * culture-info-table.h : fixed currency format for en-GB (and so on).
12144
12145 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
12146
12147         * gc.c: ensure the GC handles never have 0 as a value.
12148
12149 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
12150
12151         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
12152         a pointer to a struct to unmanaged code. Fixes #72625.
12153
12154 2005-02-16  Martin Baulig  <martin@ximian.com>
12155
12156         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
12157
12158 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
12159
12160         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
12161
12162 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
12163
12164         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
12165
12166         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
12167         UnmanagedFunctionPointerAttribute, use it for determining calling convention
12168         etc. Fixes #71471.
12169
12170         * reflection.c (mono_custom_attrs_get_attr): New helper function.
12171
12172         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
12173
12174 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
12175
12176         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
12177         changes to make the current context a field in MonoThread.
12178
12179 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
12180
12181         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
12182         the last change.
12183         
12184         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
12185         extracted from mono_marshal_get_native_wrapper.
12186
12187         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
12188         to create wrappers around native functions.
12189
12190         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
12191         delegates for arbitrary function pointers. Fixes #71472.
12192
12193 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
12194
12195         * threads.c: cleaned up the code a little.
12196
12197 2005-02-15  Martin Baulig  <martin@ximian.com>
12198
12199         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
12200         the data table.
12201
12202         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
12203         allocate larger chunks if needed.
12204
12205 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
12206
12207         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
12208         in by mistake.
12209
12210 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
12211
12212         * domain.c: keep the domains in an array and ensure the domain ids
12213         are kept small, so they can be used as indexes to domain-specific data
12214         with a small memory overhead.
12215
12216 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
12217
12218         * icall.c: Handle byref types in Type icalls. Fixes #72544.
12219
12220 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
12221
12222         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
12223
12224 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
12225
12226         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
12227
12228         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
12229         values.
12230
12231         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
12232         
12233 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
12234
12235         * domain-internals.h: add the hashtable here.
12236
12237         * class-internals.h: Remove `info' from MonoMethod
12238
12239         * domain.c: Add a new hashtable, jit_trampoline_hash
12240
12241 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
12242
12243         * object.c: don't set the value of static fields
12244         (fixes bug#72494).
12245
12246 2005-02-11  Martin Baulig  <martin@ximian.com>
12247
12248         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
12249         (mono_debug_add_method): Silently ignore the method if it's too big.
12250         (mono_debug_add_type): Likewise.
12251
12252 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
12253
12254         * threads.c, appdomain.c: remove #ifdefs from the code.
12255
12256 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
12257
12258         * metadata-internals.h: Added flags to MonoAssembly to cache the most
12259         common security informations. This allows us to stay in unmanaged code
12260         when doing LinkDemand and it's special cases (except for the first 
12261         time for initialization). The flags a very much used with --security.
12262         * reflection.c|h: Added code to get declarative security attributes 
12263         for LinkDemand and InheritanceDemand. This required to refactor the
12264         existing code for Demand.
12265         * security-manager.c|h: Added new method fields for the special cases
12266         of LinkDemand.
12267
12268 2005-02-10  Martin Baulig  <martin@ximian.com>
12269
12270         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
12271         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
12272
12273 2005-02-10  Martin Baulig  <martin@ximian.com>
12274
12275         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
12276         debugging code; this is almost a complete rewrite.
12277
12278         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
12279
12280 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
12281
12282         * domain.c, object.h: expose mono_string_equal () and 
12283         mono_string_hash ().
12284         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
12285         it's implemented in managed code.
12286
12287 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
12288
12289         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
12290         lo leak objects between appdomains.
12291
12292 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
12293
12294         * assembly.c: old compilers compilation fix from 
12295         robertj@gmx.net (Robert Jordan).
12296
12297 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
12298
12299         * class-internals.h: Little reminder for the future.
12300
12301         * debug-helpers.c: Fix up wrapper_type_names
12302
12303 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
12304
12305         * image.c, metadata-internals.h: when loading an image from a file,
12306         mmap all of it and use the same codepaths as when using a
12307         in-memory image: the code is simpler and we use less memory
12308         (both writable and readonly).
12309
12310 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
12311
12312         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
12313         API to alloc runtime data structures that need to be tracked by the
12314         GC and contain pointers.
12315         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
12316         make the code more readable and eventually use a different GC.
12317
12318 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
12319
12320         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
12321         for out arguments.
12322         
12323 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
12324
12325         * object.c: In release_type_locks(), don't release the cctor lock
12326         if it has already been released. This fixes a crash in the
12327         thread5 test.
12328
12329 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
12330
12331         * gc.c, marshal.c, icall.c: register a delegate for finalization
12332         only when the native function pointer has been allocated for it.
12333
12334 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
12335
12336         * object.c: cleaned up some code, allocate objects that are
12337         pointer free with the atomic malloc variant. Allocate memory
12338         for static data from the mempool if it's pointer-free.
12339         Allocate the bounds array at the end of the array data, when needed.
12340         * object-internals.h, object.h: move a private function in a private
12341         header.
12342         * class.c: handle missing case in tracking references in fields.
12343
12344 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
12345
12346         * class.c, class-internals.h: keep track if a type has
12347         reference fields in either the instance or static fields.
12348
12349 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
12350
12351         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
12352         and renamed to MonoRuntimeInfo. Added fields to store the expected
12353         framework assembly version. Changed mono_get_framework_version and
12354         mono_get_runtime_version for a single mono_get_runtime_info method.
12355         
12356         * assembly.c: Added method to remap system assembly versions to the
12357         current executing runtime version. Removed old mapping code.
12358         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
12359         
12360         * icall.c, reflection.c: Track api changes.
12361
12362 2005-02-06  Miguel de Icaza  <miguel@novell.com>
12363
12364         * loader.c (method_from_memberref): Improve error reporting,
12365         produce the class name instead of the typeref/typedef index. 
12366
12367 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
12368
12369         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
12370
12371 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
12372
12373         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
12374         stdcall and charset name mangling.  Reorganize the code and add
12375         some tracing stuff.
12376
12377 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
12378
12379         * monodiet.c: More iters!
12380
12381         * marshal.c: Iter usage.
12382
12383         * icall.c: Iter usage.
12384
12385         * object.c: Use iters.
12386
12387         * debug-helpers.c: More iters
12388
12389 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
12390
12391         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
12392         under win32.
12393
12394 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
12395
12396         * mono-debug-debugger.c: use iters
12397
12398         * class.c, class-internals.h: mono_class_setup_events is static
12399         now
12400
12401         * All callers: use iters
12402
12403 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
12404
12405         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
12406         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
12407
12408 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
12409
12410         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
12411
12412         * marshal.h: Add prototypes for ldfld/stfld_remote.
12413
12414         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
12415         this is called during startup.
12416         
12417 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
12418
12419         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
12420         MonoThreadsSync struct private in monitor.c. Changed the way
12421         MonoThreadsSync is allocated so it's faster and there is no
12422         need to keep track of it with a finalizer and it uses less memory.
12423         This also finally allows us to allocate mono objects as ptrfree when
12424         there are no reference fields.
12425
12426 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
12427
12428         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
12429         disappearing link to the GC interface and use them to simplify
12430         the gchandles code.
12431
12432 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
12433
12434         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
12435         stfld_remote which call mono_load/store_field_new. This allows methods
12436         calling ldfld/stfld wrappers to be AOTed.
12437
12438         * console-io.c: Include sys/filio.h under solaris.
12439         
12440         * console-io.c: Include curses.h if needed correctly.
12441
12442 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
12443         
12444         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
12445         method->klass as well.
12446
12447         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
12448
12449         * class.c (mono_class_init): Switch on lazy initialization of 
12450         methods.
12451
12452         * class.c (mono_class_get_finalizer): Handle the case when the 
12453         finalizer is inherited.
12454
12455 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12456
12457         * console-io.c: <curses.h> is needed by term.h on solaris.
12458
12459 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
12460
12461         * icall.c, class-internals.h, monodiet.c, class.c: Remove
12462         mono_class_setup_properties where possible. Remove this ftn from
12463         the header file, and make it static.
12464
12465 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
12466
12467         * loader.c: Add missing setup_... call.
12468
12469         * class.c: Add missing setup_... calls.
12470
12471         * class.c (mono_class_init): Switch on lazy initialization of 
12472         the generic vtable.
12473         
12474         * class.c (mono_class_init): Fix generics broken by the recent changes.
12475
12476         * monodiet.c (handle_type): Add missing setup_... calls.
12477
12478         * class.c: Back out garbage in previous patch.
12479         
12480         * class.c: Add missing setup_... calls.
12481
12482         * class.c (mono_class_get_method_from_name_flags): Avoid calling
12483         mono_class_setup_methods () if possible.
12484
12485         * class-internals.h (MonoClass): Add 'has_cctor' flag.
12486
12487         * class-internals.h (MonoCachedClassInfo): New structure.
12488
12489         * class.c: Initialize properties and events fields of MonoClass lazily.
12490
12491         * class.c: Add infrastructure for lazily initializing the methods and
12492         vtable fields of MonoClass. Not yet used.
12493
12494         * class.c (mono_class_get_finalizer): New helper function.
12495
12496         * class.c: Add infrastructure for loading some class related data from
12497         an AOT file.
12498
12499         * object.c: Add infrastructure for initializing the vtable from data
12500         in the AOT file.
12501
12502         * gc.c (run_finalize): Use mono_class_get_finalizer ().
12503
12504         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
12505         appropriate initialization function before accessing parts of the
12506         MonoClass structure.
12507
12508         * marshal.c: Fix warnings.
12509         
12510         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
12511
12512         * mono-debug-debugger.c (get_exception_message): Use 
12513         mono_class_get_method_from_name_flags ().
12514
12515 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
12516
12517         * reflection.c, appdomain.c: Replace a few manual searches that
12518         Zoltan missed. (Paolo approved this part of my initial patch).
12519
12520 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
12521
12522         * profiler.c: disable recording statistical events at report time.
12523
12524 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
12525
12526         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
12527         to byteswap arrays of enum values, too (bug #72080).
12528
12529 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
12530
12531         * appdomain.c (set_domain_search_path): Allow this to be called if
12532         domain->setup is not yet set.
12533
12534         * loader.c (mono_method_get_index): New helper function.
12535
12536         * loader.c reflection.c: Use mono_method_get_index ().
12537
12538         * class.c (mono_class_get_method_from_name_flags): New helper method.
12539
12540         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
12541         this.
12542
12543         * class.c (mono_class_get_cctor): New helper method.
12544
12545         * string-icalls.c object.c class.c marshal.c reflection.c: Use
12546         mono_class_get_method () to look up methods.
12547
12548 2005-02-01  Miguel de Icaza  <miguel@novell.com>
12549
12550         * console-io.c: Fix the build, this should work on Windows.
12551
12552 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
12553
12554         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
12555         be set to null to keep things valid
12556
12557 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12558
12559         * icall.c: added Console 2.0 icalls.
12560         * Makefile.am: added console-io.[ch]
12561         * console-io.[ch]: internal calls for Console 2.0 API.
12562
12563 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
12564
12565         * class.c: make sure we consider all the interfaces
12566         when calculating max_interface_id (bug found by
12567         Jeroen Frijters running ikvm).
12568
12569 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
12570
12571         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
12572         valuetype fields to null.
12573
12574         * object.c (set_value): Ditto. Fixes #71669.    
12575
12576 2005-01-31  Martin Baulig  <martin@ximian.com>
12577
12578         * metadata.c (mono_metadata_has_generic_params): New public
12579         function; checks whether something is a generic method.
12580
12581 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
12582
12583         * appdomain.c: fix infinite recursion when adding assemblies.
12584
12585 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
12586
12587         * object.c: Fix small typo to return all items for Environment.
12588         GetCommandLineArgs.
12589
12590 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
12591
12592         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
12593         reflection.c: more domain and assembly-unload related fixes
12594         and memory leaks plugs.
12595
12596 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
12597
12598         * 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.
12599
12600 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
12601
12602         * loader.c (mono_method_signature): Make this method lazy
12603         (mono_get_method_from_token): Don't computate the signature here.
12604
12605         Doing this saves quite a bit of memory. I got 90 kb on starting up
12606         monodoc. It should also save some disk reads on startup.
12607
12608         * *: MonoMethod->signature might be NULL now. You *MUST* use
12609         mono_method_signature.
12610
12611 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
12612
12613         * object.c (mono_runtime_get_main_args): Return an array from the
12614         current domain here. Fixes #71938.
12615
12616 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
12617
12618         * monitor.c: formatting changes to comply with the
12619         mono coding style and remove #ifdefs from the code.
12620
12621 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
12622
12623         * metadata.c, private.h: remove some unneeded data
12624         and use a more compact representation for table schemas.
12625
12626 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
12627
12628         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
12629         to get a better distribution in hash tables.
12630         * *.c: use mono_aligned_addr_hash() where appropriate.
12631         * assembly.c: make var static.
12632
12633 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
12634
12635         * domain-internals.h: Put MonoJitInfo on a diet.
12636
12637         * domain.c: Fix a warning.
12638
12639 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
12640
12641         * gc.c: rework the gc handles code to reuse handles
12642         when freed.
12643
12644 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
12645
12646         * domain.c: fixed long standing bug in mono_string_equal() which
12647         was brought to light with the ldstr changes.
12648
12649 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
12650
12651         * reflection.c: Remove warning by adding missing include for marshal.h
12652
12653 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
12654
12655         * domain.c, object.c: change the ldstr_table to hold
12656         MonoString* as keys: makes the runtime isinterned lookup
12657         faster and simplifies memory management.
12658
12659 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
12660  
12661         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
12662         possible to add imperative security checks before calling the icall.
12663         * reflection.c: Return security attributes on the original MonoMethod
12664         (and not the wrapped one). This fix permissions on icalls.
12665
12666 2005-01-25  Dick Porter  <dick@ximian.com>
12667
12668         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
12669         the check for mktime() support actually test the mktime() return
12670         value.  "Fixes" bug 71682, though the output is still different to
12671         MS.
12672
12673 2005-01-25  Martin Baulig  <martin@ximian.com>
12674
12675         * class.c (mono_class_is_assignable_from): Make this work for
12676         generic instances.
12677
12678 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
12679
12680         * marshal.c (mono_string_utf8_to_builder)
12681         (mono_string_builder_to_utf16): We might not have ownership of the
12682         string. In thise case, we need to create a new buffer.
12683
12684         * object-internals.h (mono_stringbuilder_capacity): sb->str might
12685         be null, in which case, use the default capacity.
12686
12687 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
12688
12689         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
12690         GC events to the profiler.
12691
12692 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
12693
12694         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
12695         if you don't want the GC to run.
12696
12697 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
12698
12699         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
12700         start providing a GC API and keeping different implementations in
12701         their own file.
12702         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
12703
12704 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
12705
12706         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
12707         mmap rather than allocating a huge buffer.
12708         (mono_debug_close_mono_symbol_file): Free the buffer allocated
12709         above.
12710
12711 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
12712
12713         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
12714         and CheckExecutionRights.
12715         * reflection.c|h: Keep the index of the declarative security to be 
12716         used, instead of the pointer, when AOT compiler is used. Also add 
12717         class initialization when requesting demands.
12718         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
12719         CheckExecutionRights. Both properties are now FALSE by default, and
12720         unmodifiable, unless the --security option is used.
12721
12722 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
12723
12724         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
12725         reflection.c: properly refcount images and assemblies, many leaks fixed.
12726
12727 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12728
12729         * threadpool.c: increase the timeout for threads in the thread pool to
12730         10s.  Fixes bug #67159.
12731
12732 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
12733
12734         * class-internals.h: Sun's compiler insists on explicit
12735         signed on bit fields to handle then correctly.
12736
12737 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
12738
12739         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
12740         Make the size of the array fit only the number of invalid path
12741         chars that we have.
12742
12743         * class.c (_mono_class_get): Improve the error reporting when a
12744         class referenced is not found, to assist debugging. 
12745
12746 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
12747
12748         * threads.c: fix off-by-one error.
12749         * domain.c: free data allocated in the domain.
12750
12751 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
12752
12753         * reflection.c (mono_method_body_get_object): Fill out exception info
12754         as well.
12755
12756         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
12757         structure.
12758         
12759 2005-01-19  Martin Baulig  <martin@ximian.com>
12760
12761         * loader.c (mono_get_method_constrained): Make this work again.
12762
12763 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
12764
12765         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
12766         guint16 to match the managed side.
12767
12768         * reflection.c (mono_reflection_body_get_object): Fill out local
12769         variables array.
12770
12771         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
12772         as well.
12773
12774         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
12775         'local_var_sig_token'.
12776
12777 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
12778
12779         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
12780         System.Drawing.
12781
12782         * reflection.c (mono_method_body_get_object): Handle abstract and
12783         runtime methods.
12784
12785 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
12786
12787         * marshal.c, loader.c, class-internals.h, reflection.c:
12788         store the emthod data for a wrapper in an array instead of a list.
12789
12790 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
12791
12792         * marshal.c: change the code to allocate memory more
12793         conservatively for method wrappers.
12794
12795 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
12796
12797         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
12798         fields from MonoClass to the marshal info structure where they belong.
12799
12800 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
12801
12802         * class.c, object.c, class-internals.h, marshal.c: rearrange
12803         some fields and tweak some types to lower memory usage.
12804
12805 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
12806
12807         * threads.c (signal_thread_state_change): Handle the case when the
12808         target thread is the current thread.
12809
12810         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
12811
12812         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
12813         emit_ptr_to_object_conv. 
12814
12815         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
12816         marshalling. Fixes #71352.
12817
12818 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
12819
12820         * metadata.h, blob.h: move table enum to blob.h so it can be included
12821         in any header.
12822         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
12823         cut the size of MonoImage/MonoDynamicImage.
12824
12825 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
12826
12827         * profiler.c (mono_profiler_install_simple): Fix default arguments.
12828
12829 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
12830
12831         * reflection.c, reflection.h, icall.c: add a function to check
12832         if an attribute type is defined for a metadata object.
12833
12834 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
12835
12836         * object-internals.h: Added some needed fields from StringBuilder class.
12837         * marshal.c: Set the maxCapacity when creating a StringBuilder.
12838
12839 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
12840
12841         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
12842         threads before shutting down the runtime.
12843
12844         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
12845
12846 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
12847
12848         * object-internal.h, threads.c: implement stacksize and 
12849         parameterized thread start functionality (requires
12850         matching corlib). Marked broken code for later removal.
12851
12852 2005-01-12  Martin Baulig  <martin@ximian.com>
12853
12854         * class-internals.h (MonoGenericClass): Moved the `initialized'
12855         flag to MonoDynamicGenericClass, removed `init_pending'.
12856         (MonoGenericInst): Added `is_reference' flag.
12857
12858 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
12859
12860         * reflection.c (mono_image_create_pefile): Only set the pe_offset
12861         inside the MSDOS header. Fixes #71201.
12862
12863         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
12864         gc thread.
12865         (mono_domain_finalize): Ditto.
12866
12867 2005-01-12  Martin Baulig  <martin@ximian.com>
12868
12869         * class.c (mono_get_shared_generic_class): Use the cache for
12870         non-dynamic generic classes.
12871
12872         * class-internals.h (mono_class_create_generic_2): Removed
12873         function prototype, this function is now static inside class.c.
12874
12875         * class.c (mono_class_create_generic_2): Made this static, only
12876         call it from mono_class_init() and mono_class_setup_parent().
12877         (collect_implemented_interfaces_aux): Call mono_class_init() on
12878         the interfaces we collect.
12879         (mono_class_setup_vtable): Call mono_class_init (class->parent).
12880
12881 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
12882
12883         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
12884         it a real thread handle.
12885
12886         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
12887         MonoJitExceptionInfo, since each catch clause needs its own variable.
12888         
12889 2005-01-11  Dick Porter  <dick@ximian.com>
12890
12891         * image.c (mono_pe_file_open): New variant on mono_image_open()
12892         that does not set up the CLI metadata; used for FileVersionInfo so
12893         it can get the data for windows binaries too.
12894         
12895         * process.c (process_read_string_block): Don't read off the end of
12896         the StringTable block.
12897
12898         These both fix bug 70766.
12899
12900 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
12901
12902         * gc.c: set some fields to NULL at GC cleanup time.
12903         * threads.c: if we quit the main thread, call exit ().
12904
12905 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
12906
12907         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
12908
12909 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
12910
12911         * threads.h, threads.c, object.c: added accessor and settor for
12912         main_thread. Handle it specially when exiting from it: wait
12913         for other foreground threads to exit.
12914
12915 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
12916
12917         * process.c, verify.c: remove some bloat.
12918
12919 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
12920
12921         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
12922         the calling convention to cdecl under win32.
12923
12924 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
12925
12926         * object.c (mono_object_get_size): New function to get the size of
12927         an object instance.
12928
12929         * profiler.c (simple_allocation): Use above.
12930
12931 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
12932
12933         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
12934         ves_icall_System_AppDomain_getRootDomain (as it's not required to
12935         get an appdomain by it's id and we can't assume the root's id is 0).
12936         * domain-internals.h: Change the function prototype to match.
12937         * icall.c: Change the icall table for AppDomain.
12938
12939 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
12940
12941         * locales.c (string_invariant_compare_char): Only compute
12942         GUnicodeTypes in the case where we need them.  Test for ordinality
12943         first and return if so.
12944
12945         From the commit:
12946
12947                 /*
12948                  * FIXME: here we must use the information from c1type and c2type
12949                  * to find out the proper collation, even on the InvariantCulture, the
12950                  * sorting is not done by computing the unicode values, but their
12951                  * actual sort order.
12952                  */
12953
12954 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
12955
12956         * loader.c: for P/Invoke methods, allow the "Internal" shared
12957         library name to refer to the calling process symbol namespace.
12958
12959 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
12960
12961         * Makefile.am: Add the security manager to the build.
12962         * security-manager.c|h: New. Initialization of the security manager.
12963
12964 2005-01-07  Dick Porter  <dick@ximian.com>
12965
12966         * threads.c: 
12967         * monitor.c: Update thread state during Monitor and WaitHandle
12968         waits.  Fixes bug 71031.
12969
12970 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
12971
12972         * reflection.c (property_encode_signature): Correctly handle when the
12973         property has no methods.
12974
12975 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
12976
12977         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
12978         
12979         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
12980         fields from mb, not rmb. Fixes #71017.
12981
12982         * marshal.c (emit_ptr_to_str_conv): Add support for 
12983         ByValTStr -> string conversion. Fixes #71015.
12984
12985         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
12986
12987         * mempool.c (mono_mempool_contains_addr): New helper function.
12988
12989 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
12990
12991         * metadata.c (mono_metadata_compute_size): Fix size calculation of
12992         HasSematics encoded fields.
12993         
12994         * metadata.c (mono_type_to_unmanaged): Improve error message for 
12995         invalid string marshalling.
12996
12997         * metadata.c: Fix warnings.
12998         
12999 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
13000
13001         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
13002         profiler support.
13003
13004 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
13005
13006         * domain.c object.c domain-internals.h: Revert part of r38077 since the
13007         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
13008         tests.
13009
13010 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
13011
13012         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
13013         so methods containing these can be AOTed.
13014
13015 2005-01-03  Martin Baulig  <martin@ximian.com>
13016
13017         * loader.c (find_method): Removed the hack for generic instances.
13018         (method_from_memberref): If our parent is a generic instance, pass
13019         its generic type definition to find_method() and then inflate the
13020         method.
13021         (mono_get_method_constrained): Pass the generic type definition to
13022         find_method() and inflate the method later.
13023
13024         * class-internals.h (MonoStats): Added `generic_class_count'.
13025
13026         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
13027         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
13028
13029         * reflection.c (mono_custom_attrs_from_params): Don't ignore
13030         generic type definitions.
13031
13032 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
13033
13034         * loader.c icall.c: Fix warnings.
13035
13036 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
13037
13038         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
13039         blittable types. Fixes #70864.
13040
13041 2004-12-29  Martin Baulig  <martin@ximian.com>
13042
13043         * icall.c
13044         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
13045
13046         * reflection.c (mono_method_get_object): Create a
13047         "System.Reflection.MonoGenericMethod" for inflated methods; don't
13048         call mono_get_inflated_method().
13049
13050         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
13051
13052 2004-12-27  Martin Baulig  <martin@ximian.com>
13053
13054         * class-internals.h (MonoMethod): Added `is_inflated' flag.
13055         (MonoMethodInflated): Added `inflated' field.
13056
13057         * class.c (mono_class_inflate_generic_method): Don't really
13058         inflate the method here; just set the `is_inflated' flag in the
13059         MonoMethod.
13060         (mono_class_get_inflated_method): Actually inflate the method here
13061         if it's not already inflated; we use the MonoMethodInflated's new
13062         `inflated' field as a cache.
13063
13064 2004-12-26  Martin Baulig  <martin@ximian.com>
13065
13066         * class.c
13067         (inflate_generic_class): Moved some code out of inflate_generic_type().
13068         (mono_class_inflate_generic_method): If we're already inflated,
13069         inflate the context and use the declaring method; ie. make sure
13070         the declaring method of an inflated method is always the generic
13071         method definition.
13072         (mono_class_create_from_typedef): Create
13073         `class->generic_container->context->gclass'.
13074
13075 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
13076
13077         * metadata-internals.h, marshal.c, reflection.c: More
13078         MonoGHashTable->GHashTable.
13079
13080         * domain-internals.h, class.c: Change MonoGHashTable's into
13081         GHashTables for some cases where no gc stuff is used
13082
13083         All users: update apis
13084
13085 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
13086
13087         * metadata.c (builtin_types): Make this `const'. Makes this get
13088         put into the shareable section.
13089         (mono_metadata_init): Casts to make gcc happy.
13090
13091 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
13092
13093         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
13094
13095 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
13096
13097         * icall.c: Added an internal call to retrieve the position and length
13098         of assembly-level declarative security attributes (RequestMinimum, 
13099         RequestOptional and RequestRefuse). This is used by the Assembly class
13100         to re-create the corresponding permission sets.
13101
13102 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
13103
13104         * marshal.c: fix the stelemref wrapper to be type correct
13105         (and faster).
13106
13107 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
13108
13109         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
13110         to do key & 0x7fffffff. Hashtable already does this. It just
13111         results in longer code.
13112
13113 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
13114
13115         * appdomain.c: Bump corlib version.
13116         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
13117         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
13118         * reflection.c|h: Add functions to get declarative security infos
13119         (blob position and length) for assemblies, classes and methods.
13120
13121 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
13122
13123         * reflection.c: sort the constant table (bug #70693).
13124
13125 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
13126
13127         * object-internals.h, threads.c, domain.c: add accessors for
13128         the MonoThread and MonoDomain tls keys.
13129
13130 2004-12-18  Martin Baulig  <martin@ximian.com>
13131
13132         * class.c (inflate_generic_type): If we're inflating a generic
13133         instance, set `ngclass->context->container = context->container';
13134         ie. the container we inflated into.
13135
13136         * metadata.c (mono_metadata_parse_generic_param): Reflect above
13137         inflate_generic_type() changes.
13138
13139 2004-12-17  Martin Baulig  <martin@ximian.com>
13140
13141         * class-internals.h
13142         (MonoGenericClass): Replaced `MonoType *generic_type' with
13143         `MonoClass *generic_class'.  Removed `dynamic_info'; if
13144         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
13145         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
13146
13147 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
13148
13149         * exception.c (mono_exception_from_token): New helper function.
13150
13151 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
13152
13153         * assembly.c (mono_assembly_load_with_partial_name): Call 
13154         mono_assembly_loaded before invoking the preload hooks. Fixes
13155         #70564.
13156
13157         * object-internals.h (MonoThread): Change culture_info and 
13158         ui_culture_info into an array.
13159
13160         * threads.c: Cache culture info objects from more than one appdomain.
13161
13162         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
13163         current UI culture.
13164
13165 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
13166
13167         * threads.h threads.c appdomain.c: Clear the culture_info field of
13168         all threads during unloading if they point to an object in the dying
13169         appdomain.
13170
13171 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
13172
13173         * culture-info.h (TextInfoEntry): New struct
13174         * object-internals.h: sync with managed
13175         * locales.c: fill the `text_info_data' field
13176         * culture-info-tables.h: update
13177
13178 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
13179
13180         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
13181         collector.
13182
13183 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
13184
13185         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
13186         (ves_icall_ModuleBuilder_getMethodToken): Ditto
13187
13188 2004-12-12  Martin Baulig  <martin@ximian.com>
13189
13190         * mono-debug-debugger.c (write_type): If we're an enum and the
13191         builtin types have already been initialized, call mono_class_init().
13192
13193 2004-12-11  Martin Baulig  <martin@ximian.com>
13194
13195         * metadata.c (mono_metadata_load_generic_params): Added
13196         `MonoGenericContainer *parent_container' argument; automatically
13197         compute `container->is_method'; pass the correct owner to
13198         get_constraints().      
13199
13200         * reflection.c (compare_genericparam): Sort the GenericParam table
13201         according to increasing owners. 
13202
13203 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
13204
13205         * profiler.c: allow disabling the default profiler.
13206
13207 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
13208
13209         * decimal.c, icall.c: allow disabling System.Decimal support.
13210
13211 2004-12-09  Marek Safar <marek.safar@seznam.cz>
13212
13213         * reflection.c: Add support for null attribute arguments.
13214
13215 2004-12-09  Martin Baulig  <martin@ximian.com>
13216
13217         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
13218         names to get rid of compiler warnings.
13219
13220 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
13221
13222         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
13223         mono_marshal_load_type_info (). Fixes #69625.
13224         (mono_marshal_get_ptr_to_struct): Likewise.
13225
13226 2004-12-08  Martin Baulig  <martin@ximian.com>
13227
13228         * mono-debug.h: Bumped version number to 47.
13229
13230         * mono-debug-debugger.c
13231         (mono_debugger_event_handler, mono_debugger_event): Take two
13232         guint64 arguments insteed of a gpointer and a guint32.  
13233
13234 2004-12-08  Martin Baulig  <martin@ximian.com>
13235
13236         * debug-mono-symfile.h
13237         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
13238         `address' to `native_offset'.
13239
13240 2004-12-08  Martin Baulig  <martin@ximian.com>
13241
13242         * class.c (mono_class_create_from_typespec): Only inflate if we
13243         either have `context->gclass' or `context->gmethod'.
13244
13245 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
13246
13247         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
13248
13249         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
13250
13251         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
13252
13253         * reflection.c (mono_assembly_get_object): Remove the workaround put
13254         in for the release.
13255         
13256         * appdomain.c: Use the corlib_internal field from MonoAssembly.
13257
13258         * appdomain.c: Bump corlib version.
13259
13260         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
13261         be visible in other appdomains.
13262
13263 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
13264
13265         * threads.c: Interlocked inc and dec for longs were messed up,
13266         use a KISS based impl for this. Fixes 70234
13267
13268 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
13269
13270         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
13271
13272 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
13273
13274         * icall.c: fix to follow policy not to allow struct
13275         arguments in icalls.
13276
13277 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13278
13279         * process.c: make the patch that handles spaces in file paths work
13280         on mono/windows too.
13281
13282 2004-12-06  Martin Baulig  <martin@ximian.com>
13283
13284         * class.c (mono_class_create_generic): Call
13285         mono_class_setup_supertypes() if we're dynamic.
13286         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
13287
13288 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
13289
13290         * object-internals.h: Add new fields to MonoThread.
13291
13292         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
13293
13294         * icall.c threads-types.h threads.c: Add new icalls.
13295
13296         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
13297
13298         * object-internals.h (MonoReflectionAssembly): Sync object layout with
13299         managed side.
13300
13301         * appdomain.c: Bump corlib version.
13302
13303         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
13304         internal assemblies. Fixes #69181.
13305
13306 2004-12-05  Martin Baulig  <martin@ximian.com>
13307
13308         * class.c (mono_class_inflate_generic_signature): Make this a
13309         no-op if `context' is NULL or we don't have any type parameters;
13310         also copy `sentinelpos'.        
13311
13312 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
13313
13314         * image.c: Add unbox_wrapper_cache.
13315
13316         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
13317
13318         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
13319         function generator.
13320         
13321         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
13322         Fixes #70173.
13323
13324         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
13325         
13326 2004-12-04  Martin Baulig  <martin@ximian.com>
13327
13328         * loader.c (mono_method_get_signature_full): New public function;
13329         like mono_method_get_signature(), but with an additional
13330         `MonoGenericContext *' argument.
13331
13332         * class.c (mono_class_inflate_generic_signature): Formerly known
13333         as inflate_generic_signature(); make this public.
13334
13335 2004-12-04  Martin Baulig  <martin@ximian.com>
13336
13337         * metadata.c
13338         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
13339         instead of a `MonoGenericContainer *'.  
13340         (mono_metadata_parse_array_full): Likewise.
13341         (mono_metadata_parse_signature_full): Likewise.
13342         (mono_metadata_parse_method_signature_full): Likewise.
13343         (mono_metadata_parse_generic_inst): Likewise.
13344         (mono_metadata_parse_generic_param): Likewise.
13345         (mono_metadata_parse_mh_full): Likewise.
13346         (mono_type_create_from_typespec_full): Likewise.
13347
13348 2004-12-03  Martin Baulig  <martin@ximian.com>
13349
13350         * class-internals.h (MonoGenericContainer): Replaced the
13351         `MonoGenericContext * pointer with a `MonoGenericContext'
13352         structure and made it the first element.
13353
13354 2004-12-03  Martin Baulig  <martin@ximian.com>
13355
13356         * class.c
13357         (inflate_generic_type): Set the `context->container' when creating
13358         a new MonoGenericContext.
13359         (mono_class_inflate_generic_method): Likewise.
13360         (mono_class_create_from_typespec): Just use `context->container'
13361         to get the container.
13362
13363         * loader.c (method_from_methodspec): Set `context->parent' from
13364         `context->container' - and if that's a method container, use its
13365         parent.  Also set the `context->container' when creating a new
13366         MonoGenericContext.
13367         (mono_get_method_from_token): Use just `context->container' to get
13368         the container.
13369
13370         * metadata.c (do_mono_metadata_parse_generic_class): Also set
13371         `gclass->context->container'.
13372
13373         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
13374         the `context->container' when creating a new MonoGenericContext.
13375
13376 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
13377
13378         * reflection.c (compare_genericparam): Sort params with identical
13379         owner by their number. Fixes gen-111 on sparc.
13380
13381 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
13382
13383         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
13384         around the domain changes.
13385
13386         * appdomain.c (mono_domain_unload): Handle the case when the thread
13387         calling Unload is itself being aborted during unloading. Fixes #70022.
13388
13389         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
13390
13391         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
13392         checkpoint_func as an icall so it gets a wrapper.
13393         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
13394         in the cross-appdomain wrappers too.
13395
13396         * threads.c (mono_thread_has_appdomain_ref): Make this public.
13397
13398         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
13399
13400         * reflection.c: Fix some memory leaks.
13401         
13402 2004-12-02  Martin Baulig  <martin@ximian.com>
13403
13404         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
13405
13406         * metadata.c (generic_class_cache): New static hashtable.
13407         (mono_metadata_lookup_generic_class): New public method.
13408
13409 2004-12-02  Martin Baulig  <martin@ximian.com>
13410
13411         * class.c (mono_class_create_from_typedef): Call
13412         mono_class_setup_parent() and mono_class_create_mono_type() before
13413         parsing the interfaces.
13414
13415 2004-12-02  Martin Baulig  <martin@ximian.com>
13416
13417         * metadata.c (generic_inst_cache): New static hashtable.
13418         (mono_metadata_lookup_generic_inst): New public function.
13419         (mono_metadata_inflate_generic_inst): New public function.
13420         (mono_metadata_parse_generic_inst): New public function.
13421         (do_mono_metadata_parse_generic_class): Use the new
13422         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
13423         since this'll also use the cache.
13424
13425         * reflection.c (mono_reflection_bind_generic_method_parameters):
13426         Use mono_metadata_lookup_generic_inst() to use the new cache.
13427
13428         * class.c (inflate_mono_type): Use
13429         mono_metadata_inflate_generic_inst() to inflate a generic
13430         instance; this'll also use the new cache.
13431
13432         * loader.c (method_from_methodspec): Use
13433         mono_metadata_parse_generic_inst() and
13434         mono_metadata_inflate_generic_inst() rather than parsing it
13435         manually, so we can use the new cache.
13436
13437 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
13438
13439         * threads.c (wait_for_tids): Do not incorrectly free threads when 
13440         the wait times out.
13441
13442 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
13443
13444         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
13445         iter->args based on whether parameters are passed in registers (i.e.
13446         MONO_ARCH_REGPARMS is defined)
13447
13448 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
13449
13450         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
13451         the exception message. Fixes #70070.
13452         (method_from_methodspec): Fix warnings.
13453
13454 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13455
13456         * process.c: (complete_path) return the path quoted
13457
13458 2004-12-01  Martin Baulig  <martin@ximian.com>
13459
13460         * class-internals.h (MonoGenericInst): New structure.
13461         (MonoGenericClass): Replaced `type_argc', `type_argv' and
13462         `is_open' with `MonoGenericInst *inst'.
13463         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
13464         `is_open' with `MonoGenericInst *inst'.
13465
13466 2004-11-30  Martin Baulig  <martin@ximian.com>
13467
13468         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
13469
13470         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
13471         to `generic_class_cache'.
13472
13473         * metadata.c
13474         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
13475         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
13476         (mono_generic_inst_is_valuetype): Renamed to
13477         mono_generic_class_is_valuetype().
13478
13479         * class-internals.h
13480         (MonoGenericInst): Renamed to MonoGenericClass.
13481         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
13482         (MonoClass): Renamed `generic_inst' to `generic_class'.
13483         (MonoGenericContext): Renamed `ginst' to `gclass'.
13484
13485         * object-internals.h
13486         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
13487
13488         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
13489         mono_reflection_generic_class_initialize().
13490
13491         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
13492         now known as "System.Reflection.MonoGenericClass".
13493         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
13494
13495 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
13496
13497         * class-internals.h: Added a flag field to MonoClass to cache the
13498         declarative security attributes actions associated with the class.
13499         * domain-internals.h: Added booleans to MonoJitInfo to cache the
13500         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
13501         applicable to the JITted method.
13502         * reflection.c|h: Added functions to extract (as flags) which security
13503         actions are available (declaratively) for a method, class or assembly.
13504         * metadata.c|h: Added functions to search the declarative security
13505         table in the metadata.
13506         
13507 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
13508
13509         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
13510         EXPORTEDTYPES are already in the class name cache, so there is no
13511         need to add extra code here to look at them. Just removes a bit of
13512         cruft.
13513
13514         (ves_icall_System_Environment_get_TickCount): No need for #if
13515         WINDOWS. We already have the code in io-layer.
13516
13517 2004-11-28  Martin Baulig  <martin@ximian.com>
13518
13519         * loader.c
13520         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
13521         Fixes gen-112.cs.
13522
13523 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
13524
13525         * assembly.c (do_mono_assembly_open): Instead of having a
13526         conditional WITH_BUNDLE, incorporate support for bundles here, by
13527         having a global `bundles' variable holding a pointer to the actual
13528         bundles. 
13529
13530         (mono_register_bundled_assemblies): New API call used by the
13531         bundle code. 
13532
13533         See mkbundle.1 for details.
13534         
13535 2004-11-27  Martin Baulig  <martin@ximian.com>
13536
13537         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
13538         the vtable for generic methods.
13539
13540 2004-11-26  Martin Baulig  <martin@ximian.com>
13541
13542         * metadata.c
13543         (mono_metadata_generic_method_hash): New public function.
13544         (mono_metadata_generic_method_equal): Likewise.
13545
13546         * class-internals.h
13547         (MonoGenericContainer): Added `GHashTable *method_hash'.
13548
13549         * reflection.c (ReflectionMethodBuilder): Added
13550         `MonoGenericContainer *generic_container'.
13551         (reflection_methodbuilder_to_mono_method): Don't create a new
13552         MonoGenericContainer each time we're called.
13553         (mono_reflection_bind_generic_method_parameters): Use
13554         `container->method_hash' to cache the results so we don't create a
13555         different method if we're called several times with the same
13556         arguments.
13557
13558         * loader.c (method_from_methodspec): Use the new
13559         `container->method_hash' here, too.
13560
13561 2004-11-26  Martin Baulig  <martin@ximian.com>
13562
13563         * class.c (inflate_generic_signature): Correctly compute
13564         `res->has_type_parameters'.
13565         (mono_class_vtable): Use the `has_type_parameters' flag to
13566         determine whether we're a generic method.
13567
13568         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
13569
13570 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
13571
13572         * object.c (mono_runtime_run_main): Fix a small memory leak.
13573
13574 2004-11-25  Martin Baulig  <martin@ximian.com>
13575
13576         * class.c (set_generic_param_owner): Fixed the loop.
13577
13578 2004-11-25  Martin Baulig  <martin@ximian.com>
13579
13580         * object.c (mono_class_vtable): Don't create any JIT wrappers for
13581         generic methods.
13582
13583 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
13584
13585         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
13586         names. Fixes #69787.
13587
13588 2004-11-24  Martin Baulig  <martin@ximian.com>
13589
13590         * class.c (mono_class_create_generic_2): If we don't have a
13591         `ginst->parent', inflate `gklass->parent' to get our parent.
13592
13593 2004-11-24  Martin Baulig  <martin@ximian.com>
13594
13595         * reflection.c (compare_genericparam): Correctly sort the
13596         GenericParam table; fixes #69779.
13597
13598 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
13599
13600         * reflection.c: When writing a PE file, don't create a huge
13601         buffer in memory. Just write the arrays we have to the file.
13602         This reduces memory usage.
13603
13604         * metadata-internals.h: MonoDynamicStream pefile is no longer used
13605         globally.
13606
13607 2004-11-17  Martin Baulig  <martin@ximian.com>
13608
13609         * class.c (mono_class_init): Don't setup `class->parent' for
13610         dynamic instances; moved this to mono_class_generic_2().
13611         (mono_class_create_generic): Also set `klass->inited' for dynamic
13612         generic instances.
13613         (mono_class_create_generic_2): Don't do anything for dynamic
13614         generic instances.  Set `klass->parent' here and also call
13615         mono_class_setup_parent() here. 
13616
13617         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
13618         `MonoType *parent' argument; set `ginst->parent' before calling
13619         mono_class_create_generic_2(), so we set the correct parent.
13620
13621 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
13622
13623         * reflection.c: allow getting attributes from ModuleBuilder
13624         (used by ikvm).
13625
13626 2004-11-17  Martin Baulig  <martin@ximian.com>
13627
13628         * class.c (mono_class_create_from_typedef): If a type parameter is
13629         inherited from an outer class, set its owner to that class.
13630
13631 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
13632
13633         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
13634           for (int*) written size. This fixes bug #69592.
13635
13636 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
13637
13638         * icall.c: Added IsAuthenticodePresnet internal call.
13639         * image.c|h: New function that check a MonoImage for an Authenticode
13640         signature in the certificate PE data directory.
13641         * security.c|h: New internal call to ask the runtime if an 
13642         Authenticode signature seems referenced in the PE header.
13643
13644 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
13645
13646         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
13647
13648         * reflection.c (mono_image_create_pefile): Free the assembly streams
13649         after writing out the assembly file.
13650
13651         * object.c (mono_runtime_run_main): Fix small memory leak.
13652
13653         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
13654         property access modifiers. Fixes #69389.
13655
13656 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
13657
13658         * domain.c, object.c, object-internals.h, domain-internals.h,
13659         object.h, marshal.c: keep dynamic code info per domain.
13660
13661 2004-11-15  Martin Baulig  <martin@ximian.com>
13662
13663         * class.c (mono_type_get_name_recurse): Put type arguments in
13664         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
13665         see bug #68387.
13666
13667 2004-11-15  Martin Baulig  <martin@ximian.com>
13668
13669         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
13670         (mono_class_setup_vtable): When computing `the_cname' for a
13671         generic instance, don't include the namespace since we'd otherwise
13672         add it twice.
13673
13674 2004-11-15  Martin Baulig  <martin@ximian.com>
13675
13676         * class.c (mono_class_create_generic): Changed return type to void.
13677         (mono_class_create_generic_2): New public function; setup
13678         `class->method', `class->field' and `class->interfaces' here
13679         instead of in mono_class_init().
13680
13681         * class.h (mono_class_create_generic): Moved to class-internals.h.
13682
13683 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
13684
13685         * reflection.c (mono_image_create_pefile): take a file HANDLE.
13686         rather than writing to memory, write to this file. Right now,
13687         we are just writting into a buffer, and copying that. However
13688         we can avoid the buffer later.
13689
13690         (mono_dynamic_stream_reset): new function
13691
13692         * icall.c, object-internals.h: update for the above.
13693
13694 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
13695
13696         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
13697         have been using gc'd memory. First it is slower, unlikely
13698         the comment in the source code said, secondly, it increases
13699         our footprint to do it in the gc.
13700
13701         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
13702         the method so that it does not have to copy to managed code.
13703
13704 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
13705
13706         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
13707
13708 2004-11-12  Martin Baulig  <martin@localhost>
13709
13710         * reflection.c (mono_image_create_token): Allow generic method
13711         definitions here, since they may appear in an `.override'; see
13712         gen-98/gen-99 for an example.
13713
13714 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
13715
13716         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
13717         #69365.
13718
13719         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
13720         descriptive.
13721
13722 2004-11-11  Martin Baulig  <martin@ximian.com>
13723
13724         * class.c (mono_class_setup_vtable): In an explicit interface
13725         implementation, the method name now includes the arity.
13726
13727 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
13728
13729         * object.c (mono_array_full_copy): Fix warning.
13730
13731 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
13732
13733         * appdomain.c: Removed look_for_method_by_name(). Use the new method
13734         mono_class_get_method_from_name() instead.
13735         
13736         * class-internals.h: Added two new types of wrappers. 
13737         Added MonoRemotingTarget enum. Added new trampoline function type, which
13738         takes an additional MonoRemotingTarget value as parameter, so it is
13739         possible to request a trampoline for a specific target.
13740         
13741         * class.c: Added new mono_class_get_method_from_name() method.
13742         
13743         * class.h: In MonoRemoteClass, we can have now to vtables, one for
13744         general remoting sinks and one specific for cross domain calls.
13745         
13746         * debug-helpers.c: Added new wrapper names.
13747         
13748         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
13749         of a remote class.
13750         
13751         * image.c: Porperly delete value objects form the remoting invoke hashtable.
13752         
13753         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
13754         with several other methods (mono_marshal_get_xappdomain_dispatch,
13755         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
13756         and others) can generate a fast remoting wrapper for cross domain calls.
13757         More information can be found in docs/remoting.
13758         Other changes: Removed mono_find_method_by_name, and used
13759         mono_class_get_method_from_name instead.
13760         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
13761         is stored in the remoting invoke hashtable.
13762         
13763         * marshal.h: published the new method for getting the xdomain wrapper,
13764         and also added a method for getting the adequate wrapper for a given
13765         method and target.
13766         
13767         * object-internals.h, object.c: Added a couple of methods for capying and
13768         cloning arrays.
13769         Modified mono_install_remoting_trampoline, which takes the new remoting
13770         trampoline that has a remoting target as parameter.
13771         mono_class_proxy_vtable now also takes a remoting target as parameter, and
13772         will return the most suitable vtable for the target.
13773         Added mono_remote_class_vtable, which returns the vtable of a remote class
13774         (which can be the normal remoting vtable or the xdomain vtable).
13775         
13776         * threads.c: the xdomain invoke and dispatch wrappers must also be
13777         protected against interruptions.
13778
13779 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13780
13781         * icall.c: use memmove in BlockCopyInternal when the source and
13782         destination arrays are the same.
13783
13784 2004-11-09  Martin Baulig  <martin@ximian.com>
13785
13786         * class-internals.h (MonoGenericContainer): Removed `method' and
13787         `signature', replaced them with `is_method' and `is_signature'
13788         flags.  Added `context'.
13789
13790         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
13791         instead of a `MonoGenericContainer *'.
13792
13793         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
13794         for dynamic type parameters.
13795         (mono_metadata_load_generic_params): Setup `container->context'.
13796
13797         * reflection.c (mono_reflection_setup_generic_class): Setup
13798         `tb->generic_container->context'.
13799         (do_mono_reflection_bind_generic_parameters): Use
13800         mono_class_inflate_generic_type() to correctly inflate types,
13801         rather than using our own hack just for MONO_TYPE_VAR.
13802
13803 2004-11-09  Martin Baulig  <martin@ximian.com>
13804
13805         * class.c (mono_class_inflate_generic_method): Small fix; don't
13806         crash here.
13807
13808         * icall.c
13809         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
13810         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
13811         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
13812         (ves_icall_Type_BindGenericParameters): Likewise.
13813         (ves_icall_Type_get_IsGenericInstance): Likewise.
13814         (ves_icall_Type_GetGenericParameterPosition): Likewise.
13815         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
13816         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
13817         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
13818
13819 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
13820
13821         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
13822         assembly versions and public key tokens. Fixes #69113.
13823
13824 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
13825
13826         * metadata.c: fix bug introduced with the type cache changes
13827         on 2004-11-06.
13828
13829 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
13830
13831         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
13832         the MonoClass pointer instead of the token in exception clauses.
13833         * reflection.c: updates for the above and make the code not depend
13834         on the structure of MonoExceptionClause.
13835
13836 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
13837
13838         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
13839         Add support for dynamic assemblies. Fixes #69114.
13840
13841         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
13842
13843 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
13844
13845         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
13846         since most only those methods use it. the code member of
13847         MonoMethodPInvoke was dead, so that can be removed too. Also,
13848         remove inline_count (again, not used), and move slot so that it
13849         can share bits with some other flags. This saves 8 bytes in the
13850         structure and gives us about 50 kb back for mcs helloworld.cs
13851
13852         * *.[ch]: Do naming changes for the above.
13853
13854         * loader.c (mono_method_get_header): Lazily init the header
13855         on first access.
13856         (mono_get_method_from_token): don't init the header here
13857         (mono_free_method): the header may never be allocated
13858
13859         Overall, this saves 150 kb of unmanaged allocations
13860         for mcs helloworld.cs. That accounts for 10% of the unmanaged
13861         memory at runtime.
13862         
13863         * loader.c, loader.h (mono_method_get_header): new accessor.
13864
13865         * *.[ch]: use the above method. Prepares us to lazily load
13866         the header.
13867
13868         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
13869         three warnings, which are actual bugs (see 69206).
13870
13871         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
13872         unused. Saves a cool 4 bytes / method.
13873
13874 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
13875
13876         * metadata.c (builtin_types): Add types for System.Object here.
13877         (mono_metadata_parse_type_full): Cache MonoType*'s that are
13878         for a class or valuetype from klass->this_arg or klass->byval_arg.
13879
13880         On mcs for a hello world, this gets us down from 21836 MonoType's
13881         to 14560.
13882
13883         (mono_metadata_free_type): Account for the above change.
13884
13885 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
13886
13887         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
13888         exception instead of asserting if name is null.
13889         (ves_icall_System_AppDomain_GetData): Ditto.
13890
13891 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
13892
13893         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
13894         EnumBuilder.
13895
13896         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
13897         Return NULL when the domain does not have entry_assembly set.
13898
13899         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
13900         Add a 'resource_modules' argument.
13901         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
13902
13903         * reflection.c (mono_reflection_create_runtime_class): Move setting
13904         of wastypebuilder here, so mono_get_type_object () returns a MonoType
13905         for enums too.
13906
13907         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
13908         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
13909         Throw an ArgumentNullException if 'ptr' is null.
13910
13911         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
13912         assemblies here. Fixes #69020.
13913
13914 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
13915
13916         * reflection.c (build_compressed_metadata): Fix the previous patch for
13917         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
13918         the stack.
13919
13920 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
13921
13922         * assembly.c (mono_assembly_names_equal): Allow a match if one of
13923         the cultures is false. Fixes #69090.
13924
13925         * reflection.c (build_compressed_metadata): Fix invalid memory read 
13926         detected by valgrind.
13927         
13928         * reflection.c (mono_reflection_get_type): Avoid triggering a 
13929         TypeResolve multiple times for the same type. Fixes #65577.
13930
13931 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
13932
13933         * marshal.c: Avoid using ldftn to call managed functions. It is
13934         much slower than just a call.
13935
13936         * reflection.c (mono_module_get_object): free the basename we
13937         allocate here from glib.
13938         
13939         * reflection.c (ensure_runtime_vtable): make sure to free
13940         overrides.  Also, we were allocating an array of MonoMethod not an
13941         array of MonoMethod*.
13942
13943         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
13944
13945         * image.c (mono_image_close): free image->guid here.
13946
13947 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
13948
13949         * reflection.c: Fix some spec conformance issues with the PE file
13950         structures so mcs compiled apps run on the Net 2.0 beta.
13951
13952 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
13953
13954         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
13955         Implement this. Fixes #67264.
13956
13957         * debug-helpers.h debug-helpers.c marshal.c: Move 
13958         mono_find_method_by_name to debug-helpers.c.
13959
13960 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
13961
13962         * object.c (mono_release_type_locks): type_initialization_hash is
13963         a GHashTable.
13964
13965         * reflection.c object.c object-internals.h: Fix warnings.
13966
13967         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
13968         without accessors. Fixes #61561.
13969
13970         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
13971         application base from the root domain if not set. Fixes #65641.
13972         (mono_runtime_init): Fix warning.
13973
13974 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13975
13976         * appdomain.c: call mono_thread_pool_init.
13977         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
13978         of worker threads based on the number of CPUs and the environment
13979         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
13980         for non-windows (windows) systems.
13981
13982 2004-10-27  Chris Toshok  <toshok@ximian.com>
13983
13984         * mono-debug-debugger.c (write_class): don't call mono_class_init
13985         here, as even with the check for (!klass->init_pending), we get
13986         into a situation where we're hitting cycles in class
13987         initialization.  Fixes #68816.
13988
13989 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
13990
13991         * image.c: Avoid overwriting values in the loaded_images_hash when an
13992         assembly is loaded multiple times. Fixes #61152.
13993
13994         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
13995         so multiple satellite assemblies for the same name can be loaded.
13996         Fixes #68259.
13997
13998         * mono_domain_assembly_preload: Actually return the loaded assembly, 
13999         not NULL.
14000
14001         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
14002         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
14003
14004         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
14005         pending finalizers are not invoked after the appdomain has been 
14006         unloaded. Fixes #67862.
14007
14008 2004-10-22  Martin Baulig  <martin@ximian.com>
14009
14010         * mono-debug-debugger.c
14011         (mono_debugger_runtime_invoke): Don't box valuetypes.
14012
14013 2004-10-22  Chris Toshok  <toshok@ximian.com>
14014
14015         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
14016         don't hide private methods.
14017
14018 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
14019
14020         * icall.c: Allows the runtime to "share" (when known) the public key
14021         token of an assembly. This avoid the need to recalculate the token 
14022         (from the public key) in managed code.
14023
14024 2004-10-21  Chris Toshok  <toshok@ximian.com>
14025
14026         * debug-helpers.c (append_class_name): argh, revert last patch.
14027         
14028 2004-10-21  Chris Toshok  <toshok@ximian.com>
14029
14030         * debug-helpers.c (append_class_name): use '+' as the delimiter,
14031         not '/', so that it matches what the debugger uses to look up
14032         methods.
14033
14034 2004-10-21  Martin Baulig  <martin@ximian.com>
14035
14036         * mono-debug-debugger.c (mono_debugger_throw_exception): New
14037         public method; this is called each time an exception is thrown and
14038         allows the debugger to use exception catch points.
14039
14040 2004-10-21  Martin Baulig  <martin@ximian.com>
14041
14042         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
14043         the stack pointer and the exception object in some struct and pass
14044         that to the debugger.
14045
14046 2004-10-21  Chris Toshok  <toshok@ximian.com>
14047
14048         * mono-debug-debugger.c (do_write_class): add instance/static
14049         event support.  We don't expose "raise" or "other" yet.
14050         (event_is_static): new method.
14051
14052 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
14053
14054         * mono-debug-debugger.c
14055         (mono_debugger_handle_exception): Remove
14056         bogus return value for fussy compilers.
14057
14058 2004-10-20  Martin Baulig  <martin@ximian.com>
14059
14060         * mono-debug-debugger.c
14061         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
14062         (mono_debugger_handled_exception): Likewise.
14063
14064 2004-10-20  Martin Baulig  <martin@ximian.com>
14065
14066         * mono-debug-debugger.h (MonoDebuggerEvent): Added
14067         MONO_DEBUGGER_EVENT_EXCEPTION.
14068
14069         * mono-debug-debugger.c (mono_debugger_handle_exception): New
14070         public function to send the debugger a notification for an
14071         exception and inform it about a catch/finally clause.
14072
14073 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
14074
14075         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
14076         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
14077         fix 2.95 build. 
14078
14079         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
14080
14081 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
14082
14083         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
14084         marshalled as [In,Out]. Fixes #58325.
14085
14086 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
14087
14088         * reflection.c (mono_method_body_get_object): Implement some fields.
14089
14090 2004-10-12  Martin Baulig  <martin@ximian.com>
14091
14092         * reflection.c (mono_reflection_bind_generic_parameters): Small
14093         fix, correctly retrieve our parent from a generic instance.
14094
14095 2004-10-12  Martin Baulig  <martin@ximian.com>
14096
14097         * metadata.c (mono_metadata_generic_param_equal): We always have
14098         an owner.
14099
14100         * class.c
14101         (mono_class_from_generic_parameter): We need to have an owner.
14102         (my_mono_class_from_generic_parameter): Likewise.
14103
14104         * reflection.c (mono_reflection_setup_generic_class): Renamed to
14105         mono_reflection_create_generic_class() and added a new
14106         mono_reflection_setup_generic_class().  
14107         (mono_reflection_initialize_generic_param): If we're a nested
14108         generic type and inherited from the containing class, set our
14109         owner to the outer class.
14110
14111 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
14112
14113         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
14114
14115         * reflection.c (mono_method_body_get_object): New function to create
14116         a MethodBody object.
14117
14118         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
14119
14120 2004-10-11  Martin Baulig  <martin@ximian.com>
14121
14122         * metadata.c (_mono_metadata_type_equal): Renamed to
14123         do_mono_metadata_type_equal() and made static.
14124
14125 2004-10-11  Martin Baulig  <martin@ximian.com>
14126
14127         * appdomain.c: Bump corlib version number to 28.
14128
14129 2004-10-10  Martin Baulig  <martin@ximian.com>
14130
14131         * class-internals.h
14132         (MonoGenericInst): Added `MonoGenericContainer *container'.
14133         (MonoGenericMethod): Likewise.
14134         (MonoGenericContext): Likewise.
14135         (MonoGenericParam): Added `MonoGenericContainer *owner'.
14136
14137         * metadata.c
14138         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
14139         (do_mono_metadata_parse_generic_inst): Likewise.
14140         (mono_metadata_parse_type_full): New public method.  This is the actual
14141         mono_metadata_parse_type() implementation - with an additional
14142         `MonoGenericContainer *' argument.
14143         (mono_metadata_parse_array_full): Likewise.
14144         (mono_metadata_parse_signature_full): Likewise.
14145         (mono_metadata_parse_method_signature_full): Likewise.
14146         (mono_metadata_parse_mh_full): Likewise.
14147         (mono_type_create_from_typespec): Likewise.
14148         (mono_metadata_interfaces_from_typedef_full): New public method;
14149         this is similar to the other _full() methods, but we take a
14150         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
14151         (mono_metadata_parse_generic_param): Take an additional
14152         `MonoGenericContainer *' argument and lookup the MonoGenericParam
14153         from that container.
14154         (mono_metadata_generic_param_equal): New static method to compare
14155         two type parameters.
14156         (_mono_metadata_type_equal): New static method; takes an
14157         additional `gboolean signature_only' argument - if true, we don't
14158         compare the owners of generic parameters.
14159         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
14160         with a TRUE argument - do a signature-only comparision.
14161
14162         * loader.c: Use the new _full() methods and pass the
14163         MonoGenericContainer to them.
14164
14165         * object-internals.h (MonoReflectionTypeBuilder): Added
14166         `MonoGenericContainer *generic_container' field.
14167         (MonoReflectionMethodBuilder): Likewise.
14168
14169 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
14170
14171         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
14172         case initial images of dynamic assemblies.
14173
14174         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
14175
14176         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
14177
14178         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
14179         length of event->other array.
14180         (typebuilder_setup_events): Ditto.
14181
14182         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
14183         'assembly_by_name' and add an 'assemblies' list.
14184
14185         * assembly.h assembly.c: Add a new search hook for determining whenever
14186         an assembly is already loaded. Use this instead of searching in the
14187         loaded_assemblies list.
14188
14189         * domain.c appdomain.c: Implement the new search hook so loaded 
14190         assemblies are now scoped by appdomain. Fixes #67727.
14191
14192 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
14193
14194         * threads.c (mono_thread_attach): Initialize synch_lock field so
14195         mono_thread_detach works again.
14196
14197         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
14198         'lib' too. Fixes #63130.
14199
14200 2004-10-06  Jackson Harper  <jackson@ximian.com>
14201
14202         * culture-info-tables.h: regenerated.
14203
14204 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
14205
14206         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
14207         implemented by other interfaces in the result. Fixes #65764.
14208         
14209         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
14210         Handle unloadable modules without crashing.
14211
14212         * image.c (load_modules): Revert the previous patch since modules must
14213         have a fixed index inside the array.
14214         
14215         * image.c (load_modules): Don't include native modules in the modules
14216         array.
14217
14218 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
14219
14220         * reflection.h: Add param_defaults field.
14221
14222         * reflection.c: Add support for parameter defaults in dynamic methods.
14223         Fixes #64595.
14224
14225         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
14226         an empty string when a type has no namespace. Fixes #64230.
14227
14228 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
14229
14230         * tabledefs.h: Added "internal" security actions to support non-CAS
14231         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
14232         Note: they do not seems to be used anymore in 2.0 (new metadata format)
14233
14234 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
14235
14236         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
14237         constructor of abstract class. Fixes #61689.
14238
14239 2004-10-04  Martin Baulig  <martin@ximian.com>
14240
14241         * class-internals.h (MonoGenericContainer): New type.
14242         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
14243         `MonoGenericContainer *generic_container'.
14244         (MonoClass): Replaced `gen_params' and `num_gen_params' with
14245         `MonoGenericContainer *generic_container'.
14246
14247         * metadata.c (mono_metadata_load_generic_params): Return a
14248         `MonoGenericContainer *' instead of a `MonoGenericParam *';
14249         removed the `num' argument.
14250
14251 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
14252
14253         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
14254         for dynamic images.
14255
14256         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
14257         machine fields.
14258
14259         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
14260
14261         * reflection.c: Save pe_kind and machine values into the generated
14262         image file.
14263
14264         * appdomain.c: Bump corlib version number.
14265
14266         * object-internals.h: Reorganize layout of LocalBuilder.
14267
14268         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
14269         New helper function.
14270
14271         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
14272         created MonoType for dynamic types. Fixes #66180.
14273
14274 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
14275
14276         * threadpool.c: the ares hashtable needs a critical section around it.
14277         this prevents some nasty segfaults
14278
14279 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
14280
14281         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
14282         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
14283         bug 67324).
14284         
14285 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
14286
14287         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
14288         
14289 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
14290
14291         * image.c: Always canonicalize image file names, to avoid loading
14292         the same assembly twice when referenced using a relative path.
14293
14294 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
14295
14296         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
14297
14298         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
14299
14300         * marshal.c: Fix warnings.
14301
14302 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
14303
14304         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
14305         attempting to marshal the delegate_trampoline as the method_addr.
14306         This patch has a static hashtable of marshalled delegates so that 
14307         we can map delegate_trampoline addresses back to delegates.  This
14308         allows a delegate passed to managed code to be passed back into native
14309         code.  Fixes #67039
14310
14311 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
14312
14313         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
14314
14315         * reflection.c (method_encode_code): Align method headers properly.
14316         Fixes #66025.
14317
14318 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
14319
14320         * marshal.c: In the runtime invoke wrapper, reset the abort
14321         exception if it is cached. This avoids the automatic rethrowal of 
14322         the exception after the catch of the wrapper. Also check for pending
14323         interruptions before calling the managed method. This is done using
14324         the new method emit_thread_force_interrupt_checkpoint, since the
14325         normal checkpoint method is ignored when running the invoke wrapper.
14326         * object.c: If the abort exception is rethrown, set the abort_exc
14327         field of the thread, so it will be rethrown aftere every catch.
14328         * threadpool.c: Only run an interruption checkpoint if what has been
14329         requested is a stop of the thread (aborts will be ignored).
14330         * threads.c: By default, a thread will now never be interrumped while
14331         running the runtime invoke wrapper (this ensures that runtime_invoke
14332         will always return to the caller if an exception pointer is provided).
14333         There is a new special method mono_thread_force_interruption_checkpoint()
14334         to force an interruption checkpoint even if running a protected
14335         wrapper, which is used by the same runtime invoke wrapper to do a check
14336         at a safe point.
14337
14338 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
14339
14340         * object.c, object-internals.h: Implemented mono_release_type_locks,
14341         which releases the cctor locks held by a thread.
14342         * threads.c, threads.h: In thread_cleanup, release cctor locks held
14343         by a thread. Added mono_thread_exit() method to be used to safely stop
14344         a thread.
14345
14346 2004-09-28  Raja R Harinath  <rharinath@novell.com>
14347
14348         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
14349         Move null check before dereference.  Avoid indexing beyond the end
14350         of the 'modules' array.
14351
14352 2004-09-28  Raja R Harinath  <rharinath@novell.com>
14353
14354         * metadata-internals.h (MonoImage): Add module_count field.
14355         * image.c (load_modules): Set image->module_count.
14356         (mono_image_load_file_for_image): Use image->module_count.
14357         * reflection.c (mono_image_load_module): Append to image->modules array 
14358         of dynamic assembly.
14359         (mono_module_get_object): Fix loop to actually increment index.
14360         Use image->module_count.
14361         * assembly.c (mono_assembly_load_references): Use image->module_count.
14362         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
14363         Likewise.
14364
14365 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
14366
14367         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
14368         Avoid assert on generic types.
14369
14370 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
14371
14372         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
14373
14374         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
14375
14376         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
14377         function to convert a MarshalSpec structure to its managed counterpart.
14378
14379         * reflection.c: Fix warnings.
14380         
14381         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
14382         field.
14383
14384         * icall.c (mono_create_icall_signature): Fix build.
14385
14386 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
14387
14388         * icall.c: Add MakePointType icall.
14389
14390         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
14391         warnings.
14392
14393 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14394
14395         * threadpool.c: reuse allocated slots in the queue.
14396
14397 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
14398
14399         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
14400
14401         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
14402
14403         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
14404         previous change.
14405
14406         * tabledefs.h: Add constants for pinvoke attributes BestFit and
14407         ThrowOnUnmappableChar.
14408
14409         * icall.c (ves_icall_Type_GetPacking): New icall.
14410
14411 2004-09-24  Martin Baulig  <martin@ximian.com>
14412
14413         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
14414
14415 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14416
14417         * appdomain.c:
14418         (mono_domain_set): allow setting a domain that is being unloaded.
14419         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
14420         being unloaded.
14421
14422 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
14423
14424         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
14425         the GetCustomAttributes icall.
14426
14427 2004-09-23  Martin Baulig  <martin@ximian.com>
14428
14429         * object-internals.h (MonoReflectionGenericParam): Replaced
14430         'has_ctor_constraint', `has_reference_type' and `has_value_type'
14431         with `guint32 attrs'.
14432
14433 2004-09-23  Martin Baulig  <martin@ximian.com>
14434
14435         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
14436
14437 2004-09-23  Martin Baulig  <martin@ximian.com>
14438
14439         * object-internals.h (GenericParameterAttributes): New enum.
14440
14441 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
14442
14443         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
14444         
14445         * class.c (init_events): Fill out event->other field.
14446
14447         * class.c: Fix warnings.
14448
14449         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
14450
14451 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
14452
14453         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
14454         walk which doesn't supply the IL offset.
14455
14456 2004-09-22  Martin Baulig  <martin@ximian.com>
14457
14458         * reflection.c (mono_reflection_setup_internal_class): If we're
14459         System.ValueType, System.Object or System.Enum, set
14460         `klass->instance_size' and create the vtable.
14461         (mono_reflection_create_internal_class): If we're an enum type,
14462         get the base class from our current corlib.
14463
14464 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
14465
14466         * reflection.h (MonoResolveTokenError): New type.
14467
14468         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
14469         icall.
14470
14471         * icall.c: Add an 'error' argument to the ResolveToken icalls.
14472
14473 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
14474
14475         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
14476         Support also calling constructors, but only for already allocated objects.
14477
14478 2004-09-17  Geoff Norton <gnorton@customerdna.com>
14479
14480         * reflection.c (type_get_qualified_name): If the klass is null
14481         return the typename to avoid a NullRefEx.
14482         (encode_cattr_value): Get the qualified name of the boxed type,
14483         not the underlying enumtype.  Fixes #62984.
14484
14485 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
14486
14487         * marshal.c: Fix problems with previous checkin.
14488
14489 2004-09-21    <vargaz@freemail.hu>
14490
14491         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
14492         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
14493
14494         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
14495
14496 2004-09-21  Geoff Norton <gnorton@customerdna.com>
14497
14498         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
14499         should only return a type for pointers, arrays, and passbyref types.
14500         Fixes bug #63841.
14501
14502 2004-09-21  Martin Baulig  <martin@ximian.com>
14503
14504         * domain.c (mono_debugger_check_runtime_version): New public
14505         function.
14506
14507         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
14508
14509 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
14510
14511         * reflection.c: Added missing sort to the declarative security 
14512         attributes table. MS implementation stops seeing the attributes if the
14513         token number regress in the table (as shown by ildasm and permview).
14514
14515 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
14516
14517         * object-internals.h (MonoReflectionModule): Add 'token' field.
14518         
14519         * reflection.c (mono_reflection_get_token): Add support for Module
14520         and Assembly.
14521         (mono_module_get_object): Set 'token' field.
14522         (mono_module_file_get_object): Set 'token' field.
14523
14524         * icall.c: Add new Assembly and Module icalls.
14525
14526         * appdomain.c: Bump corlib version.
14527
14528 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
14529
14530         * loader.h loader.c class.h class.c: Add helper functions for obtaining
14531         tokens of metadata objects.
14532
14533         * reflection.h reflection.c (mono_reflection_get_token): New function
14534         to obtain the token of a metadata object.
14535
14536         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
14537
14538 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
14539
14540         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
14541         
14542         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
14543
14544 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
14545
14546         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
14547         * object-internals.h: Added 3 MonoArray* members to MonoReflection
14548         AssemblyBuilder to access the permissions set in the class lib.
14549         * reflection.c: Added security attributes encoding step in 
14550         mono_image_build_metadata.
14551         * tabledefs.h: Added new security actions defined in 2.0:
14552         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
14553
14554 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
14555
14556         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
14557         macro parameter.
14558
14559 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
14560  
14561         * locales.c: nullify the ICU_collator member of CompareInfo when it is
14562           finalized. There where random SIGSEVs at program termination, when
14563           an object being finalized was trying to do a string comparison and
14564           the current culture was already finalized.
14565  
14566 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14567
14568         * threads.c: call thread_cleanup before finishing the thread if we get
14569         there.
14570
14571 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
14572
14573         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
14574         assemblies from the parent. Fixes #65665.
14575
14576 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
14577
14578         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
14579         modifiers.
14580
14581 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
14582
14583         * reflection.h: add prototype for mono_get_dbnull_object
14584         * reflection.c: add prototypes for get_default_param_value_blobs 
14585         and mono_get_object_from_blob for fussier compilers
14586
14587 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
14588  
14589         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
14590         false deadlock checks in class initialization.
14591  
14592 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
14593
14594         * image.c (mono_image_addref): Fix comment.
14595
14596         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
14597         possible.
14598
14599 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
14600
14601         * reflection.c (mono_param_get_objects): Modified to return
14602         ParameterInfo.DefaultValue object.
14603
14604         (get_default_param_value_blobs):
14605         (mono_get_object_from_blob):
14606         (mono_get_dbnull_object): New helper routines. 
14607
14608         * object.c (mono_get_constant_value_from_blob): New helper routine
14609         carved out from get_default_field_value ()
14610
14611         * object-internals.h (mono_get_constant_value_from_blob): Added
14612         function declaration.
14613
14614 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
14615
14616         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
14617         referenced assemblies. Fixes #62135.
14618
14619         * exception.h exception.c (mono_get_exception_file_not_found2): New
14620         helper function.
14621
14622 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
14623
14624         * class.h class.c: Add mono_type_get_underlying_type ().
14625
14626 2004-09-09  Geoff Norton <gnorton@customerndna.com>
14627
14628         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
14629         Fix GetTypes() to support dynamically created assemblies.
14630
14631 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
14632
14633         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
14634         
14635         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
14636         previous patch.
14637
14638         * reflection.h reflection.c loader.c: Allow dynamic construction of
14639         pinvoke methods. Fixes #65571.
14640         
14641         * reflection.c (mono_reflection_get_type): Revert previous change since
14642         it causes regressions.
14643
14644 2004-09-08  Martin Baulig  <martin@ximian.com>
14645
14646         * class.c (class_compute_field_layout): Don't call
14647         mono_class_layout_fields() for open generic instances.
14648
14649 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
14650         * threads.c appdomain.c: fix typo in GC macro
14651
14652 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14653
14654         * threads.c: don't call mono_thread_detach() in start_wrapper(),
14655         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
14656
14657 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
14658
14659         * image.c (mono_image_close): Applied patch from 
14660         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
14661         assembly is loaded multiple times from data.
14662         
14663         * image.c (mono_image_open): Fix warning.
14664
14665 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
14666
14667         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
14668         once. Fixes #58334.
14669         
14670         * reflection.c (mono_reflection_create_runtime_class): Initialize
14671         klass->nested_classes. Fixes #61224.
14672
14673 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
14674
14675         * threads.c: sched_yield() on exit, to allow threads to quit.
14676
14677 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
14678
14679         * object.c (mono_unhandled_exception): Remove leftover debug code.
14680
14681 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
14682
14683         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
14684
14685 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
14686
14687         * marshal.c (emit_marshal_array): Really null terminate string arrays.
14688         
14689         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
14690
14691 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
14692
14693         * marshal.c (emit_marshal_array): Null terminate string arrays.
14694         
14695         * marshal.c (raise_auto_layout_exception): Fix warning.
14696
14697         * reflection.c (mono_param_get_objects): Initialize the default value
14698         with DBNull.Value, not null. Fixes #62123.
14699
14700 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
14701
14702         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
14703         throw an exception with a cute explanation.
14704
14705 2004-09-06  Dick Porter  <dick@ximian.com>
14706
14707         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
14708         Close the new process's thread handle, as we don't use it.  The
14709         handle stays around forever otherwise.
14710
14711 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
14712
14713         * object.c (arith_overflow): Fix warning.
14714
14715         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
14716         calling conventions in method refs. Fixes #65352.
14717
14718         * reflection.c: Fix warnings.
14719
14720 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
14721
14722         * icall.c: Add a new icall for Array.Clear
14723
14724 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
14725
14726         * object.c: When allocating an array, we have to throw
14727         an overflow exception if any of the lengths are < 0.
14728
14729 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
14730
14731         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
14732         properly. Also move implementation of string array marshalling to 
14733         managed code. Fixes #42316.
14734
14735 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14736
14737         * assembly.c: provide more information when loading an assembly fails.
14738
14739 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14740
14741         * filewatcher.c: don't expect the development fam package to be
14742         installed.
14743
14744 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
14745
14746         * marshal.c: Make a copy of the signature cookie since it will be
14747         freed by the caller.
14748         
14749         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
14750
14751         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
14752
14753         * metadata.c (mono_metadata_free_marshal_spec): New function to free
14754         marshal specs.
14755
14756         * marshal.c: More refactoring.
14757         
14758         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
14759         smaller functions.
14760
14761 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
14762
14763         * object.c: In mono_message_invoke, fill the output parameter array after
14764           calling the managed method (it was done before the call). This fixes
14765           bug #59299.
14766
14767 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
14768
14769         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
14770         as well.
14771
14772 2004-09-02  Martin Baulig  <martin@ximian.com>
14773
14774         * class.c (mono_class_instance_size): Don't allow generic type
14775         definitions or open generic instances.
14776         (mono_class_array_element_size): If we're a value type, call
14777         mono_class_instance_size() on the original class.
14778
14779         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
14780         handle generic instances.
14781
14782         * mono-debug-debugger.c (write_type): Handle generic instances
14783         like classes.
14784
14785 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
14786
14787         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
14788         the allocation request fails. Fixes #65089.
14789
14790         * object.c (mono_runtime_free_method): Do not call mono_free_method.
14791         
14792         * object.c (mono_runtime_free_method): New function to free a dynamic
14793         method.
14794
14795         * marshal.c (mono_delegate_free_ftnptr): New function to free the
14796         delegate trampoline.
14797
14798         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
14799         with hasthis as dynamic,
14800
14801         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
14802
14803         * domain.c (mono_jit_info_table_remove): New function to remove an
14804         entry from the jit info table.
14805
14806         * class-internals.h (MonoMethod): Add 'dynamic' field.
14807
14808         * loader.c: Fix warnings.
14809
14810 2004-09-01  Martin Baulig  <martin@ximian.com>
14811
14812         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
14813         instead of mono_debugger_lock() because the latter one is a no-op
14814         unless running in the debugger.
14815
14816 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
14817
14818         * class.c (class_compute_field_layout): Classes with auto-layout or
14819         reference fields are not blittable.
14820         
14821 2004-09-01  Dick Porter  <dick@ximian.com>
14822
14823         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
14824         mono_image_get_filename() to get the assembly location.
14825
14826         * icall.c:
14827         * metadata.h: Fix compile warnings
14828
14829 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
14830
14831         * class.c (class_compute_field_layout): System.Object is blittable.
14832
14833         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
14834         as in/out. Fixes #59909.
14835
14836 2004-09-01  Martin Baulig  <martin@ximian.com>
14837
14838         * metadata.h (MONO_TYPE_ISREFERENCE): Call
14839         mono_metadata_generic_inst_is_valuetype() if we're a generic
14840         instance to check whether our underlying type is a reference type.
14841
14842 2004-09-01  Martin Baulig  <martin@ximian.com>
14843
14844         * metadata.c (mono_type_size): If we're a generic instance, call
14845         mono_class_value_size() for value types.
14846
14847 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
14848
14849         * marshal.c: Implement more custom marshalling functionality. Fixes
14850         #64915.
14851
14852 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
14853
14854         * mono-debug.c, debug-mono-symfile.c: add some locking love.
14855
14856 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
14857
14858         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
14859
14860         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
14861
14862         * icall.c: Fix some warnings.
14863
14864         * threads.c (abort_appdomain_thread): Fix unref errors.
14865         (mono_thread_current): Fix THREAD_DEBUG define.
14866
14867 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
14868
14869         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
14870
14871         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
14872
14873 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
14874
14875         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
14876         string arrays.
14877
14878 2004-08-28  Martin Baulig  <martin@ximian.com>
14879
14880         * metadata.c
14881         (mono_metadata_generic_inst_is_valuetype): New public function.
14882
14883         * metadata.h (MONO_TYPE_ISSTRUCT): Call
14884         mono_metadata_generic_inst_is_valuetype() if we're a generic
14885         instance to check whether our underlying type is a valuetype.
14886
14887 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
14888
14889         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
14890         #63768.
14891
14892 2004-08-25  Martin Baulig  <martin@ximian.com>
14893
14894         * loader.c (mono_get_method_from_token): Abstract methods can also
14895         be generic and thus have type parameters.
14896
14897         * metadata-internals.h
14898         (MonoDynamicImage): Added `GPtrArray *gen_params'.
14899
14900         * reflection.c (mono_image_get_generic_param_info): Don't create a
14901         metadata row, just add an entry to the `gen_params' array.
14902         (build_compressed_metadata): Sort the `gen_params' array and then
14903         actually create the metadata.
14904
14905 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14906
14907         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
14908
14909 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
14910
14911         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
14912
14913 2004-08-24  Martin Baulig  <martin@ximian.com>
14914
14915         * class.cs (mono_class_is_subclass_of): Like an interface, a
14916         generic instance also derives from System.Object.
14917
14918 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
14919
14920         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
14921         custom modifiers to be in any order. Fixes #61990.
14922
14923 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
14924
14925         * object.c: Register mono_object_new_fast icall.
14926         
14927         * object.c (mono_class_get_allocation_ftn): Return to calling
14928         mono_object_new_fast, since it seems faster to compute the object 
14929         size in unmanaged code than passing it as a parameter.
14930
14931         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
14932
14933         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
14934         this function with Boehm as the oom handler, so we don't have to check
14935         the result of GC_malloc.
14936
14937         * object.c: Remove checks for oom.
14938
14939         * object.h object.c (mono_class_get_allocation_ftn): New function to
14940         return the icall which can be used to allocate an instance of a given
14941         class. 
14942
14943         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
14944
14945         * class-internals.h: Add 'enabled' field.
14946
14947 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
14948
14949         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
14950
14951 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
14952         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
14953         value 0x0010.
14954
14955 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
14956
14957         * appdomain.c: use the Tls function for appdomain too,
14958         at Zoltan's request. Actually return in mono_context_get
14959
14960         * appdomain.c, profiler.c, threads.c: use __thread
14961
14962 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
14963
14964         * appdomain.c threads.c: Call GC_CreateThread on windows.
14965
14966         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
14967         multiple libraries since this don't work on windows.
14968
14969 2004-08-18  Martin Baulig  <martin@ximian.com>
14970
14971         * class-internals.h
14972         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
14973         MonoMethodHeader.
14974
14975         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
14976         MonoMethodNormal since we also need it for abstract and interface
14977         methods.
14978
14979         * reflection.c
14980         (build_compressed_metadata): Sort the GenericParam table.
14981         (mono_image_create_token): Added `gboolean create_methodspec'
14982         argument; this is false when generating a MethodImpl token.
14983         (reflection_methodbuilder_to_mono_method): Abstract and interface
14984         methods may also have generic parameters.
14985
14986 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
14987
14988         * appdomain.c: thread local alloc
14989
14990 2004-08-17  Martin Baulig  <martin@ximian.com>
14991
14992         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
14993
14994         * icall.c
14995         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
14996         argument.
14997
14998         * class.c (mono_type_get_full_name): New public function.
14999         (mono_type_get_name): Don't include the type arguments.
15000
15001 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
15002
15003         * Makefile.am: Build static versions of libmetadata and libmonoruntime
15004         for inclusion into the mono executable.
15005
15006 2004-08-16  Martin Baulig  <martin@ximian.com>
15007
15008         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
15009         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
15010
15011 2004-08-14  Martin Baulig  <martin@ximian.com>
15012
15013         * class.c (dup_type): Also copy the `byref' field.
15014
15015 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
15016
15017         * reflection.c (create_dynamic_mono_image): Revert the last change 
15018         since it breaks bootstrap.
15019
15020 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
15021
15022         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
15023
15024         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
15025         not free them with g_free.
15026
15027 2004-08-11  Martin Baulig  <martin@ximian.com>
15028
15029         * reflection.c (mono_reflection_setup_internal_class): Also call
15030         mono_class_setup_mono_type() if we already have a `tb->type.type'.
15031
15032 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
15033
15034         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
15035         called during default (first) AppDomain creation. Keep track of
15036         Evidence when loading assemblies.
15037
15038 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
15039
15040         * opcodes.c, opcodes.h: reduce runtime relocations.
15041
15042 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
15043
15044         * culture-info.h, locales.c: fixes and chages to sue the new
15045         optimized format of the locale data.
15046         * culture-info-tables.h: regenerated.
15047
15048 2004-08-06  Geoff Norton <gnorton@customerdna.com>
15049         
15050         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
15051
15052 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
15053
15054         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
15055         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
15056         * domain-internals.h: icall declaration.
15057         * icall.c: icall registration.
15058         * object-internals.h: New fields in MonoAssembly for CAS.
15059
15060 2004-08-05  Duncan Mak  <duncan@ximian.com>
15061
15062         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
15063         CEE_LDELEM_ANY.
15064
15065 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
15066
15067         * reflection.c: fix to deal with object[] arrays in custom ctors
15068         (bug #62550).
15069
15070 2004-08-05  Martin Baulig  <martin@ximian.com>
15071
15072         * class.c (mono_class_array_element_size): Added support for
15073         generic instances and correctly handle "recursive" types.
15074
15075 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
15076
15077         * assembly.c: Fix warnings.
15078
15079 2004-08-04  Martin Baulig  <martin@ximian.com>
15080
15081         * class.c
15082         (mono_type_get_name_recurse): Added `gboolean include_arity'
15083         argument specifying whether or not we should include the generic
15084         arity in the type name.
15085         (_mono_type_get_name): New static function.
15086         (mono_class_setup_vtable): If we're a generic instance, don't
15087         include the generic arity in the names of explicit method
15088         implementations.        
15089
15090 2004-08-03  Martin Baulig  <martin@ximian.com>
15091
15092         * class.c (mono_type_get_name_recurse): Enclose the generic type
15093         arguments in `<', '>'.
15094
15095 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
15096
15097         * gc.c: make GC warning messages use the trace API, they are just
15098         noise to most of the users.
15099
15100 2004-08-03  Martin Baulig  <martin@ximian.com>
15101
15102         * debug-mono-symfile.c (read_string): Correctly read the string.
15103
15104 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
15105
15106         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
15107         
15108         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
15109         icalls.
15110         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
15111
15112 2004-07-30  Martin Baulig  <martin@ximian.com>
15113
15114         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
15115         Reflect latest symbol writer changes.   
15116
15117 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
15118
15119         * object.c: always create an object if null is passed
15120         to Invoke() where a valuetype is expected.
15121
15122 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
15123
15124         * marshal.c (mono_marshal_init): make managed
15125         signatures match native ones better for 64bits.
15126
15127 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15128
15129         * appdomain.c: hack to build correctly the private bin path on windows.
15130         Fixes bug #61991.
15131
15132 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
15133
15134         * assembly.c: Load mscorlib from the correct framework directory
15135           (mono/<version>/mscorlib.dll).
15136         * appdomain.h: Added prototypes for new functions.
15137         * internals.h: Added some prototypes.
15138         * domain.c: When initializing the runtime, get from the executable and
15139           the configuration files the runtime version that the app supports.
15140           Added support methods for reading app.exe.config. Added list of versions
15141           supported by the JIT. Added two new methods: mono_init_from_assembly,
15142           which initializes the runtime and determines the required version from
15143           the provided exe file, and mono_init_version, which initializes
15144           the runtime using the provided version.
15145         * icall.c: Get machine.config from version-specific directory.
15146         * reflection.c: When generating an image, embed the version number
15147           of the current runtime.
15148
15149 2004-07-28  Dick Porter  <dick@ximian.com>
15150
15151         * socket-io.c
15152         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
15153         returned sockaddr size before creating the remote address object.
15154         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
15155         61608.
15156
15157 2004-07-28  Dick Porter  <dick@ximian.com>
15158
15159         * locales.c (string_invariant_compare_char): Fix invariant char
15160         compares between upper and lower cases.  Fixes bug 61458.
15161
15162 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
15163         
15164         * marshal.c: actually cache stelem.ref wrappers.
15165         
15166 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
15167
15168         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
15169         sections and remove the mono_cli_rva_map () function.
15170
15171 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
15172
15173         * debug-mono-symfile.c: fix one more endianess issue, from a patch
15174         by Geoff Norton (<gnorton@customerdna.com>).
15175
15176 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
15177
15178         * class.c: fix class loads for pointer types (typeof(int) !=
15179         typeof(int*)).
15180
15181 2004-07-27  Martin Baulig  <martin@ximian.com>
15182
15183         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
15184         reading the debugging information from an external ".mdb" file.
15185
15186 2004-07-24  Martin Baulig  <martin@ximian.com>
15187
15188         * reflection.c (mono_image_get_type_info): Only write a class
15189         layout entry if we actually have a size or a packing size.
15190
15191 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
15192
15193         * reflection.c (type_get_fully_qualified_name): 
15194         insert cast to get type checking of ?: with non-gcc compilers
15195
15196 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
15197
15198         * rand.c: use g_getenv for both lookups of
15199         MONO_EGD_SOCKET
15200
15201 2004-07-17  Martin Baulig  <martin@ximian.com>
15202
15203         * reflection.c (mono_reflection_bind_generic_method_parameters):
15204         Set `gmethod->reflection_info'.
15205
15206 2004-07-17  Martin Baulig  <martin@ximian.com>
15207
15208         * class.c (mono_class_create_from_typedef): Insert the newly
15209         created class into the hash table before computing the interfaces
15210         since we could be called recursively.
15211
15212 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
15213
15214         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
15215         function to implement stelem.ref in managed code
15216         * class-internals.h, debug-helpers.c: a new wrapper type
15217         for the above.
15218
15219 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
15220
15221         * gc.c: allow GC handles to work even when no GC is compiled in.
15222         Fix part of bug #61134 (GetAddrOfPinnedObject).
15223
15224 2004-07-13  Peter Williams  <peter@newton.cx>
15225  
15226         * process.c (complete_path): Make sure we don't attempt to execute
15227         directories.
15228  
15229 2004-07-12  Geoff Norton <gnorton@customerdna.com>
15230
15231         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
15232           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
15233           and will add/subtract the hour if needed
15234
15235 2004-07-12  Martin Baulig  <martin@ximian.com>
15236
15237         * reflection.c (mono_field_get_object): If we have
15238         `field->generic_info', take the attributes from
15239         `field->generic_info->generic_type'.    
15240
15241 2004-07-12  Martin Baulig  <martin@ximian.com>
15242
15243         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
15244         This function must be called before initializing the runtime.
15245         (mono_debug_init_1): New function; call this after initializing
15246         the runtime, but before loading the assembly.  It tells the
15247         debugger to load corlib and the builtin types.
15248
15249         * mono-debug-debugger.c: Did some larger changes in the debugging
15250         code; support recursive class declarations, make sure we actually
15251         add all classes.
15252
15253 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15254
15255         * debug-helpers.c: undo my previous patch and fixed the real issue in
15256         ../mini/exceptions-x86.c
15257
15258 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15259
15260         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
15261         when no HOME env. variable was set and a NullRef was thrown in a .cctor
15262         called from other .cctors.
15263
15264 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
15265
15266         * loader.c: Removed the mono_loader_wine_init hack now that we are
15267         doing a managed version of Windows.Forms.
15268
15269 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
15270
15271         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
15272         threadpool.c, threads.c: remove static data from rootset.
15273
15274 2004-07-09  Dick Porter  <dick@ximian.com>
15275
15276         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
15277         Don't do any more processing if the matched length was 0.  It was
15278         increasing the size of the string before.  Fixes bug 61167.
15279
15280 2004-07-09  Dick Porter  <dick@ximian.com>
15281
15282         * socket-io.h:
15283         * socket-io.c
15284         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
15285         Add support for SO_PEERCRED if its available.
15286
15287 2004-07-09  Peter Bartok <pbartok@novell.com>
15288         * loader.c: winelib.exe.so error message is now only displayed if
15289         MONO_DEBUG is set. To help us avoid questions when people are trying
15290         out the new Managed.Windows.Forms.
15291
15292 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
15293
15294         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
15295         for isinst and castclass wrappers.
15296
15297         * class-internals.h icall.c: Move registration and lookup of JIT icalls
15298         to libmetadata from the JIT, so they could be used by the marshalling
15299         code and the interpreter.
15300
15301         * marshal.c: Register marshalling related JIT icalls here instead of
15302         in mini.c. Use CEE_MONO_ICALL instead of the family of 
15303         CEE_MONO_PROC<x> opcodes to call marshalling functions.
15304
15305         * metadata.h: Remove unneeded marshalling conversions.
15306
15307         * opcodes.c: Update for new opcodes.
15308         
15309 2004-07-08  Martin Baulig  <martin@ximian.com>
15310
15311         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
15312         (mono_debug_get_domain_data): Make this function static.
15313
15314 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
15315
15316         * gc.c, object.h: add nice GC handle API for embedders.
15317
15318 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
15319
15320         * reflection.c: more changes for the new api
15321
15322         * object.c: When we reflect on a field w/ a constant value, it
15323         will not have a memory location, so we must access metadata. Also,
15324         allow easier reading of strings so that we can read them from
15325         the constant data.
15326
15327         * class.c (mono_class_layout_fields): no need for literal fields here.
15328
15329         * class-internals.h: api changes for const fields
15330
15331         * icall.c (ves_icall_get_enum_info): use new apis for const fields
15332
15333 2004-07-06  Martin Baulig  <martin@ximian.com>
15334
15335         * mono-debug.h: Increment version number to 44.
15336
15337         * mono-debug.c (mono_debug_add_wrapper): The second argument is
15338         now a gpointer, rewrote this whole method.
15339
15340         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
15341         function.  Add information about the wrapper in a new "misc table".
15342
15343         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
15344         for the new misc table.
15345
15346 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
15347
15348         * metadata-internals.h image.c: Add a cache for helper signatures.
15349
15350         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
15351
15352 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
15353
15354         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
15355         delegates from a delegate. Fixes #61033.
15356         
15357         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
15358         marshalling of stringbuilder arrays. Fixes #59900.
15359
15360 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
15361
15362         * icall.c: Add EnumBuilder:setup_enum_type icall.
15363
15364 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
15365
15366         * icall.c: Added a new icall for the property version of
15367         OffsetOfStringData.
15368
15369 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
15370
15371         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
15372         it has a constant size across platforms.
15373
15374         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
15375         stack trace.
15376
15377 2004-06-29  Martin Baulig  <martin@ximian.com>
15378
15379         * mono-debug.c (mono_debug_add_method): Protect the whole function
15380         in mono_debugger_lock(), not just parts of it.
15381
15382 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
15383
15384         * reflection.c: make sure padding bytes in heaps are zeroed.
15385
15386 2004-06-24  David Waite  <mass@akuma.org>
15387
15388         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
15389         image.c, loader.c, locales.c, marshal.c, metadata.c,
15390         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
15391         string-icalls.c, threads.c: change to C90-style comments from C99 /
15392         C++ -style
15393
15394 2004-06-24  Dick Porter  <dick@ximian.com>
15395
15396         * threads.c
15397         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
15398         return createdNew.  Fixes bug 60412.
15399
15400         * threads-types.h: 
15401         * icall.c: Add createdNew parameter to CreateMutex icall
15402
15403 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
15404
15405         * reflection.c, object-internals.h: save default value in params.
15406
15407 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15408
15409         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
15410         no need to build a new path combining that with the application base.
15411         Fixes bug #60442.
15412
15413 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
15414
15415         * reflection.c: fixed minor standard compliance issues.
15416
15417 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
15418
15419         * reflection.c: fixed issue with encoding some custom attributes
15420         (arrays in properties and fields, bug #60411).
15421
15422 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15423
15424         * reflection.c: fix start address when copying the public key token.
15425
15426 2004-06-23  Martin Baulig  <martin@ximian.com>
15427
15428         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
15429         the `exc' object in a static object to put it into the GC's root set.
15430
15431 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
15432
15433         * reflection.c: make mono_reflection_setup_internal_class ()
15434         callable a second time to setup a new parent class.
15435
15436 2004-06-23  Dick Porter  <dick@ximian.com>
15437
15438         * threads.c: Check for WAIT_IO_COMPLETION return values.
15439
15440 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
15441
15442         * appdomain.c: Removed the g_free on the public key token. Now copy 
15443         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
15444         * assembly.c: Added public key token string value when loading 
15445         assemblies. Fix bug #60439.
15446         * icall.c: Added missing informations (like public key) in 
15447         GetReferencedAssemblies. Fix #60519.
15448         * image.h: Changed definition for public key token from const char*
15449         public_tok_value to guchar public_key_token [17];
15450         * reflection.c: Updated for changes to public key token.
15451
15452 2004-06-22  Lluis Sanchez Gual
15453
15454         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
15455         for the field in base classes.
15456
15457 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
15458
15459         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
15460         mark headers as not supported, they are installed only for use by the
15461         debugger.
15462
15463 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
15464
15465         * *.c, *.h: avoid namespace pollution in public headers.
15466
15467 2004-06-21  Martin Baulig  <martin@ximian.com>
15468
15469         * exception.c (mono_get_exception_security): It's in
15470         "System.Security", not in "System".
15471
15472         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
15473         the exception classes.
15474
15475 2004-06-21  Martin Baulig  <martin@ximian.com>
15476
15477         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
15478         Protect the exception object from being finalized.
15479
15480 2004-06-21  Martin Baulig  <martin@ximian.com>
15481
15482         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
15483         public function.
15484
15485 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
15486
15487         * reflection.c: Load the assembly in mono_reflection_type_from_name,
15488         if it was not loaded before. Fix parts of #60439.
15489
15490 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
15491
15492         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
15493         code that was broken since Ben's change: wrappers are now
15494         dependent on the method signature only again.
15495
15496 2004-06-21  Martin Baulig  <martin@ximian.com>
15497
15498         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
15499         added interface support.
15500
15501 2004-06-21  Martin Baulig  <martin@ximian.com>
15502
15503         * class.c (mono_vtable_get_static_field_data): New public method.
15504
15505 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
15506
15507         * filewatcher.c : Windows build fix to be compliant with API changes.
15508
15509 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
15510
15511         * class.h, class.c: more accessors.
15512         * metadata.h, metadata.c: prepare for hiding MonoType and
15513         MonoMethodSignature: people should use the accessors from now on
15514         outside of the tree.
15515
15516 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
15517
15518         * *.c, *.h: more API cleanups.
15519
15520 2004-06-18  Jackson Harper  <jackson@ximian.com>
15521
15522         * assembly.c: Trace loading assemblies.
15523         * loader.c: Trace loading native libraries.
15524         * mono-config.c: Trace loading config files.
15525         
15526 2004-06-18  Dick Porter  <dick@ximian.com>
15527
15528         * locales.c: Tell ICU the lengths of strings, it can cope with
15529         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
15530
15531 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
15532
15533         * image.c: swapped name/filename;
15534
15535 2004-06-18  Martin Baulig  <martin@ximian.com>
15536
15537         * mono-debug-debugger.c (write_class): Write the parent class at
15538         the end of the header.
15539
15540 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
15541
15542         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
15543
15544 2004-06-17  Raja R Harinath  <rharinath@novell.com>
15545
15546         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
15547         (bundle_obj): New conditional define.
15548         (BUILT_SOURCES): Remove.
15549         ($(bundle_srcs)): Make parallel-make safe.
15550         (libmonoruntime_la_LIBADD): Make unconditional.
15551         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
15552         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
15553
15554 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
15555
15556         * culture-info-tables.h: It was inconsistent with the latest
15557           supp info files.
15558
15559 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
15560
15561         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
15562         be loaded.
15563
15564         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
15565         with gcc 2.95.
15566
15567 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
15568
15569         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
15570         cleaned up public header threads.h.
15571
15572 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
15573
15574         * Makefile.am, *.c, *.h: more API cleanups.
15575
15576 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
15577
15578         * Makefile.am: removed monosn from compilation.
15579         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
15580         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
15581         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
15582         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
15583         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
15584         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
15585
15586 2004-06-15  Jackson Harper  <jackson@ximian.com>
15587
15588         * assembly.c: Make locales lower case when searching the GAC for
15589         assemblies. gacutil will always make locales lowercase when
15590         installing so this effectively makes them case insensitive.
15591         
15592 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
15593
15594         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
15595         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
15596           parameter which allows to choose whether the wait can be interrupted or 
15597           not. Also added the method mono_monitor_enter(), which locks the monitor
15598           using an infinite wait and without allowing interruption.
15599           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
15600           interrupted.
15601         * object.h: Added new fields in MonoThread. suspend_event holds the event
15602           used to susped/resume the thread. synch_lock is the lock object to use for
15603           modifying the thread state.
15604         * threads.c: Use the new synch_lock object for locking, instead of "this",
15605           which can generate deadlocks.
15606           Moved thread state change in Thread.Sleep and Thread.Join from managed
15607           to unmanaged code. This avoids a deadlock when the thread was suspended
15608           just after acquiring the thread lock.
15609           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
15610           Implemented Thread.Suspend using an event instead of ThreadSuspend,
15611           which is not fully implemented in the io-layer.
15612         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
15613
15614 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
15615
15616         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
15617         threads-types.h: more API cleanups.
15618
15619 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
15620
15621         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
15622         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
15623         threadpool.c, threads.c: first pass at the exported API cleanup.
15624
15625 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
15626
15627         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
15628
15629 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15630
15631         * icall.c: added internalGetHome.
15632
15633 2004-06-14  Dick Porter  <dick@ximian.com>
15634
15635         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
15636         possible to return successfully when '.' or '..' were the only
15637         entries in a directory, but were skipped.  The MonoIOStat was not
15638         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
15639         Fixes bug 59574.
15640
15641 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
15642
15643         * reflection.c: make binaries run on .Net 1.1 by default.
15644
15645 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
15646
15647         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
15648
15649 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
15650
15651         * marshal.c: keep track of struct size with explicit layout
15652         (bug #59979).
15653
15654 2004-06-12  Martin Baulig  <martin@ximian.com>
15655
15656         * mono-debug-debugger.c: Comment out a debugging g_message().
15657
15658 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
15659
15660         * reflection.c, reflection.h: do not free custom attrs that are cached.
15661         * icall.c: use braces to make code clearer.
15662
15663 2004-06-11  Martin Baulig  <martin@ximian.com>
15664
15665         * class.h (MonoInflatedField): New type.
15666         (MonoClassField): Replaced `MonoType *generic_type' with
15667         `MonoInflatedField *generic_info'.
15668
15669         * icall.c
15670         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
15671
15672 2004-06-11  Martin Baulig  <martin@ximian.com>
15673
15674         * reflection.c (mono_image_create_method_token): Correctly encode
15675         varargs methods.
15676
15677 2004-06-11  Martin Baulig  <martin@ximian.com>
15678
15679         * metadata.c (mono_metadata_parse_method_signature): When parsing
15680         a MethodDef which has VarArgs, also set sentinelpos if we don't
15681         have any parameters.
15682
15683 2004-06-11  Martin Baulig  <martin@ximian.com>
15684
15685         * verify.c (mono_method_verify): In CEE_CALL, use
15686         mono_method_get_signature() to get the method's signature, unless
15687         we're a PInvoke method.
15688
15689 2004-06-10  Jackson Harper  <jackson@ximian.com>
15690
15691         * assembly.c: Use <path>/lib/mono/gac for the extra paths
15692         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
15693         logical name as the supplied path is just a prefix to the gac not
15694         the direct path to it.
15695         
15696 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
15697
15698         * reflection.c: make the token for a created method match
15699         the token of the MethodBuilder it was created from
15700         (IKVM requires this behaviour now).
15701
15702 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
15703
15704         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
15705         reflection.c, socket-io.c: leak fixes.
15706
15707 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
15708
15709         * icall.c: handle sentinel pos in vararg methods in position different
15710         from 0.
15711
15712 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15713
15714         * culture-info-tables.h: freshly generated.
15715
15716 2004-06-09  Martin Baulig  <martin@ximian.com>
15717
15718         * loader.c (mono_get_method_constrained): Call `mono_class_init
15719         (constrained_class)'.   
15720
15721 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
15722
15723         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
15724         any methods. Fixes #59629.
15725
15726 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
15727
15728         * culture-info-tables.h: reflecting locale-builder updates.
15729
15730 2004-06-08  Dick Porter  <dick@ximian.com>
15731
15732         * object.h:
15733         * locales.c: Fixed compile warnings, including a real bug in
15734         CompareInfo_internal_compare.
15735         
15736 2004-06-08  Dick Porter  <dick@ximian.com>
15737
15738         * locales.c
15739         (ves_icall_System_Globalization_CompareInfo_internal_index):
15740         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
15741         Double-check the resuls of usearches, because ICU currently
15742         ignores most of the collator settings here.  Fixes bug 59720.
15743         
15744 2004-06-08  Dick Porter  <dick@ximian.com>
15745
15746         * locales.c
15747         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
15748         Fix memory leak and segfault-causing typo.  No idea how this one
15749         lasted so long without being noticed.
15750
15751 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
15752
15753         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
15754         any methods. Fixes #59629.
15755
15756 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15757
15758         * assembly.c:
15759         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
15760         own the critical section before). Removed dead code (that's done
15761         in the preload hook).
15762
15763         (mono_assembly_load_with_partial_name): call the preload hook.
15764
15765 2004-06-08  Martin Baulig  <martin@ximian.com>
15766
15767         * metadata.c (mono_metadata_signature_alloc): Default
15768         `sentinelpos' to -1.
15769
15770         * reflection.c (mono_image_get_array_token): Likewise.
15771
15772 2004-06-08  Martin Baulig  <martin@ximian.com>
15773
15774         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
15775
15776         * metadata.c (mono_metadata_parse_method_signature): When parsing
15777         a MethodDef which has VarArgs, set sentinelpos.
15778
15779         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
15780         `gint16' since we're using -1 for non-varargs methods.
15781
15782         * reflection.c
15783         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
15784         (method_encode_signature): Added varargs support.
15785         (method_builder_encode_signature): Likewise.
15786         (mono_image_get_varargs_method_token): New static method.
15787         (mono_image_create_method_token): New public method; this is
15788         called via an icall instead of mono_image_create_token() when
15789         calling a varargs method.       
15790
15791 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
15792
15793         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
15794
15795 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
15796
15797         * culture-info-tables.h : Reflecting the latest locale-builder that
15798           fixed empty array representation ({} to {0}).
15799
15800 2004-06-07  Jackson Harper  <jackson@ximian.com>
15801
15802         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
15803         looking up extra gac paths. This allows MONO_GAC_PATH to act
15804         exactly like a prefix.
15805         
15806 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
15807
15808         * reflection.c (mono_reflection_type_from_name): Make a copy of the
15809         type name before modifying it. Fixes #59405.
15810
15811 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
15812
15813         * culture-info.h: added fields for "all datetime patterns".
15814         * locales.c: (  ves_icall_System_Globalization_CultureInfo
15815           _construct_datetime_format ()): fill xxx_patterns fields.
15816         * object.h: added fields for "all datetime patterns" to
15817           MonoDateTimeFormatInfo.
15818         * culture-info-tables.h: reflecting locale-builder updates.
15819
15820 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
15821
15822         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
15823         the event has no add and remove methods. Fixes #59629.
15824
15825 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
15826
15827         * object.c: Fixed possible integer overflow when allocating large
15828         strings.
15829
15830 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
15831
15832         * culture-info-tables.h: reflecting locale-builder updates.
15833
15834 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
15835
15836         * culture-info-tables.h: reflecting locale-builder updates.
15837
15838 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
15839
15840         * culture-info-tables.h: reflecting locale-builder updates.
15841
15842 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
15843
15844         * threads.c: Made Thread.Sleep abortable.
15845
15846 2004-06-02  Martin Baulig  <martin@ximian.com>
15847
15848         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
15849
15850         * debug-mono-symfile.h: Bumped symbol file version number to 37.
15851
15852 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
15853
15854         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
15855
15856 2004-05-30  Jackson Harper  <jackson@ximian.com>
15857
15858         * reflection.c: Do not hardcode assembly versions or public key
15859         tokens anymore. All of this except the corlib section was dead
15860         code anyways.
15861         
15862 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
15863
15864         * object.c (mono_runtime_invoke_array): Automatically create boxed
15865         objects for byref valuetypes if needed. Fixes #59300.
15866         
15867         * object.c (mono_method_return_message_restore): Handle 
15868         MONO_TYPE_OBJECT as well.
15869
15870 2004-05-28  Jackson Harper  <jackson@ximian.com>
15871
15872         * reflection.c: The modified type encoding was causing build
15873         problems. Reverted for now.
15874         
15875 2004-05-28  Jackson Harper  <jackson@ximian.com>
15876
15877         * reflection.c/h: Take an assembly ref so that we dont create
15878         fully qualified names when encoding types in the same assembly as
15879         the custom attribute being emitted.
15880         * appdomain.c: Increment version number.
15881         
15882 2004-05-26  Duncan Mak  <duncan@ximian.com>
15883
15884         * icall.c
15885         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
15886         Set the full version number (major, minor, build, revision).
15887
15888 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
15889
15890         * marshal.c (emit_struct_conv): increment src/dst after blit
15891         (mono_marshal_get_managed_wrapper,
15892         mono_marshal_get_native_wrapper): make sure we have marshalling
15893         info before marshalling params (info computation affects
15894         blittable)
15895
15896         * class.c (class_compute_field_layout): correctly deal with
15897         blittable
15898         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
15899         value types (as per what windows dows by default)
15900         (mono_class_setup_mono_type): System.ValueType is blittable
15901         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
15902         blittable
15903
15904         * marshal.c (mono_marshal_load_type_info): flag types  as
15905         non-blittable if the native layout doesn't match the managed
15906         layout
15907
15908 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15909
15910         * appdomain.c: don't add stuff in the private search path that is
15911         above the application base. If application base is not set, there's
15912         no private search path.
15913
15914 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
15915
15916         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
15917         byref struct arguments in native->managed marshalling.
15918
15919 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
15920
15921         * marshal.c (mono_marshal_get_runtime_invoke): correctly
15922         cache methods using signature (special case for methods
15923         that are value type or string class)
15924         
15925         * image.c (mono_image_close): clean up allocated GSList's
15926         in runtime_invoke_cache.
15927
15928 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15929
15930         * mono-config.c: set the correct path for mono_cfg_dir on windows when
15931         there's no MONO_CFG_DIR environment variable defined.
15932
15933 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15934
15935         * threads.c: windows version must be >= 0x0500 to include OpenThread.
15936
15937 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
15938
15939         * threadpool.c: Really wait for 500ms after the async call, even if the wait
15940           is interrumped.
15941         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
15942           before waiting for it, and call CloseHandle after the wait to unref it.
15943           This will make sure that handles are not disposed too early.
15944
15945 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15946
15947         * appdomain.c:
15948         * appdomain.h:
15949         * icall.c: removed
15950         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
15951         needed now.
15952
15953         * object.c: se the application_base only for the domain that runs
15954         Main. Fixes bug #59216,
15955
15956 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15957
15958         * appdomain.c:
15959         * object.c: only the domain in which Main is run have
15960         SetupInformation.ConfigurationFile set, so moved a few lines from
15961         appdomain.c to object.c.
15962
15963 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15964
15965         * appdomain.c: we tried to load [name].(dll|exe), but according
15966         to bug #57710, we must also try [culture]/[name].(dll|exe) and
15967         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
15968         There's a test case attached to bug #58922.
15969
15970 2004-05-27  Dick Porter  <dick@ximian.com>
15971
15972         * icall.c:
15973         * file-io.c: Implemented icalls for locking and unlocking regions
15974         in a file.
15975         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
15976         FALSE on error (fixes both compiler warning and real bug.)
15977
15978 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
15979
15980         * culture-info-tables.h: reflecting locale-builder updates.
15981
15982           (Added missing ChangeLog entry for 05/26)
15983
15984 2004-05-27  Jackson Harper  <jackson@ximian.com>
15985
15986         * locales.c: Fix some cut and paste errors.
15987         
15988 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15989
15990         * mono-config.c: set the correct path for config. directory on windows.
15991
15992 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
15993
15994         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
15995           on win32.
15996
15997 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
15998
15999         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
16000         from pinvoke functions.
16001         
16002         * marshal.c (mono_ftnptr_to_delegate): Implement this.
16003
16004 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
16005
16006         * culture-info-tables.h: reflecting locale-builder updates.
16007
16008 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
16009
16010         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
16011         #59086.
16012
16013 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
16014
16015         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
16016         * icall.c: Modified icalls for RNG.
16017         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
16018         Windows (CryptoAPI).
16019
16020 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
16021
16022         * locales.c: Fix build.
16023
16024 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
16025
16026         * culture-info-tables.h: reflecting locale-builder updates.
16027
16028 2004-05-25  Jackson Harper  <jackson@ximian.com>
16029
16030         * locales.c: When creating the current culture use the $LANGs
16031         specific culture. So DateTimeFormat and NumberFormat entries are created.
16032         
16033 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
16034
16035         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
16036         a char array as parameter.
16037
16038 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
16039
16040         * image.c: In mono_image_open(), always use an absolute path name to
16041           look for already loaded images.
16042
16043 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
16044
16045         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
16046         missing in the windows build (like older cygwin include files).
16047
16048 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
16049
16050         * icall.c: Fixed check for possible integer overflow in Buffer_
16051         BlockCopy icall. Replaced comments style // by /* */.
16052
16053 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
16054
16055         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
16056         
16057         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
16058         check after MONO_VTADDR. Fixes pinvoke2.exe.
16059
16060         * marshal.h marshal.c metadata.h: Add beginnings of support for
16061         ftnptr -> delegate marshalling.
16062
16063 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
16064
16065         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
16066         * threads.c: Fix warnings.
16067
16068 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
16069
16070         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
16071         * icall.c: Registered icalls for Suspend and Resume.
16072         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
16073           Thread.Abort.
16074         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
16075         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
16076         * process.c: Use WaitForSingleObjectEx.
16077         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
16078           checkpoints.
16079         * threads.c, threads.h: Make use of new Ex wait methods. Improved
16080           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
16081           for Suspend and Resume. Added new mono_thread_stop, used for stoping
16082           background threads. Added basic support for Abort in Windows.
16083           Start new threads using a managed delegate invoke wrapper. This wrapper
16084           has an interruption checkpoint that is needed since an interruption
16085           can be requested before the thread leaves the unmanaged code that starts 
16086           the thread.
16087         * marshal.c: Added interruption checkpoint after every native call, and
16088           also before managed calls for wrappers called from unmanaged code to
16089           go into managed code.
16090         * object.h: Added new field in MonoThread to keep track of interruption
16091           requests.
16092
16093 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
16094
16095         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
16096         calls.
16097
16098 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16099
16100         * appdomain.c:
16101         * assembly.c:
16102         * gc.c:
16103         * locales.c:
16104         * mono-config.c:
16105         * rand.c: getenv -> g_getenv (windows!)
16106
16107         * process.c: complete_path is also used on non-windows platforms.
16108
16109 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16110
16111         * icall.c: new signature for Process_Start.
16112
16113         * process.[ch]: new signature for Process_Start. If we're on windows
16114         and UseShellExecute is false, we have to search for the program by
16115         ourselves if we don't get a full path.
16116
16117 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
16118
16119         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
16120         marshalling and call CleanUpNativeData if needed. Fixes #58646.
16121
16122 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16123
16124         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
16125         Fixes bug #58373.
16126
16127 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16128
16129         * process.c: use double quotes to quote program name and arguments on
16130         windows. Fixes bug #58575.
16131
16132 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16133
16134         * file-io.c: don't return "." and ".." when using windows Find*File.
16135
16136 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
16137
16138         * marshal.c: Don't pass wrappers to message init because method 
16139         addressed used to lookup metadata. part of remoting[2|3] fix.
16140
16141 2004-05-15  Jackson Harper  <jackson@ximian.com>
16142
16143         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
16144         path is essentially the same as MONO_PATH except that it points to
16145         GACs instead of lib directories.
16146         * loader.h: The user gac is gone so we dont need function to
16147         enable/disable it.
16148         * mono-config.c: user gac option is now gone.
16149         
16150 2004-05-15  Jackson Harper  <jackson@ximian.com>
16151
16152         * culture-info.h: Make defines more consistent, add calendar data
16153         to the culture info table.
16154         * culture-info-tables.h: Add basic calendar data. Basically
16155         everyone gets default gregorian until all the data is
16156         updated.
16157         * locales.c: Use the new consistent defines. Set calendar data for
16158         culture info objects.
16159         * object.h: add a field for calendar data to CultureInfo
16160         
16161 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
16162
16163         * image.c: image->runtime_invoke_cache is keyed on signatures now.
16164         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
16165         a signature.
16166         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
16167         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
16168         an extra param that is the pointer of the method to invoke. The IL for
16169         the invoke method is no longer specific to the method, but to the
16170         signature of the method. Thus, we can share the same code for multiple
16171         methods. This reduces the number of methods that have to be compiled.
16172
16173 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
16174
16175         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
16176
16177         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
16178
16179         * icall.c: Optimize Buffer.BlockCopy.
16180
16181 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16182
16183         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
16184         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
16185         quote). Changed them to "MMMM yyyy".
16186
16187 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
16188
16189         * rand.c
16190         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
16191
16192 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
16193
16194         * reflection.h: Updated after changes to managed structures.
16195
16196         * appdomain.c: Bump corlib version.
16197
16198 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16199
16200         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
16201         windows.
16202
16203 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16204
16205         * Makefile.am: link to ../os/libmonoos.la on windows.
16206
16207         * assembly.c:
16208                 -If MONO_DEBUG, warn about non-existing directories in
16209                 MONO_PATH.
16210                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
16211                 compile time variable.
16212                 -Removed init_default_path and call mono_set_rootdir from
16213                 libmonoos.a instead (windows only).
16214
16215         * assembly.h: declare mono_assembly_getrootdir().
16216
16217         * domain.c:
16218         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
16219
16220         * loader.c: s/getenv/g_getenv/
16221
16222 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
16223
16224         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
16225
16226         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
16227
16228         * metadata.h: Add new marshalling conversions.
16229
16230         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
16231         function.
16232
16233         * reflection.c (mono_reflection_get_type): Lookup the type in all
16234         modules of a multi-module assembly. Fixes #58291.
16235
16236 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
16237
16238         * threads.c: Before aborting a background, set the StopRequested
16239         state.  This avoids throwing the Abort exception.
16240         In mono_thread_manage, don't continue with the shutdown until all
16241         aborted threads have actually stopped.
16242
16243 2004-05-10  Jackson Harper  <jackson@ximian.com>
16244
16245         * locales.c: Remove the modifier from culture names.
16246         
16247 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16248
16249         * Makefile.am: monosn is not installed any more. It has been deprecated
16250         in favor of sn.
16251
16252 2004-05-07  Jackson Harper  <jackson@ximian.com>
16253
16254         * locales.c
16255         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
16256         Fix array construction, add bailout if the length is 0.
16257
16258 2004-05-07  Dick Porter  <dick@ximian.com>
16259
16260         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
16261         machine doesn't have a DNS entry.  Patch by Urs Muff
16262         (umuff@quark.com), fixes bug 57928.
16263
16264 2004-05-06  Jackson Harper  <jackson@ximian.com>
16265
16266         * reflection.c: Handle null PublicTokens properly. alloc mem for
16267         assembly names culture so we dont crash when freeing it.
16268         
16269 2004-05-06  Jackson Harper  <jackson@ximian.com>
16270
16271         * assembly.c: Check the usergac when loading with partial names.
16272         
16273 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
16274
16275         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
16276         does nothing for now (not required for Linux/Windows) but the class
16277         library can call it (and a newer or modified runtime could need it).
16278         * icall.c: Registred icall.
16279
16280 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16281
16282         * loader.c: prints a message on module loading error we set MONO_DEBUG
16283         environment variable.
16284
16285 2004-05-05  Jackson Harper  <jackson@ximian.com>
16286
16287         * appdomain.c: Handle PublicKeyToken=null properly.
16288         
16289 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
16290
16291         * environment.c|h: Added icall ves_icall_System_Environment_
16292         GetOSVersionString to get the current OS version as a string.
16293         * icall.c: Registred icall.
16294
16295 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
16296
16297         * object.c: in mono_object_get_virtual_method(), take into account that
16298         non-virtual methods don't have a slot in the vtable. Check needed when
16299         the object is a proxy.
16300
16301 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
16302
16303         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
16304         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
16305
16306         * object.c (mono_class_compute_gc_descriptor): Fix warning.
16307
16308         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
16309         passed when a valuetype is expected.
16310
16311         * object.c (mono_unhandled_exception): Only set the exit code if the
16312         exception happens in the main thread. Fixes thread5.exe.
16313
16314         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
16315         invalid names. Fixes #58047.
16316
16317 2004-05-03  Jackson Harper  <jackson@ximian.com>
16318
16319         * assembly.c: This line was committed accidently and is unneeded.
16320         
16321 2004-05-03  Jackson Harper  <jackson@ximian.com>
16322
16323         * icall.c: Add new icall for Assembly::LoadWithPartialName
16324         * assembly.c/.h: new function that probes the GAC to load partial
16325         assembly names by Paolo Molaro.
16326         
16327 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16328
16329         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
16330         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
16331         (type_get_fully_qualified_name): Added PublicKeyToken when building a
16332         full type name.
16333
16334 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16335
16336         * appdomain.c: fixed check for 'neutral' culture and removed warning.
16337         * reflection.c: fix bug when parsing a full type name and Version is not
16338         the last thing in the string.
16339
16340 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
16341
16342         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
16343         crashes when it is freed.
16344
16345 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16346
16347         * assembly.c: print the compat warning to stderr.
16348
16349 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
16350
16351         * assembly.c (mono_assembly_load_references): Add a compatibility
16352         hack to run old applications that might be still referencing the
16353         3300-based assemblies, only do this for System.xxx.
16354
16355 2004-05-01  Jackson Harper  <jackson@ximian.com>
16356
16357         * appdomain.c: If the culture is neutral we set it to "".
16358         
16359 2004-04-29  Jackson Harper  <jackson@ximian.com>
16360
16361         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
16362
16363 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
16364  
16365         * string-icalls.c: added low overhead function for copying chars
16366         * icall.c: added needed icall for the above function
16367  
16368 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16369
16370         * icall.c: fix return value of get_global_assembly_cache.  Implemented
16371         Environment.GetLogicalDrives.
16372
16373 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
16374
16375         * rand.c: try and talk to egd or prngd
16376         for random bytes if opening devices fail.
16377
16378 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
16379
16380         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
16381         alignment for the type using the native alignment of its members 
16382         instead of using klass->min_align.
16383
16384         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
16385
16386 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16387
16388         * file-io.c:
16389         * socket-io.c: added check for sys/aio.h.
16390
16391 2004-04-28  Dick Porter  <dick@ximian.com>
16392
16393         * threads.c: Don't abort a thread thats already aborting, when
16394         terminating everything.
16395
16396 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16397
16398         * icall.c: added 2 new async calls for Socket.
16399
16400         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
16401         IO on *nix systems.
16402
16403         * threadpool.c: removed unused variable.
16404
16405 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
16406
16407         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
16408
16409 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
16410
16411         * locales.c: put back string_invariant_tolower () and
16412         string_invariant_toupper ().
16413
16414 2004-04-26 David Waite <mass@akuma.org>
16415
16416         * file-io.h:
16417         * socket-io.h:
16418         * threads.h:
16419         * unicode.h: remove comma from end of enumeration declarations
16420
16421 2004-04-26 David Waite <mass@akuma.org>
16422
16423         * debug-mono-symfile.h:
16424         * decimal.c:
16425         * mono_debug.h:
16426         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
16427
16428
16429 2004-04-26  Jackson Harper  <jackson@ximian.com>
16430
16431         * appdomain.c: Increment version number.
16432         
16433 2004-04-26  Jackson Harper  <jackson@ximian.com>
16434
16435         * appdomain.c: Set assembly references public token value when
16436         PublicKeyToken is specified, not the hash_value. Free public token
16437         values when free assembly name data. Previously the public key
16438         token was hex decoded, however we are using hex encoded public key
16439         tokens, so this is not neccasary.
16440         * assembly.c: Lookup assemblies in the gac if their public token
16441         value is set. Add function to allow enabling user gac
16442         lookups. Specify whether or not the assembly was loaded from the
16443         GAC. Compare full assembly names when checking the cache for
16444         assemblies (Temporarily disabled see comment in code). Remove
16445         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
16446         specifies trace-loader they get extra info to stdout on the
16447         loading of assemblies.
16448         * image.h: Add a field for an assembly references public token
16449         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
16450         whether an assembly has been loaded from the GAC.
16451         * image.c: Remove a corlib -> mscorlib name mapping.
16452         * loader.h: Add function to enable/disable the user gac.
16453         * mono-config.c: Check if the usergac is enabled in the config
16454         file.
16455         * icall.c: New icall to determine whether or not an assembly has
16456         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
16457         * tabldefs.h: Add constant for assemblyref flag that specifies a
16458         full public key is used instead of a public token.
16459         * reflection.c: Remove mscorlib -> corlib mappings. Set
16460         PublicTokenValue instead of hash value. This value is a hex
16461         string so it does not need to be expanded.
16462
16463 2004-04-26  Martin Baulig  <martin@ximian.com>
16464
16465         * mono-debug-debugger.c (mono_debugger_initialize): Set
16466         `mono_debugger_initialized' before calling mono_debug_lock().
16467
16468 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
16469
16470         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
16471           InternalToUpper/InternalToLower.
16472         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
16473           removed invariant culture shortcut.  This is now done in managed code.
16474         * locales.c: (string_invariant_toupper/tolower) removed.
16475
16476 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16477
16478         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
16479         Added Poll internal call.
16480
16481         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
16482         call for Poll. Select was too heavy for polling a single socket.
16483
16484         * threadpool.[ch]: added mono_threadpool_cleanup.
16485         * threads.c: use it. Don't use Thread_Abort on windows.
16486
16487 2004-04-23  Martin Baulig  <martin@ximian.com>
16488
16489         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
16490
16491 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
16492
16493         * icall.c: Registred new icalls for key pair protection and added an
16494         icall for Environment.GetFolderPath on Windows.
16495         * security.c|h: Added new icalls for key pair protection.
16496
16497 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16498
16499         * socket-io.c: don't display the non-supported family warning for known
16500         families. Now this is not displayed on windows when checking support
16501         for IPv4/IPv6.
16502
16503 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16504
16505         * class.c: don't display the layout warning for static fields.
16506
16507 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
16508
16509         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
16510         * locales.c, locales.h: Added new icalls for culture-specific
16511         Char.ToLower and Char.ToUpper.
16512
16513 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16514
16515         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
16516         by David Waite.
16517
16518 2004-04-20  Martin Baulig  <martin@ximian.com>
16519
16520         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
16521         of the type name before passing it to mono_reflection_type_from_name().
16522
16523 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
16524
16525         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
16526         encodings here. Fixes #56965.
16527
16528 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
16529
16530         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
16531         fix test on strstr result not that I can see anything that
16532         relies on the result.
16533
16534 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
16535
16536         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
16537         Fixes #57081.
16538
16539         * marshal.c (mono_marshal_get_string_encoding): New helper function.
16540
16541         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
16542         function to determine which marshalling to use for strings. Fixes
16543         #56965.
16544
16545         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
16546
16547         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
16548
16549 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
16550
16551         * icall.c: #include mono-config.h
16552
16553 2004-04-15  Jackson Harper  <jackson@ximian.com>
16554
16555         * culture-info-tables.h: Fix date formats for en-US culture.
16556         
16557 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
16558
16559         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
16560         ThreadPool.SetMinThreads.
16561         * threadpool.c: Implemented ThreadPool.GetMinThreads and
16562         ThreadPool.SetMinThreads.
16563
16564 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
16565
16566         * mono-config.c: also load the .config file in the directory
16567         where the assembly was found.
16568
16569 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
16570
16571         * assembly.c: load per-assembly config files.
16572         * icall.c: decrapified code to get the config dir and moved to
16573         mono-config.c.
16574         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
16575         per-assembly config files. When doing a dll map lookup give precedence
16576         to the per-assembly data.
16577
16578 2004-04-14  Martin Baulig  <martin@ximian.com>
16579
16580         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
16581         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
16582         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
16583
16584         * mono-debugger-debugger.c: While the debugger is locked, remember
16585         whether the symbol tables have changes and send one single
16586         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
16587
16588 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
16589
16590         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
16591
16592         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
16593         function.
16594
16595         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
16596         account when marshalling string arrays. Fixes #56965.
16597
16598 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
16599
16600         * icall.c: Add new icalls mapping for security.
16601         * security.c|h: Add internal calls for WindowsIdentity,
16602         WindowsImpersonationContext and WindowsPrincipal.
16603
16604 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
16605
16606         * class.c: Added comment to ensure the System.MonoDummy class
16607         is removed when no longer necessary
16608
16609 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
16610
16611         * appdomain.c: Pass arguments to the bootstraping exceptions to
16612         minimize JITed methods at boot
16613
16614         * metadata.c (mono_exception_from_name_two_strings): Allow for the
16615         second string to be null.
16616
16617         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
16618         Change the protocol to minimize the JIT methods at startup.  Now
16619         it Returns the internal codepage, if the value of "int_code_page"
16620         is 1 at entry, and we can not compute a suitable code page
16621         number, returns the code page as a string.
16622
16623 2004-04-13  Jackson Harper  <jackson@ximian.com>
16624
16625         * culture-info-tables.h: Fix number of decimal digits for all
16626         english locales.
16627
16628 2004-04-13  Jackson Harper  <jackson@ximian.com>
16629
16630         * icall.c: Clairfy out of sync error message. It is not always
16631         your corlib that is out of sync.
16632
16633 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
16634
16635         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
16636         properties when only the set accessor is overriden. Fixes #55874.
16637
16638 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
16639
16640         * assembly.c (mono_assembly_load_references): Make this thread safe.
16641         Fixes #56327.
16642
16643 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
16644
16645         * monosn.c: Add missing initialization calls.
16646
16647 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
16648
16649         * locales.c:
16650         ves_icall_System_Globalization_CultureInfo_construct_number_format
16651         Fix g_assert so it compiles on fussier compilers re int/ptr
16652         mismatch
16653
16654 2004-04-08  Dick Porter  <dick@ximian.com>
16655
16656         * socket-io.h:
16657         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
16658         53992.  Also rearrange the code so that the internal calls return
16659         an error value and exceptions are thrown from managed code.
16660
16661         * icall.c: Add type info to the socket icalls.
16662
16663 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16664
16665         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
16666         owes me a beer.
16667
16668 2004-04-07  Martin Baulig  <martin@ximian.com>
16669
16670         * class.c (mono_class_from_generic_parameter): Don't default
16671         `klass->parent' to `mono_defaults.object_type'.
16672
16673 2004-04-07  Martin Baulig  <martin@ximian.com>
16674
16675         * reflection.c (mono_reflection_initialize_generic_parameter): Set
16676         `param->pklass->reflection_info'.       
16677
16678 2004-04-07  Jackson Harper  <jackson@ximian.com>
16679
16680         * culture-info-tables.h: Fix date separator symbol.
16681         
16682 2004-04-07  Martin Baulig  <martin@ximian.com>
16683
16684         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
16685         from System.Type to System.MonoType.
16686
16687 2004-04-07  Martin Baulig  <martin@ximian.com>
16688
16689         * reflection.h
16690         (MonoReflectionGenericParam): Added `has_reference_type' and
16691         `has_value_type' fields.
16692
16693         * reflection.c (mono_image_get_generic_param_info): Encode the
16694         correct flags if we have the `class' or `struct' constraint.
16695
16696 2004-04-07  Martin Baulig  <martin@ximian.com>
16697
16698         * reflection.h
16699         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
16700
16701 2004-04-07  Jackson Harper  <jackson@ximian.com>
16702
16703         * appdomain.c: Revert extra patches, just wanted to bump the
16704         version number.
16705         
16706 2004-04-07  Jackson Harper  <jackson@ximian.com>
16707
16708         * Makefile.am: Add culture-info private headers.
16709         * icall.c: Add new icalls for contructing locales.
16710         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
16711         * locales.h: Declare new culture info construction methods.
16712         * object.h: Add new fields used to avoid the CultureMap to
16713         MonoCultureInfo.
16714         * culture-info.h: Definition of structs used in the culture info
16715         tables.
16716         * culture-info-tables.h: Autogenerated tables that contain culture
16717         info data. This file was generated with the locale-builder tool.
16718         * appdomain.c: Incement corlib version number.
16719         
16720 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
16721
16722         * appdomain.c: (mono_runtime_init) move mono_thread_init
16723         to before mono_object_new calls so critical sections
16724         are initialized before use.
16725
16726 2004-04-07  Martin Baulig  <martin@ximian.com>
16727
16728         * icall.c
16729         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
16730         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
16731         (ves_icall_MonoGenericParam_initialize): Removed.
16732         (monogenericparam_icalls): Removed.
16733         (generictypeparambuilder_icalls): Added new table for
16734         System.Reflection.Emit.GenericTypeParameterBuilder.
16735
16736         * reflection.c
16737         (mono_reflection_define_generic_parameter): Removed.
16738         (mono_reflection_initialize_generic_parameter): This is now called
16739         from GenericTypeParameterBuilder's .ctor.
16740
16741 2004-04-06  Martin Baulig  <martin@ximian.com>
16742
16743         * class.c (mono_class_init): Don't inflate nested classes in a
16744         generic instance.
16745         (mono_type_get_name_recurse): Include the generic arguments for
16746         generic instances and generic type declarations.
16747         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
16748         (_mono_class_get_instantiation_name): Removed.
16749         (mono_class_create_generic): Always use `gklass->name' as our name.
16750
16751         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
16752
16753         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
16754         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
16755         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
16756         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
16757         closed generic methods here.
16758
16759         * reflection.c
16760         (mono_reflection_generic_inst_get_nested_types): Removed.
16761         (inflate_mono_method): Copy the generic parameters from the
16762         MonoMethodHeader into out MonoGenericMethod.
16763
16764 2004-04-06  Martin Baulig  <martin@ximian.com>
16765
16766         * row-indexes.h
16767         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
16768
16769         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
16770
16771         * reflection.c (build_compressed_metadata): If we have any entries
16772         in the GenericParam, MethodSpec or GenericParamConstraint tables,
16773         set the header version to 1.1.
16774
16775 2004-04-06  Martin Baulig  <martin@ximian.com>
16776
16777         * class.c (mono_class_init): If we're a generic instance,
16778         initialize our nested classes, too.
16779         (_mono_class_get_instantiation_name): Deal with the new `!%d'
16780         suffix. 
16781
16782 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16783
16784         * process.c: quote the argument passed to the shell on windows.
16785
16786 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
16787
16788         * threads.c (mono_alloc_special_static_data): Allow this to be
16789         called during startup.
16790
16791 2004-04-02  Martin Baulig  <martin@ximian.com>
16792
16793         * icall.c
16794         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
16795
16796 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
16797
16798         * icall.c: Fix build.
16799
16800 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
16801
16802         * Makefile.am: Added security.c|h.
16803         * icall.c: Added icall for get_UserName;
16804         * security.c: New file for security related icalls. Added function
16805         get_UserName for System.Environment (fix #56144).
16806         * security.h: New. Header file for security.c
16807
16808 2004-04-02  Dick Porter  <dick@ximian.com>
16809
16810         * icall.c: Deleted the icalls that were obsoleted some time ago
16811         by the ICU string code, and which were mixed into the icall
16812         rearranging.  Fixes bug 55969.
16813
16814         * string-icalls.h: 
16815         * string-icalls.c: Deleted the code that those icalls reference.
16816
16817 2004-04-01  Martin Baulig  <martin@ximian.com>
16818
16819         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
16820
16821         * class.c (mono_class_from_generic_parameter): Don't set 
16822         TYPE_ATTRIBUTE_INTERFACE.
16823         (my_mono_class_from_generic_parameter): Likewise.
16824
16825 2004-04-01  Martin Baulig  <martin@ximian.com>
16826
16827         * loader.c (find_method): Added an optional `MonoClass *ic'
16828         argument to search in a specific interface.
16829         (mono_get_method_constrained): New public function.
16830
16831 2004-04-01  Martin Baulig  <martin@ximian.com>
16832
16833         * reflection.c (mono_image_get_generic_field_token): Use the
16834         `handleref' cache here.
16835
16836 2004-04-01  Martin Baulig  <martin@ximian.com>
16837
16838         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
16839
16840         * reflection.c (create_generic_typespec): Use the `typespec' hash
16841         here, not the `typeref' one.    
16842
16843 2004-04-01  Martin Baulig  <martin@ximian.com>
16844
16845         * class.c (mono_class_inflate_generic_type): Moved the
16846         functionality into a new static inflate_generic_type() which
16847         returns NULL if it didn't do anything.  Only increment the
16848         `mono_stats.inflated_type_count' if we actually inflated
16849         something.
16850         (mono_class_get_full): Check the classes type to see whether we
16851         need to inflate it; also inflate MONO_TYPE_(M)VAR.
16852
16853 2004-04-01  Jackson Harper  <jackson@ximian.com>
16854
16855         * reflection.c: Set culture for assembly references.
16856         
16857 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
16858
16859         * reflection.[ch], icall.[ch], Fix support for pinning variables.
16860
16861 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16862
16863         * assembly.c:
16864         (do_mono_assembly_open): the critical section also covers
16865         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
16866
16867 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16868
16869         * threads.c:
16870         (mono_manage_threads): abort the background threads when finishing.
16871         Fixes bug #47232.
16872
16873 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16874
16875         * gc.c: only close the done_event handle if there was no timeout.
16876         C-ified comments.
16877
16878 2004-03-30  Martin Baulig  <martin@ximian.com>
16879
16880         * icall.c (icall_entries): It's called "System.Activator", not
16881         "System.Activation".    
16882
16883 2004-03-30  Martin Baulig  <martin@ximian.com>
16884
16885         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
16886         (mono_class_create_from_typespec): Likewise.
16887
16888 2004-03-30  Martin Baulig  <martin@ximian.com>
16889
16890         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
16891         `has_ctor_constraint' and `initialized'.
16892
16893 2004-03-30  Martin Baulig  <martin@ximian.com>
16894
16895         * reflection.c (encode_new_constraint): New static function to add
16896         the constructor constraint attribute to a type parameter.
16897         (encode_constraints): Call encode_new_constraint() if necessary.
16898
16899         * reflection.h
16900         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
16901
16902         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
16903         
16904 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
16905
16906         * reflection.c, icall.c: add support for pinning variables. 
16907
16908 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
16909
16910         * marshal.c (mono_marshal_get_managed_wrapper):
16911         init bool local with zero rather than null.
16912
16913 2004-03-29  Martin Baulig  <martin@ximian.com>
16914
16915         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
16916         the "official" behavior here.
16917         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
16918
16919 2004-03-29  Martin Baulig  <martin@ximian.com>
16920
16921         * icall.c: Reflect latest API changes.
16922
16923 2004-03-29  Martin Baulig  <martin@ximian.com>
16924
16925         * loader.c (mono_get_method_from_token): Also call
16926         mono_metadata_load_generic_params () for abstract and interface
16927         methods; replace the type arguments in the method signature with
16928         the ones which are loaded from the metadata.
16929
16930 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
16931
16932         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
16933         of the lock is not the current thread. MS.NET don't do it, in spite of
16934         what the documentation says. See bug #56157.
16935
16936 2004-03-28  Martin Baulig  <martin@ximian.com>
16937
16938         * class.c (mono_class_init): Don't call init_properties() and
16939         init_events() for generic instances; set `prop->parent' when
16940         inflating properties.
16941
16942         * reflection.c (mono_generic_inst_get_object): Call
16943         `mono_class_init (ginst->klass)'.
16944         (mono_type_get_object): Only create a MonoGenericInst if your
16945         generic type is a TypeBuilder.
16946         (do_mono_reflection_bind_generic_parameters): Only set
16947         `ginst->is_dynamic' if our generic type is a TypeBuilder.
16948
16949 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
16950
16951         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
16952         Fixes #56091.
16953
16954 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16955
16956         * icall.c: added Kill_internal icall.
16957         * process.[ch]: added Kill_internal icall.
16958
16959 2004-03-25  Martin Baulig  <martin@ximian.com>
16960
16961         * class.h (MonoStats): Added `generic_instance_count',
16962         `inflated_method_count', `inflated_type_count' and
16963         `generics_metadata_size'.       
16964
16965 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16966
16967         * reflection.c: no warnings now.
16968
16969 2004-03-25  Martin Baulig  <martin@ximian.com>
16970
16971         * class.c (mono_class_get_full): New public function; does a
16972         mono_class_get(), but also takes a `MonoGenericContext *'.
16973
16974         * loader.c (mono_field_from_memberref): Renamed to
16975         `field_from_memberref', made static and added `MonoGenericContext *'
16976         argument.
16977         (mono_field_from_token): Added `MonoGenericInst *' argument.
16978         (method_from_memberef): Likewise.
16979         (mono_get_method_from_token): Likewise.
16980         (mono_get_method_full): New public function; does a
16981         mono_get_method(), but also takes a `MonoGenericContext *'.
16982
16983         * verify.c (mono_method_verify): Get the method's generic context
16984         and pass it to mono_field_from_token(), mono_get_method_full() and
16985         mono_class_get_full().
16986
16987 2004-03-25  Martin Baulig  <martin@ximian.com>
16988
16989         * class.c (mono_class_inflate_generic_type): Take a
16990         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
16991         `MonoGenericMethod *'.
16992
16993 2004-03-25  Martin Baulig  <martin@ximian.com>
16994
16995         * loader.h (MonoMethodInflated): Store the MonoGenericContext
16996         instead of the MonoGenericMethod here.
16997
16998 2004-03-25  Martin Baulig  <martin@ximian.com>
16999
17000         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
17001         each time we create a new MonoGenericInst, we also create a new
17002         context which points back to us.
17003
17004         * class.c (inflate_method): Use `ginst->context' instead of
17005         creating a new context.
17006
17007         * loader.c (method_from_memberref): Use
17008         `klass->generic_inst->context' instead of creating a new context.
17009
17010 2004-03-25  Martin Baulig  <martin@ximian.com>
17011
17012         * class.h (MonoGenericContext): New struct.
17013         (MonoGenericMethod): Removed `generic_inst'.
17014
17015         * class.c (mono_class_inflate_generic_method): Take a
17016         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
17017
17018 2004-03-25  Martin Baulig  <martin@ximian.com>
17019
17020         * loader.h (MonoMethodInflated): New typedef.
17021
17022         * metadata.h (MonoMethodSignature): Removed `gen_method', make
17023         `generic_param_count' consume just 30 bits, added `is_inflated'
17024         and `has_type_parameters' flags (one bit each).
17025
17026         * class.c (mono_class_inflate_generic_method): Create a
17027         MonoMethodInflated instead of a MonoMethodNormal and set
17028         `is_inflated' in the method signature.
17029
17030         * class.h (MonoGenericMethod): Removed `generic_method'.
17031
17032 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
17033
17034         * image.c: Make sure the name of a MonoImage is always an absolute path.
17035           This fixes bug #54415.
17036
17037 2004-03-24  Martin Baulig  <martin@ximian.com>
17038
17039         * class.c (mono_class_setup_vtable): If we're a generic instance,
17040         use our generic type's vtable size.
17041
17042 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
17043
17044         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
17045         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
17046         problems.
17047
17048 2004-03-23  Martin Baulig  <martin@ximian.com>
17049
17050         * class.h (MonoDynamicGenericInst): Added `int count_events' and
17051         `MonoEvent *events'.
17052
17053         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
17054         (typebuilder_icalls): Added "get_event_info"; calls
17055         mono_reflection_event_builder_get_event_info(). 
17056
17057         * reflection.c (mono_reflection_generic_inst_initialize): Added
17058         `MonoArray *events'.
17059         (mono_reflection_event_builder_get_event_info): New function.
17060
17061 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
17062
17063         * object.h: add mono_type_initialization_init
17064
17065         * object.c (mono_runtime_class_init): 
17066         implement class constructor synchronization rules
17067         to cope with threading issues.  
17068         add mono_type_initialization_init
17069
17070         * appdomain.c (mono_runtime_init): call 
17071         mono_type_initialization_init
17072
17073         * class.h: removing initializing field from MonoVTable
17074
17075 2004-03-23  Martin Baulig  <martin@ximian.com>
17076
17077         * class.c (my_mono_class_from_generic_parameter): Use
17078         `param->name' if it's not NULL. 
17079
17080 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
17081
17082         * class.c: do not insert non-virtual methods in the vtable.
17083         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
17084         that means the method is non-virtual. This never would have
17085         happened before.
17086
17087 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
17088
17089         * profiler.c: Added lock for accessing coverage_hash.
17090
17091 2004-03-22  Martin Baulig  <martin@ximian.com>
17092
17093         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
17094         `method->method->signature->generic_param_count != 0' to make it
17095         work for interface methods.
17096
17097 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17098
17099         * process.c: quote the string passed to the shell using g_shell_quote.
17100
17101 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17102
17103         * threads.c:
17104         (mono_threads_manage): don't remove the finalizer thread and self
17105         from the threads hash table so that mono_thread_manage can be called
17106         more than once.
17107
17108 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17109
17110         * process.c: quote the arguments when UseShellExecute is true. Fixes
17111         bug #55790.
17112
17113 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17114
17115         * threads.c: set mono_thread_detach as a cleanup routine for every
17116         thread. This way it's always executed upon thread termination, either
17117         aborted or finished normally. No more xsp hangs!
17118
17119 2004-03-17  Martin Baulig  <martin@ximian.com>
17120
17121         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
17122         `int count_nested' and a `MonoType **nested'.
17123
17124         * reflection.c (mono_reflection_bind_generic_parameters): Moved
17125         most of the functionality into a new static
17126         do_mono_reflection_bind_generic_parameters() and don't take a
17127         `MonoType *nested_in' argument any more.  Don't compute nested
17128         types here.
17129         (mono_reflection_generic_inst_get_nested_types): New public method
17130         to get nested types.
17131
17132         * class.c (mono_class_create_generic): Set `klass->nested_in' if
17133         we're a nested class.
17134
17135         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
17136         mono_reflection_generic_inst_get_nested_types() to compute the
17137         nested types.
17138
17139 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
17140
17141         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
17142         descriptive error message under windows.
17143         
17144 2004-03-17  Martin Baulig  <martin@ximian.com>
17145
17146         * class.c (dup_type): Added `const MonoType *original' argument;
17147         copy the attrs from the original type.
17148
17149 2004-03-17  Martin Baulig  <martin@ximian.com>
17150
17151         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
17152         `m->generic_inst_cache' here.
17153
17154 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
17155
17156         * exception.h exception.c: Add stack_overflow_exception.
17157
17158 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17159
17160         * threadpool.c:
17161         (overlapped_callback): call SetEvent *after* invoking the callback.
17162         No need to call CloseHandle.
17163
17164 2004-03-16  Martin Baulig  <martin@ximian.com>
17165
17166         * reflection.c (mono_image_get_fieldref_token): Take a
17167         `MonoReflectionField *' instead of a `MonoClassField *' and a
17168         `MonoClass *'; store the `MonoReflectionField *' in the hash.
17169
17170 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17171
17172         * appdomain.c: don't add the culture to the filename we're looking for
17173         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
17174
17175 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17176
17177         * locales.c: don't ignore symbols when doing case insensitive compares.
17178         Thanks Dick! Fixes bug #54046.
17179
17180         * threads.c: surround 'threads' usage with enter/leave in
17181         mono_thread_manage.
17182
17183 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
17184
17185         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
17186         implicitly marshalled as [Out]. Fixes #55450.
17187
17188         (mono_marshal_get_runtime_invoke): Zero out the result if there is
17189         an exception.
17190
17191 2004-03-16  Martin Baulig  <martin@ximian.com>
17192
17193         * class.c (mono_class_from_generic_parameter): Use the actual
17194         parameter name. 
17195
17196 2004-03-16  Martin Baulig  <martin@ximian.com>
17197
17198         * reflection.c (type_get_signature_size): New static function.
17199         Compues the size of the type in a method signature.
17200         (method_get_signature_size): New static function; calls
17201         type_get_signature_size() to compute the actual size of the
17202         method's signature.
17203         (method_encode_signature): Use method_get_signature_size() to get
17204         the signature's size rather than using `nparams * 10'.
17205
17206 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17207
17208         * file-io.h: define here WapiOverlapped on windows. I don't want the
17209         regular OVERLAPPED one.
17210
17211         * file-io.c:
17212         * threadpool.c: somehow, BindIoCompletionCallback is not found.
17213         Disabling AIO on windows.
17214
17215 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17216
17217         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
17218         bug #55385.
17219
17220 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17221
17222         * appdomain.c: upgraded corlib version.
17223
17224         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
17225         and BeginWrite. Allow opening files for asynchrnous operations.
17226
17227         * file-io.h: new struct that maps FileStreamAsyncResult.
17228         * icall.c: added new icalls.
17229         * process.[ch]: support setting child process environment variables
17230         and use the SHELL or COMSPEC when UseShellExecute is true.
17231
17232         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
17233         callback for async. IO is here and also BindHandle.
17234
17235         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
17236         from here.
17237
17238 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
17239
17240         * reflection.c (create_custom_attr): Allow len == 0.
17241
17242         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
17243         computation on big-endian machines.
17244
17245 2004-03-13  Martin Baulig  <martin@ximian.com>
17246
17247         * class.h (MonoGenericInst): Added `int count_ifaces'.
17248
17249         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
17250         `ginst->count_ifaces' instead `klass->interface_count' since we
17251         may get called before the vtable is created.
17252
17253         * loader.c (mono_method_get_param_names): If we're a generic
17254         instance, return and don't initialize the class.
17255
17256         * reflection.c (mono_reflection_setup_generic_class): Don't call
17257         ensure_runtime_vtable().
17258         (mono_reflection_bind_generic_parameters): Set
17259         `ginst->count_ifaces'.
17260
17261 2004-03-11  Jackson Harper <jackson@ximian.com>
17262
17263         * icall.c:
17264         * unicode.c:
17265         * unicode.h: Remove unused System.Char icalls.
17266         
17267 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
17268
17269         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
17270         code when we P/Invoke the first library in Windows.Forms, instead
17271         of when we first open the assembly.
17272
17273         * assembly.c: Drop the lookup from here.
17274
17275 2004-03-10  Martin Baulig  <martin@ximian.com>
17276
17277         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
17278         class for properties, fields and events.  Finally fixes #54945.
17279
17280 2004-03-10  Martin Baulig  <martin@ximian.com>
17281
17282         * metadata.c (mono_metadata_class_equal): New static function;
17283         checks whether two generic instances or two generic parameters are
17284         equal.
17285         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
17286         compare classes.        
17287
17288 2004-03-10  Martin Baulig  <martin@ximian.com>
17289
17290         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
17291
17292         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
17293         argument and write it into the `reflection_info' field.
17294
17295         * icall.c
17296         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
17297         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
17298
17299 2004-03-09  Jackson Harper  <jackson@ximian.com>
17300
17301         * char-conversions.h: use 8 bits for numeric data its all we need
17302         * icall.c: numeric data is only 8 bits now.
17303
17304 2004-03-09  Martin Baulig  <martin@ximian.com>
17305
17306         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
17307
17308         * class.c (init_properties, init_events): Initialize the new
17309         `parent' field.
17310
17311         * reflection.c (typebuilder_setup_properties): Likewise.
17312         (typebuilder_setup_events): Likewise.
17313
17314         * reflection.h (MonoEventInfo): Replaced `parent with
17315         `declaring_type' and `reflected_type'.
17316
17317         * icall.c (ves_icall_get_property_info): Distinguish between
17318         declaring and reflected type.
17319         (ves_icall_get_event_info): Likewise.
17320
17321 2004-03-09  Martin Baulig  <martin@ximian.com>
17322
17323         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
17324         (ves_icall_Type_GetField): Correctly set field->klass.
17325
17326 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
17327
17328         * loader.h: Fix warning.
17329
17330 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
17331
17332         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
17333         library routine if present.  Notice that it will still continue
17334         executing even if its missing, for those working on the Gtk#
17335         edition of Windows.Forms.
17336
17337         * assembly.c (do_mono_assembly_open): If loading the
17338         System.Windows.Forms call mono_loader_wini_init.
17339
17340 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
17341
17342         * class.h: Added MonoRemoteClass struct.
17343         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
17344         function for MonoStrings.
17345         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
17346         Added internal call for getting the proxy type.
17347         * marshal.c: Get the type of transparent proxies from its remote_class.
17348         Added methods that generate the IL for type checks and casts:
17349         mono_marshal_get_isinst, mono_marshal_get_castclass, 
17350         mono_marshal_get_proxy_cancast.
17351         * marshal.h: Declaration of the previous new methods.
17352         * object.c: Added new moethods for creating and updating MonoRemoteClass
17353         instances: mono_remote_class, mono_upgrade_remote_class, 
17354         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
17355         * verify.c: FIx transparent_proxy_fields layout.
17356         * appdomain.c: Bump corlib version.
17357
17358 2004-03-04  Jackson Harper  <jackson@ximian.com>
17359
17360         * icall.c: Add icall to access char conversion tables.
17361         * char-conversions.h: Character conversion tables.
17362         * Makefile.am: Add char-conversions.h private header file.
17363         
17364 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
17365
17366         * appdomain.c (unload_thread_main): Increase unloading timeout to
17367         10 sec as a temporary workaround for Nant problems.
17368
17369 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
17370
17371         * gc.c: Add checks for GC_enable and GC_disable.
17372
17373         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
17374         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
17375         (bug #54988).
17376         
17377 2004-02-27  Martin Baulig  <martin@ximian.com>
17378
17379         * reflection.c (mono_reflection_bind_generic_parameters): Take a
17380         `MonoReflectionType *' instead of a `MonoType *'.
17381
17382 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
17383
17384         * gc.c (run_finalize): Avoid finalizing the object representing the
17385         finalizer thread.
17386         (finalizer_thread): Fix warning.
17387
17388 2004-02-25  Martin Baulig  <martin@ximian.com>
17389
17390         * class.c (_mono_class_get_instantiation_name): Added `int offset'
17391         argument for nested types.
17392         (mono_class_create_generic): Added support for nested generictypes.
17393
17394         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
17395         `GList *nested'.
17396
17397         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
17398
17399         * reflection.c (method_encode_signature): Increase the minimum
17400         value of `size' from 10 to 11.
17401         (mono_reflection_bind_generic_parameters): Take `int type_argc'
17402         and `MonoType **types' arguments instead of the `MonoArray
17403         *types'; added `MonoType *nested_in'.  Recursively instantiate
17404         nested classes. 
17405
17406 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
17407
17408         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
17409         stack_overflow_ex members which are used by exception handling.
17410
17411         * appdomain.c (mono_runtime_init): Initialize the new members.
17412
17413         * gc.c (mono_gc_enable): New helper function.
17414         * gc.c (mono_gc_disable): New helper function.
17415
17416 2004-02-23  Martin Baulig  <martin@ximian.com>
17417
17418         * icall.c: I must have been really stupid - make it actually work
17419         this time ;-)
17420
17421 2004-02-23  Martin Baulig  <martin@ximian.com>
17422
17423         * loader.c (method_from_memberref): Only inflate the method if
17424         it's in another klass.
17425
17426 2004-02-23  Martin Baulig  <martin@ximian.com>
17427
17428         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
17429         (mono_class_init): If we're a generic instance and an interface,
17430         compute `class->interface_id'; also create `class->interfaces'
17431         here and inflate them.
17432
17433         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
17434         `ginst->is_open'.
17435         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
17436
17437         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
17438
17439 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
17440
17441         * reflection.c (method_encode_code): Improved the error message
17442         generated by the exception.
17443
17444 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17445
17446         * icall.c: Martin did not do what he said in the ChangeLog for
17447         2004-02-18, but put back the changes for properties and events.
17448         Commenting those changes out again and adding comment to bug #54518.
17449         
17450         * process.c: removed warning.
17451
17452 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
17453
17454         * marshal.c (emit_struct_conv): Print an error message instead of
17455         asserting when a type does not have the StructLayout attribute.
17456
17457 2004-02-20  Martin Baulig  <martin@ximian.com>
17458
17459         * reflection.c (mono_type_get_object): Also use the cache for
17460         generic instances.
17461         (mono_reflection_bind_generic_parameters): Always compute
17462         `ginst->ifaces'.        
17463
17464 2004-02-20  Martin Baulig  <martin@ximian.com>
17465
17466         * class.h (MonoGenericMethod): Removed `klass'.
17467
17468         * class.c (mono_class_inflate_generic_method): Added `MonoClass
17469         *klass' argument.
17470
17471 2004-02-20  Martin Baulig  <martin@ximian.com>
17472
17473         * reflection.c (method_encode_methodspec): Actually use the
17474         uninflated signature for the memberref.
17475
17476 2004-02-20  Martin Baulig  <martin@ximian.com>
17477
17478         * class.h (MonoGenericMethod): Removed `declaring'.
17479
17480         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
17481         is NULL, compute it here.
17482
17483 2004-02-20  Martin Baulig  <martin@ximian.com>
17484
17485         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
17486
17487         * metadata.c (mono_metadata_generic_inst_hash): New method.
17488         (mono_metadata_generic_inst_equal): New method.
17489
17490         * reflection.c (mono_reflection_bind_generic_parameters): Use the
17491         `klass->image->generic_inst_cache' cache to avoid creating
17492         duplicate MonoGenericInst's.
17493
17494         * class.c (mono_class_inflate_generic_type): Use the cache.
17495
17496 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
17497
17498         * object.c: fixed gc descriptor calculation for embedded valuetypes.
17499
17500 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17501
17502         * icall.c: added Socket.WSAIoctl icall.
17503
17504         * socket-io.[ch]: implemented
17505         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
17506
17507 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
17508
17509         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
17510
17511 2004-02-18  Urs C Muff  <umuff@quark.com>
17512
17513         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
17514         this work on PPC and other big-endian architectures.
17515
17516         * debug-mono-symfile.h: Prepended the names of all the `guint32'
17517         fields with an underscore to make sure they're only accessed by
17518         the read32() macro.
17519
17520 2004-02-18  Martin Baulig  <martin@ximian.com>
17521
17522         * icall.c: Put the klass->refclass changes back for methods and
17523         fields, but not for properties and events.  We're currently not
17524         distinguishing between DeclaringType and ReflectedType for
17525         properties and events, that's what caused the regressions.
17526
17527 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17528
17529         * object.c:
17530         (mono_async_result_new): the handle can be NULL.
17531
17532         * threadpool.c: Use an event instead of a semaphore, don't initialize
17533         it until needed. This saves quite a few semaphores from being created
17534         when using the threadpool.
17535
17536 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
17537
17538         * object.c (mono_string_is_interned_lookup): Fix interning of long
17539         strings. Fixes #54473.
17540
17541         * domain.c (ldstr_equal): Optimize if the two strings are equal.
17542
17543         * icall.c: Revert the klass->refclass changes since they introduce
17544         regressions (bug #54518).
17545
17546 2004-02-18  Martin Baulig  <martin@ximian.com>
17547
17548         * class.c (mono_class_init): If we're a generic instance and don't
17549         come from a TypeBuilder, inflate our members here.
17550         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
17551         (mono_class_create_generic): New public method.
17552         (mono_class_initialize_generic): Removed.
17553         (get_instantiation_name): Renamed to
17554         _mono_class_get_instantiation_name() and made it public.
17555
17556 2004-02-18  Martin Baulig  <martin@ximian.com>
17557
17558         * class.c (mono_class_inflate_generic_type): Clear the new
17559         instance's `nginst->klass' when inflating a generic instance.
17560         (mono_class_is_subclass_of): Added (basic) support for generic
17561         instances.
17562
17563 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
17564
17565         * appdomain.h, domain.c: use a MonoCodeManager instead of a
17566         MonoMempool to hold compiled native code.
17567
17568 2004-02-17  Martin Baulig  <martin@ximian.com>
17569
17570         * class.h (MonoDynamicGenericInst): Added `count_properties' and
17571         `properties'.
17572
17573         * reflection.c (mono_reflection_generic_inst_initialize): Added
17574         `MonoArray *properties' argument.
17575
17576         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
17577
17578 2004-02-17  Martin Baulig  <martin@ximian.com>
17579
17580         * icall.c (ves_icall_Type_GetFields): Renamed to
17581         ves_icall_Type_GetFields_internal() and added a
17582         `MonoReflectionType *rtype' argument; pass it to
17583         mono_field_get_object() to set the field's "reflected" type.
17584         (ves_icall_Type_GetConstructors): Likewise.
17585         (ves_icall_Type_GetEvents): Likewise.
17586         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
17587         argument; pass it to mono_method_get_object() to set the method's
17588         "reflected" type.       
17589
17590 2004-02-17  Martin Baulig  <martin@ximian.com>
17591
17592         * class.h (MonoDynamicGenericInst): New type.
17593         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
17594
17595         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
17596         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
17597         (ves_icall_MonoGenericInst_GetFields): New interncall.
17598
17599         * class.c (mono_class_from_generic): Don't call
17600         mono_class_initialize_generic() if this is a dynamic instance;
17601         ie. it's being created from a TypeBuilder.
17602         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
17603         `class->byval_arg.type'.
17604
17605         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
17606         to `inflate_method' and made static.
17607         (mono_reflection_inflate_field): Removed.
17608         (mono_reflection_generic_inst_initialize): New public method.
17609
17610         * reflection.h (MonoReflectionGenericInst): Removed `methods',
17611         `ctors' and `fields'; added `initialized'.
17612
17613 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
17614
17615         * debug-helpers.c (mono_method_full_name): Fix output for empty
17616         namespaces.
17617
17618 2004-02-12  Martin Baulig  <martin@ximian.com>
17619
17620         * class.h (MonoClassField): Added `MonoType *generic_type'.
17621
17622         * reflection.c (mono_image_get_fieldref_token): Added support for
17623         instantiated generic types.
17624         (field_encode_inflated_field): Removed.
17625         (mono_image_get_inflated_field_token): Removed.
17626         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
17627
17628         * reflection.h (MonoReflectionInflatedField): Removed.
17629
17630 2004-02-12  Martin Baulig  <martin@ximian.com>
17631
17632         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
17633         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
17634
17635         * reflection.c (mono_image_get_methodspec_token): Take a
17636         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
17637         (mono_image_create_token): Check whether we have a
17638         `method->signature->gen_method' and call
17639         mono_image_get_methodspec_token() if appropriate.
17640         (inflated_method_get_object): Removed.
17641         (mono_reflection_bind_generic_method_parameters): Return a
17642         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
17643         (mono_reflection_inflate_method_or_ctor): Likewise.
17644
17645         * reflection.h (MonoReflectionInflatedMethod): Removed.
17646
17647 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
17648
17649         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
17650         for custom valuetype marshalling.
17651
17652         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
17653
17654 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17655
17656         * icall.c: fixed WSAGetLastError_internal name.
17657
17658 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
17659
17660         * threads.c (mono_thread_attach): Allow this to be called multiple
17661         times for a thread.
17662         
17663         * threads.c (build_wait_tids): Do not wait for ourselves.
17664
17665         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
17666         appdomain list is empty.
17667
17668         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
17669         memory returned by mono_string_builder_to_utf16, since it points into
17670         managed memory. Thanks to Bernie Solomon for noticing this.
17671
17672         * icall.c: Add AppDomainSetup icalls.
17673
17674         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
17675
17676         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
17677         types.
17678
17679         * reflection.c (reflection_methodbuilder_to_mono_method): Save
17680         custom attributes to the method_aux struct. Also fix array indexes etc.
17681
17682         * loader.c (mono_method_get_param_names): Make dynamic case work again.
17683         
17684 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
17685
17686         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
17687         (both static and runtime) and reduce startup time.
17688
17689 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
17690
17691         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
17692         AsAny marshalling conversion instead of crashing.
17693
17694         * marshal.c: Fix warnings.
17695
17696 2004-02-09  Martin Baulig  <martin@ximian.com>
17697
17698         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
17699
17700         * reflection.h (MonoReflectionInflatedMethod): Removed the
17701         `declaring' field, it's now in the unmanaged MonoGenericMethod.
17702
17703         * reflection.c (method_encode_methodspec): Removed the `method'
17704         argument; we get it from `gmethod->declaring'.
17705         (inflated_method_get_object): Removed the `declaring' argument.
17706
17707 2004-02-09  Martin Baulig  <martin@ximian.com>
17708
17709         * class.h (MonoGenericMethod): New type.
17710         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
17711         `generic_method'.
17712
17713         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
17714         a `MonoGenericMethod *gen_method' one.
17715
17716         * class.c (mono_class_inflate_generic_type): Take an additional
17717         `MonoGenericMethod * argument.  This is only non-NULL if we're
17718         inflating types for a generic method.   
17719         (mono_class_inflate_generic_signature): Renamed to
17720         inflate_generic_signature() and made static; take a
17721         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
17722         (inflate_generic_header): Take a `MonoGenericMethod *' argument
17723         instead of a `MonoGenericInst *' one.
17724         (mono_class_inflate_generic_method): Likewise.
17725
17726         * reflection.c (encode_generic_method_sig): Take a
17727         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
17728         (method_encode_methodspec): Likewise.
17729         (inflated_method_get_object): Likewise. 
17730
17731         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
17732         field with a `MonoGenericMethod *gmethod' one.  
17733
17734 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
17735
17736         * class.h (mono_class_has_parent): add parens to expansion
17737         so you can ! this.
17738
17739 2004-02-08  Martin Baulig  <martin@ximian.com>
17740
17741         * image.h (MonoImage): Removed `generics_cache'.
17742
17743         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
17744         instead of a `MonoType *' argument; removed the `inflate_methods'
17745         argument.  Don't inflate methods here.
17746
17747         * loader.c (find_method): If it's a generic instance, call
17748         mono_class_init() on the `sclass->generic_inst->generic_type'.
17749
17750         * metadata.c (mono_type_size): Make this work on uninitialized
17751         generic instances; call it on the `ginst->generic_type's class.
17752
17753         * reflection.c (mono_reflection_bind_generic_parameters): Call
17754         mono_class_from_generic() to create the `ginst->klass'.
17755
17756 2004-02-08  Martin Baulig  <martin@ximian.com>
17757
17758         * class.h (MonoClass): Changed type of `generic_inst' from
17759         `MonoType *' to `MonoGenericInst *'.
17760
17761 2004-02-08  Martin Baulig  <martin@ximian.com>
17762
17763         * icall.c (ves_icall_Type_BindGenericParameters): Just call
17764         mono_type_get_object(), this is now creating a `MonoGenericInst'
17765         for MONO_TYPE_GENERICINST.
17766         (ves_icall_MonoGenericInst_GetParentType): Likewise.
17767         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
17768
17769         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
17770         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
17771         (inflated_method_get_object): Added `MonoClass *refclass' argument.
17772         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
17773         and reflected type.
17774
17775         * reflection.h (MonoReflectionInflatedMethod): Removed
17776         `declaring_type' and `reflected_type'.
17777
17778 2004-02-08  Martin Baulig  <martin@ximian.com>
17779
17780         * class.h (MonoGenericInst): Added `MonoType *parent' and
17781         `MonoType **ifaces'.
17782
17783         * reflection.h (MonoReflectionGenericInst): Removed `klass',
17784         `parent' and `interfaces'.
17785
17786         * reflection.c (mono_reflection_bind_generic_parameters): Take a
17787         `MonoType *' argument and return a `MonoType *'.
17788
17789         * icall.c
17790         (ves_icall_MonoGenericInst_GetParentType): New interncall.
17791         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
17792
17793 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
17794
17795         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
17796         valuetype marshalling.
17797
17798 2004-02-06  Martin Baulig  <martin@ximian.com>
17799
17800         * class.c
17801         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
17802         (my_mono_class_from_generic_parameter): Likewise.
17803
17804 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
17805
17806         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
17807         contents of the symbol files lazily.
17808
17809         * object.h (MonoThread): Add 'name' and 'name_len' fields.
17810
17811         * threads.h threads.c icall.c: New icalls for getting and setting the
17812         threads name.
17813
17814 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
17815
17816         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
17817         Raise an exception when the domain is not found.
17818
17819 2004-02-03  Martin Baulig  <martin@ximian.com>
17820
17821         * reflection.c (mono_image_get_methodspec_token): Use the
17822         uninflated signature; fixes gen-33.
17823
17824 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
17825
17826         * gc.c threads.c: Make the finalizer thread a normal managed thread so
17827         the finalizer code can use thread functionality.
17828
17829         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
17830         the finalizer thread.
17831
17832         * threads.c: Make some functions more robust.
17833
17834         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
17835
17836         * metadata.h: Add new marshalling conventions.
17837
17838         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
17839         stringbuilder marshalling. Fixes #53700.
17840
17841         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
17842
17843         * reflection.c (mono_image_get_type_info): Save declarative security
17844         info.
17845
17846         * reflection.c (mono_image_get_field_info): Handle uninitialized 
17847         unmanaged fields as well.
17848
17849         * appdomain.c: Bump corlib version.
17850
17851 2004-02-01  Martin Baulig  <martin@ximian.com>
17852
17853         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
17854         method type arguments.  
17855
17856 2004-01-30  Duncan Mak  <duncan@ximian.com>
17857
17858         * marshal.h: Add prototype for
17859         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
17860         and
17861         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
17862         fix the build.
17863
17864 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
17865
17866         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
17867         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
17868
17869 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
17870
17871         * marshal.c (mono_marshal_get_native_wrapper): Add support for
17872         custom marshalling of valuetypes.
17873
17874         * marshal.c: Fix some warnings.
17875
17876 2004-01-29  Martin Baulig  <martin@ximian.com>
17877
17878         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
17879         for generic method parameters.
17880
17881         * reflection.c (method_encode_methodspec): Write the uninflated
17882         signature into the methodspec table.
17883         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
17884         is always the uninflated method.
17885         (reflection_methodbuilder_to_mono_method): Copy the generic
17886         parameters from the MethodBuilder into `header->gen_params'.
17887
17888 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
17889
17890         * class.c (mono_class_from_generic_parameter): Fix warning.
17891
17892 2004-01-27  Martin Baulig  <martin@ximian.com>
17893
17894         * class.c (mono_class_from_generic_parameter): Don't create
17895         `klass->methods' here.  
17896
17897 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
17898
17899         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
17900         extension since it does not work with libraries named lib<FOO>.dll.so.
17901
17902 2004-01-25  Martin Baulig  <martin@ximian.com>
17903
17904         * class.c (mono_class_inflate_generic_type): Added support for
17905         MONO_TYPE_GENERICINST.
17906
17907         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
17908         inflate methods on open constructed types.      
17909
17910 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17911
17912         * object.c: fire ProcessExit event in the root AppDomain after running
17913         Main. Fixes bug #53299.
17914
17915 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
17916
17917         * socket-io.c: include the new socket-wrappers.h header.
17918         Use the wrappers instead of the unix socket functions to make the code
17919         more clear.
17920
17921 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
17922
17923         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
17924
17925         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
17926         Fixes #22532.
17927
17928 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
17929
17930         * reflection.c (mono_image_create_pefile): Handle the case when the
17931         entry point is not a MethodBuilder.
17932
17933         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
17934         field to ReflectionMethod since it is not allways a builder.
17935
17936         * reflection.c (type_get_fully_qualified_name): New helper function to
17937         return the fully qualified name of a type.
17938
17939         * reflection.c (encode_marshal_blob): Always emit the fully qualified
17940         type name for custom marshallers.
17941
17942         * reflection.c (mono_marshal_spec_from_builder): Ditto.
17943
17944         * class.c (mono_class_setup_vtable): If a parent class already 
17945         implements an interface, use the implementing methods from that class.
17946         Fixes #53148.
17947
17948 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17949
17950         * threadpool.c: just return instead of ExitThread to allow for thread
17951         clean up earlier.
17952
17953 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
17954
17955         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
17956         when closing resource modules.
17957
17958         * reflection.c (mono_image_create_pefile): Handle the case when the
17959         entry point is not a MethodBuilder.
17960
17961         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
17962         field to ReflectionMethod since it is not allways a builder.
17963
17964 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
17965
17966         * marshal.c (mono_marshal_get_managed_wrapper): 
17967         mono_marshal_alloc takes native int so CONV_I
17968         the arg for 64bits.
17969
17970 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
17971
17972         * reflection.c (fixup_cattrs): New function to fixup the methoddef
17973         tokens in the cattr table. Fixes #53108.
17974
17975 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17976
17977         * loader.c: don't trim ".dll" before looking up in the config file.
17978         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
17979
17980 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
17981
17982         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
17983         Return the module which contains the resource as well.
17984         (ves_icall_System_Reflection_Module_Close): New icall.
17985
17986         * appdomain.c: Bump corlib version number.
17987
17988         * image.c (mono_image_addref): New public function.
17989
17990         * assembly.c: Call mono_image_addref.
17991
17992         * reflection.c (mono_module_get_object): Increase reference count of 
17993         the image.
17994
17995         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
17996         Fixes #22532.
17997
17998         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
17999         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
18000         proper exceptions on DllImport problems.
18001
18002 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
18003
18004         * class.c, metadata.c: eliminate CSIZE macro.
18005
18006 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
18007
18008         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
18009         * object.h: Added async_callback field in MonoAsyncResult.
18010         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
18011         * verify.c: Added async_callback in MonoAsyncResult layout.
18012
18013 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
18014
18015         * reflection.c (mono_reflection_get_custom_attrs): Add support
18016         for Modules.
18017
18018 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
18019
18020         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
18021         marshalling.
18022         (mono_marshal_method_from_wrapper): Add null pointer check.
18023
18024 2004-01-16  Martin Baulig  <martin@ximian.com>
18025
18026         * debug-mono-symfile.h: Set version number to 36 and reflect
18027         latest symbol writer changes.
18028
18029 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
18030
18031         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
18032         multi-dimensional arrays.
18033         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
18034         (mono_class_from_mono_type): Use bounded_array_class_get.
18035         
18036         * class.c (mono_bounded_array_class_get): New function which takes
18037         a 'bounded' bool argument to distinguish vectors from one dimensional
18038         arrays.
18039
18040         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
18041         bounded_array_class_get if the array has bounds.
18042
18043         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
18044         Search modules loaded using AssemblyBuilder:AddModule as well.
18045
18046 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18047
18048         * appdomain.c: increased corlib version.
18049         * filewatcher.c: removed g_print.
18050         * icall.c:
18051         (get_property_info): only allocate what is actually requested.
18052         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
18053
18054 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18055
18056         * Makefile.am: added filewatcher.[ch]
18057         * filewatcher.[ch]: FileSystemWatcher runtime support.
18058         * icall.c: added new FSW icalls.
18059
18060 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
18061
18062         * string-icalls.c: fix stringbuilder regression as suggested by
18063         Iain McCoy <iain@mccoy.id.au>.
18064
18065 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
18066
18067         * process.c (process_read_stringtable_block): Recognize '007f' as
18068         a language neutral stringtable block.
18069
18070 2004-01-12  Patrik Torstensson
18071
18072         * object.h (MonoStringBuilder) : Changed layout to support our
18073         new stringbuilder class.
18074         * marshal.c: Change marshalling to support the new layout of 
18075         string builder.
18076         * appdomain.c: increased version number because new layout of
18077         string builder.
18078
18079 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
18080
18081         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
18082         assembly name as an string instead of an AssemblyName, since it is
18083         easier to extract info from it.
18084
18085         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
18086         the culture subdirectories too. Fixes #52231.
18087
18088 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18089
18090         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
18091         It takes 2 new parameters with an optional name for the method to look
18092         for and case ignoring info.
18093
18094         * threadpool.c: removed unused variable.
18095
18096 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18097
18098         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
18099         It takes 2 new parameters with an optional name for the property to look
18100         for and case ignoring info.
18101         Fixes bug #52753.
18102
18103 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
18104
18105         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
18106         Fix #52451.
18107
18108 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18109
18110         * appdomain.c:
18111         * assembly.c: escape the uri before passing it to g_filename_from_uri.
18112         Fixes bug #52630.
18113
18114 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
18115
18116         * reflection.c: Add support for more than one unmanaged resource.
18117
18118         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
18119         in field->def_value, as done in all other cases.
18120
18121         * reflection.c (mono_reflection_get_custom_attrs): Add support for
18122         TypeBuilders.
18123
18124         * reflection.c (mono_reflection_create_runtime_class): Remove 
18125         errorneous assignment to klass->element_class, since it is already
18126         done in mono_reflection_setup_internal_class.
18127
18128 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18129
18130         * gc.c: added missing LeaveCriticalSection.
18131         * icall.c: indented a couple of lines.
18132         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
18133         if we call EndInvoke inside a callback. Fixes bug #52601.
18134
18135 2004-01-07  Martin Baulig  <martin@ximian.com>
18136
18137         * mono-debug-debugger.h
18138         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
18139
18140 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
18141
18142         * appdomain.c: Use messages in NotImplementedException.
18143
18144         * exception.c (mono_get_exception_not_implemented): Now this takes
18145         a message argument.
18146
18147         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
18148         exception instead of g_asserting an aborting when something is not
18149         implemented.
18150
18151         Add some inline docs.
18152
18153 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
18154
18155         * reflection.h: Update after changes to object layout.
18156
18157         * reflection.c: Implement saving of unmanaged aka win32 resources.
18158
18159         * appdomain.c: Bump version number.
18160
18161         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
18162         Handle missing domains gracefully.
18163
18164 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
18165
18166         * file-io.c : On Windows, there are much more invalid_path_chars.
18167
18168 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
18169
18170         * class.h, object.c: prepare for GetType () speedup.
18171
18172 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
18173
18174         * profiler.c: workaround for --profile null reference exception on
18175           cygwin. Patch by Patrik Torstensson.
18176
18177 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
18178
18179         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
18180         make work for unaligned access.
18181
18182 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
18183
18184         * class.c: small cleanup (class->fields [i] -> field).
18185         * image.c: check address of metadata is valid.
18186
18187 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
18188
18189         * assembly.h assembly.c (mono_assembly_loaded): New public function to
18190         search the list of loaded assemblies.
18191
18192         * reflection.c (mono_reflection_type_from_name): Use 
18193         mono_assembly_loaded instead of mono_image_loaded.
18194
18195         * reflection.c: Fix warnings.
18196
18197 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
18198
18199         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
18200         is dynamic. This is needed since an assembly can contain both dynamic and
18201         non-dynamic images.
18202
18203         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
18204         assembly->dynamic.
18205
18206         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
18207
18208         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
18209         to store modules loaded using AddModule.
18210
18211         * reflection.c (mono_image_fill_file_table): Generalize this so it works
18212         on Modules.
18213
18214         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
18215
18216         * reflection.c (mono_image_fill_export_table_from_module): New function to
18217         fill out the EXPORTEDTYPES table from a module.
18218
18219         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
18220         into a separate function. Also handle loaded non-dynamic modules.
18221
18222         * reflection.c (mono_image_basic_init): Fix memory allocation.
18223
18224         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
18225
18226         * assembly.c (mono_assembly_load_references): Make this public.
18227
18228 2003-12-19  Martin Baulig  <martin@ximian.com>
18229
18230         * class.c (mono_class_initialize_generic): Made this static, take
18231         a `MonoGenericInst *' instead of a `MonoClass *'.
18232         (mono_class_from_generic): Call mono_class_initialize_generic()
18233         unless we're already initialized or being called from
18234         do_mono_metadata_parse_generic_inst().
18235
18236         * class.h (MonoGenericInst): Added `initialized' and
18237         `init_pending' flags.
18238
18239         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
18240         `mono_class_init (gklass)' or mono_class_initialize_generic()
18241         here; set `generic_inst->init_pending' while parsing the
18242         `type_argv'.
18243
18244 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
18245
18246         * locales.c: include string.h for memxxx prototypes
18247
18248 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
18249
18250         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
18251         constructor when accessing literal fields.
18252
18253 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
18254
18255         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
18256
18257         * reflection.c (assembly_add_resource_manifest): New function to fill
18258         the MANIFESTRESOURCE table.
18259
18260         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
18261
18262         * reflection.h: Update to changes in class layout.
18263
18264         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
18265         Reenable call to mono_runtime_is_shutting_down ().
18266
18267         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
18268         determine if the runtime is shutting down.
18269
18270 2003-12-16  Jackson Harper <jackson@ximian.com>
18271
18272         * icall.c: comment out call to mono_runtime_is_shutting_down to
18273         fix build.
18274         
18275 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
18276
18277         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
18278         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
18279
18280 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
18281
18282         * reflection.c: move definition of swap_with_size
18283         to before its first call
18284
18285 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
18286
18287         * appdomain.c (mono_runtime_is_shutting_down): New public function.
18288
18289         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
18290         icall.
18291
18292         * object.c: Fix warnings.
18293
18294         * icall.c (ves_icall_Type_Get...): Only consider inherited static
18295         members if FlattenHierarchy is set.
18296
18297         * reflection.c (mono_image_add_decl_security): New function to emit
18298         declarative security.
18299
18300         * reflection.h reflection.c: Add support for declarative security.
18301
18302         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
18303         
18304 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
18305
18306         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
18307         
18308         * appdomain.c verify.c: Moved corlib version checking into its own
18309         function in appdomain.c since it needs to create vtables etc.
18310
18311 2003-12-13  Patrik Torstensson <p@rxc.se>
18312
18313         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
18314         instead of unwrapped server.
18315
18316 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
18317
18318         * verify.c (check_corlib): Fix field index.
18319
18320 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
18321
18322         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
18323         GetGacPath icall.
18324
18325 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
18326
18327         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
18328         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
18329         cope with sizeof(size_t) != sizeof(guint32).
18330
18331 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18332
18333         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
18334         in case of failure.
18335
18336 2003-12-10  Mark Crichton <crichton@gimp.org>
18337
18338         * icall.c: removed the GetNonZeroBytes.  We now handle this case
18339         in managed code.
18340
18341         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
18342
18343 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
18344
18345         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
18346         marked as deleted.
18347
18348 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
18349
18350         * verify.c (check_corlib): Handle the case when the version field is 
18351         initialized by a static constructor.
18352
18353 2003-12-08  Patrik Torstensson  <p@rxc.se>
18354
18355     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
18356
18357 2003-12-08  Martin Baulig  <martin@ximian.com>
18358
18359         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
18360         a MonoReflectionGenericParameter, also take the parameter index
18361         and name as arguments.
18362         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
18363         (ves_icall_MonoGenericParam_initialize): New interncall.
18364         (ves_icall_Type_make_byref_type): New interncall.
18365
18366         * reflection.h (MonoReflectionGenericParam): Derive from
18367         MonoReflectionType, not just from MonoObject.  Added `refobj' and
18368         `index' fields.
18369
18370         * reflection.c (mono_reflection_define_generic_parameter): Create
18371         and return a new MonoReflectionGenericParam; don't initialize the
18372         constraints here.
18373         (mono_reflection_initialize_generic_parameter): New public method;
18374         initializes the constraints and creates the `param->pklass'.
18375
18376 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
18377
18378         * reflection.h reflection.c: Use the new fields 'num_types', 
18379         'num_fields' and 'num_methods' to track the number of types etc.
18380
18381         * verify.c (check_corlib): Check corlib version number.
18382
18383 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
18384
18385         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
18386         function works on all methods.
18387
18388 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
18389
18390         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
18391         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
18392         the custom_type_info flag of the transparent proxy.
18393         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
18394         objects that supports IRemotingTypeInfo.
18395         * object.h: Added custom_type_info field in transparent proxy.
18396
18397 2003-12-06  Martin Baulig  <martin@ximian.com>
18398
18399         * class.c (mono_class_create_from_generic): Removed.
18400         (mono_class_from_generic): Check `ginst->klass' before doing
18401         anything else.  This is important to fully support "recursive"
18402         generic types.
18403
18404         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
18405         empty `generic_inst->klass' before doing anything else.
18406
18407 2003-12-06  Dick Porter  <dick@ximian.com>
18408
18409         * verify.c: 
18410         * object.h:
18411         * icall.c:
18412         * locales.c: Use C structs to access class fields.  Don't do a
18413         conversion between MonoString and UChar because both are
18414         platform-endian UTF-16.  Compare now takes startindex and count
18415         parameters.  Add a char overload for IndexOf.  Speed up the
18416         invariant string IndexOf.
18417
18418 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
18419
18420         * Makefile.am (monosn_LDADD): Fix parallel build.
18421
18422 2003-12-04  Martin Baulig  <martin@ximian.com>
18423
18424         * icall.c
18425         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
18426         (ves_icall_Type_make_array_type): New interncall.       
18427
18428 2003-12-04  Martin Baulig  <martin@ximian.com>
18429
18430         * locales.c: also change it in the !HAVE_ICU case.
18431
18432 2003-12-04  Dick Porter  <dick@ximian.com>
18433
18434         * icall.c:
18435         * locales.c: construct_compareinfo is now in CompareInfo, not
18436         CultureInfo.
18437
18438 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
18439
18440         * image.c (mono_image_load_file_for_image): Cache loaded images in the
18441         image->files array.
18442
18443         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
18444         table as well.
18445
18446         * assembly.c (mono_assembly_load_references): Only load references
18447         once.
18448
18449         * class.c (mono_class_from_name): Avoid linear search of the 
18450         EXPORTEDTYPE table.
18451
18452         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
18453
18454 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
18455
18456         * image.h (MonoImage): Add 'field_cache' field.
18457
18458         * loader.c (mono_field_from_token): Cache field lookups.
18459         
18460         * reflection.c (mono_module_get_object): Fix name property.
18461
18462         * icall.c (ves_icall_get_enum_info): Update after changes to 
18463         mono_metadata_get_constant_index ().
18464
18465         * icall.c: Get rid of get_type_info icall, use a separate icall for
18466         each type property to avoid needless memory allocations. Fixes #51514.
18467
18468         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
18469         to avoid needless binary searches.
18470
18471         * class.c (class_compute_field_layout): Move the initialization of
18472         field->def_value to mono_class_vtable ().
18473
18474         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
18475         non-corlib types.
18476
18477         * object.c (mono_object_allocate): Make it inline.
18478
18479         * object.c (mono_object_allocate_spec): Make it inline.
18480         
18481 2003-12-02  Dick Porter  <dick@ximian.com>
18482
18483         * locales.c (create_NumberFormat): NumberFormatInfo construction.
18484         Patch by Mohammad DAMT (mdamt@cdl2000.com).
18485
18486 2003-12-01  Dick Porter  <dick@ximian.com>
18487
18488         * threads.c: Fix signature and call in CreateMutex and
18489         CreateEvent.
18490
18491 2003-12-01  Dick Porter  <dick@ximian.com>
18492
18493         * icall.c: 
18494         * locales.c: Implement string compares and searching
18495
18496         * object.h: Add extra Thread field
18497
18498 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
18499
18500         * reflection.c (fixup_method): Add support for MonoCMethod.
18501
18502 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
18503
18504         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
18505
18506         * reflection.c (assembly_name_to_aname): Allow extra characters in
18507         assembly names. Fixes #51468.
18508
18509 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
18510
18511         * exception.c (mono_exception_from_name_domain): New helper function.
18512
18513         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
18514         exception object in the correct domain.
18515
18516         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
18517         formatting + make a copy a the input data.
18518
18519         * loader.c (mono_get_method_from_token): Methods which contain
18520         native code do not have entries in the ImplMap.
18521
18522         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
18523         Thanks to Gonzalo for spotting this.
18524         
18525         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
18526         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
18527
18528         * assembly.h (mono_assembly_load_from): Split the second part of 
18529         assembly loading into a new public function.
18530
18531         * exception.h (mono_get_exception_bad_image_format): New function.
18532
18533 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
18534
18535         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
18536         Enumerate all modules inside a dynamic assembly. Fixes #51293.
18537         
18538         * icall.c: Add new icall for creating dynamic methods.
18539
18540         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
18541
18542         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
18543
18544         * reflection.c (mono_reflection_create_dynamic_method): New icall to
18545         create a dynamic method.
18546
18547         * reflection.c (resolve_object): New helper function.
18548
18549         * reflection.c: Generalize ReflectionMethodBuilder and the functions
18550         which manipulate it so they can also work on dynamic methods.
18551
18552         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
18553         creating the MonoReflectionMethodAux structure if it is not needed.
18554         
18555         * reflection.h verify.c: Update after changes to object layout.
18556
18557         * reflection.c (method_builder_encode_signature): Fix compilation on
18558         gcc 2.95.x.
18559
18560 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
18561
18562         * appdomain.h: Added support for context static fields. Added static_data
18563           field to MonoAppContext and renamed thread_static_fields to a more
18564           generic special_static_fields in MonoAppDomain, since it can now contain
18565           context static fields.
18566         * domain.c: Updated hashtable name.
18567         * object.c: Replaced field_is_thread_static() for a more generic
18568           field_is_special_static() which also checks for context static attribute.
18569           In mono_class_vtable(), added support for static context fields.
18570         * threads.c: Changed methods that manage thread static fields to more
18571           generic methods so they can be reused both for thread and context static
18572           data.
18573         * threads.h: Declared some new methods.
18574
18575 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
18576
18577         * reflection.h: Update after changes to the managed types.
18578
18579         * reflection.c (encode_custom_modifiers): New helper function.
18580
18581         * reflection.c (method_encode_signature): Emit custom modifiers.
18582
18583         * reflection.c (field_encode_signature): Emit custom modifiers.
18584
18585 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
18586
18587         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
18588
18589         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
18590         implementation.
18591
18592         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
18593         icall.
18594
18595         * object.c (mono_field_get_value_object): New function.
18596
18597         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
18598         specific.
18599
18600 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
18601
18602         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
18603         return a preallocated out-of-memory exception instance.
18604
18605         * object.c (out_of_memory): Use the new function.
18606
18607         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
18608         flag is before the custom modifiers. Fixes #49802.
18609
18610 2003-11-16  Martin Baulig  <martin@ximian.com>
18611
18612         * class.c (mono_class_is_open_constructed_type): Implemented the
18613         MONO_TYPE_GENERICINST case.
18614
18615 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
18616
18617         * assembly.c (mono_assembly_fill_assembly_name): New function to
18618         fill out the MonoAssemblyName structure.
18619         (mono_assembly_open): Use the new function.
18620
18621         * icall.c (fill_reflection_assembly_name): New helper function.
18622
18623         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
18624         new function.
18625
18626         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
18627
18628 2003-11-15  Martin Baulig  <martin@ximian.com>
18629
18630         * class.c (mono_class_is_open_constructed_type): New public
18631         function; checks whether a type is an open constructed type,
18632         ie. whether it still contains type parameters.
18633         (mono_class_inflate_generic_type): If we're a type parameter and
18634         the inflated type is also a MONO_TYPE_(M)VAR, return the original
18635         type.
18636
18637         * class.h (MonoGenericInst): Added `guint32 is_open'.
18638
18639         * loader.c (method_from_methodspec): Check whether we're an open
18640         or closed constructed type and set `ginst->is_open'.
18641
18642         * reflection.c (mono_reflection_bind_generic_parameters): Check
18643         whether we're an open or closed constructed type and set
18644         `ginst->is_open'.
18645         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
18646         from open constructed types.
18647
18648 2003-11-15  Martin Baulig  <martin@ximian.com>
18649
18650         * reflection.c (mono_reflection_bind_generic_parameters): If we're
18651         a generic instance (instead of a generic type declaration) with
18652         unbound generic parameters, bind them to our actual types.
18653
18654 2003-11-14  Martin Baulig  <martin@ximian.com>
18655
18656         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
18657
18658         * reflection.c (mono_reflection_bind_generic_parameters): If we're
18659         an interface type, populate `res->interfaces' with instantiated
18660         versions of all the interfaces we inherit.
18661
18662 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
18663
18664         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
18665         when MONO_PATH is set but doesn't contain the install dir.
18666
18667 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18668
18669         * icall.c:
18670         (ves_icall_Type_GetInterfaces): don't return an interface twice when
18671         it's also implemented in base classes. Fixes bug #50927.
18672
18673 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
18674
18675         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
18676         if this method is called from a finalizer. Fixes #50913.
18677
18678 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
18679
18680         * threads.c: Implement VolatileRead/VolatileWrite
18681
18682         * icall.c: Add new icalls for VolatileRead/VolatileWrite
18683
18684 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
18685
18686         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
18687         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
18688         2.95.3.
18689
18690         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
18691         from Peter Ross (pro@missioncriticalit.com).
18692         
18693 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
18694
18695         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
18696
18697 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
18698
18699         * assembly.c (mono_assembly_load_references): Disable check because it
18700         triggers on older corlibs which lots of people have.
18701
18702 2003-11-12  Jackson Harper  <jackson@ximian.com>
18703
18704         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
18705         load corlib.dll if mscorlib.dll is not found.
18706         * assembly.h: Remove corlib name define.
18707         * class.c:
18708         * domain.c:
18709         * image.c: Change corlib name to mscorlib.
18710         
18711 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
18712
18713         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
18714
18715 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
18716
18717         * appdomain.h: Added loader_optimization here to sync with the C#
18718         code, and add disallow_binding_redirects field.
18719
18720 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
18721
18722         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
18723
18724         * reflection.c (mono_image_build_metadata): Fix crash on modules
18725         with no types.
18726
18727         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
18728
18729         * icall.c (ves_icall_get_method_info): Return callingConvention as
18730         well.
18731
18732         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
18733         namespaces from the EXPORTEDTYPE table as well.
18734
18735         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
18736         from all modules inside the assembly.
18737         
18738 2003-11-11  Martin Baulig  <martin@ximian.com>
18739
18740         * reflection.c (mono_reflection_bind_generic_parameters): Make
18741         this work for interfaces.
18742
18743 2003-11-11  Martin Baulig  <martin@ximian.com>
18744
18745         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
18746
18747 2003-11-11  Martin Baulig  <martin@ximian.com>
18748
18749         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
18750         "MonoInflatedMethod" and "MonoInflatedCtor".
18751
18752 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
18753
18754         * reflection.c (resolution_scope_from_image): Use the assembly table
18755         from the manifest module, since other modules don't have it.
18756
18757         * debug-helpers.c (mono_type_full_name): New helper function.
18758
18759         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
18760
18761         * image.c (mono_image_load_file_for_image): New public function which
18762         is a replacement for the load_file_for_image in class.c.
18763
18764         * assembly.c (mono_assembly_load_module): A wrapper for the function
18765         above which does assembly association and reference loading too.
18766
18767         * class.c (mono_class_from_name): Call mono_assembly_load_module.
18768
18769 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18770
18771         * appdomain.c: not all of the attributes for the full assembly name
18772         are required and the order doesn't matter. Fixes bug #50787.
18773
18774 2003-11-10  Dick Porter  <dick@ximian.com>
18775
18776         * locales.c: Use platform-endian UTF16
18777
18778 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
18779
18780         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
18781         
18782 2003-11-10  Martin Baulig  <martin@ximian.com>
18783
18784         * metadata.c
18785         (mono_metadata_load_generic_params): Make this actually work.
18786
18787         * reflection.c (mono_reflection_bind_generic_parameters): If our
18788         parent is a generic instance, pass all the `types' to it, no
18789         matter whether it has the same number of type parameters or not.
18790
18791 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
18792
18793         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
18794
18795         * assembly.c (mono_assembly_load_references): Move the image<->assembly
18796         assignment code to this function so it gets called recursively for all
18797         modules.
18798
18799         * image.c (load_modules): Remove the assembly assignment since it is
18800         now done by mono_assembly_load_references.
18801         
18802         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
18803         Add 'module' argument.
18804         (mono_module_get_types): New helper function.
18805         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
18806
18807 2003-11-08  Martin Baulig  <martin@ximian.com>
18808
18809         * class.c (mono_class_inflate_generic_method): Interface method
18810         don't have a header.
18811
18812         * reflection.c (mono_image_get_methodspec_token): Take an
18813         additional `MonoGenericInst *' argument instead of reading it from
18814         the header; this is necessary to support interfaces.
18815         (mono_image_create_token): Pass the `MonoGenericInst *' from the
18816         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
18817         (inflated_method_get_object): Take an additional `MonoGenericInst *'
18818         argument.
18819
18820         * reflection.h (MonoReflectionInflatedMethod): Added
18821         `MonoGenericInst *ginst'.
18822
18823 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
18824
18825         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
18826
18827 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
18828
18829         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
18830
18831 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
18832
18833         * reflection.c 
18834         (reflection_methodbuilder_from_method_builder):
18835         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
18836         initialize a ReflectionMethodBuilder structure.
18837         (mono_image_get_methodbuilder_token):
18838         (mono_image_get_ctorbuilder_token): New functions to emit memberref
18839         tokens which point to types in another module inside the same assembly.
18840
18841         * reflection.c: Use the new helper functions.
18842         
18843         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
18844
18845         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
18846         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
18847
18848         * reflection.c (resolution_scope_from_image): Emit a moduleref if
18849         neccesary.
18850
18851         * reflection.c (mono_image_build_metadata): Emit metadata only for the
18852         current module. Emit the manifest only for the main module.
18853
18854         * reflection.c (mono_image_create_token): Add assertion when a 
18855         memberref needs to be created.
18856
18857         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
18858
18859         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
18860         larger buffer for the custom attribute blob. Fixes #50637.
18861         
18862 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18863
18864         * threadpool.c: notify listener on async processing handles after
18865         invoking the async callback. Thanks to Zoltan.
18866
18867 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
18868
18869         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
18870         avoid code duplication.
18871
18872         * reflection.h (MonoDynamicImage): New type which is currently unused,
18873         but will be used through the ref.emit code in place of 
18874         MonoDynamicAssembly.
18875
18876         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
18877         object layout.
18878
18879         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
18880         a MonoDynamicImage instead of just a MonoImage.
18881         
18882         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
18883         icalls to ModuleBuilder but keep their semantics, so they will work
18884         with moduleb->assemblyb. This will change later.
18885         
18886 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
18887
18888         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
18889         object layout.
18890
18891         * reflection.c (mono_image_build_metadata): Avoid creation of a default
18892         main module, since it is now done by the managed code.
18893
18894 2003-11-03  Martin Baulig  <martin@ximian.com>
18895
18896         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
18897         `ginst->klass' here.
18898         (method_encode_methodspec): Don't use the `ginst->generic_method's
18899         klass if it's a generic instance, use `ginst->klass' in this case.
18900
18901 2003-11-03  Martin Baulig  <martin@ximian.com>
18902
18903         * reflection.c (mono_image_get_generic_method_param_info):
18904         Removed, use mono_image_get_generic_param_info() instead.
18905         (mono_image_get_type_info): Write the GenericParam table before
18906         the Method table.  This is neccessary because in the GenericParam
18907         table, type parameters of the class (ie. '!0' etc.) must come
18908         before the ones from its generic methods (ie. '!!0' etc).
18909
18910 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
18911
18912         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
18913
18914 2003-11-02  Martin Baulig  <martin@ximian.com>
18915
18916         * reflection.c (create_generic_typespec): Take a
18917         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
18918         the generic parameters from it.
18919
18920 2003-11-02  Martin Baulig  <martin@ximian.com>
18921
18922         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
18923         instead of a `MonoClassField *' since we just need the type.
18924         (create_generic_typespec): New static function.  Creates a
18925         TypeSpec token for a generic type declaration.
18926         (mono_image_get_generic_field_token): New static function.
18927         (mono_image_create_token): If we're a FieldBuilder in a generic
18928         type declaration, call mono_image_get_generic_field_token() to get
18929         the token.
18930
18931 2003-11-02  Martin Baulig  <martin@ximian.com>
18932
18933         * reflection.h
18934         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
18935         `MonoReflectionGenericInst *declaring_type' and
18936         `MonoReflectionGenericInst *reflected_type' fields.
18937
18938         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
18939         `MonoReflectionGenericInst *declaring_type' and a
18940         `MonoReflectionGenericInst *reflected_type' argument instead of a
18941         single `MonoReflectionGenericInst *type' one.  Set
18942         `res->declaring_type' and `res->reflected_type' from them.
18943         (mono_reflection_inflate_field): Likewise.      
18944
18945 2003-11-02  Martin Baulig  <martin@ximian.com>
18946
18947         * class.c (mono_class_setup_vtable): Don't store generic methods
18948         in the vtable.  
18949
18950 2003-11-02  Martin Baulig  <martin@ximian.com>
18951
18952         * reflection.h (MonoReflectionGenericInst): Added
18953         `MonoReflectionType *declaring_type'.
18954
18955         * reflection.c (mono_reflection_bind_generic_parameters): Use
18956         `if (tb->parent)' instead of `klass->parent'.
18957
18958 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
18959
18960         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
18961         with an empty ASSEMBLY table.
18962
18963         * reflection.c (mono_image_build_metadata): Avoid using the same loop
18964         variable in the inner and outer loops.
18965
18966 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
18967
18968         * metadata.h (mono_metadata_make_token): Put parentheses around macro
18969         argument.
18970
18971         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
18972         
18973         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
18974         icalls. Instead, do everything in managed code. This is needed since
18975         it is hard to restore the original domain etc. in unmanaged code in the
18976         presence of undeniable exceptions.
18977
18978         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
18979         New icalls to push and pop appdomain refs.
18980
18981 2003-10-31  Martin Baulig  <martin@ximian.com>
18982
18983         * class.c (inflate_generic_type): Renamed to
18984         mono_class_inflate_generic_type() and made it public.
18985
18986         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
18987         New interncall.
18988
18989         * loader.c (mono_field_from_memberref): Also set the retklass for
18990         typespecs.
18991
18992         * fielder.c (mono_image_get_inflated_field_token): New static
18993         method; creates a metadata token for an inflated field.
18994         (mono_image_create_token, fixup_method): Added support for
18995         "MonoInflatedField".
18996         (fieldbuilder_to_mono_class_field): New static function.
18997         (mono_reflection_inflate_field): New public function.
18998
18999         * reflection.h
19000         (MonoReflectionGenericInst): Added `MonoArray *fields'.
19001         (MonoReflectionInflatedField): New typedef.     
19002
19003 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
19004
19005         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
19006         for Solaris and other platforms without s6_addr16
19007
19008 2003-10-30  Martin Baulig  <martin@ximian.com>
19009
19010         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
19011         argument instead of two.
19012         (mono_class_inflate_generic_signature): Likewise.
19013         (inflate_generic_header): Likewise.
19014         (mono_class_inflate_generic_method): Likewise.  In addition, if
19015         `ginst->klass' is set, it becomes the new `method->klass'.
19016
19017         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
19018         field.
19019
19020         * reflection.c (encode_generic_method_sig): Write a 0xa as the
19021         first byte. [FIXME]
19022         (method_encode_methodspec): If we have generic parameters, create
19023         a MethodSpec instead of a MethodRef.
19024         (fixup_method): Added support for "MonoInflatedMethod" and
19025         "MonoInflatedCtor".
19026         (mono_image_create_token): Added support for "MonoInflatedMethod"
19027         and "MonoInflatedCtor".
19028         (inflated_method_get_object): New static function; returns a
19029         managed "System.Reflection.MonoInflatedMethod" object.
19030         (mono_reflection_bind_generic_method_parameters): Return a
19031         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
19032         (mono_reflection_inflate_method_or_ctor): Likewise.
19033         (mono_image_get_generic_method_param_info): Initialize unused
19034         fields to zero.
19035         (mono_image_get_generic_param_info): Likewise.
19036
19037         * reflection.h (MonoReflectionInflatedMethod): New public
19038         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
19039         "S.R.MonoInflatedCtor" classes.
19040
19041         * loader.c (method_from_memberref): If we're a TypeSpec and it
19042         resolves to a generic instance, inflate the method.
19043
19044 2003-10-28  Dick Porter  <dick@ximian.com>
19045
19046         * object.c (mono_runtime_run_main): Convert command-line arguments
19047         into utf8, falling back to the user's locale encoding to do so.
19048
19049 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
19050
19051         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
19052         at this time.
19053
19054         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
19055
19056         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
19057         up icalls at method definition time. Partially fixes #33569.
19058
19059 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
19060
19061         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
19062         marshalling of arrays. Fixes #50116.
19063
19064         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
19065
19066         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
19067         points to a vtable in the dying appdomain.
19068
19069         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
19070         listeners into unmanaged code inside the lock.
19071
19072         * object.c (mono_class_vtable): Turn off typed allocation in non-root
19073         domains and add some comments.
19074
19075 2003-10-25  Martin Baulig  <martin@ximian.com>
19076
19077         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
19078
19079         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
19080
19081         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
19082         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
19083         currently parsing.  Create the generic class and store it in
19084         `generic_inst->klass' before parsing the type arguments.  This is
19085         required to support "recursive" definitions; see mcs/tests/gen-23.cs
19086         for an example.
19087         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
19088         to support recursive typespec entries.
19089
19090         * class.c (mono_class_setup_parent): If our parent is a generic
19091         instance, we may get called before it has its name set.
19092         (mono_class_from_generic): Splitted into
19093         mono_class_create_from_generic() and mono_class_initialize_generic().
19094
19095 2003-10-25  Martin Baulig  <martin@ximian.com>
19096
19097         * icall.c (ves_icall_Type_BindGenericParameters): Return a
19098         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
19099         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
19100         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
19101
19102         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
19103         (create_typespec): Likewise.
19104         (mono_reflection_bind_generic_parameters): Return a
19105         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
19106         (mono_reflection_inflate_method_or_ctor): New public function.
19107
19108         * reflection.h (MonoReflectionGenericInst): New typedef.        
19109
19110 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
19111
19112         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
19113         inside the domain lock. Fixes #49993.
19114         
19115         * object.c (mono_class_vtable): When typed allocation is used, 
19116         allocate vtables in the GC heap instead of in the mempool, since the
19117         vtables contain GC descriptors which are used by the collector even
19118         after the domain owning the mempool is unloaded.
19119
19120         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
19121
19122         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
19123         reflect what it does. Also invalidate mempools instead of freeing
19124         them if a define is set.
19125
19126         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
19127         of the appdomain.
19128         
19129         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
19130         hold the finalizable objects in this domain.
19131
19132         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
19133         appdomain.
19134
19135         * appdomain.c (mono_domain_set): New function to set the current
19136         appdomain, but only if it is not being unloaded.
19137
19138         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
19139         appdomain which is being unloaded.
19140         
19141         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
19142         unloading of the root appdomain.
19143
19144         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
19145         icall to execute a method in another appdomain. Intended as a 
19146         replacement for InternalSetDomain, which can confuse the code 
19147         generation in the JIT.
19148
19149         * appdomain.c (mono_domain_is_unloading): New function to determine
19150         whenever an appdomain is unloading.
19151
19152         * appdomain.c (mono_domain_unload): New function to correctly unload
19153         an appdomain.
19154
19155         * assembly.c (mono_assembly_load_references): Check that an assembly
19156         does not references itself.
19157
19158         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
19159         domain manually, it asks the finalizer thread to do it, then waits for
19160         the result. Also added a timeout.
19161
19162         * icall.c: Register the new icalls.
19163
19164         * threads.h threads.c: Export the mono_gc_stop_world and 
19165         mono_gc_start_world functions.
19166         
19167         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
19168         function to fill out the mempool with 0x2a.
19169
19170 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
19171
19172         * reflection.h (MonoReflectionMethodAux): New structure to store
19173         information which is rarely used, thus is not in the MonoMethod
19174         structure.
19175
19176         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
19177         store the aux info.
19178
19179         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
19180         and marshalling info into the aux structure.
19181
19182         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
19183         from the aux structure.
19184
19185         * loader.c (mono_method_get_param_names): Retrieve the param names from
19186         the aux structure.
19187         
19188 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
19189
19190         * exception.h exception.c: Add AppDomainUnloadedException && fix 
19191         warning.
19192
19193 2003-10-21  Dick Porter  <dick@ximian.com>
19194
19195         * socket-io.c
19196         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
19197         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
19198
19199 2003-10-21  Martin Baulig  <martin@ximian.com>
19200
19201         * reflection.c (mono_reflection_bind_generic_parameters):
19202         `klass->parent' is NULL for interfaces.
19203
19204 2003-10-21  Martin Baulig  <martin@ximian.com>
19205
19206         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
19207
19208 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
19209
19210         * exception.c (mono_exception_from_name_msg): New helper function for
19211         creating exceptions and initializing their message field.
19212
19213         * exception.c: Simplify functions using the new helper.
19214
19215         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
19216         New function.
19217
19218         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
19219         mono_raise_exception, since otherwise gcc doesn't generate the function
19220         epilog for raise_exception, confusing the stack unwinding in the JIT.
19221         Fixes #45043.
19222
19223         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
19224         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
19225         Fixes #49499.
19226
19227 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19228
19229         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
19230         utf8.
19231
19232 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
19233
19234         * icall.c: Removed GetUninitializedObject method because
19235           AllocateUninitializedClassInstance does the same.
19236
19237 2003-10-18  Martin Baulig  <martin@ximian.com>
19238
19239         * class.c (inflate_generic_signature): Renamed to
19240         mono_class_inflate_generic_signature() and made it public.
19241         (my_mono_class_from_generic_parameter): New static function; if we
19242         don't already have the generic parameter's MonoClass, create a
19243         very simple one which is just used internally in the runtime and
19244         not passed back to managed code.
19245
19246         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
19247
19248         * metadata.h (MonoMethodSignature): Moved the
19249         `MonoGenericParam *gen_params' to the MonoMethodHeader.
19250         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
19251
19252         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
19253         ves_icall_MonoMethod_GetGenericArguments(); this is now an
19254         interncall on the MonoMethod class, not on MethodInfo.
19255         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
19256         calling mono_reflection_bind_generic_method_parameters() directly.
19257
19258         * loader.c (mono_method_get_signature): If this is a MethodSpec;
19259         return the already computed `method->signature'.
19260         (method_from_methodspec): New static function to load a method
19261         from a MethodSpec entry.
19262         (mono_get_method_from_token): Call the new method_from_methodspec()
19263         for MethodSpec tokens.  
19264         (mono_get_method_from_token): If we're a generic method, load the
19265         type parameters.
19266
19267         * reflection.c (mono_image_get_memberref_token): Allow
19268         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
19269         table.
19270         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
19271         (mono_image_create_token): First check whether it's a generic
19272         method (so we'd need to create a MethodSpec), then do the other
19273         two alternatives.
19274         (mono_reflection_bind_generic_method_parameters): Return a
19275         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
19276         called directly from the interncall.
19277
19278 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
19279
19280         * reflection.c (load_public_key): Move loading of the public key
19281         into managed code.
19282
19283         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
19284
19285         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
19286         fields.
19287
19288         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
19289         culture, hash_alg and public_key. Fixes #49555.
19290
19291 2003-10-17  Martin Baulig  <martin@ximian.com>
19292
19293         * class.h (MonoGenericInst): Moved this declaration here and added
19294         `MonoMethod *generic_method'.
19295
19296         * icall.c
19297         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
19298         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
19299
19300         * metadata.c (mono_metadata_type_equal): Two types of
19301         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
19302         index; ie. don't compare the address of the `MonoGenericParam'
19303         structure.
19304         (mono_metadata_load_generic_params): Removed the `MonoMethod
19305         *method' argument.
19306
19307         * metadata.h (MonoGenericInst): Moved declaration to class.h.
19308         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
19309
19310         * reflection.c (method_encode_signature): Encode the number of
19311         generic parameters.
19312         (encode_generic_method_sig): New static function.
19313         (method_encode_methodspec): New static function; creates an entry
19314         in the MethodSpec table for a generic method.
19315         (mono_image_get_methodspec_token): New static function.
19316         (mono_image_create_token): Call mono_image_get_methodspec_token()
19317         for generic methods.
19318         (mono_reflection_bind_generic_method_parameters): New public
19319         function.  Instantiates a generic method.
19320
19321 2003-10-16  Martin Baulig  <martin@ximian.com>
19322
19323         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
19324         *gen_params' here from MonoMethodHeader.
19325
19326         * metadata.c (mono_metadata_parse_method_signature): If we have
19327         generic parameters, initialize `method->gen_params' and then set
19328         the correct `type->data.generic_param' in all the parameters.
19329
19330 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
19331
19332         * threads.c (mono_threads_get_default_stacksize): New function to 
19333         return the default stacksize.
19334
19335         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
19336         termination of the finalizer thread, since the previous method had
19337         race conditions. Fixes #49628.
19338
19339         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
19340         as for the other managed threads.
19341
19342 2003-10-16  Martin Baulig  <martin@ximian.com>
19343
19344         * class.c (inflate_generic_signature): Copy `generic_param_count'
19345         and `gen_params'.
19346
19347         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
19348         New interncall.
19349
19350         * metadata.c (mono_metadata_parse_method_signature): Actually set
19351         the `method->generic_param_count' here.
19352         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
19353
19354 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
19355
19356         * object.h: Add a new field to TypedRef to simplify the implementation
19357         of the REFANY opcodes in the JIT.
19358
19359         * icall.c: Make use of the new field.
19360
19361         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
19362         dynamically.
19363
19364 2003-10-15  Martin Baulig  <martin@ximian.com>
19365
19366         * class.c (mono_class_from_gen_param): Renamed to
19367         mono_class_from_generic_parameter() and moved most of the
19368         functionality from mono_reflection_define_generic_parameter()
19369         here; ie. we create a "real" class here.
19370         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
19371         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
19372         previously been called.
19373
19374         * class.h (MonoGenericParam): Moved the declaration of this struct
19375         here from metadata.h and added `MonoMethod *method'.
19376
19377         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
19378         interncall.
19379
19380         * loader.c (mono_get_method_from_token): If we have any generic
19381         parameters, call mono_metadata_load_generic_params() to read them
19382         from the MONO_TABLE_GENERICPAR.
19383
19384         * metadata.c (mono_metadata_load_generic_params): Added
19385         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
19386
19387         * metadata.h (MonoMethodSignature): Replaced
19388         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
19389         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
19390
19391         * reflection.c (mono_reflection_define_generic_parameter): Moved
19392         most of the functionality into the new
19393         mono_class_from_generic_parameter(); set the `method' field if
19394         we're a method parameter.       
19395
19396 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
19397
19398         * marshal.c (emit_struct_conv): if native size is 0
19399         emit no code.
19400
19401 2003-10-14  Martin Baulig  <martin@ximian.com>
19402
19403         * icall.c: The generics API has changed in the spec since it was
19404         added to System.Type; these modifications make it match the spec
19405         again.
19406         (ves_icall_Type_GetGenericParameters): Renamed to
19407         `ves_icall_Type_GetGenericArguments'.
19408         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
19409         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
19410         `ves_icall_MonoType_get_HasGenericArguments'.
19411         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
19412         `ves_icall_MonoType_get_IsGenericParameter'.
19413         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
19414         this is no interncall anymore.
19415         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
19416         `ves_icall_TypeBuilder_get_IsGenericParameter'.
19417
19418 2003-10-14  Martin Baulig  <martin@ximian.com>
19419
19420         * reflection.c (mono_reflection_bind_generic_parameters): Also
19421         inflate generic methods if we're reading the class from IL.
19422
19423 2003-10-13  Martin Baulig  <martin@ximian.com>
19424
19425         * reflection.c (mono_reflection_define_generic_parameter): This
19426         method isn't called directly from the icall anymore; take a
19427         `MonoReflectionAssemblyBuilder *' so we can use this for type and
19428         method generic parameters.
19429         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
19430         (method_builder_encode_signature): Encode generic parameters.
19431         (mono_image_get_method_info): Write generic params to the
19432         MONO_TABLE_GENERICPARAM table.
19433
19434         * reflection.h (MonoReflectionMethodBuilder): Added
19435         `MonoArray *generic_params'.
19436
19437         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
19438
19439         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
19440         wrapper for mono_reflection_define_generic_parameter().
19441         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
19442
19443 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
19444
19445         * marshal.h: Add missing function to fix build.
19446
19447         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
19448         the SetLastError pinvoke attribute.
19449
19450         * marshal.c (mono_marshal_set_last_error): New helper function called
19451         by the generated code.
19452         
19453         * marshal.c (mono_mb_emit_branch): New helper function.
19454
19455         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
19456
19457         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
19458         classes as parameters and return values of delegates. Fixes #29256. 
19459
19460 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
19461
19462         * locales.c: use gint32 in non HAVE_ICU case
19463
19464 2003-10-11  Martin Baulig  <martin@ximian.com>
19465
19466         * mono-debug.c (mono_debug_add_method): Added a workaround for
19467         bug #48591.
19468
19469 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
19470
19471         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
19472         delegates passed to native code must use the STDCALL calling 
19473         convention. Fixes #35987.
19474
19475 2003-10-10  Martin Baulig  <martin@ximian.com>
19476
19477         * class.c (inflate_generic_type): If we're inflating for a generic
19478         type instance (and not for a generic method), return
19479         MONO_TYPE_MVAR unchanged.
19480
19481 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19482
19483         * string-icalls.c: Join ignores null strings in the source array.
19484         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
19485         * threads.c: GetAvailableTheads is slightly more accurate.
19486
19487 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
19488
19489         * threads.h threads.c : add mono_threads_set_default_stacksize
19490         and pass default to CreateThread calls.
19491
19492 2003-10-09  Dick Porter  <dick@ximian.com>
19493
19494         * icall.c:
19495         * locales.h:
19496         * locales.c: Internal calls for constructing CultureInfo and
19497         related objects from libicu (if its available.)
19498
19499 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
19500
19501         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
19502
19503 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19504
19505         * threadpool.c: added an argument to async_invoke_thread that is the
19506         item to process, pass the MonoAsyncResult to the thread start function
19507         when creating a new thread. This way we don't need to acquire any lock
19508         when we're creating a new thread. Readded a semaphore for faster
19509         response times (instead of that Sleep i added).
19510
19511 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
19512
19513         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
19514         get daylight change dates better on Windows, fix handling
19515         of platforms without tm_gmtoff.
19516
19517 2003-10-06  Martin Baulig  <martin@ximian.com>
19518
19519         * class.c (inflate_generic_method): Renamed to
19520         mono_class_inflate_generic_method() and made public.
19521         (mono_class_init): Don't inflate the generic methods here.
19522         (mono_class_from_generic): Added `gboolean inflate_methods'
19523         argument.  Inflate the methods here.
19524
19525         * loader.c (mono_method_get_param_names): Ignore instances of
19526         generic types for the moment.
19527
19528         * reflection.c (fixup_method): Added support for inflated methods.
19529         (mono_image_create_token): Use mono_image_get_methodref_token()
19530         for inflated methods.
19531         (mono_custom_attrs_from_param): Ignore instances of generic types
19532         for the moment.
19533         (mono_reflection_bind_generic_parameters): New public function.
19534         Moved all the functionality from
19535         ves_icall_Type_BindGenericParameters() here and added support for
19536         dynamic types.
19537         (mono_reflection_define_generic_parameter): Initialize
19538         `klass->methods' here.
19539
19540         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
19541         functionality into mono_reflection_define_generic_parameter().
19542         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
19543         TypeBuilder, return that TypeBuilder.
19544
19545 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19546
19547         * appdomain.c: removed mono_delegate_semaphore.
19548
19549         * threadpool.c:
19550         (mono_thread_pool_add): moved hash table creation inside and the thread 
19551         creation outside of the critical region.
19552         (mono_thread_pool_finish): removed obsolete code.
19553         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
19554         continue or exit the thread depending on the queue.
19555
19556 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
19557
19558         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
19559         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
19560         handle more bool marshalling options
19561
19562 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
19563
19564         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
19565         arrays of structs. Also add a more descriptive error message when
19566         a structure member is marshalled as LPArray.
19567
19568 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
19569
19570         * marshal.c (mono_marshal_get_native_wrapper): Add support for
19571         marshalling arrays of complex types. Fixes #29098. Also remove an
19572         usused and incomplete function.
19573
19574 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
19575
19576         * gc.c: report heap_size - free_bytes as total memory allocated
19577         (bug#49362).
19578
19579 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
19580
19581         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
19582         fix timezone handling problems on Windows.
19583         
19584         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
19585         asserts when the year is outside the range handled by ms the functions.
19586
19587         * class.c (setup_interface_offsets): If the class is an interface,
19588         fill out its interface_offsets slot.
19589
19590 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19591
19592         * threadpool.c: mark threadpool threads as background.
19593
19594 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
19595
19596         * decimal.c - define DECINLINE to nothing if not using GCC
19597
19598 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
19599
19600         * assembly.c: More refcount fixes.
19601
19602 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19603
19604         * string-icalls.c: if we're not trimming, return the same string.
19605         When not splitting, don't create a new string.
19606
19607 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19608
19609         * image.c:
19610         (mono_image_open): increment the ref_count inside the critical section.
19611
19612 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
19613
19614         * image.c (mono_image_open): Fix reference counting bug.
19615
19616 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
19617
19618         * marshal.c (mono_marshal_type_size) struct alignment changed for 
19619         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
19620         64bits. Avoid leak in mono_marshal_get_native_wrapper when
19621         mono_lookup_pinvoke_call throws.        
19622
19623 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
19624
19625         * reflection.c (mono_reflection_parse_type): Fix #49114.
19626
19627         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
19628         temporary workaround for cygwin header problem.
19629
19630         * object.c (mono_object_isinst): Synchronize this with the code
19631         generated by the JIT for casts.
19632
19633 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
19634
19635         * reflection.c (encode_type): Fix #38332.
19636
19637 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
19638
19639         * marshal.c (mono_marshal_method_from_wrapper): New function to return
19640         the original method from the wrapper method.
19641
19642 2003-09-25  Martin Baulig  <martin@ximian.com>
19643
19644         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
19645         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
19646         (ves_icall_Type_get_IsGenericInstance): New interncall.
19647
19648 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
19649
19650         * object.c: fix cast warning in big endian code.
19651
19652 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
19653
19654         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
19655         
19656 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19657
19658         * assembly.c: don't call check_env from mono_assembly_load. It's
19659         already done once in mono_assemblies_init and may cause headaches when
19660         multiple threads are loading assemblies.
19661
19662 2003-09-19  Martin Baulig  <martin@ximian.com>
19663
19664         * reflection.c (mono_reflection_define_generic_parameter): Don't
19665         allocate `klass->methods', set `klass->flags' to
19666         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
19667
19668 2003-09-18  Martin Baulig  <martin@ximian.com>
19669
19670         * class.c (mono_class_init): Don't create `class->methods' if it's
19671         already initialized.
19672
19673         * metadata.c (mono_metadata_load_generic_params): Make this
19674         actually work.
19675
19676         * reflection.c (mono_reflection_define_generic_parameter): Set
19677         parent class and interfaces from the constraints.
19678
19679         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
19680         to keep this struct in sync with the declaration in TypeBuilder.cs.
19681
19682 2003-09-17  Martin Baulig  <martin@ximian.com>
19683
19684         * metadata.h (MonoType): Replaced the data's `int type_param'
19685         field with `MonoGenericParam *generic_param'.
19686         (MonoGenericParam): Added `MonoClass *klass'.
19687
19688         * class.c (mono_class_from_gen_param): Removed the
19689         `MonoImage *image' and `int type_num' arguments.
19690
19691         * metadata.c (mono_metadata_parse_generic_param): New static
19692         method; creates a MonoGenericParam which just contains the index.
19693         (do_mono_metadata_parse_type): Call
19694         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
19695         MONO_TYPE_MVAR.
19696
19697         * reflection.c (mono_image_typedef_or_ref): Generic type
19698         parameters may be in the same assembly, but never use a typedef
19699         for them.
19700         (mono_reflection_define_generic_parameter): We're now creating a
19701         "real" class for the type parameter; it's now safe to call
19702         mono_class_from_mono_type() on the class'es type, it'll do the
19703         right thing.
19704
19705 2003-09-16  Martin Baulig  <martin@ximian.com>
19706
19707         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
19708         `symfile->range_entry_size' and `symfile->class_entry_size' here;
19709         the `symfile' data structure must be fully initialized before it
19710         gets added to the table.
19711
19712 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
19713
19714         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
19715
19716         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
19717         class init trampolines.
19718
19719 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
19720
19721         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
19722         to the built-in profiler to turn off time and allocation profiling
19723         respectively.
19724
19725 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
19726
19727         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
19728         g_direct_equal.
19729
19730         * debug-helpers.c (mono_method_full_name): Print the wrapper type
19731         in human readable form.
19732
19733 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
19734
19735         * reflection.c icall.c: Fixed warnings.
19736
19737         * image.c (load_class_names): Use a temporary hash table to hold the
19738         namespaces in order to avoid doing many string comparisons.
19739
19740         * image.h: Fix typo.
19741
19742         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
19743         Pass NULL instead of g_direct_equal to the GHashTable constructor 
19744         since the NULL case is short-circuited inside g_hash_table_lookup, 
19745         leading to better performance.  
19746
19747         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
19748         obtain the first custom attribute for a given index. Depends on the
19749         CustomAttribute table being sorted by the parent field.
19750
19751         * reflection.c (mono_custom_attrs_from_index): Use the new function 
19752         for better performance.
19753
19754 2003-09-07  Martin Baulig  <martin@ximian.com>
19755
19756         * class.c (mono_class_init): If we're a generic instance, inflate
19757         all our methods instead of loading them from the image.
19758         (mono_class_from_generic): Set `class->methods = gklass->methods'.
19759
19760 2003-09-07  Martin Baulig  <martin@ximian.com>
19761
19762         * mono-debug-debugger.c: Added support for constructors.
19763
19764 2003-09-06  Martin Baulig  <martin@ximian.com>
19765
19766         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
19767         New interncall.
19768
19769         * reflection.c (mono_reflection_setup_generic_class): Call
19770         ensure_runtime_vtable() to create the vtable.
19771
19772 2003-09-05  Martin Baulig  <martin@ximian.com>
19773
19774         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
19775         MONO_TYPE_MVAR.
19776
19777 2003-09-04  Martin Baulig  <martin@ximian.com>
19778
19779         * reflection.c (mono_reflection_define_generic_parameter): Generic
19780         parameters start with zero.
19781
19782 2003-09-04  Martin Baulig  <martin@ximian.com>
19783
19784         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
19785
19786         * reflection.h (MonoReflectionGenericParam): New typedef.
19787         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
19788         the generic parameters from the managed TypeBuilder.
19789
19790         * reflection.c (mono_reflection_define_generic_parameter): New function.
19791         (mono_reflection_create_runtime_class): Encode generic parameters.
19792         (mono_reflection_setup_generic_class): New function; this is
19793         called after adding adding all generic params to the TypeBuilder.
19794         (encode_type): Added MONO_TYPE_VAR.
19795
19796 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
19797
19798         * class.h class.c (mono_class_needs_cctor_run): Moved this method
19799         here from the JIT.
19800
19801         * assembly.h assembly.c: Moved the AOT loading code into an assembly
19802         load hook.
19803
19804 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
19805
19806         * reflection.h reflection.c class.h class.c: Delete duplicate 
19807         definition of mono_type_get_name () from reflection.c and export the
19808         one in class.c.
19809
19810         * class.c: Class loading fixes from Bernie Solomon 
19811         (bernard@ugsolutions.com).
19812
19813         * reflection.c: Endianness fixes from Bernie Solomon 
19814         (bernard@ugsolutions.com).
19815         
19816 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
19817
19818         * assembly.h assembly.c: Define a file format version for AOT
19819         libraries.
19820         
19821         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
19822
19823         * appdomain.h (MonoJitInfo): New field to determine whenever the
19824         code is domain neutral.
19825         
19826 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
19827
19828         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
19829
19830 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
19831
19832         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
19833         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
19834         Avoid caching the result since strings must be domain specific. Fixes
19835         #48050.
19836
19837 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
19838
19839         * marshal.c (mono_marshal_init): Make this callable multiple times
19840         since it is hard to find a correct place to call it.
19841
19842         * object.c (mono_runtime_class_init): Execute static constructors in
19843         the correct appdomain.
19844
19845         * image.c (build_guid_table): Handle the case when multiple images have
19846         the same GUID.
19847
19848 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19849
19850         * icall.c: added a couple of icalls for System.Web.
19851
19852 2003-08-28  Martin Baulig  <martin@ximian.com>
19853
19854         * icall.c (ves_icall_Type_BindGenericParameters): Use
19855         `klass->generic_inst' instead of `&klass->byval_arg' in the
19856         mono_type_get_object() call.  The returned type must be
19857         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
19858
19859 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
19860
19861         * NOTES: New file.
19862
19863         * object.c (mono_class_proxy_vtable): Make it thread safe.
19864
19865         * pedump.c: Fix warning.
19866
19867         * object.c appdomain.h: Get rid of metadata_section. 
19868         It is no longer needed and it was causing deadlocks with domain->lock.
19869
19870         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
19871
19872 2003-08-26  Martin Baulig  <martin@ximian.com>
19873
19874         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
19875
19876 2003-08-26  Martin Baulig  <martin@ximian.com>
19877
19878         * pedump.c (main): Call mono_metadata_init(),
19879         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
19880         and mono_loader_init().
19881
19882 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
19883
19884         * loader.h: Add missing include to fix build.
19885
19886         * image.h: mono_image_load_references is no more.
19887
19888         * assembly.c: Reworked assembly loading to make it really thread safe.
19889         After these changes, the assembly returned by mono_assembly_open is
19890         fully initialized, i.e. all its references assemblies are loaded.
19891
19892         * assembly.c (mono_image_load_references): Renamed to 
19893         mono_assembly_load_references, and made private, since clients no
19894         longer need to call it.
19895
19896         * class.c: Removed calls to mono_assembly_load_references, since it was
19897         a source of deadlocks.
19898
19899         * loader.h loader.c class.h class.c: Protect data structures using a 
19900         new lock, the loader lock.
19901
19902         * class.c (mono_class_setup_vtable): Create temporary hash tables and
19903         GPtrArrays only when needed.
19904
19905         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
19906         into empty structures by mcs. Fixes pinvoke7.cs.
19907         
19908         * domain.c (mono_init): Call a new initialization function.
19909
19910         * appdomain.c (mono_runtime_init): Call the new initializer function
19911         of the marshal module.
19912
19913         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
19914         inserted into empty structures by mcs. Fixes pinvoke7.cs.
19915
19916         * marshal.h marshal.c: Added locks around the wrapper caches to make
19917         this module thread safe.
19918
19919         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
19920         this argument. Fixes pinvoke1.exe.
19921
19922 2003-08-25  Lluis Sanchez <lluis@ximian.com>
19923
19924         * object.h: Added call_type field to MonoMethodMessage and the corresponding
19925         enumeration of values. Removed fields to store remote call output values in
19926         MonoAsyncResult. Not needed any more.
19927         * object.c: Initialize call_type and async_result fields in mono_message_init.
19928         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
19929         dispatching the message.
19930         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
19931         async call to finish. To do it use a message with EndInvoke call type.
19932
19933 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
19934
19935         * loader.h loader.c (mono_method_hash_marhal_info): New function which
19936         determines whenever a method has marshalling info.
19937
19938 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19939
19940         * assembly.c: fix the build on windows.
19941
19942 2003-08-22 Lluis Sanchez <lluis@ximian.com>
19943
19944         * object.cs: Fixed bug #47785.
19945
19946 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
19947
19948         * string-icalls.c (StringReplace): If their are no occurances of
19949         the old string found return a reference to the supplied
19950         string. This saves some memory and matches MS behavoir.
19951         
19952 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19953
19954         * socket-io.c: fixed compilation for systems that define AF_INET6
19955         and don't define SOL_IP/SOL_IPV6.
19956
19957 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
19958
19959         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
19960         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
19961
19962         * rawbuffer.c rawbuffer.h: Make this module thread safe.
19963
19964         * domain.c: Make this module thread safe.
19965
19966         * domain.c (mono_init): Call new initialization function.
19967
19968         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
19969         reference types too. Fixes #38812.
19970
19971         * image.c (mono_image_init): Fixed warnings.
19972
19973         * class.c (mono_class_from_typeref): Handle assembly load failure
19974         correctly.
19975
19976         * appdomain.c (add_assemblies_to_domain): Handle the case when
19977         the references of an assembly are not yet loaded.
19978
19979         * metadata.c image.c assembly.c: Moved initialization of global
19980         variables to a separate function called at startup since lazy 
19981         initialization of these variables is not thread safe.
19982         
19983         * image.c assembly.c: Made this module thread safe by adding locks in 
19984         the appropriate places.
19985
19986         * domain.c (mono_init): Call the new initialization functions of the
19987         three modules.
19988
19989 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
19990
19991         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
19992           make a direct call. It is proxy's work to make the call asynchronous.
19993           mono_delegate_end_invoke(): If the targe is a proxy, just collect
19994           the return values.
19995         * object.cs: mono_method_call_message_new(): read AsyncResult and
19996           state object from parameters list, if this info is requested.
19997         * object.h: Added fields to store remote call output values in
19998           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
19999
20000 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
20001
20002         * object.h: add needed fields to MonoThread.
20003         * threads.c, threads.h: allow registering a function to cleanup data
20004         allocated per thread by the JIT.
20005
20006 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
20007
20008         * loader.h: portability fix by Bernie Solomon
20009         * <bernard@ugsolutions.com>.
20010
20011 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
20012
20013         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
20014         return a MonoArray. This simplifies the code and also ensures that
20015         the cache allways contains an object reference as a value.
20016
20017         * icall.c (ves_icall_get_parameter_info): Simplified using the new
20018         function.
20019
20020 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20021
20022         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
20023         fixes a problem with byte ordering when getting the address family for
20024         a socket.
20025
20026 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
20027
20028         * .cvsignore: Added monosn.
20029
20030         * reflection.h reflection.c loader.c: Added support for parameter
20031         marshalling to dynamically created types. Fixes #47295.
20032
20033 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
20034
20035         * rand.c: remove useless warnings.
20036
20037 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
20038
20039         * class.c: implemented ldtoken for methods and fieldrefs.
20040
20041 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20042
20043         * threadpool.c: when mono_async_invoke was called, no one took care of
20044         monitoring the queue. So if the method invoked took some time and we
20045         got new async invoke requests after 500 ms (the thread created waited
20046         that long in WaitForSingleObject), the new async invoke was not called
20047         until the previous one finished.
20048
20049         This is fixed now. Thanks to Totte for helping with it.
20050
20051 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20052
20053         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
20054
20055 2003-08-11  Martin Baulig  <martin@ximian.com>
20056
20057         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
20058
20059 2003-08-06  Martin Baulig  <martin@ximian.com>
20060
20061         * mono-debug-debugger.c: Added support for static fields,
20062         properties and methods.
20063
20064 2003-08-06  Martin Baulig  <martin@ximian.com>
20065
20066         * mono-debug-debugger.c: Don't store the MonoString's vtable to
20067         make this work for applications with multiple application domains.
20068
20069 2003-08-04  Martin Baulig  <martin@ximian.com>
20070
20071         * mono-debug-debugger.c: Completely reworked the type support; the
20072         most important thing is that we're now just using one single
20073         `MonoType' instance per type.
20074
20075 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
20076
20077         * mono-endian.h, mono-endian.c, icall.c: Added icall
20078         ves_icall_System_Double_AssertEndianity to assert double word endianity
20079         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
20080
20081 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
20082
20083         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
20084         support, icalls and fixes.
20085
20086 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
20087
20088         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
20089         classes that are a punctuation character in .NET is not the same a
20090         g_unichar_ispunct.
20091
20092 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
20093
20094         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
20095
20096 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
20097
20098         * icall.c: Add new MemCopy internalcall.
20099         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
20100         Simplified code; It is not necessary to handle all the cases here,
20101         as the C# code takes care of it.  Only handle the case of the name
20102         resource embedded into the assembly.
20103
20104         Changed signature to return the data pointer and the size of the
20105         data. 
20106
20107 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
20108
20109         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
20110         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
20111
20112 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
20113
20114         * socket-io.c: ignore EINTR error in select.
20115
20116 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
20117
20118         * class.h, class.c: removed unused subclasses field in MonoClass.
20119
20120 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
20121
20122         * icall.c: improve fix of get_base_definition(). If the parent class
20123           doesn't have the mehod, look at the parent of the parent.
20124         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
20125           to check if a parameter is an in or out parameter
20126           (PARAM_ATTRIBUTE_IN is not set by default).
20127           mono_method_return_message_restore(): Use mono_class_value_size to
20128           get the size of a value type. mono_type_stack_size (parameterType)
20129           does not return the correct value if parameterType is byRef.
20130           mono_load_remote_field(), mono_load_remote_field_new(),
20131           mono_store_remote_field(), mono_store_remote_field_new():
20132           raise exception if the remote call returns an exception.
20133
20134 2003-07-28  Martin Baulig  <martin@ximian.com>
20135
20136         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
20137         method.  This is a wrapper around mono_runtime_invoke() which
20138         boxes the instance object if neccessary.
20139
20140 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
20141
20142         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
20143         metadata.h, row-indexes.h, verify.c: first cut of generics support.
20144
20145 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
20146
20147         * icall.c: disable mcs bug workaround.
20148
20149 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
20150
20151         * object.c (mono_runtime_class_init): Take the metadata_section
20152         mutex before obtaining the domain mutex.
20153
20154         * appdomain.h: Added definition of metadata_section mutex here. 
20155
20156         * object.c: define metadata_mutex here.
20157
20158 2003-07-24  Ravi Pratap  <ravi@ximian.com>
20159
20160         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
20161         fixed.
20162
20163 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
20164
20165         * reflection.c: Fix bug #46669
20166
20167 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20168
20169         * exception.c:
20170         * exception.h:
20171         * icall.c:
20172         * object.h: fill in the type name for TypeLoadException.
20173
20174 2003-07-23  Ravi Pratap  <ravi@ximian.com>
20175
20176         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
20177         relationship between TypeBuilders while compiling corlib) and bug
20178         45993 (Array types returned from the runtime while compiling
20179         corlib were from the loaded corlib).
20180
20181 2003-07-22  Martin Baulig  <martin@ximian.com>
20182
20183         * mono-debug-debugger.c: Reworked the type support a bit more;
20184         distinguish between types and classes.
20185
20186 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
20187
20188         * icall.c: add IsArrayImpl icall.
20189
20190 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
20191
20192         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
20193         initializing real_size only once. Also fix bug #46602.
20194
20195 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
20196
20197         * object.c: Renamed mono_metadata_section to metadata_section.
20198
20199 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
20200
20201         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
20202           empty array if the type is an array. Fixed.
20203           ves_icall_MonoMethod_get_base_definition: if the base method
20204           is abstract, get the MethodInfo from the list of methods of
20205           the class.
20206         * reflection.c: ParameterInfo.PositionImpl should be zero-based
20207           and it was 1-based. Fixed in mono_param_get_objects.
20208
20209 2003-07-20  Martin Baulig  <martin@ximian.com>
20210
20211         * mono-debug.h: Set version number to 31.
20212         (mono_debug_init): Added `MonoDomain *' argument.
20213
20214         * mono-debug-debugger.c: Reworked the type support; explicitly
20215         tell the debugger about builtin types; pass the `klass' address to
20216         the debugger.
20217
20218 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
20219
20220         * image.c: Allow new metadata tables to be loaded without a
20221         warning. Also update the warning message to give the new constant value.
20222                 
20223 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
20224
20225         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
20226         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
20227         array type representation changes.
20228
20229 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
20230
20231         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
20232         on Environment.Exit () call.
20233
20234 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
20235
20236         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
20237         requires a matching corlib.
20238
20239 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
20240
20241         * Changelog: My editor decided to add a CR to each line. Sorry about that.
20242           Committed again without the CRs.
20243         
20244 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
20245
20246         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
20247           getting it from the "this" socket instance. Did not work
20248           if the socket is a subclass of Socket.
20249           Also fixed bug #35371.
20250
20251 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
20252
20253         * metadata.c: fixed size for TypedByRef.
20254         * loader.c: when searching for a method, consider the vararg amrker.
20255         * unicode.c, decimal.c: constify some arrays.
20256
20257 2003-07-15  Dick Porter  <dick@ximian.com>
20258
20259         * socket-io.c: Fixed compilation for gcc < 3.2.
20260
20261         Fixed compilation for machines that don't have AF_INET6 (thanks to
20262         Bernie Solomon <bernard@ugsolutions.com> for that part.)
20263
20264         Fixed compile warnings.
20265         
20266         Fixed formatting and line endings.
20267
20268 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
20269
20270         * socket-io.h:
20271         * socket-io.c: Added IPv6 support.
20272
20273 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
20274
20275         * class.c (mono_class_is_assignable_from): New function to implement
20276         the is_assignable_from logic. Used by mono_object_isinst, 
20277         Type::IsAssignableFrom () and the interpreter.
20278
20279         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
20280         Object, even interfaces.
20281         
20282         * object.c (mono_object_isinst): Implement in terms of 
20283         is_assignable_from.
20284
20285         * icall.c (ves_icall_type_is_assignable_from): New icall.
20286
20287 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
20288
20289         * domain.c (foreach_domain): fix compiler warning.
20290
20291 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
20292
20293         * image.c (load_metadata_ptrs): use g_strndup because strndup is
20294         not available on all plattforms
20295
20296 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
20297
20298         * image.h image.c: Store the metadata version string in MonoImage.
20299         * icall.c: New icall to retrieve the image version.
20300         * reflection.c (create_dynamic_image): Fill in the image version field
20301         * reflection.c (build_compressed_metadata): Use the image version
20302         from the image structure.
20303
20304 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20305
20306         * appdomain.c: modified comment.
20307         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
20308         That will be its last iteration when mono_gc_cleanup is called from
20309         mono_runtime_cleanup and before the domain is unloaded.
20310
20311         Fixes bug #45962.
20312
20313 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
20314
20315         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
20316         attributes.
20317
20318 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
20319
20320         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
20321         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
20322         Bernie Solomon <bernard@ugsolutions.com>.
20323
20324 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
20325
20326         * object.c, object.h: provide mono_object_new_fast() for faster
20327         allocation in some special cases.
20328
20329 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
20330
20331         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
20332         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
20333
20334 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
20335
20336         * threadpool.c: fix leaks.
20337
20338 2003-07-01  Dick Porter  <dick@ximian.com>
20339
20340         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
20341         using MonoGHashTables.  Fixes threadpool bug posted to list.
20342
20343 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
20344
20345         * image.h, image.c: added support to load an assembly from a byte array.
20346         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
20347         assembly bundle support.
20348
20349 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
20350
20351         * threadpool.c (mono_thread_pool_add): keep a reference to the
20352         AsyncResult to prevent GC
20353
20354 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
20355
20356         * class.c: leak fix.
20357
20358 2003-06-25  Dick Porter  <dick@ximian.com>
20359
20360         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
20361         for the async object, the WaitHandle object will close the handle.
20362         Fixes bug 45321.
20363
20364 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
20365
20366         * class.c: in mono_array_class_get (), lookup from the hash with the
20367         same type we insert: this works around a bug in
20368         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
20369         lluis. The real fix will have to wait for after the release.
20370
20371 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
20372
20373         * icall.c: fix memory leak when getting type members.
20374
20375 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
20376
20377         * reflection.c: added more pubtoken special cases.
20378
20379 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
20380
20381         * class.c: handle field offset correctly when class size
20382         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
20383
20384 2003-06-20  Martin Baulig  <martin@ximian.com>
20385
20386         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
20387         *image' field.
20388
20389 2003-06-20  Martin Baulig  <martin@ximian.com>
20390
20391         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
20392
20393 2003-06-20  Martin Baulig  <martin@ximian.com>
20394
20395         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
20396         just distinguish between variables in registers and variables at
20397         an offset relative to a register.
20398
20399 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20400
20401         * icall.c: #ifdef out latest changes until mcs is fixed.
20402
20403 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
20404
20405         * icall.c: return members in metadata order.
20406
20407 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
20408
20409         * icall.c: avoid infinite loop in GetTimeZoneData.
20410
20411 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
20412
20413         * icall.c: added Marshal.Prelink/All icalls.
20414
20415 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
20416
20417         * object.c, object.h: fix warnings and do some overflow checking
20418         when creating arrays.
20419
20420 2003-06-17  Dick Porter  <dick@ximian.com>
20421
20422         * file-io.h:
20423         * file-io.c: File attributes need to be tweaked slightly when
20424         passed from the managed to the w32 world.
20425
20426 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
20427         * profiler.h profiler-private.h profiler.c: Rework last patch
20428         based on suggestion by Paolo.
20429         
20430 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
20431
20432         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
20433         instruction level coverage data collection.
20434         * profiler.h profiler.c (: Added new callback function which can be
20435         used by the profiler to limit which functions should have coverage
20436         instrumentation.
20437         * profiler.c (mono_profiler_load): Call g_module_build_path to
20438         generate the file name of the profiler library.
20439
20440 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
20441
20442         * profiler.c, profiler.h, profiler-private.h: added basic block 
20443         coverage profiling API.
20444
20445 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
20446
20447         * reflection.c (mono_reflection_create_runtime_class): Add support
20448         for events in dynamically generated code.
20449
20450         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
20451         not allocated.
20452
20453 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
20454
20455         * icall.c: when getting timezone info, return reasonable values if we
20456         can't get the actual data.
20457
20458 2003-06-14  Dick Porter  <dick@ximian.com>
20459
20460         * threads.c (start_wrapper): Remove the reference to the thread
20461         object in the TLS data, so the thread object can be finalized.
20462         This won't be reached if the thread threw an uncaught exception,
20463         so those thread handles will stay referenced :-( (This is due to
20464         missing support for scanning thread-specific data in the Boehm GC
20465         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
20466
20467 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
20468
20469         * reflection.c: ensure streams and tables are first allocated with
20470         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
20471
20472 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
20473
20474         * icall.c: fixed GetElementType for byrefs (bug# 44792).
20475
20476 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
20477
20478         * reflection.c (mono_reflection_create_runtime_class): Add support for
20479         properties to dynamically created classes.
20480         * reflection.c: Fix a few places where non-MonoObjects were inserted
20481         into the tokens hashtable.
20482
20483 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
20484
20485         * object.c: some support to handle out of memory exceptions.
20486
20487 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
20488
20489         * marshal.c (mono_marshal_get_native_wrapper): support reference
20490         return types
20491
20492 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
20493
20494         * object.h, object.c: more portability stuff from Bernie Solomon.
20495         Unexport mono_object_allocate(). Added mono_object_unbox ().
20496         Set exitcode when an unhandled exception is thrown.
20497
20498 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
20499
20500         * marshal.c (mono_marshal_get_native_wrapper): use custom
20501         marshaler for return types.
20502
20503 2003-06-10  Dick Porter  <dick@ximian.com>
20504
20505         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
20506         ip_mreq is available
20507
20508 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
20509
20510         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
20511         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
20512         by Bernie Solomon <bernard@ugsolutions.com>.
20513
20514 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
20515
20516         * gc.c (mono_gc_init): Avoid error message on shutdown when
20517         GC_DONT_GC=1 is used.
20518
20519         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
20520         New icall to return the GUID of a module.
20521
20522 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
20523
20524         * class.c: ensure instance size always includes the parent's size
20525         even whem class size is set explicitly (fixes bug#44294).
20526
20527 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
20528
20529         * profiler.h, profiler.c: made the simple profiler thread-safe,
20530         get more accurate timing info. Allow the loading of an
20531         externally-developed profiler module.
20532
20533 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
20534
20535         * marshal.c (mono_marshal_get_native_wrapper): improved
20536         class/byref arguments.
20537         (mono_marshal_get_native_wrapper): better string marshaling support.
20538
20539 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
20540
20541         * class.c: ensure .pack and .size are handled correctly and
20542         simplified layout of static fields.
20543
20544 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
20545
20546         * appdomain.c
20547         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
20548
20549         * loader.c (mono_lookup_pinvoke_call): look for modules in the
20550         current directory (fix bug 44008)
20551
20552 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
20553
20554         * marshal.c (mono_marshal_get_native_wrapper): started support for
20555         custom marshalers.
20556         (mono_delegate_to_ftnptr): consider marshalling specifications
20557
20558 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
20559
20560         * reflection.c, reflection.h: emit custom marshal info.
20561
20562 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20563
20564         * object.c: free the GError.
20565         * icall.c: added CloseEvent_internal.
20566         * threads.[ch]:
20567         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
20568         call.
20569
20570 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
20571
20572         * loader.c (mono_method_get_signature): Add support for dynamic
20573         assemblies.
20574
20575 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
20576
20577         * reflection.c: fixed bug #43905.
20578
20579 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
20580
20581         * class.c, domain.c, icall.c, metadata.h, object.h: support for
20582         handling TypedReference and ArgIterator.
20583         * loader.c, loader.h: added function to get signature at call site.
20584
20585 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
20586
20587         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
20588         data readonly. Buglets and warning fixes. Some MethodSpec support.
20589
20590 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
20591
20592         * class.h, class.c, object.c: remove relative numbering support.
20593
20594 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
20595
20596         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
20597         free the string, until we get a chance to fix Gtk#
20598
20599 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20600
20601         * marshal.c: revert last patch.
20602
20603 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
20604
20605         * icall.c: updates for new mono_class_vtable() not calling
20606         the type constructor anymore.
20607
20608 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
20609
20610         * object.h, object.c: separate vtable creation from type
20611         initialization. Make running the .cctor thread safe.
20612
20613 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
20614
20615         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
20616
20617 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
20618
20619         * loader.c (mono_get_method): consider calling convention
20620
20621 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
20622
20623         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
20624         to return the invisible global type for a module.
20625
20626         * reflection.c (mono_image_build_metadata): Emit global fields too.
20627
20628 2003-05-20  Peter Williams  <peterw@ximian.com>
20629
20630         * loader.c (mono_lookup_internal_call): Add a few newlines.
20631
20632 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
20633
20634         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
20635         literal strings.
20636
20637         * appdomain.c (set_domain_search_path): Recalculate search path when
20638         AppDomainSetup.PrivateBinPath changes.
20639
20640         * object.c (mono_class_compute_gc_descriptor): It turns out some
20641         parts of the class libs (like System.Thread) holds pointers to
20642         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
20643         to treat native int a pointer type here.
20644         
20645 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
20646
20647         * appdomain.h, domain.c: add hashtable for jump target resolution.
20648
20649 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
20650
20651         * reflection.h reflection.c icall.c: Added new icalls 
20652         GetManifestResourceInfoInternal, GetModulesInternal and support
20653         infrastructure.
20654
20655 2003-05-16  Dick Porter  <dick@ximian.com>
20656
20657         * icall.c:
20658         * file-io.h:
20659         * file-io.c: Implement System.IO.MonoIO::GetTempPath
20660
20661 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
20662
20663         * object.c: mono_store_remote_field: little fix to previous patch.
20664
20665 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
20666
20667         * class.c: add constructors to array classes.
20668         * icall.c: special case array construction for InternalInvoke (),
20669
20670 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
20671
20672         * class.h class.c reflection.c object.c: Added support for field
20673         defaults in dynamically generated classes.
20674
20675 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
20676
20677         * reflection.c: properly encode charset for ddlimport.
20678
20679 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
20680
20681         * threads.c: allow compiling without GC.
20682
20683 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
20684
20685         * appdomain.h, object.c, object.h, threads.c, threads.h: added
20686         handling of thread static data.
20687
20688 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
20689
20690         * reflection.h, reflection.c: added mono_custom_attrs_free ().
20691
20692 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
20693
20694         * class.c (mono_array_class_get): always set the serializable flags
20695         (mono_array_class_get): always set the SEALED attribute for array types
20696
20697 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
20698
20699         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
20700         attributes (fix for bug 42021).
20701
20702 2003-05-12  Dick Porter  <dick@ximian.com>
20703
20704         * gc.c: Don't run finalizers when the finalizer thread is
20705         finishing up, because the default domain has already been
20706         destroyed.
20707
20708 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
20709
20710         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
20711         value is null, we should throw an exception.   This is slightly
20712         different than the other conventions used for the constructor.
20713
20714 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20715
20716         * socket-io.c: fixed windows build.
20717
20718 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20719
20720         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
20721
20722 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
20723
20724         * object.c (mono_string_new_wrapper): Compatibility fix for MS
20725         compilers.
20726
20727 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
20728
20729         * class.c (mono_class_layout_fields): Add experimental GC aware
20730         auto layout facility. Requires class library changes to work correctly.
20731
20732         (mono_class_setup_vtable): Avoid overriding explicit interface
20733         method implementations. Fixes iface3.exe test.
20734
20735         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
20736         object reference.
20737         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
20738         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
20739
20740         * metadata.h: Add new type classification macro which determines
20741         whenever the type holds an object reference.
20742
20743 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
20744
20745         * marshal.c (mono_marshal_get_native_wrapper): cleanups
20746
20747 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
20748
20749         * gc.c (finalizer_thread): Work around a GC bug.
20750
20751 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
20752
20753         * marshal.c (emit_struct_conv): allow unions
20754
20755         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
20756
20757 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
20758
20759         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
20760
20761 2003-05-06  Martin Baulig  <martin@ximian.com>
20762
20763         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
20764
20765 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20766
20767         * socket-io.c:
20768         (Select_internal): allow NULLs, don't create arrays if not needed.
20769         Coupled with Socket.cs changes.
20770
20771         * threadpool.c:
20772         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
20773         register a finalizer for it that will close the semaphore handle. This
20774         fixes the leak and make Lupus' test run with > 4080 loops.
20775
20776 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
20777
20778         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
20779         Jerome Laban (bug #42287)
20780
20781 2003-05-02  Martin Baulig  <martin@ximian.com>
20782
20783         * debug-mono-symfile.h
20784         (MonoSymbolFile): Moved declaration into mono-debug.h.
20785         (MonoDebugMethodJitInfo): Likewise.
20786         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
20787         argument.
20788         (_mono_debug_address_from_il_offset): Take a
20789         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
20790
20791         * mono-debug.h
20792         (MonoDebugDomainData): New struct.
20793         (mono_debug_get_domain_data): New function.
20794         (mono_debug_add_method): Take an additional `MonoDomain *'
20795         argument.
20796         (mono_debug_source_location_from_address): Likewise.
20797         (mono_debug_il_offset_from_address): Likewise.
20798         (mono_debug_address_from_il_offset): Likewise.
20799
20800 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
20801
20802         * reflection.c: one more check for null type in custom attrs.
20803
20804 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20805
20806         * reflection.c: avoid warning (comparison is always false due to limited
20807         range of data type).
20808
20809 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20810
20811         * icall.c: throw an exception in Type.GetField if the argument 'name'
20812         is NULL.
20813
20814 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
20815
20816         * reflection.c: fixed handling of enums in named arguments to custom
20817         attributes (bug #42123).
20818
20819 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
20820
20821         * reflection.c: use the right array element type and handle
20822         a null for a Type argument, too.
20823
20824 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
20825
20826         * reflection.c: handle arrays as arguments to custom attributes.
20827
20828 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
20829
20830         * reflection.c: handle a string value in a custom attr
20831         ctor that takes an object.
20832
20833 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
20834
20835         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
20836         (fix bug #42063)
20837
20838 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
20839
20840         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
20841
20842 2003-04-27  Martin Baulig  <martin@ximian.com>
20843
20844         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
20845         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
20846         MONO_DEBUGGER_EVENT_BREAKPOINT.
20847         (mono_breakpoint_trampoline_code): Removed.
20848         (mono_debugger_event_handler): The last argument is now a
20849         `guint32'.
20850         (mono_debugger_insert_breakpoint_full): Removed the
20851         `use_trampoline' argument.
20852         (mono_debugger_method_has_breakpoint): Likewise.
20853         (mono_debugger_trampoline_breakpoint_callback): Renamed to
20854         mono_debugger_breakpoint_callback(); take the method and
20855         breakpoint number as arguments.
20856
20857 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
20858
20859         * metadata.c: fix off by one when loading parameters attributes.
20860
20861 2003-04-24  Martin Baulig  <martin@ximian.com>
20862
20863         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
20864
20865 2003-04-24  Martin Baulig  <martin@ximian.com>
20866
20867         * mono-debug-debugger.c: Moved all code which interacts with the
20868         Mono Debugger here.
20869
20870         * debug-mono-symfile.c: This code now just deals with the symbol
20871         file itself, the debugger code is now in mono-debug-debugger.c.
20872
20873 2003-04-23  Martin Baulig  <martin@ximian.com>
20874
20875         * mono-debug.c (mono_debug_source_location_from_il_offset):
20876         New method; like mono_debug_source_location_from_address(), but
20877         takes an IL offset instead of a machine address.
20878
20879 2003-04-23  Martin Baulig  <martin@ximian.com>
20880
20881         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
20882         `line' field; this is now computed by the debugger.
20883
20884 2003-04-23  Martin Baulig  <martin@ximian.com>
20885
20886         * mono-debug.[ch]: New files.  This is the new debugging interface.
20887
20888         * mono-debug-debugger.[ch]: New files.  Moved all code which
20889         interacts with the Mono Debugger here.
20890
20891 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
20892
20893         * domain.c (mono_init): initialize mono_defaults.monitor_class
20894
20895 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
20896
20897         * reflection.c (method_encode_code): Add a spicy exception to help
20898         future compiler authors.
20899
20900 2003-04-21  Martin Baulig  <martin@ximian.com>
20901
20902         * icall.c
20903         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
20904         Make this work with relative pathnames; g_filename_to_uri() needs
20905         an absolute filename.
20906
20907 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
20908
20909         * icall.c: Track name changes in Object and ValueType.
20910
20911 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
20912
20913         * metadata.c (mono_type_stack_size): size should be a multiple of
20914         sizeof (gpointer)
20915
20916 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20917
20918         * gc.c:
20919         (internal_domain_finalize): moved into mono_domain_finalize. No need
20920         to create another thread because the finalizers will be run in the
20921         finalizer thread.
20922         
20923         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
20924         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
20925         to be run (MS does this too).
20926
20927 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
20928
20929         * object.c (mono_class_compute_gc_descriptor): Update comment.
20930
20931         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
20932
20933         * image.h: Add synchronized wrapper cache.
20934
20935         * image.c (do_mono_image_open): Initialize cache.
20936
20937         * reflection.c (create_dynamic_mono_image): Initialize cache.
20938
20939 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20940
20941         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
20942         ves_icall_System_Buffer_ByteLengthInternal.
20943
20944 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
20945
20946         * reflection.c: setup klass->nested_in earlier. Allow
20947         a dash in the assembly name.
20948
20949 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
20950
20951         * metadata.c (mono_type_to_unmanaged): dont access
20952         type->data.klass for MONO_TYPE_OBJECT
20953         (mono_type_to_unmanaged): consider System.Delegate class
20954
20955 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
20956
20957         * class.c: just setup supertypes in the proper place instead of
20958         initializing the full element class for arrays.
20959
20960 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
20961
20962         * class.c: ensure the element class of arrays is initialized.
20963         Setup the supertype info for array classes, too.
20964
20965 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
20966
20967         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
20968
20969 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20970
20971         * Makefile.am: re-added -m option when running cygpath. This way,
20972         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
20973         separator.
20974         * mono-config.c: same codepath for locating mono config file for WIN32
20975         and the rest.
20976         * assembly.c: if mono_assembly_setrootdir is called, don't override
20977         the value set.
20978
20979 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20980
20981         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
20982         MONO_ASSEMBLIES variable.
20983
20984 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
20985
20986         * icall.c: added Assembly::GetNamespaces() icall.
20987
20988 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20989
20990         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
20991
20992 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
20993
20994         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
20995         * object.c: fixed bug in the construction of vtable for proxies
20996
20997 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
20998
20999         * object.c (mono_array_new): Mark mono_array_new as an icall.
21000
21001 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21002
21003         * class.c: fixed test for public method when overriding interfaces.
21004         Closes bug #40970.
21005
21006 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
21007
21008         * appdomain.h, domain.c: added mono_domain_foreach() to
21009         be able to access the currently loaded appdomains.
21010         * object.c: make string interning work across sppdomains.
21011         Mark some functions for use as icalls.
21012
21013 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
21014
21015         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
21016
21017         * reflection.h reflection.c: Allocate long living data using 
21018         GC_MALLOC_ATOMIC so the collector does not need to scan it.
21019
21020         * reflection.c: Double the allocation size in streams instead of
21021         increasing it, to prevent unneccesary copying on large assemblies.
21022         
21023         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
21024         creation if the assembly does not have the Run flag set.
21025
21026 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
21027
21028         * class.h: avoid the C++ keywords in header files (Jerome Laban
21029         spotted and fixed this).
21030
21031 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21032
21033         * object.c:
21034         (mono_unhandled_exception): fill in the arguments for the
21035         UnhandledException event. Only trigger that event for the default
21036         domain (as MS does).
21037
21038 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
21039
21040         * object.c: Improve typed allocation stuff based on suggestions from
21041         Paolo. Also turn it on if the GC library supports it.
21042
21043 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
21044
21045         * object.c object.h class.h: Added experimental typed allocation
21046         facility using the interfaces in gc_gcj.h.
21047
21048         * os/gc_wrapper.h: Added new include files.
21049         
21050 2003-04-03  Martin Baulig  <martin@ximian.com>
21051
21052         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
21053         which is not yet enabled by default.
21054
21055         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
21056         functions.
21057         (mono_gc_lock, mono_gc_unlock): New static functions.
21058
21059         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
21060         functions; stop/start the world for the garbage collector.  This
21061         is using the windows API; we need to complete the SuspendThread()/
21062         ResumeThread() implementation in the io-layer to make this work on Unix.
21063         (mono_gc_push_all_stacks): New public function; tells the garbage
21064         collector about the stack pointers from all managed threads.
21065
21066 2003-04-03  Martin Baulig  <martin@ximian.com>
21067
21068         * object.h (MonoThread): Added `gpointer stack_ptr'.
21069
21070         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
21071
21072 2003-04-03  Martin Baulig  <martin@ximian.com>
21073
21074         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
21075
21076 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
21077
21078         * reflection.c (typebuilder_setup_fields): Initialize field.first and
21079         field.last.
21080
21081 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
21082
21083         * loader.c (mono_lookup_internal_call): Report the corlib that is
21084         out of sync.
21085
21086 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
21087
21088         * icall.c (ves_icall_type_GetTypeCode): fixed check for
21089         System.DBNull (it's class not valuetype).
21090
21091 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
21092
21093         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
21094         if the array method was already assigned a token (fixes bug#40646).
21095
21096 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
21097
21098         * reflection.c (mono_reflection_get_type): Attempt type resolve even
21099         if no assembly is given.
21100
21101 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
21102
21103         * metadata.h: Added the new tables.
21104
21105         * row-indexes.h: Added definitions for new tables.
21106
21107         * metadata.c: Add schemas for new tables, and add support for
21108         computing the sizes of them.
21109
21110         * class.c: Update for handling the new type cases.
21111
21112 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
21113
21114         * metadata.h (MONO_TYPE_IS_VOID): new macro
21115
21116 2003-03-31  Martin Baulig  <martin@ximian.com>
21117
21118         * threads.h (MonoThreadCallbacks): Added `thread_created'.
21119
21120         * threads.c (mono_thread_new_init): Call `thread_created' in the
21121         mono_thread_callbacks.
21122
21123 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
21124
21125         * loader.h: added marshalbyrefobject_class to mono_defaults
21126         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
21127         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
21128           generation of output parameters.
21129           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
21130         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
21131           contextbound and the target object belongs to the context of the caller.
21132         * object.h: added context and unwrapped_server variables in MonoRealProxy.
21133         * object.c: Implemented support for interfaces and abstract classes
21134           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
21135           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
21136
21137 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
21138
21139         * class.h class.c (mono_class_is_subclass_of): New function.
21140         
21141         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
21142         routines for most common case (calls from ArrayList::ToArray).
21143
21144         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
21145         routine so programs which call Environment::Exit() can be profiled.
21146
21147         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
21148         Added MONO_ARCH_SAVE_REGS.
21149
21150         * icall.c (ves_icall_type_is_subtype_of): Use new function.
21151
21152 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
21153
21154         * blob.h: Add a couple of new MonoType types definitions.
21155
21156         * tabledefs.h: Add a couple of new call convs.
21157
21158 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
21159
21160         * reflection.h (MonoReflectionDynamicAssembly): track changes in
21161         the layout of the class.
21162
21163         * reflection.c (alloc_table): double the size on overflow to avoid
21164         unnecessary copying.
21165
21166         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
21167         avoid filling out metadata tables and blobs. Also set mb->ilgen to
21168         null so it can be garbage collected.
21169         
21170 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
21171
21172         * reflection.c (mono_reflection_get_type): Return the resolved type
21173         only if it is in the assembly we searched.
21174
21175         * reflection.c (ensure_runtime_vtable): Initialize method slots.
21176
21177         * class.c (mono_class_setup_vtable): Set the slot of the overriding
21178         method.
21179
21180 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21181
21182         * appdomain.c:
21183         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
21184         the right one is 'file:///blah', but MS allows it.
21185         * assembly.c:
21186         (mono_assembly_open): allow 'file://blah'
21187
21188         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
21189
21190 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
21191
21192         * socket-io.c: fixes bug #40310.
21193
21194 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
21195
21196         * reflection.c (mono_reflection_parse_type): handle deeply nested
21197         types correctly.
21198
21199         * reflection.c (mono_image_create_token): Use unique token values
21200         since they will be put into a hash table.
21201
21202         * class.c (mono_class_setup_vtable): If a method occurs in more than
21203         one place in the vtable, and it gets overriden, then change the
21204         other occurances too.
21205
21206         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
21207         object as return type.
21208
21209 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
21210
21211         * icall.c: Deleted "ToString" implementation for double and float
21212         because they are full implemented in managed code.
21213
21214 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
21215
21216         * reflection.c, reflection.h: implemented and exported functions
21217         to retrieve info about custom attributes.
21218
21219 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21220
21221         * appdomain.c: moved Uri handling to assembly.c
21222         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
21223         work when using a file Uri in *nix and windows.
21224
21225         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
21226         GetReferencedAssemblies.
21227
21228 2003-03-18  Dick Porter  <dick@ximian.com>
21229
21230         * icall.c: Rename a couple of internal calls
21231
21232         * threads.c: Set the thread state to Stopped when a thread exits.
21233         Fixes bug 39377.
21234
21235 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
21236
21237         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
21238         New icall.
21239
21240         * object.c (mono_class_vtable): fix warning.
21241
21242 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
21243
21244         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
21245
21246         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
21247         memory.
21248         (method_encode_clauses): Create exception info structures in the right
21249         order.
21250         (mono_reflection_setup_internal_class): Initialize supertypes field.
21251
21252         * class.c object.c: Handle interfaces which implement other interfaces 
21253         correctly.
21254
21255         * class.h class.c: Move the supertypes array initialization code into 
21256         a separate function so it can be used for dynamic types too. Also call
21257         it earlier, in mono_class_init(), since it can be used before the
21258         type is initialized.
21259
21260 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21261
21262         * Makefile.am:
21263         * assembly.c:
21264         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
21265
21266         * appdomain.c:
21267         * appdomain.h:
21268         * marshal.c:
21269         * object.c: remove warnings.
21270
21271 2003-03-13  Martin Baulig  <martin@ximian.com>
21272
21273         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
21274         (MonoDebugLexicalBlockEntry): New types.
21275
21276         * debug-mono-symfile.c
21277         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
21278
21279 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21280
21281         * process.c: ret can be any non-zero value accroding to MS doc.
21282
21283 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
21284
21285         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
21286         fixing a warning for a miss-used prototype, would have cause
21287         random memory corruption.
21288
21289 2003-03-07  Martin Baulig  <martin@ximian.com>
21290
21291         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
21292         getting really annoying ....
21293
21294 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
21295
21296         * reflection.c (fixup_method): added support for array methods.
21297
21298 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
21299
21300         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
21301         (pointed out by Michael Adams).
21302
21303 2003-03-04  Dick Porter  <dick@ximian.com>
21304
21305         * icall.c: Temporarily reverted the Double and Single ToString()
21306         change, because it broke nunit.
21307
21308 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
21309
21310         * object.h, threads.h: make include files compatible with C++
21311         (patch by Jerome Laban <jlaban@wanadoo.fr>).
21312
21313 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
21314
21315         * icall.c: Erased ToString helper functions for Double and Single.
21316         Now, that implementations ar all in managed code (Double and Single
21317         Formatters).
21318
21319 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
21320
21321         * appdomain.c: Added method for initializing the default context of
21322         a domain. Added internal call for getting the default context.
21323         * appdomain.h: Added context variable in MonoDomain struct.
21324         * domain.c: mono_domain_set also sets the default context of the domain
21325         * icall.c: Mapped internal method InternalGetDefaultContext.
21326         * object.c: mono_object_get_virtual_method returns always a remoting
21327         wrapper if the object is a transparent proxy.
21328         mono_runtime_invoke_array: when creating an object by calling the
21329         constructor, if the created object is a proxy, then the constructor should
21330         be called using the a remoting wrapper.
21331
21332 2003-03-03  Dick Porter  <dick@ximian.com>
21333
21334         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
21335         variable so it compiles on solaris.  Problem spotted by
21336         Christopher Taylor <ct@cs.clemson.edu>
21337
21338 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21339
21340         * appdomain.c:
21341         (get_info_from_assembly_name): don't leak value.
21342
21343         * icall.c:
21344         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
21345         result.
21346
21347 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
21348
21349         * assembly.c: export mono_image_load_references ().
21350         * class.c: handle function pointers. mono_class_from_name() now
21351         supports nested type names directly.
21352
21353 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
21354
21355         * reflection.h reflection.c: Encode already created dynamic methods 
21356         and fields correctly as a DEF instead of a REF.
21357
21358         * reflection.c: Get rid of the force_ref argument to 
21359         mono_image_typedef_or_ref since it was wrong in the first place.
21360
21361         * string-icalls.c: add error checking to string constructors according
21362         to the MSDN docs.
21363
21364         * reflection.c: Emit types in the order their TypeBuilders were 
21365         created. Previously, a new table index was assigned to each type before
21366         the tables were emitted. This was wrong because the signature blob
21367         might already refer to a type by its original table index.
21368
21369 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
21370
21371         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
21372         change.
21373         
21374 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21375
21376         * Makefile.am: make assemblies dir have \ instead of / on windows.
21377
21378 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
21379
21380         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
21381         iterate over the NESTEDCLASS table using a linear search since the
21382         table is not guaranteed to be sorted by the secondary key.
21383
21384         * class.c (mono_class_create_from_typedef): fixed up call to
21385         mono_metadata_nesting_typedef.
21386         
21387 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
21388
21389         * marshal.c (mono_string_to_byvalstr): clear the memory as
21390         suggested by Jerome Laban <jlaban@wanadoo.fr>
21391
21392 2003-02-26  Dick Porter  <dick@ximian.com>
21393
21394         * process.c: Cope with padding in .rsrc blocks
21395
21396 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
21397
21398         * metadata.h: reverted the filter_len change, it breaks reflection
21399         
21400 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
21401
21402         * metadata.h: added a new field to store the filter_len
21403         
21404
21405 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
21406
21407         * reflection.c: handle custom attributes for types and members
21408         created with Reflection.Emit (bug#38422).
21409
21410 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
21411
21412         * reflection.c: define RTSpecialName automatically for constructors for
21413         compatibility with MS.NET.
21414
21415         * reflection.c (mono_reflection_create_runtime_class): initialize
21416         nested_in field of dynamically created classes.
21417
21418 2003-02-22  Martin Baulig  <martin@ximian.com>
21419
21420         * debug-mono-symfile.h: Incremented version number.
21421
21422 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
21423
21424         * object.h icall.c process.c: fix warnings.
21425
21426 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
21427
21428         * appdomain.h appdomain.c:
21429         (mono_domain_try_type_resolve): split the 
21430         name_or_tb argument into a name and a tb argument.
21431         (mono_domain_has_type_resolve): new function to check whenever the
21432         application has registered a TypeResolve event handler.
21433         
21434         * icall.c reflection.h reflection.c: move the type resolve logic into
21435         mono_reflection_get_type () so it will be invoked when 
21436         Assembly::GetType () is called.
21437
21438         * reflection.c:
21439         (mono_reflection_get_type): renamed to get_type_internal.
21440         (mono_reflection_get_type): fixed type name generation so it works 
21441         for nested types too.
21442         (mono_reflection_get_type): call has_type_resolve () to avoid the 
21443         costly type name generation if there is no resolve event handler.
21444
21445 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
21446
21447         * class.c, image.c: load exported types from file references.
21448
21449 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
21450
21451         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
21452           used to cache the managed methods used to create proxies and make 
21453           remote invocation of methods.
21454         * class.h: Added in MonoVTable a flag to indicate that a class needs 
21455           to be remotely created.
21456         * object.c: Modified the method mono_class_vtable(). It now initializes 
21457           the remote flag of the vtable. Modified mono_object_new_specific(), 
21458           so now it checks the remote flag.
21459         * icall.c: Added a couple of internal methods, one for enabling instance 
21460           creation interception for a type, and one for creating objects bypassing
21461           the remote check.
21462
21463 2003-02-18  Martin Baulig  <martin@ximian.com>
21464
21465         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
21466         New interncall to get a method's metadata token.
21467
21468         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
21469         New interncall for the debugger.
21470
21471 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
21472
21473         * class.c (mono_class_setup_vtable): allocate supertype array
21474
21475 2003-02-18  Martin Baulig  <martin@ximian.com>
21476
21477         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
21478
21479 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21480
21481         * reflection.c:
21482         (assembly_name_to_aname): jump over unknown properties (i've found
21483         something like: 'type, assembly, version=xxx, custom=null, public...',
21484         so now will ignore custom=null and still get the rest of the values).
21485
21486 2003-02-17  Dick Porter  <dick@ximian.com>
21487
21488         * threads.c: Have Thread.Start() wait for a semaphore to signal
21489         that the thread has set up all its local data.  This fixes bug
21490         34323, where Abort() raced the new thread's TLS data.
21491
21492         Also removes the handle_store() call from start_wrapper, because
21493         threads are now always created suspended and there is no longer a
21494         race between the parent and child threads to store the info.
21495
21496 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
21497
21498         * image.c: explain the #- heap issue in a message, hopefully
21499         avoiding FAQs on mono-list.
21500
21501 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21502
21503         * icall.c:
21504         (GetEntryAssembly): if the domain has not invoked
21505         AppDomain.ExecuteAssembly yet, return the assembly of the default
21506         AppDomain.
21507
21508 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
21509
21510         * class.c (mono_ldtoken): make it work in dynamic assemblies.
21511
21512 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
21513
21514         * metadata.c, reflection.c: simple speedup to type hash
21515         and equals code.
21516
21517 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
21518
21519         * image.c, image.h, class.c, assembly.c: move module loading
21520         to MonoImage. When loading metadata, consider alignemnet from
21521         the start of metadata, not from the metadata address in memory.
21522
21523 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
21524
21525         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
21526         AssemblyBuilder objects. Factored out custom attribute creation into
21527         a separate function.
21528         (create_custom_attr): new function to create custom attributes.
21529
21530 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
21531
21532         * Makefile.am: Got tired of typing the full pathname to pedump.
21533         Until there is another option, am installing this.
21534
21535 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
21536
21537         * class.c (class_compute_field_layout): always set field->parent 
21538         (mono_ldtoken): use mono_defaults.fieldhandle_class;
21539
21540 2003-02-11  Dick Porter  <dick@ximian.com>
21541
21542         * threads-types.h:
21543         * monitor.c: Rewrote Monitor, making lock much faster and
21544         Pulse/Wait work as specified.  Also uses much fewer handles, and only
21545         creates them as needed.
21546
21547         * exception.c: Added SynchronizationLockException
21548
21549         * threads.c: Deleted old Monitor implementation.  The new one is
21550         in a new file.
21551
21552 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
21553
21554         * class.c: handled TypedReference type code. Set the correct size for
21555         class data. Setup interface_offsets for interface classes, too.
21556
21557 2003-02-09  Martin Baulig  <martin@ximian.com>
21558
21559         * debug-mono-symfile.h: Reflect latest symbol writer changes.
21560
21561 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
21562
21563         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
21564         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
21565         * object.c: fixed mono_object_get_virtual_method () for interfaces.
21566         * verify.c: check for code that runs after the end of the method.
21567
21568 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
21569
21570         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
21571         "System.Math::Round2".
21572         * sysmath.h: Added Floor, Round and Round2 definitions.
21573         * sysmath.c: Modified certain functions that were not 100% compliant
21574         with MS.NET (math precision) and added the implementation of Floor,
21575         Round and Round2.
21576
21577 2003-02-07  Martin Baulig  <martin@ximian.com>
21578
21579         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
21580
21581 2003-02-07  Martin Baulig  <martin@ximian.com>
21582
21583         * debug-mono-symfile.c: Reflected latest symwriter changes.
21584         (mono_debug_create_mono_symbol_file): Removed.
21585         (mono_debug_open_mono_symbol_file): Take an argument which
21586         specifies whether to create a dynamic symbol file.
21587
21588 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
21589
21590         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
21591
21592 2003-02-05  Martin Baulig  <martin@ximian.com>
21593
21594         * reflection.c (mono_image_build_metadata): Make this public,
21595         protect it against being called multiple times, don't create
21596         resources and don't build the compressed metadata here.
21597         (mono_image_create_pefile): Do this here.
21598
21599         * icall.c
21600         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
21601
21602 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21603
21604         * socket-io.c: fixed bug #36322.
21605
21606 2003-02-06  Piers Haken <piersh@friskit.com>
21607
21608         * appdomain.[ch]:
21609         * class.h:
21610         * debug-mono-symfile.c:
21611         * icall.c:
21612         * loader.c:
21613         * mono-config.c:
21614         * monosn.c:
21615         * reflection.c:
21616         * socket-io.c: warning cleanups
21617
21618 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
21619
21620         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
21621         function. works like remoting invoke, but does a check for the Proxy first.
21622
21623 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
21624
21625         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
21626
21627 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
21628
21629         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
21630         array of pointers.
21631         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
21632         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
21633
21634         * object.c (mono_store_remote_field_new): used by the new jit
21635         instead of mono_store_remote_field
21636         (mono_load_remote_field_new): used by the new jit
21637         instead of mono_load_remote_field
21638
21639 2003-02-05  Patrik Torstensson
21640
21641         * appdomain.c: changed unload to take the domain id instead
21642         of domain
21643         
21644         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
21645
21646
21647 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21648
21649         * appdomain.c: don't look for assemblies in ApplicationBase if
21650         PrivateBinPathProbe is set.
21651
21652 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21653
21654         * object.c: make the first argument in main_args contain the absolute
21655         path to the assembly. Fixes bug #37511.
21656
21657 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21658
21659         * icall.c: get correct UTC offset for countries not using daylight
21660         time saving. Fixes bug #30030.
21661
21662 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21663
21664         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
21665         and 1 are the family).
21666
21667 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
21668
21669         * icall.c (ves_icall_InternalExecute): removed wrong assertion
21670
21671         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
21672
21673 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
21674
21675         * reflection.c: added support for SignatureHelper tokens, which is
21676         needed by the Calli opcode.
21677
21678         * reflection.h: track changes to SignatureHelper class.
21679
21680         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
21681
21682 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21683
21684         * appdomain.c: fixed loading assemblies from PrivateBinPath.
21685
21686 2003-02-03  Patrik Torstensson
21687         * appdomain.[c|h], domain.c : 
21688          - Added support for getting a domain via domain id
21689          - Support for setting and getting domain from System.AppDomain 
21690            (used in cross appdomain channel)
21691          - Added support for get/set for a MonoAppContext on a thread 
21692            (Context class in System.Runtime.Remoting.Contexts),
21693          - Removed hack in Get/SetData and ExecuteAssembly.
21694         
21695         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
21696         the managed world to get control when a proxy is created.
21697
21698         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
21699         
21700 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
21701
21702         * icall.c
21703         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
21704         Populate the codebase field as well.
21705
21706 2003-02-02  Martin Baulig  <martin@ximian.com>
21707
21708         * debug-mono-symfile.c
21709         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
21710         (mono_debug_symfile_add_method): Allow interncalls.
21711
21712 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21713
21714         * icall.c: throw parse exception if strtod fails or the string is empty.
21715
21716 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
21717
21718         * marshal.c: handle object type separately from defined
21719         class types.
21720
21721 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
21722
21723         * marshal.c: handle NATIVE_LPSTR for strings when it's
21724         explicitly specified.
21725
21726 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
21727
21728         * reflection.c, reflection.h, icall.c: setup the reflection
21729         handle cache for ModuleBuilders and AssemblyBuilders.
21730
21731 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
21732
21733         * reflection.c (reflection_methodbuilder_to_mono_method): set
21734         pinvoke flag
21735
21736 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21737
21738         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
21739
21740 2003-01-29  Dick Porter  <dick@ximian.com>
21741
21742         * threads.c: No need for the fake_thread kludge now that Thread
21743         doesn't run a class constructor
21744         
21745 2003-01-29  Dick Porter  <dick@ximian.com>
21746
21747         * threads.c: Use g_direct_hash instead of the rather bogus
21748         g_int_hash
21749
21750 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
21751
21752         * marshal.c (mono_marshal_get_native_wrapper): add check for null
21753         (fix pinvoke12.exe)
21754         (mono_marshal_get_struct_to_ptr): generate valid IL code
21755         (mono_marshal_get_ptr_to_struct): generate valid IL code
21756         (*): correctly set sig->pinvoke, we need to memdup the signature
21757         to do that
21758
21759 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
21760
21761         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
21762         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
21763
21764 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
21765
21766         * profiler.c: provide more callers information.
21767
21768 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
21769
21770         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
21771
21772         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
21773
21774         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
21775
21776 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
21777
21778         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
21779         exception instead of going into an infinite loop on dates which it 
21780         can't yet handle.
21781
21782         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
21783         out-of-range exception if needed.
21784
21785         * class.c (mono_class_setup_vtable): allow a virtual method to provide
21786         an implementation for an interface method and to override an inherited
21787         method at the same time. 
21788         Imagine a scenario when a virtual method is used to override a
21789         virtual abstract method in a parent class, and this same method 
21790         provides an implementation for an method inherited from an interface. 
21791         In this case, the interface resolution code will set im->slot, which 
21792         means that the virtual method override pass will skip this method 
21793         which means a pointer to the abstract method inherited from the parent
21794         will remain in the vtable of this non-abstract class.
21795
21796         * class.c: (mono_class_setup_vtable): continue search for a real 
21797         method if only an abstract method is found.     
21798
21799 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
21800
21801         * reflection.c: add size to encoding for ByValStr and ByValArray
21802         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
21803
21804 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
21805
21806         * class.c (mono_class_setup_vtable): pass the override info as an
21807         argument.
21808
21809         * class.c (mono_class_setup_vtable): set the slot of overriding methods
21810         correctly.
21811         
21812         * reflection.c (ensure_runtime_vtable); add support for method 
21813         overrides.
21814         
21815 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
21816
21817         * reflection.c (resolution_scope_from_image): Hack to work to work with
21818         dynamic assemblies.
21819
21820         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
21821         added a 'force_ref' argument to force this function to allways return 
21822         a TypeRef. This is needed by mono_image_get_memberref_token ().
21823         
21824 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
21825
21826         * reflection.c (mono_image_get_type_info): interfaces really don't have
21827         a parent.
21828
21829         * reflection.c (mono_image_basic_init): fill out missing fields of
21830         image structure.
21831
21832         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
21833         dynamic assemblies. This is required so dynamic assemblies show up in
21834         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
21835         Type::GetType() etc. This is consistent with MS behaviour.
21836
21837         * image.c image.h reflection.c: add newly created classes to the name 
21838         cache so mono_class_get () will find them.      
21839
21840 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
21841
21842         First part of changes to get IKVM.NET running under mono.
21843         
21844         * appdomain.h, appdomain.c: added new function 
21845         mono_domain_try_type_resolve() which will emit TypeResolve events. 
21846         This function will call AppDomain::DoTypeResolve to do the actual work.
21847
21848         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
21849         moved existing code dealing with dynamic tokens to a new function 
21850         called mono_reflection_lookup_dynamic_token (). This function will 
21851         raise TypeResolve events when appropriate. Since reflection.c is not 
21852         part of libmetadata, a new hook function called 
21853         mono_lookup_dynamic_token() is added to class.c which will call this.
21854
21855         * assembly.h assembly.c: make the invoke_load_hook function public,
21856         so it can be called for dynamic assemblies.
21857
21858         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
21859
21860         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
21861         type isn't found.
21862
21863         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
21864         MonoGHashTable, since it contains pointers to objects which the GC 
21865         needs to track.
21866
21867         * assembly.c (search_loaded): remove unused variable.
21868         
21869 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
21870
21871         * object.c: fixed issue exposed by gcc-generated IL programs
21872         that use RVA data for pointers.
21873
21874 2003-01-25  Martin Baulig  <martin@ximian.com>
21875
21876         * threads.c (start_wrapper): Moved the initialization of
21877         `start_func' above the mono_new_thread_init() call to which we
21878         pass it as argument.
21879
21880 2003-01-24  Martin Baulig  <martin@ximian.com>
21881
21882         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
21883         the MonoThread pointer.
21884
21885 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
21886
21887         * icall.c: Rename `PowImpl' to Pow.
21888
21889 2003-01-23  Dick Porter  <dick@ximian.com>
21890
21891         * threads.c (start_wrapper): Create a Thread object if needed, so
21892         the Main() thread can do the class initialisation in a subthread
21893         that has been set up to allow managed code execution.
21894
21895         Pass the thread ID instead of the MonoThread pointer to the thread
21896         start and attach callbacks.  This change is required, because the
21897         jit thread start callback must be called _before_ the Thread
21898         object can be created.
21899         
21900         (mono_thread_init): Removed much object creation code that is no
21901         longer needed.  No managed code is called from here now.
21902
21903         * object.c (mono_runtime_exec_managed_code): Create a subthread
21904         for Main, and call back to the runtime to use it.
21905         Set the exit code when Main exits.
21906
21907         * gc.c: Make sure domain finalisation happens in a subthread.
21908         Re-enable threaded GC, fixing bug 31333 (again).
21909
21910         * environment.c: System.Environment internall calls (so far just
21911         ExitCode is here, the others are still in icall.c)
21912
21913         * appdomain.c (mono_runtime_cleanup): All threads running managed
21914         code should have finished before mono_runtime_cleanup() is
21915         reached, so no need to clean up threads.
21916
21917 2003-01-22  Martin Baulig  <martin@ximian.com>
21918
21919         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
21920         `gpointer func' arguments.      
21921         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
21922         but added `MonoThread *thread' argument.
21923         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
21924
21925         * threads.c (mono_new_thread_init): Added `gpointer func' argument
21926         and pass it to the mono_thread_start_cb callback.
21927         (mono_install_thread_callbacks): New public function to install a
21928         set of callbacks which are set by the debugger.
21929         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
21930
21931 2003-01-22  Martin Baulig  <martin@ximian.com>
21932
21933         * Makefile.am: Install debug-mono-symfile.h.
21934
21935 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
21936
21937         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
21938
21939 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
21940
21941         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
21942         * class.c (mono_ptr_class_get): correctly set access levels of pointers
21943         (mono_array_class_get): correctly set access levels of arrays
21944
21945 2003-01-20      Patrik Torstensson
21946         * image.h (MonoAssemblyName): changed major, minor, build, revision
21947         from signed to unsigned.
21948
21949 2003-01-20  sean kasun <skasun@azstarnet.com>
21950
21951         * reflection.c (load_cattr_value): Now this handles
21952         MONO_TYPE_SZARRAY.  Fixes bug #35629
21953
21954 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
21955
21956         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
21957         integer value
21958
21959 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21960
21961         * decimal.c: fixed bug #26056.
21962
21963 2003-01-17  Martin Baulig  <martin@ximian.com>
21964
21965         * gc.c: Raise an ExecutionEngineException instead of using g_error().
21966
21967 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21968
21969         * exception.[ch]:
21970         (mono_get_exception_type_initialization): new function.
21971
21972         * object.c: throw a TypeInitializationException when an exception is
21973         thrown invoking the class constructor.
21974
21975 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21976
21977         * reflection.c: fixed attribute reading.
21978
21979 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21980
21981         * icall.c:
21982         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
21983         provided, look for the type in the calling assembly and then in
21984         mscorlib; if the assembly name is provided, only try that one.
21985
21986 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
21987
21988         * object.c: register the vtable before there is a chance it's
21989         queried again recursively.
21990
21991 2003-01-13  Duncan Mak  <duncan@ximian.com>
21992
21993         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
21994         gc-internal.h. 
21995         
21996 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
21997
21998         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
21999
22000 2003-01-11  Martin Baulig  <martin@ximian.com>
22001
22002         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
22003         this to 20 for the release.
22004
22005 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
22006
22007         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
22008
22009         * loader.c (mono_method_get_marshal_info): bug fix
22010
22011         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
22012         structures with explicit layout
22013
22014 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
22015
22016         * profiler.c: made the output more readable (and sorted). 
22017         Added caller information for the allocation profiler.
22018
22019 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
22020
22021         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
22022
22023 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22024
22025         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
22026         to get value types.
22027         
22028 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
22029
22030         * object.c, profiler.h, profiler.c, profiler-private.h:
22031         Added object allocation profiler.
22032
22033 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
22034
22035         * reflection.h, reflection.c: handle global methods.
22036         Compress blob entries.
22037
22038 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
22039
22040         * marshal.c: fix compilation.
22041
22042 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
22043
22044         * loader.c (mono_method_get_marshal_info): impl.
22045
22046         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
22047
22048 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22049
22050         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
22051         for reference types.
22052
22053 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
22054
22055         * loader.c: fixed off by one error in loaded parameter names.
22056
22057 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
22058
22059         * marshal.c (mono_marshal_get_icall_wrapper): like
22060         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
22061         instead of a MonoMethod.
22062
22063 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22064
22065         * decimal.c: fixed bug #36537.
22066
22067 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
22068
22069         * marshal.c: throw a missing method exception if a
22070         P/Invoke method is not found.
22071
22072 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
22073
22074         * icall.c: allow a null this for constructors.
22075
22076 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
22077
22078         * icall.c: raise the proper exceptions if the arguments to the
22079         internal Invoke are incorrect.
22080
22081 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
22082
22083         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
22084
22085 2003-01-03  Martin Baulig  <martin@ximian.com>
22086
22087         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
22088
22089 2002-12-31  Martin Baulig  <martin@ximian.com>
22090
22091         * debug-mono-symfile.c: Completely rewrote the type section.
22092         Instead of using individual malloc()ed fields, we use one big
22093         continuous memory area and offsets into this area.
22094         See the comments in the source code for details.
22095
22096 2002-12-30  Martin Baulig  <martin@ximian.com>
22097
22098         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
22099
22100 2002-12-30  Martin Baulig  <martin@ximian.com>
22101
22102         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
22103         line number table in this data blob instead of using an external
22104         pointer.
22105
22106 2002-12-28  Martin Baulig  <martin@ximian.com>
22107
22108         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
22109
22110 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
22111
22112         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
22113         as a boxed return type.
22114
22115 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
22116
22117         * appdomain.c
22118         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
22119         g_build_filename to properly get separators on the filename created.
22120
22121         * object.h: Small change, introduce MonoMarshalByRefObject to
22122         track the layout of that structure in the C# universe as we make
22123         changes there.
22124
22125 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
22126
22127         * object.c: removed assert to allow static fields on interfaces.
22128         * loader.c: a TypeSpec may be used for any type, not just arrays.
22129
22130 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
22131
22132         * class.c, class.h: added mono_class_array_element_size ().
22133         Ignore static methods in interfaces.
22134
22135 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22136
22137         * threads.c: fixed the build under cygwin.
22138
22139 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
22140
22141         * reflection.c: handle nullref constants. Allocate keys for
22142         reflection handles with the GC.
22143
22144 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
22145
22146         * threads.c, threads.h: added mono_thread_get_abort_signal()
22147         to get a suitable signal for thread abort.
22148
22149 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
22150
22151         * metadata.c: fix handling of ExportedType table.
22152
22153 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22154
22155         * icall.c: added WriteWindowsDebugString internal call.
22156
22157 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22158
22159         * reflection.h: added fields to match C# implementation.
22160
22161 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22162
22163         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
22164
22165 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
22166
22167         * gc.h, gc-internal.h: Rename header for GC internal calls to
22168         gc-internal.h from gc.h as to not clash with Boehm GC having its
22169         header installed as <gc.h> in outside include paths.
22170         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
22171         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
22172
22173 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22174
22175         * icall.c: assign minor, build and revision in FillName.
22176
22177 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
22178
22179         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
22180         Added support for running code generated by Reflection.Emit.
22181
22182 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22183
22184         * appdomain.c: check for NULL argument in LoadFrom.
22185
22186 2002-12-10  Dick Porter  <dick@ximian.com>
22187
22188         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
22189
22190 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22191
22192         * appdomain.c: fix buglet when building exe file name.  Handle full
22193         assembly name (needed after latest changes to AssemblyName).
22194         * image.c:
22195         (mono_image_close): free some hashtables.
22196
22197 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
22198
22199         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
22200         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
22201         on some systems (redhat 7.3) 
22202
22203 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
22204
22205         * threads.c: delete the critical section of a sync block,
22206         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
22207
22208 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
22209
22210         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
22211
22212 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22213
22214         * appdomain.[ch]: handle the assembly preload event to try loading the
22215         assemblies using the paths we have in the current domain.
22216
22217         * assembly.[ch]: created an assembly preload hook that is called to try
22218         loading the assembly by other means that the ones provided here.
22219
22220         * domain.c: initialize the domain search path.
22221
22222         From now on, assemblies (TODO: except corlib and System) are loaded
22223         according to these rules when using mono_assembly_load ():
22224
22225                 1. It tries to load the assembly from the ApplicationBase
22226                 of the current domain appending .dll and .exe (TODO: have to
22227                 try loading from name/name.dll and name/name.exe).
22228
22229                 2. It tries the search path specified in PrivateBinPath for the
22230                 current domain (if any).
22231
22232                 3. Previous behavior.
22233
22234 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
22235
22236         * icall.c: implemented GetInterfaceMap() related icall.
22237         * domain.c, loader.h: load MethodInfo in mono_defaults.
22238
22239 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
22240
22241         * gc.c: disable the finalizer thread for now, untill all the issues
22242         with it are resolved.
22243
22244 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
22245
22246         * string-icalls.c: handle embedded nulls in string ctor when the
22247         length is specified.
22248
22249 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
22250
22251         * class.c: look for explicit interface implementation in parent
22252         classes, too.
22253
22254 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
22255
22256         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
22257
22258 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
22259
22260         * gc.c: protect handles with a critical section.
22261
22262 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22263
22264         * icall.c:
22265         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
22266         parameters. If no assembly specified, try getting the type from all
22267         the assemblies in the current domain, else, load the assembly and get
22268         the type from it.
22269
22270 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22271
22272         * marshal.c: applied patch from Aleksey Demakov that fixes
22273         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
22274
22275 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22276
22277         * icall.c: fixed get_location.
22278
22279 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
22280
22281         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
22282         declarations to make it work with older gcc. 
22283
22284         * loader.c (mono_get_method): set signature->pinvoke for native calls
22285
22286 2002-11-20  Dick Porter  <dick@ximian.com>
22287
22288         * threads.c (mono_thread_init): Set the main thread's handle
22289
22290 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
22291
22292         * gc.c: allow compilation without GC support. Changed to match the
22293         mono coding style.
22294
22295 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
22296
22297         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
22298
22299 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
22300
22301         * reflection.c: set a public key token on the core assemblies.
22302
22303 2002-11-18  Dick Porter  <dick@ximian.com>
22304
22305         * threads.c: Split out some thread initialisation so that other
22306         files can set the start callback function.
22307
22308         * gc.c: Run finalisers in a separate thread, to avoid stack
22309         overflow.  Fixes bug 31333.
22310
22311         * appdomain.c: Set up GC finalisation thread.
22312
22313         * reflection.c: 
22314         * object.c: 
22315         * domain.c: Use gc.h macros for GC_malloc
22316         
22317 2002-11-15  Dick Porter  <dick@ximian.com>
22318
22319         * threadpool.c: 
22320         * threads.c:
22321         * appdomain.c: Removed mono_runtime_init_with_attach(),
22322         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
22323         merging the extra parameter with the existing function.  Removed
22324         unneeded code in mono_thread_attach().
22325
22326 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
22327
22328         * image.c (mono_image_loaded_by_guid): a method to get loaded
22329         images by guid. 
22330         (load_metadata_ptrs): we store the guid as string.
22331
22332 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
22333
22334         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
22335
22336         * metadata.c (mono_guid_to_string): imported method form Zoltan
22337         Varga (slightly modified)
22338
22339         * assembly.c (mono_assembly_open): load precompiled code
22340
22341         * loader.h (MonoMethod): we store the method token for use in the
22342         aot compiler. 
22343
22344 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22345
22346         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
22347         the hook function called when an assembly is loaded.
22348         
22349         * domain.c: Modified file.
22350         (mono_domain_assembly_load): removed hash table insertion of assemblies.
22351
22352         Fixes bug #33196.
22353
22354 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
22355
22356         * reflection.c: Map PEFileKind to the value expected by the WinNT
22357         image loader. 
22358
22359 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22360
22361         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
22362         Read until the buffer is filled completely.
22363
22364 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22365
22366         * icall.c: implemented MonoType.InternalGetEvent ().
22367
22368 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22369
22370         * appdomain.c: implemented InitAppDomainSetup. Delayed
22371         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
22372         the entry_assembly.
22373
22374         * assembly.c: base_dir is now an absolute path ending with
22375         G_DIR_SEPARATOR.
22376
22377         * icall.c: modified get_location according to the above changes.
22378
22379         * object.c: init AppDomain.SetupInformation for the default domain after
22380         we have the entry assembly.
22381
22382         * domain.c: when unloading a domain, setup = NULL.
22383
22384 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
22385
22386         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
22387
22388 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
22389
22390         * object.h, object.c: introduced mono_object_get_virtual_method ()
22391         to lookup the method invoked on an object when a callvirt is done on
22392         a method.
22393         * icall.c: make MethodInfo::Invoke() always do a virtual call.
22394
22395 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22396
22397         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
22398         current domain when loaded an assembly and failed to load it.
22399
22400         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
22401
22402 2002-10-31  Dick Porter  <dick@ximian.com>
22403
22404         * icall.c: 
22405         * file-io.h: 
22406         * file-io.c: Return the error status in a parameter, as the
22407         GetLastError() value has long since been blown away if we try and
22408         look it up in a subsequent internal call invocation.  Delete the
22409         GetLastError() internal call, because it's useless.
22410
22411 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
22412
22413         * class.[ch]: added cast_class to fix bug 29517
22414
22415 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
22416
22417         * marshal.c: create valid IL code in the filter clause:
22418         the new JIT is less forgiving:-)
22419
22420 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22421
22422         * icall.c: removed get_property internal call.
22423
22424 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
22425
22426         * appdomain.h domain.c: Added an ID to appdomains.
22427         
22428         * threads.c threads.h icall.c: Implement icall
22429         Thread:GetDomainID(), and remove unused icall 
22430         CurrentThreadDomain_internal.
22431
22432 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22433
22434         * icall.c: Don't recurse through the base types in GetConstructor.
22435         Fixes bug #32063. 
22436
22437 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
22438
22439         * mempool.h, mempool.c: added mono_mempool_empty() and
22440         mono_mempool_stats().
22441
22442 2002-10-23  Dick Porter  <dick@ximian.com>
22443
22444         * file-io.c: 
22445         * file-io.h: 
22446         * icall.c: Added MonoIO.GetFileType internal call
22447
22448 2002-10-17  Dick Porter  <dick@ximian.com>
22449
22450         * appdomain.c (mono_runtime_cleanup): Don't signal the async
22451         delegate semaphore before waiting for all threads to finish,
22452         because new threads can also call async delegates.  Fixes bug
22453         32004.
22454
22455         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
22456         of 3 seconds, in case another async job is queued.  (This part is
22457         needed because the bug fix reintroduced the 3s exit lag.)  This
22458         makes the mono_runtime_shutdown flag superfluous.
22459
22460 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
22461
22462         * reflection.c: include ehader size in method section headers.
22463         Really check for suplicated modules entries.
22464
22465 2002-10-17  Martin Baulig  <martin@gnome.org>
22466
22467         * debug-mono-symfile.c: Added back support for locals.
22468
22469 2002-10-14  Martin Baulig  <martin@gnome.org>
22470
22471         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
22472         MONO_TYPE_VOID.
22473
22474 2002-10-14  Martin Baulig  <martin@gnome.org>
22475
22476         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
22477         mono_class_get() instead of looking in the class cache. 
22478
22479 2002-10-13  Martin Baulig  <martin@gnome.org>
22480
22481         * debug-mono-symfile.c: Set version number to 28, include the
22482         signature in method names.
22483
22484 2002-10-13  Martin Baulig  <martin@gnome.org>
22485
22486         * debug-mono-symfile.h: Set version number to 27.
22487
22488 2002-10-11  Martin Baulig  <martin@gnome.org>
22489
22490         * gc.c: Don't register/unregister NULL pointers as disappearing links.
22491
22492 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
22493
22494         * metadata.c, metadata.h: added helper function to allocate signatures.
22495
22496 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22497
22498         * icall.c: added internal call to get the location of machine.config.
22499
22500 2002-10-08  Martin Baulig  <martin@gnome.org>
22501
22502         * debug-mono-symfile.c: Ignore classes with a pending init for the
22503         moment.
22504
22505 2002-10-03  Dick Porter  <dick@ximian.com>
22506
22507         * threads.c: Freebsd pthread_t is a pointer
22508
22509 2002-10-03  Dick Porter  <dick@ximian.com>
22510
22511         * socket-io.c: Implemented GetHostName_internal
22512
22513 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22514
22515         * mono-config.c:
22516         (mono_config_parse_file): don't leak the text.
22517
22518 2002-10-02  Martin Baulig  <martin@gnome.org>
22519
22520         * debug-mono-symfile.c: Added support for methods.
22521
22522 2002-10-01  Martin Baulig  <martin@gnome.org>
22523
22524         * debug-mono-symfile.c: Don't emit methods and line numbers for
22525         the dynamic symbol file, just write the type table.  We can easily
22526         have an external helper program which creates a symbol file for an
22527         IL file.        
22528
22529 2002-10-01  Dick Porter  <dick@ximian.com>
22530
22531         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
22532         Only add the handle to the cleanup array when we're about to
22533         launch the thread.  Bug 31425 deadlocked when the test was run on
22534         mono under w32.
22535
22536 2002-10-01  Martin Baulig  <martin@gnome.org>
22537
22538         * debug-mono-symfile.c: Added support for properties.
22539
22540 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
22541
22542         * reflection.c: unaligned store fix from Mark Crichton
22543         <crichton@gimp.org>.
22544
22545 2002-09-27  Martin Baulig  <martin@gnome.org>
22546
22547         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
22548         New interncall.
22549
22550 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
22551
22552         * assembly.h, assembly.c: use a sane API to hook into the assembly
22553         loading process instead of a useless special-purpouse hack
22554         (ngen needs a hook, too, for example).
22555
22556 2002-09-27  Dick Porter  <dick@ximian.com>
22557
22558         * threads.c (mono_thread_init): Call GetCurrentProcess() so
22559         io-layer can set up some process handle info.  Not needed on w32,
22560         but doesn't hurt either.
22561
22562         * process.c: Pass the program name in the second parameter to
22563         CreateProcess, so the path is searched.  Include the working
22564         directory. Implemented process name, process enumeration, and some
22565         process detail internal calls.
22566         
22567         * icall.c: Added internal calls for process lookup, and some
22568         process details
22569
22570 2002-09-26  Martin Baulig  <martin@gnome.org>
22571
22572         * assembly.c (mono_install_open_assembly_hook): New global
22573         function to install a function to be invoked each time a new
22574         assembly is loaded.
22575         (mono_assembly_open): Run this callback function if set.
22576
22577         * debug-mono-symfile.c: Put back line numbers for the dynamic
22578         symbol file and also record the .il file as source file.  This
22579         allows us to install the temporary symbol file as `file.dbg' just
22580         like a compiler-generated one.
22581
22582 2002-09-26  Nick Zigarovich <nick@chemlab.org>
22583
22584         * Corrected typo in gc.c (BOHEM vs BOEHM).
22585
22586 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22587
22588         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
22589         GetProperties. Also avoid calling g_slist_length in GetProperties and
22590         GetMethods.
22591
22592 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
22593
22594         * reflection.c: avoid unaligned stores (bug spotted by
22595         Mark Crichton  <crichton@gimp.org>).
22596
22597 2002-09-25  Martin Baulig  <martin@gnome.org>
22598
22599         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
22600         instead of guint64 for addresses and added prologue/epilogue info.
22601
22602 2002-09-25  Martin Baulig  <martin@gnome.org>
22603
22604         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
22605         store line number info.  For the dynamic symbol file, we only need
22606         to provide the JIT generated dynamic line number info for the dynamic
22607         symbol file.
22608
22609 2002-09-25  Martin Baulig  <martin@gnome.org>
22610
22611         * debug-mono-symfile.h: Incremented version number.
22612
22613 2002-09-24  Martin Baulig  <martin@gnome.org>
22614
22615         * class.c (mono_debugger_class_init_func): New global function
22616         pointer variable.
22617         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
22618         call it.
22619
22620         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
22621         function.  This is called via the mono_debugger_class_init_func
22622         hook to add all types to the dynamic type table.
22623         (ves_icall_MonoDebugger_GetType): New interncall to get a class
22624         from its metadata token.
22625
22626         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
22627         New interncall for the debugger.
22628
22629 2002-09-24  Nick Drochak <ndrochak@gol.com>
22630
22631         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
22632         before using it in case it is null.
22633         
22634 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
22635
22636         * metadata.c: allow custom modifiers in local var signatures
22637         (bug spotted by Zoltan Varga).
22638
22639 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
22640
22641         * class.c: deal with the <Module> class that may have a NULL vtable.
22642         Eliminate warnings.
22643
22644 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
22645
22646         * image.c, image.h: more strong name helpers.
22647         * monosn.c: more work: convert pem keys to cryptoapi format.
22648
22649 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
22650
22651         * string-icalls.c: speedup IndexOf.
22652
22653 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
22654
22655         * icall.c: updates from Zoltan.2.Varga@nokia.com.
22656
22657 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
22658
22659         * icall.c: cleanup: use mono_object_domain ().
22660
22661 2002-09-23  Martin Baulig  <martin@gnome.org>
22662
22663         * debug-mono-symfile.c: Improved type support.
22664
22665 2002-09-22  Martin Baulig  <martin@gnome.org>
22666
22667         * debug-mono-symfile.c: Added support for reference types and strings.
22668
22669 2002-09-22  Martin Baulig  <martin@gnome.org>
22670
22671         * debug-mono-symfile.c: Started to work on the type table.
22672
22673 2002-09-21  Martin Baulig  <martin@gnome.org>
22674
22675         * debug-mono-symfile.c: Largely reworked the symbol table format.
22676         The symbol table is now incrementally updated each time a new
22677         method is added.  We're now also using our own magic and version
22678         so that you don't need to recompile all your classes if the
22679         dynamic table changes.
22680         (mono_debug_update_mono_symbol_file): Removed.
22681         (mono_debug_symfile_add_method): New function to add a method.
22682
22683 2002-09-21  Martin Baulig  <martin@gnome.org>
22684
22685         * icall.c
22686         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
22687         New interncall.
22688
22689         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
22690         New interncall to get a method from its metadata token.
22691
22692 2002-09-21  Martin Baulig  <martin@gnome.org>
22693
22694         * debug-mono-symfile.c: Create type table.
22695
22696 2002-09-20  Martin Baulig  <martin@gnome.org>
22697
22698         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
22699
22700 2002-09-20  Martin Baulig  <martin@gnome.org>
22701
22702         * debug-mono-symfile.c: Provide information about params and locals.
22703
22704 2002-09-20  Martin Baulig  <martin@gnome.org>
22705
22706         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
22707         New interncall.
22708
22709         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
22710         interncall to get a method from its metadata token.
22711
22712 2002-09-20  Martin Baulig  <martin@gnome.org>
22713
22714         * debug-mono-symfile.c: Added a few checks for method->header
22715         being non-NULL.  This should never happen, but for the moment
22716         let's use a g_warning() rather than a g_assert().
22717
22718 2002-09-19  Mark Crichton  <crichton@gimp.org>
22719
22720         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
22721         even if support for it isn't present.  Added an #ifdef to fix this.
22722
22723         * socket-io.c: Added checks back for Solaris support.
22724
22725 2002-09-19  Martin Baulig  <martin@gnome.org>
22726
22727         * debug-mono-symfile.c (read_string, write_string): Reflect latest
22728         changes in the symbol file format.
22729
22730 2002-09-18  Martin Baulig  <martin@gnome.org>
22731
22732         * debug-mono-symfile.c: Set version number to 21.
22733
22734 2002-09-18  Dick Porter  <dick@ximian.com>
22735
22736         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
22737         on netbsd.  Fixes bug 30051.
22738
22739 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22740
22741         * reflection.c:
22742         (set_version_from_string): little fix.
22743
22744 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
22745
22746         * monosn.c, Makefile.am: added strong name utility.
22747         * reflection.h, reflection.c: implemented delayed signing,
22748         locale, version and hash id assembly attributes.
22749
22750 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
22751
22752         * loader.c, metadata.c: load param attributes in signatures.
22753
22754 2002-09-16  Martin Baulig  <martin@gnome.org>
22755
22756         * debug-mono-symfile.c: Added string table with all method names.
22757
22758 2002-09-14  Martin Baulig  <martin@gnome.org>
22759
22760         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
22761         fast method lookup.
22762
22763 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
22764
22765         * reflection.c: record the public key token of referenced assemblies.
22766
22767 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
22768
22769         * image.c, image.h: added functions to get the strong name and the
22770         public key of an assembly.
22771         * pedump.c: use them.
22772
22773 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
22774
22775         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
22776
22777 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
22778
22779         * marshal.c (mono_marshal_get_managed_wrapper): Added
22780         MONO_TYPE_BOOLEAN 
22781
22782 2002-09-11  Martin Baulig  <martin@gnome.org>
22783
22784         * gc.c: Call GC_unregister_disappearing_link() on all links when
22785         finalizing them, this is necessary to aviod a crash in boehm's
22786         finalize handler.
22787
22788 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
22789
22790         * gc.c: handle GetTarget for finalized objects spotted and fixed by
22791         nick@chemlab.org.
22792
22793 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
22794
22795         * icall.c: implemented MonoType::Module.
22796         * reflection.c, reflection.h: mono_module_get_object () from
22797         Tomi Pakarinen <tomi.pakarinen@welho.com>.
22798
22799 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
22800
22801         * icall.c: ignore overridden methods in GetMethods ().
22802         Fix for FieldInfo::SetValue().
22803         * object.c: handle float/double in runtime invoke.
22804
22805 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
22806
22807         * object.c: allow a constructor to be called again on an object.
22808
22809 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
22810
22811         * class.h, class.c: move field layout code to it's own function and
22812         export it. Get an interface id earlier. Move fields in MonoClass
22813         so they are more cache friendly and align the bitfields.
22814         * loader.c: temporary handle get_param_names() for a runtime method.
22815         * reflection.c, reflection.h: more code to handle runtime creation of
22816         types.
22817
22818 2002-09-09  Martin Baulig  <martin@gnome.org>
22819
22820         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
22821         signature with the pinvoke field being set for the actual call.
22822
22823 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
22824
22825         * icall.c: removed some unused icalls. Start of map of glib charsets
22826         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
22827
22828 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
22829
22830         * debug-helpers.c: break infinite loop (found and fixed by
22831         Holger Arnold <harnold@gmx.de>).
22832
22833 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
22834
22835         * icall.c: target may be null in create_delegate.
22836
22837 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
22838
22839         * marshal.c: handle a boolean return type.
22840
22841 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
22842
22843         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
22844
22845 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
22846
22847         * gc.c: fix weakreferences.
22848
22849 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
22850
22851         * icall.c: added icall to get default codepage.
22852
22853 2002-09-03  Dick Porter  <dick@ximian.com>
22854
22855         * threads.h: 
22856         * threads.c: Use MonoThread instead of MonoObject where
22857         apropriate.
22858
22859         Store running thread objects in a hash table, so that we have all
22860         the info to hand when waiting for them to finish
22861         (means we don't need OpenThread() any more, so mingw builds should
22862         be fully functional again.)
22863
22864         * verify.c:
22865         * object.h: Added thread ID to MonoThread
22866
22867 2002-09-03  Martin Baulig  <martin@gnome.org>
22868
22869         * icall.c (System.Reflection.Assembly::get_location): New interncall.
22870
22871 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22872
22873         * icall.c: fixed leak in get_temp_path. Thanks lupus.
22874
22875 2002-09-03  Martin Baulig  <martin@gnome.org>
22876
22877         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
22878         argument to store the end address of the disassembled instruction.
22879
22880         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
22881         here from debug-symfile.h.
22882         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
22883         JIT into this struct.
22884         (MonoSymbolFile): Added `char *image_file' field.
22885         (MonoDebugGetMethodFunc): Removed.
22886         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
22887         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
22888         (mono_debug_find_method): New method.
22889
22890         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
22891         create a full symbol file.
22892         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
22893         and static symbol files.
22894         (mono_debug_find_method): The symbol file keeps an internal method hash,
22895         call this to get a MonoDebugMethodInfo from a MonoMethod.
22896
22897         * debug-symfile.[ch]: Removed.
22898
22899 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
22900
22901         * image.c (do_mono_image_open): Remove linker version check.
22902
22903 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
22904
22905         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
22906         wrappers for instance methods.
22907         
22908 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22909
22910         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
22911
22912 2002-08-28  Dick Porter  <dick@ximian.com>
22913
22914         * Makefile.am: Export HOST_CC for w32 builds
22915
22916 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
22917
22918         * file-io.c process.c: MonoString are null terminated, no
22919         need for mono_string_to_utf16() anymore.
22920
22921 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
22922
22923         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
22924
22925 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
22926
22927         * icall.c, reflection.h: speedup System.MonoType.
22928
22929 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
22930
22931         * reflection.c: allow null as the value of a string argument in
22932         custom attributes constructors.
22933
22934 2002-08-27  Martin Baulig  <martin@gnome.org>
22935
22936         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
22937         `trampoline_address' field.
22938
22939 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
22940
22941         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
22942         check (fixes bug #29486) 
22943
22944 2002-08-27  Martin Baulig  <martin@gnome.org>
22945
22946         * debug-mono-symfile.c: Changed the file format in a way that allows us
22947         open it read-only and to use a specially malloced area for all the
22948         dynamic data.  We can now also generate a symbol file on-the-fly if we're
22949         debugging IL code and there is no MCS generated symbol file for it.
22950
22951 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
22952
22953         * object.c: added a define for a good string and array
22954         creation speedup (not enabled by default because we need to deal with
22955         the synch stuff).
22956
22957 2002-08-26  Martin Baulig  <martin@gnome.org>
22958
22959         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
22960         function to create a dynamic symbol file.  This is used by the
22961         debugger to create a symbol file for IL code on-the-fly.
22962
22963 2002-08-26  Martin Baulig  <martin@gnome.org>
22964
22965         * loader.c (mono_lookup_pinvoke_call): Include the error message
22966         from g_module_error() in the error message.
22967
22968 2002-08-24  Martin Baulig  <martin@gnome.org>
22969
22970         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
22971         function to update the symbol file.  The symbol file is mmap()ed
22972         writable, but private.  This allows us to install the symbol file
22973         together with the assembly.
22974
22975 2002-08-24  Martin Baulig  <martin@gnome.org>
22976
22977         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
22978         but they can read the new symbol file format which mcs is now creating.
22979
22980         * debug-symfile.c (mono_debug_find_source_location): Moved to
22981         debug-mono-symfile.c; this is now operating on the new symbol file.
22982
22983 2002-08-23  Martin Baulig  <martin@gnome.org>
22984
22985         * debug-helpers.c (mono_method_desc_from_method): New function to get
22986         a MonoMethodDesc from a MonoMethod.
22987
22988 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
22989
22990         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
22991         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
22992
22993 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
22994
22995         * string-icalls.[ch]: make helper methods static.
22996
22997 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22998
22999         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
23000         types to it and to SetValueInternal.
23001
23002         * object.c: Moved handle_enum label to its proper place. This was the
23003         f... bug! ;-)
23004
23005         This time i compiled mcs and gtk-sharp and they both work.
23006
23007 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23008
23009         * icall.c: reverted partially my previous patch until 
23010         object.c:set_value handles enums correcly.
23011
23012 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23013
23014         * icall.c:
23015         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
23016         (ves_icall_System_Environment_get_MachineName): removed warning when
23017         compiling under cygwin.
23018
23019 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
23020
23021         * object.c: fixed field_get_value() for reference types.
23022
23023 2002-08-22  Dick Porter  <dick@ximian.com>
23024
23025         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
23026         Don't free a buffer while it's still needed.  Patch from Jonathan
23027         Liger <Jonathan.liger@wanadoo.fr>
23028
23029 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
23030
23031         * icall.c (ves_icall_System_Environment_get_Platform): Add new
23032         internal call.
23033
23034 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
23035
23036         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
23037         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
23038
23039         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
23040         we call unmanaged code which throws exceptions.
23041
23042 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
23043
23044         * appdomain.h: added per-domain entry_assembly.
23045         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
23046         arguments.
23047         * icall.c: Assembly::GetEntryAssembly icall.
23048         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
23049         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
23050
23051 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
23052
23053         * appdomain.h, gc.c: added mono_domain_finalize ().
23054
23055 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23056
23057         * object.c:
23058         (mono_print_unhandled_exception): changed g_warning by g_printerr
23059         because g_log has a 1024 characters limit (yeah, i got a big stack
23060         trace). Don't print exception name, that should be in ToString 
23061         returned string.
23062
23063 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23064
23065         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
23066         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
23067
23068 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23069
23070         * object.c:
23071         (mono_print_unhandled_exception): after previous commit, i realized
23072         that MS calls ToString on the exception. I changed this function to
23073         do that. This way we get stack_trace for free.
23074
23075 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23076
23077         * object.c:
23078         (mono_print_unhandled_exception): invoke Message property instead of
23079         getting 'message' field from Exception. Don't allocate memory for
23080         'trace' and 'message' if not needed.
23081
23082 2002-08-18  Dick Porter  <dick@ximian.com>
23083
23084         * unicode.c: Fix asserts to match Encoder.cs checks
23085
23086 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
23087
23088         * marshal.c: fix unaligned store issue and a few wrong
23089         opcode argument types.
23090
23091 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23092
23093         * icall.c: added GetUninitializedObjectInternal internal call.
23094
23095 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
23096
23097         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
23098         to the right domain.
23099
23100 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
23101
23102         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
23103
23104         * class.c (class_compute_field_layout): set blittable to false for Strings
23105
23106         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
23107
23108 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
23109
23110         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
23111         first chunk of code to create types at runtime. Code to
23112         handle ReflectedType/DeclaringType. Make reflection handles
23113         domain specific.
23114
23115 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
23116
23117         * class.c: set correct name in arrays.
23118
23119 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
23120
23121         * appdomain.c (mono_domain_transfer_object): make it work with
23122         valuetypes. bug fixes.
23123
23124 2002-08-12  Dick Porter  <dick@ximian.com>
23125
23126         * object.h: Rename some parameters to avoid c++ keywords (Patch
23127         from Joseph Wenninger <kde@jowenn.at>)
23128
23129 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
23130
23131         * icall.c: added icall to implement Assembly.GetFile*.
23132
23133 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
23134
23135         * reflection.h, reflection.c: code to embed managed resources.
23136
23137 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
23138
23139         * class.c: move all the type size stuff into
23140         class_compute_field_layout().
23141
23142 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
23143
23144         * class.c: ensure enums have always the correct instance size.
23145         * unicode.c: remove wrong assert.
23146
23147 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
23148
23149         * assembly.c: fix mem corruption issue.
23150         * image.h, image.c: added mono_image_get_resource () to access
23151         managed resources.
23152         * icall.c: implemented Assembly.EntryPoint property and some
23153         Managed Resources related internalcalls.
23154
23155
23156 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
23157
23158         * image.c, image.h: impemented mono_image_get_entry_point ().
23159         * appdomain.c: use mono_image_get_entry_point.
23160
23161 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
23162
23163         * reflection.c: support the object type argument when loading
23164         custom attributes.
23165
23166 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
23167
23168         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
23169         String as return type.
23170
23171 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
23172
23173         * reflection.c: fix encoding of named args for custom attrs to match
23174         the ms implementation. Read them back when instantiating custom
23175         attributes.
23176
23177 2002-08-02  Radek Doulik  <rodo@ximian.com>
23178
23179         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
23180         by Dietmar as quick fix
23181         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
23182         16 as stack size, used on more places as quick fix before Dietmar
23183         will fix it properly
23184
23185 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
23186
23187         * object.h, object.c: added accessors for fields and properties.
23188
23189 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
23190
23191         * class.c, class.h: made mono_class_get_field_from_name ()
23192         loop on parent types.
23193         Added mono_class_get_property_from_name ().
23194
23195 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
23196
23197         * class.c, class.h: move the code to setup the type vtable in its own
23198         function so that it can be reused also for types created at runtime.
23199         Eliminate the "class" identifier from the header file.
23200         * reflection.c: setup the vtable for enums so that we can create
23201         objects for use in SetConstant ().
23202
23203 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
23204
23205         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
23206         instead of the delegate itself as this pointer (bug #28383)
23207
23208 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
23209
23210         * marshal.c (mono_marshal_get_managed_wrapper): added return type
23211         conversions.
23212
23213 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
23214
23215         * loader.c: don't set the pinvoke bit on icalls.
23216
23217 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
23218
23219         * debug-helpers.c (mono_method_full_name): only print a number to
23220         indicate wrapper type (so that the output is more readable in traces).
23221
23222 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
23223
23224         * class.c (mono_class_init): include method override patch from Paolo
23225
23226 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
23227
23228         * icall.c: fixed GetTypeCode().
23229
23230 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
23231
23232         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
23233         use real delegate invoke function to make it work with multicast
23234         delegates (fix bug# 28291).
23235
23236 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
23237
23238         * object.c: load constant strings.
23239
23240 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
23241
23242         * reflection.c: no magic numbers.
23243         * tabledefs.h: security action enum.
23244
23245 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
23246
23247         * assembly.c: fix possible memory corruption.
23248
23249 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
23250
23251         * reflection.h, reflection.c: added support for linking resources.
23252         * verify.c: check we have an updated corlib.
23253
23254 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
23255
23256         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
23257         string arrays.
23258         (mono_marshal_string_array): null terminate unmanaged string arrays.
23259         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
23260
23261 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
23262
23263         * icall.c: Type.GetType () can now return also types from the
23264         calling assembly.
23265
23266 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
23267
23268         * loader.h, loader.c: stack walking support.
23269         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
23270         GetCallingAssembly.
23271
23272 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
23273
23274         * marshal.c: added optimisations for blittable types 
23275
23276         * class.c (mono_array_class_get): do not set blittable attribute on arrays
23277         (mono_class_setup_mono_type): set blittable attribute for single
23278         and double.
23279
23280         * marshal.c (mono_string_utf8_to_builder): impl.
23281         (mono_string_builder_to_utf8): impl.
23282         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
23283
23284 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
23285
23286         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
23287         (mono_marshal_get_managed_wrapper): impl. byref types
23288
23289 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23290
23291         * icall.c:
23292         (search_method): don't display debug message. 
23293
23294 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
23295
23296         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
23297
23298 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
23299
23300         * appdomain.c: set the missing filename when throwing exception.
23301
23302 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
23303
23304         * metadata.c (mono_type_size): code cleanup
23305         (mono_type_stack_size): removed some test code
23306
23307 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
23308
23309         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
23310         mono_get_exception_file_not_found now.
23311
23312         * exception.c (mono_exception_from_name_two_strings): New version
23313         that will call a constructor with two string arguments. 
23314         (mono_get_exception_file_not_found): New helper routine, used to
23315         report file-not-found errors.
23316
23317 2002-07-20  Dick Porter  <dick@ximian.com>
23318
23319         * process.h:
23320         * process.c: Pass file handles to CreateProcess
23321         
23322         * icall.c:
23323         * file-io.h:
23324         * file-io.c: Implemented CreatePipe
23325
23326 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
23327
23328         * metadata.c (mono_get_param_info): set alignment for value types
23329
23330 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
23331
23332         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
23333         Constify mono_domain_assembly_open().
23334         * loader.c: handle null namespace in icalls.
23335
23336 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
23337
23338         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
23339         (emit_str_to_ptr_conv): marshal object as structs
23340
23341         * metadata.c (mono_type_to_unmanaged): marshal object as structs
23342
23343         * marshal.c (mono_marshal_get_runtime_invoke): support value types
23344
23345 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
23346
23347         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
23348         (mono_marshal_get_native_wrapper): we an now return value types
23349
23350 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
23351
23352         * verify.c: more checks implemented.
23353
23354 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
23355
23356         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
23357         (fix bug #27695)
23358         (mono_marshal_get_native_wrapper): allow byref arguments
23359         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
23360         impl. PtrToStringXXX methods
23361         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
23362         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
23363         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
23364         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
23365         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
23366
23367 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
23368
23369         * reflection.c: fix buglet in parsing an assembly name.
23370
23371 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
23372
23373         * marshal.c (emit_ptr_to_str_conv): first impl.
23374
23375 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
23376
23377         * object.c, class.h: cache the vtable in the class as suggested by
23378         vargaz@freemail.hu (Zoltan Varga).
23379
23380 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
23381
23382         * class.h, loader.c: added mono_field_from_token().
23383         * verify.c: first cut of type checking code.
23384
23385 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
23386
23387         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
23388
23389 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
23390
23391         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
23392         (fix bug #27782)
23393         (mono_marshal_get_remoting_invoke): impl.
23394         (mono_delegate_begin_invoke): impl.
23395         (mono_mb_emit_save_args): impl.
23396         (mono_delegate_end_invoke): impl.
23397         (mono_marshal_get_delegate_begin_invoke):
23398         (mono_marshal_get_delegate_end_invoke):
23399         (mono_marshal_get_delegate_invoke): generate a special name for
23400         those methods (including the signature) and associate them whith
23401         the delegate class. 
23402
23403 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
23404
23405         * reflection.[ch]: 
23406         (mono_reflection_type_from_name): now it has a MonoImage parameter
23407         which is used as the default image to search the type in. If the image
23408         is NULL or getting the type from it fails, it defaults to corlib.
23409
23410         * icall.c: changed 1 call to mono_reflection_type_from_name to match
23411         new parameter.
23412
23413 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
23414
23415         * reflection.c: update the parameter table index.
23416
23417 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
23418
23419         * domain.c: don't include the mark byte in the string hash.
23420
23421 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
23422
23423         * icall.cs: icall for Type.GetTypeCode ().
23424         * verify: a couple of fixes and disabled local initialization checks.
23425
23426 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
23427
23428         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
23429
23430         * debug-helpers.c (mono_method_full_name): print the type of the
23431         runtime wrapper
23432
23433         * metadata.c (mono_signature_hash): a hash function for signatures
23434         (mono_signature_hash): better hash algorithm
23435
23436         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
23437
23438         * debug-helpers.c (mono_method_full_name): this can now generate
23439         method names with signatures
23440
23441         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
23442         method dont have this pointers.
23443
23444 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
23445
23446         * reflection.c: fixup typebuilder tokens.
23447         * image.c: fix buglet.
23448         * marshal.h: remove whitespace.
23449         * metadata.h, metadata.c: reinstate code that was removed.
23450         * verify.c: handle catch directives and fix another couple of bugs.
23451
23452 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
23453
23454         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
23455         (mono_marshal_get_native_wrapper): make it comp. with the old code
23456         (mono_marshal_get_native_wrapper): support boolean
23457         (mono_marshal_get_managed_wrapper): support more types
23458
23459 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
23460
23461         * class.c (class_compute_field_layout): compute class->blittable attribute.
23462
23463 2002-07-09  Dick Porter  <dick@ximian.com>
23464
23465         * threads.c: Make the thread cleaning up cope with threads that
23466         call ExitThread()
23467
23468 2002-07-08  Radek Doulik  <rodo@ximian.com>
23469
23470         * reflection.c (method_encode_code): use non-translated values to
23471         compute finally_start, this fixes exception handling on ppc, yay!
23472
23473         * decimal.h (struct signscale): fix endianess
23474
23475 2002-07-07  Radek Doulik  <rodo@ximian.com>
23476
23477         * reflection.c: swap box_val and not val
23478
23479 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
23480
23481         * reflection.c, reflection.h: handle full assembly info in type name.
23482         Handle Type arguments when loading custom attributes.
23483         * icall.c: updated to use new mono_reflection_type_from_name () method.
23484
23485 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23486
23487         * loader.c:
23488         (method_from_memberref): also print assembly name when method not found.
23489
23490 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23491
23492         * icall.c:
23493         (ves_icall_TypeGetProperties): fixed bug #27473. 
23494
23495 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23496
23497         * reflection.c: display image name and token when cannot find the
23498         .ctor for an attribute.
23499
23500 2002-07-05  Martin Baulig  <martin@gnome.org>
23501
23502         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
23503
23504 2002-07-04  Dick Porter  <dick@ximian.com>
23505
23506         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
23507         compile on mingw.  This will cause mingw builds to not wait for
23508         subthreads to terminate after the main thread does.  I've lodged a
23509         bug with the mingw developers for them to wrap OpenThread().
23510
23511 2002-07-03  Dick Porter  <dick@ximian.com>
23512
23513         * threads.c: Store thread IDs instead of handles, because
23514         GetCurrentThread() returns a pseudohandle and therefore stores
23515         useless values.  mono_thread_cleanup() continues checking the
23516         array of threads until it is empty, to cope with subthreads
23517         spawning new threads after the main thread has finished.
23518
23519         * profiler.h:
23520         * profiler.c:
23521         * profiler-private.h: Pass the thread ID to thread profiler
23522         functions, instead of a handle
23523
23524 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
23525
23526         * verify.c: fixes to make it more usable.
23527         * pedump.c: added --verify code to verify IL code in an assembly.
23528
23529 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
23530
23531         * reflection.c: turn errors into warnings to allow compiling corlib.
23532
23533 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
23534
23535         * reflection.c: add special cases to compile corlib.
23536
23537 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
23538
23539         * reflection.c: handle properties with only a set method.
23540
23541 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
23542
23543         * opcodes.h: add enum with opcodes in opval order.
23544
23545 2002-07-01  Dick Porter  <dick@ximian.com>
23546         
23547         * object.h:
23548         * object.c (mono_runtime_run_main): Removed unneeded argument
23549
23550 2002-06-28  Martin Baulig  <martin@gnome.org>
23551
23552         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
23553
23554 2002-06-27  Dick Porter  <dick@ximian.com>
23555
23556         * threads.c: Store the handle in both the parent thread and in the
23557         subthread, to minimise the time between starting a new thread and
23558         storing its ID.
23559
23560 2002-06-26  Dick Porter  <dick@ximian.com>
23561
23562         * appdomain.c (mono_runtime_cleanup): Close the socket library
23563         after all the threads have finished, not before
23564
23565 2002-06-26  Martin Baulig  <martin@gnome.org>
23566
23567         * debug-symfile.c (mono_debug_find_source_location): Added
23568         `guint32 *line_number' argument.  If it's not NULL, store the line number
23569         there and return the file name without the line number.
23570
23571 2002-06-25  Dick Porter  <dick@ximian.com>
23572
23573         * icall.c:
23574         * process.h:
23575         * process.c: Process forking and other support functions
23576
23577 2002-06-25  Dick Porter  <dick@ximian.com>
23578
23579         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
23580         things dont happen when the image is closed.
23581         (mono_image_lookup_resource): Walk the resource section looking
23582         for a particular entry
23583
23584         * cil-coff.h: PE resource section decoding
23585
23586 2002-06-25  Dick Porter  <dick@ximian.com>
23587         
23588         * assembly.h:
23589         * assembly.c: 
23590         (mono_assembly_foreach): Accessor functions to walk the list of
23591         loaded assemblies
23592         (mono_assembly_set_main):
23593         (mono_assembly_get_main): Process methods need to know which
23594         assembly is the "main" one
23595
23596         * object.c (mono_runtime_run_main): Record the main assembly
23597
23598         * debug-helpers.c: Fix typo
23599
23600 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
23601
23602         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
23603         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
23604
23605 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
23606
23607         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
23608
23609 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
23610
23611         * image.c (do_mono_image_open): Initialize reference count,
23612         otherwise we leak the MonoImage.
23613
23614 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
23615
23616         * reflection.c: small tweak to handle self-hosting.
23617
23618 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
23619
23620         * reflection.c: fix type name parse code.
23621
23622 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
23623
23624         * reflection.c: break out of the loop.
23625         * image.c: special case corlib.
23626
23627 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
23628
23629         * reflection.c: add all the custom attrs at the end to ensure the
23630         ctors have been properly initialized when the attributes are defined
23631         in the current assembly.
23632
23633 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
23634
23635         * reflection.c: handle correctly multiple-nested types.
23636
23637 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
23638
23639         * row-indexes.h: fix typos.
23640         * reflection.c: adjust for typos and fix method_def_or_ref
23641         encoding in MethodImpl table.
23642
23643 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
23644
23645         * reflection.c: fix entry point patching (thanks Serge!).
23646
23647 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
23648
23649         * verify.c: add check for System.Exception
23650
23651 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
23652
23653         * image.c, class.c: minifix for code just c&p'ed.
23654         * reflection.c: warning fix.
23655         * object.h, loader.h, domain.c: load also StringBuilder.
23656
23657 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
23658
23659         * marshal.h, marshal.c: some support code to handle complex marshaling.
23660
23661 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
23662
23663         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
23664         Better signatures with vtable error dump.
23665
23666 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
23667
23668         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
23669
23670 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
23671
23672         * icall.c (ves_icall_Type_GetField): impl.
23673
23674 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
23675
23676         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
23677         to retrieve a marshal description blob for a field or param.
23678
23679 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
23680
23681         * reflection.h, reflection.c: change order of nested type emission
23682         to avoid table corruption. The NestedTypes table is sorted.
23683         * icall.c: change order of GetConstructor results to workaround mcs bug.
23684
23685 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
23686
23687         * reflection.h, reflection.c: handle field and param marshal
23688         information.
23689
23690 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
23691
23692         * icall.c, marshal.c marshal.h: more Marshal class implementation.
23693
23694 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
23695
23696         * reflection.c: fix call convention.
23697
23698 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
23699
23700         * reflection.h, reflection.c: mono_image_get_memberref_token()
23701         takes a type instead of a class, now. Added
23702         mono_image_get_array_token() to create tokens for the special
23703         multi-dim array methods.
23704
23705 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
23706
23707         * assembly.c: handle modules (no assembly table). Split
23708         loading references in its own function.
23709         * class.c: handle moduleref resolution scope.
23710         * image.c, image.h: cache module name in image.
23711
23712 2002-06-07  Martin Baulig  <martin@gnome.org>
23713
23714         * reflection.c (mono_image_get_type_info): Only add a class layout entry
23715         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
23716
23717 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
23718
23719         * icall.c: more signature fixes that used uint instead of int.
23720
23721 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
23722
23723         * reflection.c: fixed signature of field refs.
23724
23725 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
23726
23727         * class.c, reflection.c: handle typerefs of nested types
23728         (both on read and when writing files).
23729
23730 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
23731
23732         * icall.c: fix method signatures that tried to workaround the previous
23733         typo, d'oh!
23734
23735 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
23736
23737         * debug-helpers.c: fix typo.
23738
23739 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
23740
23741         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
23742         rewrote the PE/COFF writing code (our programs are understood by the
23743         ms runtime, now).
23744
23745 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
23746
23747         * gc.c, gc.h, icall.c: weakreference support.
23748
23749 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
23750
23751         * Makefile.am, mono-config.c: use $(sysconfdir).
23752
23753 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
23754
23755         * icall.c: changed default precision of Double.ToString() to 15.
23756         Fixed memory leak. Unified with Single.ToString.
23757
23758 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
23759
23760         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
23761
23762 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
23763
23764         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
23765         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
23766         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
23767         and myself.
23768
23769 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
23770
23771         * debug-symfile.c, sysmath.c: yet more compilation fixes.
23772
23773 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
23774
23775         * reflection.c, socket-io.c: more compilation fixes.
23776
23777 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
23778
23779         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
23780         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
23781         unicode.c: warning and compiler compatibility fixes.
23782
23783 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
23784
23785         * class.h, metadata.c: fixed warnings/compilation errors.
23786
23787 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
23788
23789         * Makefile.am, mono-config.c, mono-config.h: configuration file
23790         support routines.
23791         * loader.c, loader.h: make Dll mapping configurable at runtime in the
23792         config file. Export methods to insert and lookup mappings.
23793
23794 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
23795
23796         * reflection.c: handle types and boxed objects in custom attr
23797         constructors.
23798
23799 2002-05-30  Martin Baulig  <martin@gnome.org>
23800
23801         * debug-symfile.c
23802         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
23803
23804 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
23805
23806         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
23807         to lookup the implmap row for a P/Invoke method.
23808         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
23809         P/Invoke method from the runtime on an as needed basis.
23810
23811 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
23812
23813         * metadata.c (mono_metadata_parse_signature): impl.
23814
23815 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
23816
23817         * class.c: handle .pack directive.
23818
23819 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
23820
23821         * object.c: initialize static fields with RVA data.
23822
23823 2002-05-25  Martin Baulig  <martin@gnome.org>
23824
23825         * debug-symfile.c
23826         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
23827
23828 2002-05-24  Martin Baulig  <martin@gnome.org>
23829
23830         * debug-symfile.c
23831         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
23832         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
23833         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
23834
23835 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
23836
23837         * object.c: special case string ctros in invoke.
23838         * gc.c: silly whitespace changes.
23839
23840 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
23841
23842         * threadpool.[ch]: impl. a threadpool that can
23843         be used by mint and mono.
23844
23845 2002-05-22  Martin Baulig  <martin@gnome.org>
23846
23847         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
23848         The first argument is now a `MonoReflectionModuleBuilder *', the return
23849         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
23850         `methods' field to get the method builder.  The `token' argument is the
23851         unfixed token.
23852
23853         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
23854         invalid characters instead of g_assert_not_reached()ing.  This seems
23855         to be the behaviour of mscorlib.
23856
23857 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
23858
23859         * object.c (mono_runtime_invoke_array): applied patch from Rachel
23860         Hestilow to fix bug #25104
23861
23862 2002-05-21  Martin Baulig  <martin@gnome.org>
23863
23864         * debug-symfile.c (mono_debug_find_source_location): New function.
23865         Looks up an IL offset in the line number table and returns the source
23866         location as a string.
23867
23868 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23869
23870         * icall.c:
23871         (mono_double_ToStringImpl): changed %f by %g until we have something
23872         better.
23873
23874 2002-05-21  Nick Drochak  <ndrochak@gol.com>
23875
23876         * icall.c : Use different name for Math.Pow's icall.  Needed to check
23877         parameters first in C#.
23878
23879 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
23880
23881         * icall.c, reflection.h: added icall to get info about an event.
23882
23883 2002-05-20  Radek Doulik  <rodo@ximian.com>
23884
23885         * object.c (mono_value_box): don't use memcpy for boxing on BIG
23886         endian
23887         (mono_value_box): don't use memcpy for small sizes on
23888         architectures with unaligned access
23889
23890 2002-05-20  Martin Baulig  <martin@gnome.org>
23891
23892         * reflection.c (mono_reflection_setup_internal_class): Don't crash
23893         if `tb->parent == NULL'.
23894         (mono_reflection_create_internal_class): New function.  This is
23895         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
23896         for enum types.
23897
23898         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
23899         New interncall.
23900
23901 2002-05-19  Martin Baulig  <martin@gnome.org>
23902
23903         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
23904         argument to get the length, don't default to the array length.
23905
23906 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
23907
23908         * assembly.c (mono_assembly_setrootdir): New function used to
23909         override the MONO_ASSEMBLIES directory.
23910
23911 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
23912
23913         * icall.c: ValueType_GetHashCode() initialize local var.
23914
23915 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
23916
23917         * reflection.c: sort custom attributes table.
23918
23919 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
23920
23921         * reflection.c: support named args in custom attributes (write support).
23922
23923 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
23924
23925         * reflection.c: fix finally position calculation.
23926
23927 2002-05-15  Radek Doulik  <rodo@ximian.com>
23928
23929         * reflection.c: fixed endianess at many places
23930
23931         * icall.c (ves_icall_InitializeArray): comment out debug msg
23932
23933 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
23934
23935         * object.c (mono_unhandled_exception): new function to handle
23936         unhandled exceptions.
23937         (mono_unhandled_exception): call the UnhandledException event.
23938         (mono_runtime_delegate_invoke): impl.
23939
23940 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
23941
23942         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
23943         returns the RVA, not the direct pointer to the data. Handle the case
23944         when the class size is fixed.
23945
23946 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
23947
23948         * reflection.c: fix some endianess issues.
23949
23950 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
23951
23952         * object.c (mono_runtime_invoke): is now able to catch exceptions.
23953
23954         * threads.c (mono_thread_init): added a callback which is invoked
23955         at thread start.
23956
23957 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
23958         
23959         * icall.c: make GetHashCode return non-negative values.
23960
23961 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
23962
23963         * object.c, icall.c, gc.c: revert to address-based hashcode.
23964
23965 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
23966
23967         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
23968
23969 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
23970
23971         * icall.c, class.c: special case <Module>.
23972
23973 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
23974
23975         * icall.c: fix bug in GetNow().
23976
23977 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
23978
23979         * object.c (mono_runtime_class_init): make sure that we call all
23980         static class constructors.
23981
23982 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
23983
23984         * reflection.c: sort methodsemantics table.
23985
23986 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
23987
23988         * reflection.h, reflection.c: honour init locals setting.
23989
23990 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
23991
23992         * icall.c: copied Double ToStringImpl for Single ToStringImpl
23993
23994 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
23995
23996         * reflection.c: support ContructorBuilders in attribute blob creation.
23997
23998 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
23999
24000         * reflection.c: some changes to build a binary that can be run
24001         directly in windows.
24002
24003 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
24004
24005         * loader.c: print a big message when an icall can't be found.
24006
24007 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24008
24009         * string-icalls.c: fix bug 24248.
24010
24011 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
24012
24013         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
24014         icall.c, reflection.h: separate assembly loading by pathname and by
24015         assembly name. Use the MONO_PATH env var to search for assemblies.
24016
24017 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
24018
24019         * assembly.c, image.h: add some support for assemblies
24020         with multiple modules.
24021         * class.c, class.h: export mono_class_from_typeref().
24022         * loader.c: remove duplicated code and use mono_class_from_typeref(),
24023         instead.
24024
24025 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
24026
24027         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
24028         documentation says (the ECMA one is correct).
24029
24030 2002-05-02  Dick Porter  <dick@ximian.com>
24031
24032         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
24033         Don't name the synchronisation mutex.
24034
24035 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
24036
24037         * rand.c
24038         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
24039         Make the prototypes match.
24040         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
24041         Same.
24042
24043         * icall.c
24044         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
24045         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
24046         all systems have tm.tm_zone, so use strftime() with %Z to print
24047         the timezone abreviation into a temp string.
24048
24049         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
24050         rather than mono_array_addr() on a MonoString on Big Endian
24051         machines.
24052
24053 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
24054
24055         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
24056         fix bug 24041
24057
24058 2002-04-30  Dick Porter  <dick@ximian.com>
24059
24060         * socket-io.c: Cope with SOCKET being an integer rather than a
24061         pointer now.
24062
24063         * threads.c: Added Thread_free_internal, to deal with thread
24064         handle cleanup.  Moved calls to handle_store() and handle_remove()
24065         to start_wrapper(), so each can only be called once.  Allocate
24066         synchronisation blocks with GC_malloc(), and use GC finalisation
24067         to close the handles.
24068
24069         * icall.c: added System.Threading.Thread::Thread_free_internal
24070
24071 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
24072
24073         * icall.c: support Environment.Exit, CommandLineArgs().
24074
24075 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
24076
24077         * object.c, object.h: added mono_runtime_run_main () and
24078         mono_runtime_get_main_args () for use in System.Environment.
24079
24080 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
24081
24082         * gc.c: fix thinko, enable actual finalization since the jit is now
24083         fixed.
24084
24085 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
24086
24087         * gc.c, object.c: take into account that an object may be offset wrt the address
24088         returned by GC_malloc().
24089
24090 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
24091
24092         * image.c: handle files without entries in the assembly table (modules).
24093
24094 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
24095
24096         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
24097         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
24098         allowed to be null when it's System.Object class setup.
24099
24100 2002-04-27  Martin Baulig  <martin@gnome.org>
24101
24102         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
24103         if `tb->parent == NULL' rather than crashing.
24104
24105 2002-04-28  Nick Drochak  <ndrochak@gol.com>
24106
24107         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
24108         calling acos() where asin() should have been called.
24109
24110 2002-04-26  Martin Baulig  <martin@gnome.org>
24111
24112         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
24113         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
24114         there's a subdirectory called `System', but we don't want to read that
24115         subdirectory as an assembly.
24116
24117 2002-04-25  Martin Baulig  <martin@gnome.org>
24118
24119         * debug-symfile.c: Reflect latest MonoString changes.
24120
24121 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
24122
24123         * rand.c, rand.h: instance method icalls need to have an explicit
24124         this pointer as first argument in the C implementation.
24125
24126 2002-04-25  Nick Drochak <ndrochak@gol.com>
24127
24128         * icall.c: Fix typo in map for GetNonZeroBytes
24129
24130 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
24131
24132         * string-icalls.c : String does now passes unit tests without any 
24133         errors, the following changes has been made:
24134         
24135         Implemented replace methods.
24136         Renaming of methods to (try) follow the standard.
24137         Fixed compare ordinal
24138         Made all memory allocated directly to function instead of via icall function.
24139         Small performance fix in is_in_array function
24140                         
24141  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
24142
24143         c (mono_string_Internal_ctor_charp_int_int):
24144         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
24145         sindex < 0, throw ArgumentOutOfRangeException instead of
24146         ArgumentNullException.
24147
24148         Added new check for length == 0, however
24149         I need to make it return String.Empty from the C code.
24150         
24151         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
24152         that calculate the length for us here.
24153         
24154         (mono_string_Internal_ctor_sbytep_int_int): Replaced
24155         mono_string_new_utf16 with mono_string_new, since value is utf8.
24156
24157 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
24158
24159         * object.c: register the object for finalization if needed.
24160         Allocate one more char in the string for the terminating 0 char.
24161
24162 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
24163
24164         * class.c, class.h, image.c: check if a type implemenst a destructor.
24165         Use the proper key for array class lookups.
24166         * icall.c: register the icalls in the System.GC class.
24167         * gc.c, gc.h: GC-related functions and icalls.
24168
24169 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24170
24171         * icall.c:
24172         * socket-io.c:
24173         * unicode.c: free some strings gotten from mono_string_to_utf8 and
24174         changed a couple of free () by g_free ().
24175
24176         * decimal.c: one-liner in the comments for decimal2string ().
24177
24178 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
24179
24180         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
24181
24182 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
24183
24184         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
24185         * object.c (mono_runtime_invoke_array) : handle null in params
24186
24187 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
24188
24189         * string-icalls.c: fixed bug in split (one off bug)
24190
24191 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
24192
24193         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
24194         * icalls.c: added String::Equals as internal method
24195
24196 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
24197
24198         * threads.c: fixed bug in the double interlocked functions
24199
24200 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
24201
24202         * threads.c: implemented all of the new interlocked icalls.
24203         * string-icalls.c: fix a bug in insert.
24204         * icalls.c: added the icalls for interlocked, removed old string functions.
24205         
24206 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
24207
24208         * loader.c: fix off-by-one error when reading argument names.
24209
24210 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
24211
24212         * profiler.c: win32 counter implementation (untested).
24213         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
24214         (the latter needs testing and more complete impl. from win32 folks).
24215
24216 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
24217
24218         * object.c: mono_array_new_full workaround mono_array_class_get
24219         problem.
24220
24221 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
24222
24223         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
24224         * object.h (mono_string_chars): Changed casting type.
24225
24226 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
24227
24228         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
24229                            method signatures to use gunichar2 instead of gint16.
24230
24231 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
24232
24233         * object.h, object.c: domain-specific versions of mono_object_new and
24234         mono_array_new.
24235
24236 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
24237
24238         * object.c: changed String layout
24239
24240         * string-icalls.c (mono_string_Internal_ctor_chara): added
24241         internal string constructors.
24242
24243 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
24244
24245         * threads.c: pass 'this' to the thread start routine.
24246
24247 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24248
24249         * string-icalls.c: fix IndexOf and LastIndexOf. Now
24250         InternalCompareStr don't call twice mono_string_cmp_char for the last
24251         character. Improved performance in mono_string_cmp_char.
24252
24253 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
24254
24255         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
24256         code into its own library: libmonoruntime.
24257
24258 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
24259
24260         * object.h, object.c: changed array format so that szarrays do not
24261         require a bounds structure.
24262         * icall.c, appdomain.c: support for new szarray format.
24263
24264 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
24265
24266         * metadata.c: compare also the retuns type when comparing signatures:
24267         we didn't do this as an optimization since really overloaded methods
24268         must differ also in the arguments, but this doesn't work with
24269         low-level IL code (or when using explicit conversion operators: see
24270         bug#23498 for an example).
24271
24272 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
24273
24274         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
24275
24276 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
24277
24278         * icall.c: make MonoType::GetElementType its own icall.
24279
24280 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
24281
24282         * icall.c: remove MonoMethod_get_Name().
24283         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
24284         object.
24285
24286 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
24287
24288         * string-icalls.c: optimized a few methods.
24289
24290 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
24291
24292         * icall.c: added all new string internal calls
24293         * string-icalls.c: added, new string internal call implementation.
24294         * object.c: added mono_string_new_size for allocating a string a size
24295
24296 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
24297
24298         * object.c (mono_object_isinst): use the same code as in the
24299         optimized x86 version.
24300
24301 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
24302
24303         * profiler.c: TSC-based timer code (faster and more accurate).
24304         Not hooked up in configure, yet (set USE_X86TSC to 1).
24305
24306 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
24307
24308         * profiler.c, profiler.h: track time spent compiling methods.
24309         * threads.c: track thread creation/destruction.
24310
24311 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
24312
24313         * profiler.c, profiler.h, profiler-private.h: profiling interface
24314         and sample implementation. Moved here so that it can be used also by
24315         the jit.
24316
24317 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
24318
24319         * reflection.c, reflection.h: keep types and other handles separate in
24320         the hash tables for referred tokens. Add guid for modules.
24321
24322 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
24323
24324         * assembly.c: fix bugs found with valgrind.
24325         * metadata.h, metadata.c: added mono_metadata_guid_heap().
24326
24327 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
24328
24329         * threads: added icall support for getting current domain for
24330                    the thread.
24331  
24332 2002-04-13  Martin Baulig  <martin@gnome.org>
24333
24334         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
24335         (MonoDebugVarInfo): Added `index' field for register based addresses.
24336         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
24337         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
24338         `MonoDebugVarInfo *params' and `guint32 this_offset' with
24339         `MonoDebugVarInfo *this_var'.
24340
24341         * debug-symfile.c (relocate_variable): New static function to write
24342         a location description for a local variable or method parameter.
24343
24344 2002-04-12  Martin Baulig  <martin@gnome.org>
24345
24346         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
24347         stack offset and begin/end scope address of a local variable.
24348         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
24349         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
24350         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
24351
24352         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
24353         Added new relocation types for start/end scope of a local variable.
24354
24355 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
24356
24357         * object.h: add mono_object_domain() macro.
24358         * reflection.c: handle typespecs.
24359         * icall.c: MonoMethod::get_Name() implementation.
24360
24361 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
24362
24363         * icall.c: String::GetHashCode() icall implementation.
24364
24365 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
24366
24367         * icall.c: String::IndexOfAny icall.
24368         * object.c, object.h: make array->max_length more useful.
24369         Intrduced mono_object_class() and mono_string_length() macros.
24370
24371 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24372
24373         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
24374         instead of g_unichar_isdigit.
24375
24376 2002-04-11  Nick Drochak  <ndrochak@gol.com>
24377
24378         * icall.c: Implement a simple Double.ToString().
24379
24380 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
24381
24382         * appdomain.h: only io-layer.h is supposed to be included.
24383         * icall.c: explicitly import environ. Fix warning.
24384
24385 2002-04-10  Nick Drochak  <ndrochak@gol.com>
24386
24387         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
24388                 return true even if it's not Daylight Savings time.
24389                 Only return false for the case where the function isn't
24390                 implemented for a plaform (read Windows).
24391
24392 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
24393
24394         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
24395         data with a mutex.
24396
24397 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
24398
24399         * mempool.c (mono_mempool_alloc): only use g_malloc when
24400         absolutely necessary.
24401
24402 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
24403
24404         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
24405
24406         * class.c (mono_class_vtable): use domain mempool to allocate vtable
24407         (mono_class_proxy_vtable): use domain mempool
24408
24409 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
24410
24411         * appdomain.h, appdomain.c: split initialization that requires the
24412         execution engine support into mono_runtime_init().
24413
24414 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
24415
24416         * class.c (mono_class_init): don't include vtable inside MonoClass
24417         to save some memory, gather some statistics.
24418         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
24419
24420 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
24421
24422         * icall.c: internalcall implementation for ValueType.Equals().
24423
24424 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
24425
24426         * object.c (mono_message_init): moved 
24427         (mono_runtime_exec_main): new arch. independent impl.
24428         (mono_runtime_invoke_array): new method - like
24429         mono_runtime_invoke, but you can pass an array of objects.
24430         (mono_remoting_invoke): new arch. independent impl.
24431         (mono_message_invoke): new arch. independent impl.
24432         (mono_runtime_class_init): new arch. independent impl.
24433         (mono_runtime_object_init): new arch. independent impl.
24434
24435 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
24436
24437         * metadata.c, object.c, reflection.c: documented the exported
24438         functions.
24439
24440 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
24441
24442         * icall.c: simpler code to pass the assembly builder data to corlib.
24443         Implement GetNestedTypes() internalcall.
24444
24445 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
24446
24447         * class.c: warn if a type can't be loaded.
24448
24449 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
24450
24451         * image.h: typedef MonoImageOpenStatus
24452         * types.h: removed unused file
24453         
24454 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
24455
24456         * icall.c: Enum_ToObject accepts enum value arguments.
24457
24458 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
24459
24460         * class.c: move initialization of properties, events and nested
24461         classes, so that they happen for interfaces, too.
24462
24463 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
24464
24465         * icall.c: cleanup some ugly casts in Array_SetValue*.
24466
24467 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
24468
24469         * icall.c: the values array fro enums is of the correct type, now.
24470         Implement (correctly) getFullName instead of assQualifiedName for
24471         MonoType.
24472         * reflection.h, reflection.c: added mono_type_get_name ().
24473
24474 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
24475
24476         * assembly.c, image.h: for each MonoImage, record from wich assembly
24477         it was loaded.
24478         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
24479         Make Type.Assembly work.
24480
24481 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
24482
24483         * debug-symfile.h: use char* instead of gpointer to avoid
24484         unnecessary casts.
24485
24486         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
24487
24488         * icall.c (ves_icall_InternalExecute): impl. FielSetter
24489         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
24490
24491 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
24492
24493         * icall.c (mono_message_init): impl. (code cleanup)
24494         (ves_icall_InternalExecute): impl. FieldGetter
24495
24496         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
24497         defined we call all (non-static)methods through the vtable. 
24498
24499 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
24500
24501         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
24502         finalizer even though the memory is still referenced (and the chunk of
24503         memory is not freed).
24504
24505 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
24506
24507         * assembly.c: fix brokeness.
24508
24509 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
24510
24511         * class.c: kill some warnings. Check explicit interface method
24512         implementation also without considering the namespace.
24513         Load also literal strings in static class data.
24514
24515 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
24516
24517         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
24518         (default_assembly_name_resolver): Make the resolver take the
24519         "base" directory where the assembly was originally defined, so we
24520         can load DLLs that are in the same directory as the assembly that
24521         is being referenced.
24522
24523 2002-03-28  Dick Porter  <dick@ximian.com>
24524
24525         * file-io.h: 
24526         * file-io.c:
24527         * socket-io.c: 
24528         * unicode.h: 
24529         * unicode.c: Warning cleanups
24530
24531 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
24532
24533         * object.h, reflection.h: use the correct type instead of MonoObject.
24534
24535 2002-03-28  Martin Baulig  <martin@gnome.org>
24536
24537         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
24538         (mono_debug_update_symbol_file): Initialize classes if necessary.
24539
24540 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
24541
24542         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
24543         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
24544
24545 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
24546
24547         * assembly.h: fix function prototype.
24548         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
24549         * mono-endian.h: use const cast.
24550
24551 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
24552
24553         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
24554
24555 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
24556
24557         * loader.c: don't assert when a typeref can't be loaded, give
24558         a chance to the runtime to trow an exception instead.
24559         * loader.h: fix warning.
24560
24561 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
24562
24563         * class.c (mono_class_proxy_vtable): added proxy support
24564
24565 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
24566
24567         * icall.c: removed last of PAL calls, added System.Environment
24568         * file-io.h, file-io.c: MonoIO implementation
24569         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
24570
24571 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
24572
24573         * appdomain.c: do not use the byte marker in ldstr table lookup.
24574         * debug-helpers.c: allow two ':' to separate class and method name.
24575         * object.c: allocate arrays bounds with the GC, too.
24576         * verify: add a few more checks.
24577
24578 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
24579
24580         * reflection.c: output also literal strings. Allocate parameter data
24581         with GC_malloc() (thanks, Martin, for catching this!).
24582
24583 2002-03-26  Martin Baulig  <martin@gnome.org>
24584
24585         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
24586         include the `this' offset in the `param_offsets'.
24587
24588 2002-03-25  Martin Baulig  <martin@gnome.org>
24589
24590         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
24591         mono_debug_get_class() function to get the classes. Added new
24592         relocation types for arrays and strings.
24593         (mono_debug_get_class): New static function to search in all
24594         referenced assemblies for a metadata token.
24595
24596         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
24597
24598 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
24599
24600         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
24601         hold gc-allocated objects. Make the string heap a stream like the
24602         others. Removed duplicated code when writing stream info.
24603         Added asserts to catch possible buffer overflows. Set the sorted map
24604         for tables that need sorting. Added some documentation.
24605
24606 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
24607
24608         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
24609         for interned strings and vtables.
24610
24611 2002-03-24  Martin Baulig  <martin@gnome.org>
24612
24613         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
24614         it in the array since it was created with g_slist_prepend().
24615
24616 2002-03-24  Martin Baulig  <martin@gnome.org>
24617
24618         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
24619         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
24620         (mono_debug_method_from_token): Renamed to
24621         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
24622         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
24623
24624         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
24625         relocation types.
24626
24627         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
24628
24629 2002-03-24  Martin Baulig  <martin@gnome.org>
24630
24631         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
24632         (mono_debug_method_from_token): New func.
24633
24634         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
24635         New interncall, calls mono_debug_local_type_from_signature().
24636         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
24637         calls mono_debug_method_from_token().
24638
24639 2002-03-23  Martin Baulig  <martin@gnome.org>
24640
24641         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
24642         specifies the number of bytes to be converted, not the array size.
24643         Return the number of chars, not the number of bytes.
24644         (ves_icall_iconv_get_chars): The `byteCount' argument
24645         specifies the number of bytes to be converted, not the array size.
24646
24647 2002-03-23  Martin Baulig  <martin@gnome.org>
24648
24649         * reflection.h (MonoReflectionSigHelper): New type.
24650
24651         * reflection.c (mono_reflection_sighelper_get_signature_local),
24652         (mono_reflection_sighelper_get_signature_local): New functions.
24653
24654         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
24655         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
24656         interncalls.
24657
24658 2002-03-23  Martin Baulig  <martin@gnome.org>
24659
24660         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
24661         is_writeable is set.
24662         (mono_raw_buffer_update): New function to write the modified map
24663         back to disk.
24664
24665         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
24666
24667         * debug-symfile.c (mono_debug_update_symbol_file): Call
24668         mono_raw_buffer_update() when done writing.
24669
24670 2002-03-23  Martin Baulig  <martin@gnome.org>
24671
24672         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
24673
24674         * debug-symfile.c: Added support for arguments and local variables.
24675
24676 2002-03-23  Dick Porter  <dick@ximian.com>
24677
24678         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
24679         protected by ifdefs, hence breaking the w32 build.
24680
24681 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
24682
24683         * object.c: implement is_interned() the right way.
24684
24685 2002-03-21  Martin Baulig  <martin@gnome.org>
24686
24687         * debug-symfile.[ch]: New files to handle debugging information
24688         files. There's also support to dynamically update these symbol
24689         files to include machine dependent information.
24690
24691 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
24692
24693         * threads.c (mono_thread_create): new function to create thread
24694         from C
24695
24696 2002-03-20  Martin Baulig  <martin@gnome.org>
24697
24698         * icall.c (ves_icall_InternalInvoke): Create a new object if the
24699         method is a constructor.
24700         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
24701         points to ves_icall_InternalInvoke().
24702
24703 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
24704
24705         * file-io.c: Flush shouldn't throw exceptions.
24706
24707 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
24708
24709         * file-io.c: FileStream flush support; FileSetLength now
24710         restores file pointer.
24711
24712 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
24713
24714         * class.c: set image for pointer classes.
24715
24716 2002/03/19  Nick Drochak <ndrochak@gol.com>
24717
24718         * sysmath.c: Forgot one.
24719
24720 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
24721
24722         * sysmath.c: Avoid redefining existing names.
24723
24724 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
24725
24726         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
24727         handled by runtime as icall rather than dllimport from libm.so
24728         * file-io.c, file-io.h: fixed handle argument type.
24729
24730 2002-03-18  Dick Porter  <dick@ximian.com>
24731
24732         * reflection.c (mono_image_get_type_info): rename interface to
24733         iface, because of "#define interface struct" on windows.
24734
24735 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
24736
24737         * class.c, class.h: rename and export mono_ptr_class_get().
24738         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
24739         * reflection.c, reflection.h, icall.c: better/saner type name
24740         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
24741         method signatures.
24742
24743 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
24744
24745         * class.c (mono_class_init): removed hardcoded GHC_SLOT
24746
24747         * icall.c (ves_icall_InternalInvoke): impl.
24748
24749 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
24750
24751         * reflection.c: output the interface map table, too.
24752
24753 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
24754
24755         * class.c (class_compute_field_layout): separate computation of 
24756         static field layout
24757
24758 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
24759
24760         * icall.c: added System.Buffer support.
24761         * file-io.c: moved file icalls from PAL to FileStream.
24762
24763 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
24764
24765         * icall.c (ves_icall_System_Object_GetHashCode): impl.
24766
24767 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
24768
24769         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
24770
24771 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
24772
24773         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
24774
24775 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
24776
24777         * debug-helpers.{c,h}: moved here from monograph some useful functions
24778         to locate a method by name/signature in a class or image. Included
24779         also a small and flexible IL disassembler.
24780
24781 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
24782
24783         * reflection.c: fixup tokens in methods with small header size, too.
24784
24785 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
24786
24787         * object.c (mono_string_to_utf8): remove assert(!error), instead
24788         print a warning. 
24789
24790 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
24791
24792         * icall.c: update to the new mono_Array_class_get interface.
24793
24794 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
24795
24796         * appdomain.c, object.c: Boehm-GC enable.
24797         * icall.c: make get_data_chunk() support split data requests.
24798         Ensure a class is initialized in more cases. Return only the first
24799         property found in GetProperties() or the compiler gets confused. 
24800         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
24801         * reflection.h, reflection.c: add fixup mechanism for field and method
24802         tokens. Initialize assembly->typeref in a single place. Output
24803         properties after events. Support custom attributes for events, too.
24804         Typo fix for paramter custom attrs.
24805
24806 2002-03-07  Martin Baulig  <martin@gnome.org>
24807
24808         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
24809
24810 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
24811
24812         * class.c (mono_array_class_get): fix. for multi. dim. arrays
24813
24814 2002-03-06  Martin Baulig  <martin@gnome.org>
24815
24816         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
24817         non-zero lower bounds. See testcases #F10-#F13.
24818
24819 2002-03-05  Martin Baulig  <martin@gnome.org>
24820
24821         * exception.c (mono_get_exception_argument_out_of_range): New exception.
24822
24823         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
24824         ves_icall_System_Array_GetValue(), only calculate the absolute array position
24825         here.
24826         (ves_icall_System_Array_SetValue): Likewise.
24827         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
24828         as argument and does the actual work. This function is used when copying a
24829         multi-dimensional array.
24830         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
24831         now do all the widening conversions of value types.
24832         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
24833
24834 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
24835
24836         * class.c: remove some magic numbers and use the smbolic names,
24837         instead. Added init_events() to load event info at class init time.
24838         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
24839         and mono_metadata_methods_from_event().
24840         * reflection.h, reflection.c: added support for writing out the evnets
24841         related information.
24842
24843 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
24844
24845         * reflection.h, icall.c: use a different method (GetInterfaces)
24846         to gather interface info and add isbyref, isprimitive and
24847         ispointer to the ves_icall_get_type_info() return value.
24848
24849 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
24850
24851         * class.h: stared adding support for events.
24852         * icall.c: split find_members implementation. Added debug icall to get
24853         the address of an object.
24854         * reflection.c: handle TypeBuilders in mono_type_get_object().
24855
24856 2002-03-01  Martin Baulig  <martin@gnome.org>
24857
24858         * icall.c (ves_icall_System_Array_GetLength): This must throw an
24859         ArgumentOutOfRangeException(), not an ArgumentException().
24860         (ves_icall_System_Array_GetLowerBound): Likewise.
24861         (ves_icall_System_Array_GetValue): Improved argument checking.
24862         (ves_icall_System_Array_SetValue): Improved argument checking.
24863
24864 2002-03-01  Martin Baulig  <martin@gnome.org>
24865
24866         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
24867         called with invalid arguments rather than just dying with g_assert().
24868         (ves_icall_System_Array_SetValue): Likewise.
24869         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
24870         raise a NotImplementedException instead.
24871         (ves_icall_System_Array_GetLength): Added argument checking.
24872         (ves_icall_System_Array_GetLowerBound): Added argument checking.
24873
24874 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
24875
24876         * object.h (mono_assert): new macros mono_assert and
24877         mono_assert_not_reached
24878
24879 2002-02-28  Martin Baulig  <martin@gnome.org>
24880
24881         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
24882         and "System::String::IsInterned" to "System::String::_IsInterned".
24883
24884 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
24885
24886         * icall.c: remove hacks for typebuilder. Added icall to create a
24887         modified type from a tybebuilder.
24888         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
24889         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
24890         to create a backing MonoClass for a TypeBuilder.
24891
24892 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
24893
24894         * class.c, class.h: more refactoring of class init.
24895         Export mono_class_setup_mono_type() and mono_class_setup_parent().
24896
24897 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
24898
24899         * marshal.c, marshal.h: start of marshaling interface.
24900
24901 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
24902
24903         * icall.c: fix order in assembly qualified name icall.
24904
24905 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
24906
24907         * class.c: do not free str, since we store it in the hash table.
24908         * reflection.h: add label field to MonoILExceptionInfo.
24909         * reflection.c: handle references to more than one assembly. Handle
24910         case when there isn't a module created in the assembly.
24911
24912 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
24913
24914         * class.c: Fix typo. Start refactoring of class init code.
24915
24916 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
24917
24918         * appdomain.c: exit with 1 on error.
24919         * class.c: we already have the name in MonoClassField.
24920         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
24921         MonoStreamHeader instead of an offset of image->raw_metadata.
24922
24923 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
24924
24925         * appdomain.c (mono_init): Be even more descriptive about the error.
24926
24927 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
24928
24929         * appdomain.c: give the user an informative message when corlib can't
24930         be loaded.
24931
24932 2002-02-26  Martin Baulig  <martin@gnome.org>
24933
24934         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
24935         New icall to get the time zone data.
24936
24937 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
24938
24939         * reflection.c: set virtual and raw size of section correctly.
24940         * threads.c: transfer domain information to newly created threads.
24941
24942 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
24943
24944         * class.c: when instancing a class in a domain, load the default
24945         vaules for static fields from the constant table. Fix System.Enum to
24946         not be an enum.
24947         * icall.c: implement Object::GetType() internalcall. Implemented
24948         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
24949         Fixed checking of binding flags in find_members().
24950         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
24951         * reflection.c: handle enumerations when writing to the constant
24952         table. Use a different object cache for types.
24953
24954
24955 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
24956
24957         * object.c (mono_object_isinst): fix for arrays
24958
24959         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
24960
24961 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
24962
24963         * object.c: don't use mprotect ()  and fix intern pool hash table
24964         lookup for big endian systems.
24965
24966 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
24967
24968         * icall.c: change type_is_subtype_of () signature.
24969
24970 2002-02-21  Mark Crichton  <crichton@gimp.org>
24971
24972         * rand.c, rand.h: Added random number generator for
24973         System.Security.Cryptography classes.
24974
24975         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
24976
24977         * icall.c: Added System.Security.Cryptography calls.
24978
24979 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
24980
24981         * class.c, icall.c, metadata.c: better support for pointer types.
24982         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
24983         * reflection.c: Add support for getting custom attrs for properties
24984         and simplify some code.
24985
24986 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
24987
24988         * icall.c: change getToken () and add custom attribute GetBlob()helper
24989         method.
24990         * reflection.h: add custom attrs array to the reflection builder structures.
24991         * reflection.c: encode and emit custom attributes for all the relevant
24992         reflection objects. Cache fieldref and methodref tokens. Change
24993         mono_image_create_token() interface to take a MonoDynamicAssembly.
24994         More complete custom attributes decoder. Load custom attributes for
24995         Assembly, Field, Method and Constructor objects, too. Make the
24996         returned array an Attribute[] one, not object[]. Added
24997         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
24998         custom attribute constructor.
24999
25000 2002-02-20  Dick Porter  <dick@ximian.com>
25001
25002         * icall.c:
25003         * rawbuffer.c:
25004         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
25005         problem code out for now).
25006
25007 2002-02-19  Radek Doulik  <rodo@ximian.com>
25008
25009         * object.c (mono_ldstr): use hash table to avoid multiple swapping
25010
25011 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
25012
25013         * icall.c: register the GetCustomAttributes method.
25014         * object.c, object.h: add mono_string_new_len ().
25015         * reflection.h, reflection.c: added mono_runtime_invoke(),
25016         mono_install_runtime_invoke(). Added
25017         mono_reflection_get_custom_attrs () to load custom attributes and
25018         create the attribute objects.
25019
25020 2002-02-19  Dick Porter  <dick@ximian.com>
25021         * threads-dummy-types.c:
25022         * threads-dummy-types.h:
25023         * threads-dummy.c:
25024         * threads-dummy.h:
25025         * threads-pthread-types.c:
25026         * threads-pthread-types.h:
25027         * threads-pthread.c:
25028         * threads-pthread.h:  Deleted obsolete files
25029
25030 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
25031
25032         * class.c (mono_class_vtable): runtime init the class when we
25033         allocate static class data.
25034
25035         * icall.c (ves_icall_System_Array_SetValue): check for null values.
25036
25037         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
25038         and String - but we will need generic marshalling support in the
25039         future. 
25040         (mono_init): set the domain name in a ms compatible way
25041
25042         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
25043         String[].
25044
25045 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
25046
25047         * object.c (mono_array_clone): use alloca() instead of g_malloc  
25048         for sizes
25049
25050         * appdomain.c (mono_domain_unload): impl.
25051
25052 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
25053
25054         * appdomain.c, object.c: fix intern pool implementation.
25055         * class.c: fix alignment code.
25056
25057 2002-02-16  Radek Doulik  <rodo@ximian.com>
25058
25059         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
25060         and s2 > s1, just copy lower bytes to be compatible with little
25061         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
25062         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
25063
25064         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
25065         force big_endian to be 1 for big endian machines 
25066         (ves_icall_iconv_new_decoder): ditto
25067
25068 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
25069
25070         * socket-io.c (convert_sockopt_level_and_name): If the system
25071         doesn't define SOL_IP or SOL_TCP, get them by hand using
25072         getprotobyname() and caching the values (because this could be a
25073         slow operation).
25074         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
25075         Use the appropriate struct when the system does support it. Ie,
25076         not all systems have struct ip_mreqn so use struct ip_mreq when
25077         appropriate.
25078
25079 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
25080
25081         * reflection.c: handle finally clauses.
25082
25083 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
25084
25085         * socket-io.c: use g_snprintf() instead of snprintf.
25086
25087 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
25088
25089         * reflection.c (mono_param_get_objects): Cast second argument to
25090         mono_method_get_param_names to a const char** to silence the
25091         compiler warning.
25092
25093         * appdomain.c (mono_domain_assembly_open): Put parens around the
25094         truth statement in the for-loop.
25095
25096         * unicode.c (iconv_convert): Got rid of a compiler warning about
25097         int i being unused when the system has a new iconv.
25098         (iconv_get_length): Same.
25099
25100         * image.c (load_class_names): Cast the second argument to
25101         g_hash_table_insert() to char* to hush compiler warnings about the
25102         arg being a const.
25103         (mono_image_open): Same here.
25104
25105         * socket-io.c: Don't conditionally include sys/filio.h or
25106         sys/sockio.h here anymore since we now get them from
25107         io-layer/io-layer.h
25108         (inet_pton): If the system doesn't support inet_aton, implement
25109         using inet_addr and also #define INADDR_NONE if it isn't defined
25110         by the system.
25111
25112 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
25113
25114         * metadata.c, metadata.h: added function to get packing and size info
25115         of a typedef.
25116         * reflection.h, reflection.c: handle field RVA data. Save info about
25117         the table layout if needed. Assign typedef indexes to all the types
25118         before dumping the info about them to avoid forward reference problems.
25119
25120 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
25121
25122         * socket-io.c (convert_sockopt_level_and_name): ifdef
25123         SO_ACCEPTCONN because it is not defined on my system (old debian)
25124
25125 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
25126
25127         * opcode.c: use stddef.h to get NULL.
25128
25129 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
25130
25131         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
25132         for FIONBIO, FIONREAD and SIOCATMARK.
25133         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
25134         define INADDR_NONE and besides, inet_addr() is deprecated and
25135         should not be used. Use inet_pton() instead - it also has the
25136         added bonus that it can easily handle IPv6 addresses as well.
25137         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
25138
25139 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
25140
25141         * decimal.c: remove _MSC_VER conditional.
25142
25143 2002-02-13  Dick Porter  <dick@ximian.com>
25144
25145         * socket-io.c: 
25146         * icall.c: Internal calls for Blocking, Select, Shutdown,
25147         GetSocketOption and SetSocketOption
25148
25149 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
25150
25151         * assembly.cs: better resolver: use it instead of some kludgy
25152         code.
25153
25154 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
25155
25156         * reflection.c: the best way to speed-up the compiler is to avoid
25157         infinite loops.
25158
25159 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
25160
25161         * class.c (mono_class_vtable): changed the object layout
25162         (obj->vtable->class). 
25163         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
25164
25165 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
25166
25167         * assembly.c: look for assemblies in the assembly dir, too.
25168
25169 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
25170
25171         * class.c: fix thinko in mono_class_from_type().
25172
25173 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
25174
25175         * exception.h, exception.c: added TypeLoadException.
25176         * object.h, object.c: added mono_array_clone ().
25177         * icall.c: handle throwOnError in AssemblyGetType().
25178         Added Array.Clone().
25179         * opcode.h, opcode.c: use a single value for the opcode val.
25180         Compile fix for non-gcc compilers.
25181
25182 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
25183
25184         * opcodes.c, opcodes.h: export interesting info about opcodes.
25185
25186 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
25187
25188         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
25189         icalls. 
25190
25191         * class.c (class_compute_field_layout): set element_class for enums
25192         (mono_class_create_from_typedef): set element_class for normal classes
25193
25194         * icall.c (ves_icall_System_Enum_get_value): impl.
25195
25196         * class.c (mono_class_create_from_typedef): do not set valuetype
25197         flag for System.ValueType and System.Enum
25198
25199 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
25200
25201         * unicode.c (iconv_convert): fix big endian problem.
25202
25203 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
25204
25205         * class.c: add asserts if we are ever going to scribble over memory.
25206         * socket-io.c: not all systems have AF_IRDA defined.
25207
25208 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
25209
25210         * class.c (class_compute_field_layout): do not consider static
25211         fields to compute alignment
25212
25213 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
25214
25215         * appdomain.c (mono_appdomain_get): impl.
25216         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
25217
25218 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
25219
25220         * icall.c: ignore "file://" prefix when loading an assembly.
25221
25222 2002-01-23  Dick Porter  <dick@ximian.com>
25223
25224         * socket-io.c:
25225         * icall.c:
25226         * Makefile.am: Added socket support
25227
25228 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
25229
25230         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
25231         code back.  This should return the assemblies that are loaded by
25232         the runtime on behalf of an application domain. 
25233
25234         The current implementation is still broken, it just returns every
25235         assembly loaded, but until we get real applications domain this
25236         will do.
25237
25238 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
25239
25240         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
25241         AppDomain object.
25242
25243 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
25244
25245         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
25246         the mono_class_from_name lookup.
25247         (ves_icall_get_parameter_info): ditto.
25248         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
25249         method.
25250         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
25251
25252 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
25253
25254         * class.c: load also nested classes on class init.
25255         System.ValueType instance methods gets passed boxed
25256         values, unless methods in derived classed that get a pointer to the
25257         data.
25258         * icall.c: use better name parsing code in GetType().
25259         * image.c, image.h: add mono_image_loaded ().
25260         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
25261         * reflection.c, reflection.h: added mono_reflection_parse_type().
25262
25263 2002-01-22  Veronica De Santis <veron78@interfree.it>
25264
25265         * icall.c : Added mapping of internal calls for Manual and Auto reset events
25266         * threads.c : Added the implementation of internal calls for events
25267         * threads.h : Added prototypes of internal calls for events
25268         
25269 2002-01-21  Radek Doulik  <rodo@ximian.com>
25270
25271         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
25272
25273 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
25274
25275         * class.c (mono_class_init): set min_align to 1 (instead of 0)
25276         (mono_class_value_size): use min_align
25277
25278 2002-01-20  Dick Porter  <dick@ximian.com>
25279
25280         * threads.h:
25281         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
25282         so it compiles on w32.
25283
25284 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
25285
25286         * metadata.c (mono_type_stack_size): impl.
25287
25288         * class.c (mono_class_get_field): impl. memberref token
25289
25290 2002-01-16 Veronica De Santis <veron78@@interfree.it>
25291
25292         * icall.h : Added the internal calls mapping for CreateMutex_internal
25293                     and ReleaseMutex_internal.
25294         * threads.h : Added the prototype of mutexes internal calls.
25295         * threads.c : Added the implementations of mutexes internal calls.
25296
25297 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
25298
25299         * metaparse.h: removed unused file.
25300         * reflection.c, reflection.h: added stream_data_align () function 
25301         to align data in streams and keep stream aligned. Add support for
25302         exception support in method headers.
25303
25304 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
25305
25306         * unicode.c: make iconv_convert () return the number of bytess written
25307         in the output buffer.
25308
25309 2002-01-15  Dick Porter  <dick@ximian.com>
25310         * threads.c: Make the runtime's idea of infinite timeouts coincide
25311         with the class library's
25312
25313         Fix a particularly egregious bug in mono_thread_cleanup(). That
25314         code was so utterly bogus it must have been written on a Monday.
25315
25316 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
25317
25318         * reflection.h: add subtypes field to TypeBuilder.
25319         * reflection.c: encode constants for literal fields.
25320         Handle subtypes. Fix user string token (and add a zero byte)
25321         at the end.
25322         
25323 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
25324
25325         * class.c (mono_class_init): bug fix: assign slot numbers for
25326         abstract methods.
25327
25328 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
25329
25330         * reflection.c: don't try to output a code RVA for abstract methods.
25331         Small fixes for method header format. Output parameter info to the
25332         ParamDef table. Save method overriding info to MethodImpl table.
25333         Fix property support. Allow typedef.extends to be a type in the
25334         building assembly.
25335         * verify.c: fix off-by-one error.
25336
25337 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
25338
25339         * class.c: fix mono_class_from_mono_type () for szarray types.
25340         Remove unused cache check in mono_class_from_type_spec().
25341         * icall.c: *type_from_name () functions handle simple arrays and byref.
25342         * reflection.c: handle byref and szarray types. Handle methods without
25343         body (gets P/Invoke compilation working). Handle types and fields in
25344         get_token ().
25345         * reflection.h: add rank to MonoTypeInfo.
25346
25347 2002-01-10  Dick Porter  <dick@ximian.com>
25348
25349         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
25350         internal calls
25351
25352 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
25353
25354         * icall.c: initialize class in type_from_handle ().
25355         Loop also in parent classes for get_method ().
25356         * reflection.c: properly encode class and valuetype types.
25357         Start on encoding TypeBuilder types. Handle fieldrefs.
25358         Use correct length when registering a user string.
25359         Handle ConstructorBuilder and MonoMethod in get_token ().
25360         Make mono_type_get_object () aware of cached types.
25361         * object.c: back out change to mono_string_new ().
25362
25363 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
25364         * object.c: mono_string_new should return a NULL when the string 
25365         passed in is NULL -- not try to deference it.
25366         
25367 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
25368
25369         * icall.c: hack to make IsSubType work for TypeBuilders.
25370         * reflection.c: emit constructors before methods.
25371         Retrieve param names in mono_param_get_objects().
25372
25373 2002/01/05  Nick Drochak  <ndrochak@gol.com>
25374
25375         * Makefile.am: fix list of headers and sources so automake 1.5
25376         doesn't complain. Removed \# at end of list.
25377
25378 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
25379
25380         * reflection.c: get token for a method ref. Set return type of
25381         constructor to void.
25382         * loader.c: debug message.
25383         * class.c: typo fix.
25384
25385 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
25386
25387         * icall.c: fix array init with rank > 1. FindMembers
25388         loops in parent class as well.
25389         * image.c: do not insert nested types in name cache.
25390         * reflection.c: warning fix.
25391         * reflection.h: add override method (for interface impl).
25392
25393 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
25394
25395         * metadata.c: fix customattr decoding.
25396
25397 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
25398
25399         * rawbuffer.cs: Added native Win32 implementation, avoids using
25400         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
25401
25402 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
25403
25404         * class.c: make the low-level routines handle the cache.
25405
25406 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
25407
25408         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
25409
25410 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
25411
25412         * class.c: fix mono_array_element_size() for objects.
25413         * class.h, class.c: add properties to MonoClass and load them
25414         at init time.
25415         * icall.c: check with isinst() when assigning a value to an array
25416         instead of requiring the classes to match exactly.
25417         Implemented icall for System.Type::GetType().
25418         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
25419         enums. Handle bindingflags when looking for methods and fields.
25420         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
25421         and mono_metadata_methods_from_property().
25422         * reflection.h, reflection.c: added structures for propreties,
25423         parameters and enums. Implemented mono_property_get_object() and
25424         mono_param_get_objects().
25425
25426 2001-12-18  Dick Porter  <dick@ximian.com>
25427
25428         * file-io.c: Use mono_string_to_utf16() instead of
25429         mono_string_chars()
25430
25431         * object.c: Added mono_string_to_utf16(), which copies the non
25432         NULL-terminated MonoString into a new double-null-terminated
25433         buffer.
25434
25435 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
25436
25437         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
25438
25439 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
25440
25441         * file-io.c: raise exceptions if handle is invalid.
25442
25443 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
25444
25445         * assembly.c: yet another check for mscorlib.
25446         * class.c, class.h: load nesting info for classes.
25447         * icall.c: many new functions to support the Reflection classes.
25448         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
25449         * reflection.h, reflection.c: mono_image_create_token(),
25450         mono_assembly_get_object(), mono_type_get_object(),
25451         mono_method_get_object(), mono_field_get_object(): methods to return
25452         objects that parallel the C representation of assemblies, types,
25453         methods, fields.
25454
25455 2001-12-11  Dick Porter  <dick@ximian.com>
25456
25457         * icall.c:
25458         * file-io.c: Internal calls for file IO.
25459
25460 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
25461
25462         * tabledefs.h: missing FileAttributes.
25463         * verify.h, verify.c: use is_valid_string () to simplify and check for
25464         valid strings more correctly. Fix warnings and speeling.
25465         Check more tables: Filed, File, ModuleRef, StandAloneSig.
25466         Check code: branches, maxstack, method calls.
25467
25468 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
25469
25470         * object.c (mono_object_allocate): removed static, so that the jit
25471         can allocate value types.
25472
25473         * icall.c (ves_icall_System_DateTime_GetNow): impl.
25474
25475 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
25476
25477         * class.c: init enum types right away and register the
25478         token->MonoClass map in mono_class_create_from_typedef ().
25479         * verify.h, verify.c: first cut of the verifier.
25480         * pedump.c: add --verify switch to verify metadata tables.
25481         * tabledefs.h: add some missing enums.
25482
25483 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
25484
25485         * class.c (mono_install_runtime_class_init): impl.
25486         (mono_class_init): renamed mono_class_metadata_init to
25487         mono_class_init, also removed the metadata_inited flag
25488
25489         * object.c (mono_object_isinst): use faster algorithm
25490
25491 2001-11-30  Radek Doulik  <rodo@ximian.com>
25492
25493         * mono-endian.h: reverted last change
25494         added function prototypes
25495
25496         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
25497         add mono-endian.c back
25498
25499         * mono-endian.c: returned back, as Paolo pointed out, it's needed
25500         for unaligned access, I've mistaked it with endianess. I am
25501         sorry.
25502         (mono_read16): fix reverted endianess
25503         (mono_read64): ditto
25504         (mono_read32): ditto
25505
25506 2001-11-30  Dick Porter  <dick@ximian.com>
25507
25508         * exception.c: Implement mono_exception_from_name()
25509
25510 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
25511
25512         * metadata.h, metadata.c: remove params_size and locals_size and their
25513         calculation from the metadata code: they are only usefult to the
25514         interp.
25515
25516 2001-11-29  Radek Doulik  <rodo@ximian.com>
25517
25518         * object.c (mono_ldstr): swap bytes here, it's probably not the
25519         best place, but works for me now, I'll redo it once I know mono
25520         better, also note that I add PROT_WRITE and don't reset back, also
25521         note that it's only affects big endians, so x86 should be OK
25522
25523         * mono-endian.h (read16): use just glib macros for both endians
25524
25525         * mono-endian.c: removed as glib macros are used in in
25526         mono-endian.h so we don't need to care about endianess for read
25527         macros as glib does that for us already
25528
25529 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
25530
25531         * class.h, class.h: take minimum alignment into consideration so
25532         that the fields of a class remain aligned also when in an array.
25533
25534 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
25535
25536         * loader.h, loader.c: add mono_method_get_param_names().
25537         * class.c: 0-init class fields.
25538
25539 2001-11-26  Dick Porter  <dick@ximian.com>
25540
25541         * icall.c:
25542         * threads-types.h:
25543         * threads.c: New file that handles System.Threading on all platforms
25544
25545         * object.c: 
25546         * object.h: Remove the synchronisation struct from MonoObject,
25547         replace it with a pointer that gets initialised on demand
25548
25549         * Makefile.am: Replace all the system-specific threading code with
25550         a single file that uses the new wrapper library
25551
25552 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
25553
25554         * class.c, class.h: add mono_install_trampoline() so that the runtime
25555         can register a function to create a trampoline: removes the ugly
25556         requirement that a runtime needed to export arch_create_jit_trampoline.
25557         * object.h, object.c: added mono_install_handler() so that the runtime
25558         can install an handler for exceptions generated in C code (with
25559         mono_raise_exception()). Added C struct for System.Delegate.
25560         * pedump.c: removed arch_create_jit_trampoline.
25561         * reflection.c: some cleanups to allow registering user strings and
25562         later getting a token for methodrefs and fieldrefs before the assembly
25563         is built.
25564         * row-indexes.h: updates and fixes from the new ECMA specs.
25565
25566 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
25567
25568         * class.h, class.c: add enum_basetype field to MonoClass.
25569         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
25570         to get index in the constant table reated to a field, param or
25571         property.
25572         * reflection.h, reflection.c: handle constructors. Set public-key and
25573         version number of the built assembly to 0.
25574         * row-indexes.h: update from new ECMA spec.
25575
25576 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
25577
25578         * class.h, class.c: add a max_interface_id to MonoClass.
25579         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
25580         since it's used to do that. Added mono_type_type_from_obj().
25581         Make GetType() return NULL instead of segfaulting if the type was not
25582         found. Handle simple arrays in assQualifiedName.
25583         * object.h: add a struct to represent an Exception.
25584         * reflection.c: output call convention in method signature.
25585         Add code to support P/Invoke methods and fixed offsets for fields.
25586
25587 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
25588
25589         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
25590         the value.
25591         * icall.c: use mono_array_addr instead of array->vector: fixes the
25592         reflection image writing.
25593         * reflection.c: init call convention byte to 0 in method signature.
25594         Encode the property signature. Don't output property-related methods
25595         twice. Really process the properties for a type (don't cast a field to
25596         a property, my mom always told me that).
25597         Fix 64 bit issues in pointer alignment in a different and more
25598         readable way.
25599
25600 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
25601
25602         * loader.h: Removed type class from MonoDefaults, added monotype
25603
25604         * loader.c: Loaded MonoType, removed loading of Type
25605
25606         * icall.c (my_mono_new_object): Now returns a System.MonoType,
25607         and fills in System.Type._impl with a RuntimeTypeHandle rather
25608         than the actual MonoClass *
25609
25610         (ves_icall_type_from_handle): change from type_class to
25611         monotype_class
25612
25613         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
25614         implemented
25615
25616         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
25617         implemented
25618
25619         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
25620
25621         (ves_icall_System_Reflection_Assembly_GetType): implemented
25622
25623         (ves_icall_System_MonoType_assQualifiedName): implemented
25624
25625         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
25626
25627 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
25628
25629         * assembly.c (mono_assembly_open): Implement a cache for the
25630         assemblies. 
25631
25632         (mono_assembly_close): only destroy the assembly when the last
25633         reference is gone.
25634         
25635 2001-11-09  Dick Porter  <dick@ximian.com>
25636
25637         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
25638
25639 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
25640
25641         * class.c (mono_class_metadata_init): bug fix: compute the right slot
25642
25643 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
25644
25645         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
25646         from Martin Weindel.
25647         * object.h: add mono_string_chars ().
25648
25649 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
25650
25651         * reflection.c (build_compressed_metadata): Eliminates warnings
25652         and uses 64-bit clean code.
25653
25654         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
25655         (mono_type_equal): Change signature to eliminate warnings.
25656
25657 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
25658
25659         * icall.c, loader.c: remove the internalcall array constructors.
25660         Changes to match the new MonoArray structure.
25661         * object.h, object.c: an array object doesn't allocate an extra
25662         vector. Add mono_array_new_full () to create jagged arrays easily.
25663
25664 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
25665
25666         * metadata.h, metadata.c: add mono_metadata_field_info () to
25667         retreive all the info about a field from vairous tables.
25668         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
25669         * class.h, class.c: augment MonoClassField with more info.
25670         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
25671         policy and load a field's RVA if needed.
25672
25673 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
25674
25675         * class.c (mono_class_metadata_init): create a trampoline for all
25676         virtual functions instead of actually compiling them.
25677
25678 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
25679
25680         * class.h, class.c: include name in MonoClassField.
25681         * class.c: fix fundamental type of System.Object and System.String.
25682         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
25683         tokens in ldtoken.
25684         * icall.c: remove internalcalls for the Reflection stuff that is now
25685         done in C# code.
25686         * loader.c: mono_field_from_memberref () implementation.
25687         * mono-endian.c: thinko (s/struct/union/g).
25688         * object.c, object.h: make the mono_string_* prototypes actually use
25689         MonoString instead of MonoObject.
25690         * reflection.c, reflection.h: updates for changes in the reflection
25691         code in corlib: we use C structures that map to the actual C# classes.
25692         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
25693         fat method header if needed and use the info from the ILGenerator for
25694         methods. Handle fields in types. Misc fixes.
25695
25696 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
25697
25698         * class.c (mono_class_metadata_init): bug fix: always allocate
25699         space for static class data
25700
25701 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
25702
25703         * class.c (mono_compute_relative_numbering): use relative
25704         numbering to support fast runtime type checks.
25705
25706 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
25707
25708         * class.c (mono_class_create_from_typeref): added debugging output
25709         to print class name when MonoDummy is returned instead of real class
25710
25711 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
25712
25713         * class.c (mono_class_metadata_init): interface offset table now
25714         contains pointers into the vtable - this is more efficient for the jit
25715
25716 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
25717
25718         * class.c (mono_class_metadata_init): use a temporary vtable (the
25719         old algorithm only worked for the interpreter, but not for the jit)
25720
25721 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
25722
25723         * loader.c (method_from_memberref): use mono_class_get to get the
25724         class of an array instead of using System.Array directly.
25725         (mono_get_method): also add MEMBERREF methods to the method cache
25726         which usefull for arrays.
25727
25728 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
25729
25730         * pedump.c (arch_compile_method): added to compute vtable entry
25731
25732         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
25733         number of interfaces.
25734         
25735         * class.h: merged MonoArrayClass into MonoClass
25736
25737         * class.c (mono_class_create_from_typedef): compute the vtable size and
25738         allocate space to include the vtable inside MonoClass
25739         (mono_class_metadata_init): initialize the vtable
25740
25741 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
25742
25743         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
25744         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
25745         * image.c: endian fixes by Laurent Rioux.
25746         * object.h, object.c: rename MonoStringObject to MonoString and
25747         MonoArrayObject to MonoArray. Change some function names to conform to
25748         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
25749         guint16* as first argument, so don't use char*.
25750         Provide macros to do the interesting things on arrays in a portable way.
25751         * threads-pthread.c: updates for the API changes and #include <sched.h>
25752         (required for sched_yield()).
25753         * icall.c: updates for the API changes above.
25754         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
25755         platforms that need them.
25756
25757 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
25758
25759         * class.c: set the correct type for all the fundamental
25760         type when loading the class.
25761
25762 2001-10-05  Dick Porter  <dick@ximian.com>
25763
25764         * threads-pthread.c (pthread_mutex_timedlock): Simple
25765         compatibility version for C libraries that lack this call.
25766
25767 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
25768
25769         * class.c: MonoTypes stored in MonoClass are stored as
25770         fundamental MonoTypes when the class represents a
25771         fundamental type (System.Int32, ...).
25772         The TypeHandle return by ldtoken is a MonoType*.
25773         * icall.c: ves_icall_get_data_chunk () write out all the
25774         PE/COFF stuff. Implement ves_icall_define_method (),
25775         ves_icall_set_method_body (), ves_icall_type_from_handle ().
25776         * image.c: properly skip unknown streams.
25777         * loader.h, loader.c: add type_class to mono_defaults.
25778         * metadata.c, metadata.h: export compute_size () as
25779         mono_metadata_compute_size () with a better interface.
25780         Typo and C&P fixes.
25781         * pedump.c: don't try to print the entry point RVA if there is no entry point.
25782         * reflection.c, reflection.h: many cleanups, fixes, output method
25783         signatures and headers, typedef and typeref info, compress the metadata
25784         tables, output all the heap streams, cli header etc.
25785         * row-indexes.h: typo fixes.
25786
25787 2001-10-04  Dick Porter  <dick@ximian.com>
25788
25789         * object.h: Add a synchronisation mutex struct to MonoObject
25790
25791         * object.c (mono_new_object): Initialise the object
25792         synchronisation mutexes
25793
25794         * icall.c: System.Threading.Monitor internal calls
25795         
25796         * threads-pthread.h:
25797         * threads-pthread.c: System.Threading.Monitor internal calls
25798
25799         * threads-types.h: New file, includes the system-specific thread
25800         structures
25801         
25802         * threads-pthread-types.h:
25803         * threads-pthread-types.c: New files, handle pthread-specific
25804         synchronisation types
25805
25806         * threads-dummy-types.h: 
25807         * threads-dummy-types.c: New files of dummy support for
25808         thread-specific types
25809
25810         * metadata.c:
25811         * image.c:
25812         * pedump.c: include mono-endian.h not endian.h
25813         
25814         * Makefile.am: More threads files.
25815         Name mono-endian.h not endian.h
25816
25817 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
25818
25819         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
25820         stuff and implement a few more bits.
25821         * icall.c: a field needs to be dereferenced twice. Do not use the same
25822         name for two variables in the same scope.
25823         * image.c, image.h: cleanups.
25824
25825 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
25826
25827         * class.c (mono_class_metadata_init): bug fix: compute the right size
25828
25829 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
25830
25831         * icall.c: implemented some of the Reflection internalcalls.
25832         * image.c, image.h: start writing out the PE/COFF image.
25833         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
25834         that does the reverse than decode_blob_size ().
25835         * object.c: use mono_metadata_encode_value (). Move here
25836         temporary implementation of mono_string_to_utf8 ().
25837         * rawbuffer.c: make malloc_map static.
25838
25839 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
25840
25841         * metadata.c: fix type comparison for arrays.
25842         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
25843         Added a couple of new classes to monodefaults.
25844         * icall.c: added a couple of Reflection-related internalcalls.
25845         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
25846         Added a byval_arg MonoType to MonoClass.
25847
25848 2001-09-28  Dick Porter  <dick@ximian.com>
25849
25850         * icall.c:
25851         * threads-pthread.h: 
25852         * threads-pthread.c: Implemented internal calls for
25853         LocalDataStoreSlot operations.  Applied mutexes around all shared
25854         data.  Reworked the thread creation and Start() operations to
25855         avoid a race condition.
25856         
25857         * threads-dummy.h:
25858         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
25859
25860 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
25861
25862         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
25863
25864 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
25865
25866         * class.c, loader.c: warn and return NULL instead of erroring out.
25867         * icall.c: added System.AppDomain::getCurDomain().
25868         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
25869
25870 2001-09-25  Dick Porter  <dick@ximian.com>
25871
25872         * threads-pthread.h:
25873         * threads-pthread.c: Implemented timed thread joining and added
25874         System.Threading.Thread::Join_internal internal call
25875
25876         * icall.c: Added System.Threading.Thread::Join_internal internal call
25877
25878         * threads-dummy.h:
25879         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
25880
25881 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
25882
25883         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
25884         mono_string_intern () to implement the semantics of the ldstr opcode
25885         and the interning of System.Strings.
25886         * icall.c: provide hooks to make String::IsIntern and String::Intern
25887         internalcalls.
25888
25889 2001-09-23  Dick Porter  <dick@ximian.com>
25890
25891         * threads-dummy.c: 
25892         * threads-dummy.h: New files of dummy threading routines
25893
25894         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
25895         support code based on system specifics
25896
25897         Rename PTHREAD_LIBS to THREAD_LIBS
25898         
25899 2001-09-23  Dick Porter  <dick@ximian.com>
25900
25901         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
25902         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
25903         internal calls.
25904         (mono_thread_init): Set up a Thread object instance to return when
25905         the main thread calls Thread.CurrentThread
25906         (mono_thread_cleanup): Wait for all subthreads to exit
25907
25908         * icall.c: New internal calls for System.Threading.Thread::Sleep
25909         (including Schedule) and CurrentThread
25910
25911         * threads.h: New file, to insulate thread-specific stuff from the
25912         rest of the code
25913
25914 2001-09-21  Dick Porter  <dick@ximian.com>
25915
25916         * threads-pthread.h: 
25917         * threads-pthread.c: New file, for handling pthreads-style
25918         threading support.  Start() now starts a new thread and executes
25919         the ThreadStart delegate instance.
25920
25921         * icall.c: Added the internalcall for
25922         System.Threading.Thread::Start_internal
25923
25924         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
25925
25926 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
25927
25928         * loader.c: work around the different signatures for delegates
25929         constructors csc generates in compiled code vs the ones compiled in mscorlib.
25930
25931 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
25932
25933         * class.h, class.c: add mono_class_get_field_from_name ().
25934         * *: Fix C comments and other ANSI C issues.
25935
25936 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
25937
25938         * endian.h, assembly.c: fix some endianness issues.
25939
25940 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
25941
25942         * loader.h, load.c: add delegate_class to mono_defaults.
25943         Handle runtime provided methods in mono_get_method ().
25944
25945 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
25946
25947         * loader.c (mono_get_method): use pinvoke for internal call
25948
25949         * icall.c: use pinvoke for internal call
25950
25951         * loader.c (method_from_memberref): set the method name
25952
25953 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
25954
25955         * metadata.c: help the compiler generate better code for
25956         mono_class_from_mono_type ().
25957
25958 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
25959
25960         * class.c (mono_class_metadata_init): delayed computing of the
25961         class size to mono_class_metadata_init ()
25962
25963 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
25964
25965         * class.c, class.h: add an interfaces member to MonoClass.
25966         * image.c, image.h: add assembly_name field to MonoImage
25967         from the assembly table.
25968         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
25969
25970 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
25971
25972         * class.c: Handle Array in mono_class_from_mono_type ().
25973         * metadata.c, pedump.c: some endian fixes.
25974
25975 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
25976
25977         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
25978         * metadata.c: fix small problem introduced with the latest commit.
25979
25980 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
25981
25982         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
25983         We don't need a MonoMetadata pointer anymore to compare signatures in
25984         mono_metadata_signature_equal (), update callers.
25985         Reduced memory usage an number of allocations for MonoMethodHeader and
25986         MonoMethodSignature.
25987
25988 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
25989
25990         * metadata.c: added compare for szarray.
25991
25992 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
25993
25994         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
25995         and add a couple more types to it and mono_defaults. Give an hint on
25996         classes that need implementing in our corlib and are referenced
25997         in mscorlib.
25998
25999 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
26000
26001         * class.h, class.c: keep track if a class is also an Enum.
26002         * loader.c: Implement a couple more types for use in libffi
26003         marshalling. Gives better diagnostics when failing to dlopen
26004         a library. Set method->klass for P/Invoke methods, too.
26005
26006 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
26007
26008         * class.c, class.h: add a MonoType this_arg to MonoClass that
26009         represents a pointer to an object of the class' type that
26010         can be used by the interpreter and later the type cache.
26011         Add best guess alignment info for valuetype objects.
26012
26013 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
26014
26015         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
26016         into MonoType: one less level of indirection and allocation and
26017         simplifies quite a bit of code. Added cache for MonoTypes that are
26018         used frequently, so that we don't need to allocate them all the time.
26019
26020 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
26021
26022         * class.c (mono_class_create_from_typedef): System.Enum is also a
26023         value type, although it does not derive from System.ValueType
26024         (maybe a bug in the ms compiler?)
26025
26026         * metadata.c (mono_type_size): return the right size for value types
26027
26028         * loader.c (mono_get_method): only initialize method header if not abstract
26029
26030         * class.c (mono_class_from_mono_type): use mono_default values. 
26031
26032 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
26033
26034         * *: use MonoClass pointers instead of <type_tokens>
26035         
26036         * class.h: new flag: metadata_inited.
26037
26038         * class.c (mono_class_metadata_init): impl.
26039         (mono_class_instance_size): impl.
26040         (mono_class_data_size): impl.
26041
26042 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
26043
26044         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
26045         MonoClass now has the name and name_space fields. 
26046         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
26047         mono_get_method () takes and optional MonoClass as argument.
26048         Removed mono_typedef_from_name() and added mono_class_token_from_name()
26049         instead that takes advantage of a map from class names to typedef
26050         tokens in MonoImage.
26051
26052 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
26053
26054         * metadata.c: zero is not a valid alignment boundary.
26055         Merge MONO_TYPE_VOID in default decoding code.
26056
26057 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
26058
26059         * image.h: merged MonoMetadata into MonoImage
26060
26061         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
26062         identify the type of elements.
26063
26064 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
26065
26066         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
26067         * cil-coff.h: split MonoMSDOSHeader and add size info.
26068         * image.c: add some consistency checks.
26069         * metadata.c: fix row size computation: one programmer
26070         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
26071         add explanation for the locator routine.
26072         Fix decoding of size in method header.
26073         
26074 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
26075
26076         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
26077         (g_concat_dir_and_file): Bring g_concat_dir_and_file
26078         function from gnome-libs.  This uses the right path separator
26079         based on the OS, and also works around a bug in some systems where
26080         a double slash is not allowed. 
26081         (default_assembly_name_resolver): Use g_concat_dir_and_file
26082         (mono_assembly_open): ditto.
26083
26084 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
26085
26086         * metadata.c (mono_metadata_signature_equal): impl.
26087
26088         * *: void is now a realy MonoType (instead of using NULL)
26089         
26090         * metadata.c (do_mono_metadata_parse_type): use
26091         mono_metadata_parse_type to parse void value.
26092
26093 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
26094
26095         * metadata.c, metadata.h: in the signature and method header store
26096         only the space required for holding the loca vars and incoming arguments.
26097
26098 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
26099
26100         * metadata.c (do_mono_metadata_parse_type): treat void like any
26101         other type (instead of assigning NULL);
26102
26103 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
26104
26105         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
26106
26107 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
26108
26109         * image.c (do_mono_image_open): added a cache for arrays.
26110
26111 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
26112
26113         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
26114         decode a single column from a row in a metadata table and changes
26115         to take advantage of it in the typedef locator (gives a nice speed up).
26116         Store offset info for function params.
26117
26118 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
26119
26120         * image.h (MONO_IMAGE_IS_CORLIB): removed 
26121
26122 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
26123
26124         * assembly.c: how could mono_assembly_close () had ever worked?
26125         * metadata.c, metadata.h: provide offset info for local vars.
26126         Implement mono_type_size () to take care of alignment as well
26127         as size (it was mono_field_type_size in cli/class.c before).
26128
26129 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
26130
26131         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
26132
26133         * assembly.h (CORLIB_NAME): set to corlib.dll
26134
26135         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
26136
26137 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
26138
26139         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
26140         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
26141         tokentype.h: massive namespace cleanup.
26142
26143 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
26144
26145         * metadata.h, metadata.c: decode exception clauses when parsing method header.
26146
26147 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
26148
26149         * metadata.c (mono_metadata_free_type): added check for type !=
26150         NULL (void) before calling mono_metadata_free_type()
26151
26152 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
26153
26154         * metadata.h, row_indexes.h: added header with enumerations to use
26155         to index in the columns from tables in metadata and to decode coded
26156         tokens: we should start using this instead of embedding magic numbers
26157         all over the code.
26158
26159 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
26160
26161         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
26162         Move metadata_t info from cli_image_info_t to MonoImage, where
26163         it's easily accessible. Changed all the uses accordingly.
26164         Added the method and class caches to MonoImage.
26165         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
26166         and mono_metadata_decode_value () signature to be more consistent
26167         with the other parse functions (and simplify code). Taken advantage
26168         of zero-length array allocation with GCC. Removed reduntant (and
26169         wrong) MonoFieldType struct and use MonoParam instead. Changed
26170         mono_metadata_parse_field_type () to use common code for parsing.
26171         Added mono_metadata_typedef_from_field () and
26172         mono_metadata_typedef_from_method () to lookup a typedef index from a
26173         field or method token.
26174         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
26175
26176 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
26177
26178         * metadata.c (mono_metadata_parse_field_type): Implement. 
26179         (do_mono_metadata_parse_type): Split engine from
26180         mono_metadata_parse_type, so that we can create smaller structures
26181         for things that just have one pointer to the MonoType (look at
26182         the MonoFieldType)
26183
26184 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
26185
26186         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
26187         as Jan Gray found out, it is incorrect. 
26188
26189 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
26190
26191         * assembly.c: Implement asssembly loading.  This loads an image
26192         and loads all the referenced assemblies.  Come to think of it, we
26193         could always do lazy loading of the assemblies. 
26194
26195         * image.c (mono_image_open): Keep loaded images in a hashtable.
26196
26197         * image.h (MonoImage): Add reference count.
26198
26199 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
26200
26201         * assembly.c (mono_assembly_open): Keep track of the file name in
26202         case the assembly has no ASSEMBLY table.
26203
26204         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
26205         from get.c here.
26206
26207 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
26208
26209         * metadata.c, metadata.h: decode local vars in method header
26210         parse function. Change callers accordingly.
26211
26212 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
26213
26214         * metadata.h, cil-coff.h: protect against multiple inclusion.
26215         Added some new structures to hold information decoded from metadata:
26216         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
26217         and relevant decoding/free functions.
26218         * metadata.c: implement decoding functions. Add warning for out of bounds
26219         index in mono_metadata_locate(). Implement mono_get_method () to retreive
26220         all the info about a method signature and invocation. Remove check on
26221         uninitialized local var in parse_mh() and fix memory leak.
26222
26223 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
26224
26225         * metadata.h: More macros.
26226
26227         * tokentype.h: New file.
26228
26229 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
26230
26231         * assembly.c: added a consistency check and initialize
26232         some structures with g_new0().
26233         * metadata.c: fixed a couple more bugs in table size computation
26234         and add other checks for out-of bound access to metadata.
26235
26236 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
26237
26238         * metatada.c: fix bugs computing table sizes. Spew a
26239         warning when index in string heap is out of bounds.
26240
26241 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
26242
26243         * metadata.h: Add a couple of macros to manipulate tokens. 
26244
26245 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
26246
26247         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
26248         cli_section_tables).
26249
26250 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
26251
26252         * metadata.c (mono_metadata_user_string): New function, provides
26253         access to the UserString heap. 
26254
26255 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
26256
26257         * metadata.c: Add inline documentation.
26258
26259 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
26260
26261         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
26262         files. 
26263
26264 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
26265
26266         * typeattr.h: New file, TypeAttribute flags. 
26267
26268 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
26269
26270         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
26271         mono_assembly_ensure_section): Section loading code.
26272         (load_section_tables): Load the sections.
26273
26274         * mono/metadata/metadata.c (mono_metadata_locate_token,
26275         mono_metadata_locate): Functions to locate the information
26276         definition given a token or a table and an index.
26277         (mono_metadata_compute_table_bases): New.
26278         (compute_size): New function to compute the sizes of the various
26279         tables.
26280
26281         * mono/metadata/metadata.h: Finish listing the different index
26282         types. 
26283
26284         * mono/metadata/pedump.c: Improve to dump new information.
26285
26286 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
26287
26288         * mono/metadata/metadata.c: Entered all the tables matching
26289         Beta2. 
26290
26291         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
26292
26293
26294