8093e3efca0d16c699c245e9a76544e58ffde4e2
[mono.git] / mono / metadata / ChangeLog
1 2009-06-12  Zoltan Varga  <vargaz@gmail.com>
2
3         * class-internals.h (struct _MonoGenericContainer): Add an 'image'
4         field for owner-less generic containers.
5
6         * reflection.c (mono_reflection_initialize_generic_parameter): Set the
7         image field of the owner-less generic containers created here.
8
9         * metadata.c (mono_metadata_load_generic_params): Ditto, the
10         contain is ownerless until the caller sets its owner.
11
12         * metadata.c (type_in_image): Handle owner-less generic containers
13         correctly.
14         
15 2009-06-11  Zoltan Varga  <vargaz@gmail.com>
16
17         * image.c (mono_image_close): Support debug_assembly_unload for
18         dynamic images too.
19
20 2009-06-11 AndrĂ©s G. Aragoneses  <aaragoneses@novell.com>
21
22         * class.c: Fix some typos in comments.
23
24 2009-06-11  Zoltan Varga  <vargaz@gmail.com>
25
26         * reflection.c (add_custom_modifiers): Avoid reading invalid memory.
27
28         * threads.c (mono_thread_execute_interruption): Avoid creating the
29         abort exception object while holding the synch_cs lock.
30
31 2009-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
32
33         * metadata-verify.c: Verify basic cattr content.
34
35 2009-06-10  Zoltan Varga  <vargaz@gmail.com>
36
37         * reflection.c (add_exported_type): Don't set the FORWARDER flag on
38         nested types.
39         
40         * reflection.c (mono_image_fill_export_table_from_type_forwarders): Add
41         support for nested types. Fixes #511704.
42
43 2009-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
44
45         * metadata-verify.c: Verify methodspec signatures.
46
47 2009-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
48
49         * metadata-verify.c: Verify typespec signatures.
50
51 2009-06-09  Zoltan Varga  <vargaz@gmail.com>
52
53         * metadata.c (free_inflated_method): Call 
54         mono_marshal_free_inflated_wrappers (), which was missed earlier.
55
56 2009-06-08  Miguel de Icaza  <miguel@novell.com>
57
58         * mono-config.c: Small change to report the PPC64/ILP32 model.
59
60 2009-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
61
62         * metadata-verify.c (parse_type): Check szarray.
63
64 2009-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
65
66         * metadata-verify.c (parse_type): Check fnptr.
67
68 2009-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
69
70         * metadata-verify.c (parse_type): Check generic instances.
71
72 2009-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
73
74         * metadata-verify.c (parse_type): Check array shape.
75
76 2009-06-05  Robert Jordan  <robertj@gmx.net>
77
78         * class.c (mono_class_create_from_typedef): Check only for
79         mscorlib's System.Array.
80
81 2009-06-04 Rodrigo Kumpera  <rkumpera@novell.com>
82
83         * metadata-verify.c (parse_type): Check pointer, class/valuetype
84         and generic params. 
85
86         * metadata-verify.c (parse_field): Check the signature.
87
88 2009-06-04 Rodrigo Kumpera  <rkumpera@novell.com>
89
90         * metadata-verify.c: Implement locals signature check.
91
92 2009-06-04  Marek Safar  <marek.safar@gmail.com>
93
94         * domain.c: Add .NET 4.0 Beta 1 version.
95
96 2009-06-04  Bill Holmes  <billholmes54@gmail.com>
97
98         * cominterop.c (cominterop_ccw_queryinterface): Fix for bug 499566.
99           For QueryInterface on CCWs consider the base class
100           interfaces as well.
101
102         Code is contributed under MIT/X11 license.
103
104 2009-06-04  Zoltan Varga  <vargaz@gmail.com>
105
106         * wrapper-types.h: Delete STATIC_RGCTX_INVOKE.
107
108         * marshal.c (mono_marshal_ret_static_rgctx_invoke): Remove, no longer
109         used.
110
111         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Avoid
112         adding a static-rgctx invoke wrapper, it is done by the runtime trampolines.
113
114         * generic-sharing.c (inflate_other_data): Ditto.
115         
116 2009-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
117
118         * metadata-verify.c: Implement property signature check.
119
120 2009-06-04  Mark Probst  <mark.probst@gmail.com>
121
122         * sgen-gc.h: Register saving support for PPC.
123
124 2009-06-04  Mark Probst  <mark.probst@gmail.com>
125
126         * sgen-gc.c: Fixed a pthread TLS screwup.
127
128 2009-06-04  Mark Probst  <mark.probst@gmail.com>
129
130         * sgen-gc.c: Do TLS using pthread API if __thread keyword is not
131         supported.
132
133 2009-06-04  Mark Probst  <mark.probst@gmail.com>
134
135         * sgen-gc.c: Disable TLA and managed allocation if the __thread
136         keyword is not supported.
137
138 2009-06-04  Zoltan Varga  <vargaz@gmail.com>
139
140         * marshal.c metadata.c: Applied patch from Ulrich Weigand 
141         <uweigand@de.ibm.com>: Free the wrappers of inflated generic methods when
142         the inflated method is freed. Fixes #508389.
143
144         The code is contributed under the MIT/X11 license.
145         
146 2009-06-03  Zoltan Varga  <vargaz@gmail.com>
147
148         * marshal.c (get_wrapper_target_class): New helper function.
149         (mono_marshal_get_runtime_invoke): Place runtime-invoke wrappers into
150         the <Module> class of the image. Fixes #509049.
151
152 2009-06-01 Rodrigo Kumpera  <rkumpera@novell.com>
153
154         * threads.c (ves_icall_System_Threading_Thread_Sleep_internal):
155         Check if the thread was interrupted and proccess it straight away.
156         Makes abortion much more responsive.
157
158 2009-06-01 Rodrigo Kumpera  <rkumpera@novell.com>
159
160         * threads.c (mono_thread_execute_interruption): Use atomic cas with
161         MonoThread::interruption_requested to match it's counterpart.
162
163         Fixes a hang in abort-stress-1 on a 2 core x86.
164
165         * threads.c (ves_icall_System_Threading_Thread_GetAbortExceptionState):
166         Fix warning.
167
168 2009-06-01 Rodrigo Kumpera  <rkumpera@novell.com>
169
170         Change MonoImage::name_cache to be protected by the image lock
171         instead of the loader lock.
172
173         * appdomain.c (deregister_reflection_info_roots): Protect access
174         to name_cache.
175
176         * class.c (mono_image_init_name_cache): Change from the loader lock
177         to the image lock. Check if the cache wasn't already created.
178
179         * class.c: Change from the loader to the image lock.
180
181         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Fix
182         the code to hold the image lock while iterating over name_cache and
183         not go into mono_array_new holding it.
184
185         * metadata-internals.h: Add a comment about this change.
186
187 2009-06-01 Rodrigo Kumpera  <rkumpera@novell.com>
188
189         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
190         Under the 2.0 profile raise the loader error.
191
192         Fixes #508532.
193
194 2009-06-01 Rodrigo Kumpera  <rkumpera@novell.com>
195
196         * marshal.c (mono_marshal_get_runtime_invoke): Emit the right kind
197         of ldind opcode for generic instances so we don't fail for direct wrappers.
198         This only affect direct calls.
199
200 2009-05-31  Zoltan Varga  <vargaz@gmail.com>
201
202         * reflection.c (create_dynamic_mono_image): Fix warnings.
203
204         * generic-sharing.c (other_info_equal): Ditto.
205         
206 2009-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
207
208         * metadata-verify.c: Implement field signature check.
209
210 2009-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
211
212         * metadata-verify.c: Implement standalone signature check.
213
214 2009-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
215
216         * metadata-verify.c: Implement methodref signature check.
217
218 2009-05-28  Zoltan Varga  <vargaz@gmail.com>
219
220         * object-internals.h (MonoRuntimeCallbacks): New structure containing
221         callbacks supplied by the runtime.
222
223         * object.c (mono_install_callbacks): New internal function to install
224         the callbacks.
225
226         * object.c (mono_create_ftnptr): Move the implementation of this to
227         mini/.
228
229         * object.c (mono_get_addr_from_ftnptr): Ditto.  
230
231 2009-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
232
233         * metadata-verify.c (parse_return_type): Proper byref check.
234         * metadata-verify.c (is_valid_method_signature): Check for zero arity
235         generic signatures and method params.
236
237 2009-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
238
239         * metadata-verify.c (decode_signature_header): Fix bounds check.
240
241         * metadata-verify.c (parse_custom_mods): Check custom mods.
242
243         * metadata-verify.c (parse_type): Do initial basic verification
244         of valid values.
245         
246         * metadata-verify.c (is_valid_method_signature): Parse the generic
247         param count.
248
249 2009-05-26 Rodrigo Kumpera  <rkumpera@novell.com>
250
251         * icall.c (ves_icall_Type_GetMethodsByName): Virtual methods should be
252         discarded based on their most specific definition so we set the method_slots
253         array before checking if the method is acceptable or not.
254
255         Fixes #506757.
256
257 2009-05-26  Mark Probst  <mark.probst@gmail.com>
258
259         * icall.c: Free the old array when resizing a mono_ptr_array.
260
261 2009-05-26  Mark Probst  <mark.probst@gmail.com>
262
263         * reflection.c (create_dynamic_mono_image): Use mono_object_hash()
264         for the hashes whose keys are managed objects.
265
266 2009-05-26  Mark Probst  <mark.probst@gmail.com>
267
268         * object-internals.h, threads.c: Set the execution context on
269         thread start here, not in corlib.
270
271         * appdomain.c: Bump corlib version.
272
273 2009-05-27  Martin Baulig  <martin@ximian.com>
274
275         * mono-debug.c (mono_debug_init): Use `MONO_DEBUG_FORMAT_DEBUGGER'
276         if `_mono_debug_using_mono_debugger' is set to make things work
277         properly when embedding Mono.
278
279 2009-05-25 Rodrigo Kumpera  <rkumpera@novell.com>
280
281         * class.c (mono_class_setup_fields): Don't mark simd types as having
282         16 bytes alignment as the whole runtime doesn't support.
283
284 2009-05-25 Rodrigo Kumpera  <rkumpera@novell.com>
285
286         * metadata-verify.c (safe_read): Use endian safe read macros.
287
288 2009-05-25  Zoltan Varga  <vargaz@gmail.com>
289
290         * object.c (mono_create_ftnptr): Don't allocate from the code mempool since
291         it is read-only when using full aot.
292
293 2009-05-22 Rodrigo Kumpera  <rkumpera@novell.com>
294
295         * metadata-verify.c (is_valid_method_signature): Verify parts
296         of the return type. Provide an error message in case of failure.
297
298 2009-05-22 Rodrigo Kumpera  <rkumpera@novell.com>
299
300         * metadata-verify.c (is_valid_method_signature): Verify the call conv.
301
302 2009-05-22 Rodrigo Kumpera  <rkumpera@novell.com>
303
304         * metadata-verify.c: Include the size prefix in the bounds check.
305
306 2009-05-22  Miguel de Icaza  <miguel@novell.com>
307
308         * icall.c: Remove warnings.
309
310         * mono-config.c: Allow for CONFIG_CPU to be set in config.h and
311         prevent auto-detection based on GCC defines.
312
313         Add PS3
314
315         * metadata-verify.c: Do not include signal.h
316
317         * generic-sharing.c, marshal.c: Add returns to avoid some warning
318         messages.  Not sure why the g_assert_not_reached is not enough to
319         quiet the compiler.
320         
321
322         * appdomain.c: Remove code that is not used when
323         DISABLE_SHADOW_COPY is set.
324
325         * image.c: use g_getenv
326
327 2009-05-21  Miguel de Icaza  <miguel@novell.com>
328
329         * reflection.c: Remove code that it not used with
330         DISABLE_REFLECTION_EMIT is defined.
331
332 2009-05-21  Zoltan Varga  <vargaz@gmail.com>
333
334         * marshal.c (mono_marshal_get_runtime_invoke): Share more runtime
335         invoke wrappers.
336
337 2009-05-20  Miguel de Icaza  <miguel@novell.com>
338
339         * socket-io.c
340         (ves_icall_System_Net_Sockets_Socket_Available_internal): Remove
341         the ifdef here and instead put that on io-layer
342
343 2009-05-19 Rodrigo Kumpera  <rkumpera@novell.com>
344
345         * metadata-verify.c: Verify the generic param constraint table.
346
347 2009-05-19 Rodrigo Kumpera  <rkumpera@novell.com>
348
349         * metadata-verify.c (verify_generic_param_table): Fix
350         thinko on the valid flags bits for generic params.
351
352 2009-05-19 Rodrigo Kumpera  <rkumpera@novell.com>
353
354         * metadata-verify.c: Verify the methodspec table.
355
356 2009-05-19 Rodrigo Kumpera  <rkumpera@novell.com>
357
358         * metadata-verify.c: Verify the generic param table.
359
360 2009-05-19  Mark Probst  <mark.probst@gmail.com>
361
362         * sgen-gc.c: Store and use the count with REMSET_VTYPE.
363
364 2009-05-19  Mark Probst  <mark.probst@gmail.com>
365
366         * sgen-gc.c: Use generation enum more consistently and use the
367         correct generation in mono_gc_register_for_finalization().
368
369 2009-05-18 Rodrigo Kumpera  <rkumpera@novell.com>
370
371         * metadata-verify.c: Verify the nested class table.
372
373 2009-05-18 Rodrigo Kumpera  <rkumpera@novell.com>
374
375         * metadata-verify.c: Verify the manifest resource table.
376
377 2009-05-17  Zoltan Varga  <vargaz@gmail.com>
378
379         * debug-helpers.c (dis_one): Add little-endian support for ldstr.
380
381 2009-05-16  Zoltan Varga  <vargaz@gmail.com>
382
383         * class.c (mono_class_get_vtable_entry): Avoid adding static-rgctx
384         wrappers, this is now done in the JIT.
385         
386         * class.c (mono_set_generic_sharing_supported): New internal function.
387         (mono_class_generic_sharing_enabled): Move the #ifdef stuff to the JIT.
388
389 2009-05-15 Rodrigo Kumpera  <rkumpera@novell.com>
390
391         * metadata-verify.c: Verify the exported type table.
392
393 2009-05-15 Rodrigo Kumpera  <rkumpera@novell.com>
394
395         * pedump.c (main): Fake an assembly for netmodules to make the verifier happy.
396
397 2009-05-15 Rodrigo Kumpera  <rkumpera@novell.com>
398
399         * metadata-verify.c: Verify the file table.
400
401 2009-05-15 Rodrigo Kumpera  <rkumpera@novell.com>
402
403         * metadata-verify.c (verify_assembly_table): Fix an error message.
404
405         * metadata-verify.c: Verify the assemblyref table.
406
407 2009-05-15 Rodrigo Kumpera  <rkumpera@novell.com>
408
409         * metadata-verify.c (verify_assembly_table): Fix the valid
410         bits mask for flags.
411
412 2009-05-15  Zoltan Varga  <vargaz@gmail.com>
413
414         * debug-helpers.c (mono_method_full_name): Print generic parameters of
415         generic methods as well.
416
417 2009-05-15  Geoff Norton  <gnorton@novell.com>
418
419         * gc.c: MachO/Darwin supports and uses semaphores fine for this 
420         use-case and is significantly more performant than the wapi layer.
421
422 2009-05-13 Rodrigo Kumpera  <rkumpera@novell.com>
423
424         * metadata-verify.c: Verify the assembly table.
425
426 2009-05-13 Rodrigo Kumpera  <rkumpera@novell.com>
427
428         * metadata-verify.c: Fix rows limit check.
429
430 2009-05-13 Rodrigo Kumpera  <rkumpera@novell.com>
431
432         * metadata-verify.c: Verify the fieldrva table.
433
434 2009-05-13  Mark Probst  <mark.probst@gmail.com>
435
436         * sgen.c: Speed up weak links and finalizers by grouping them by
437         generation.
438
439 2009-05-13  Mark Probst  <mark.probst@gmail.com>
440
441         * marshal.c (delegate_hash_table_add): When overwriting an entry,
442         free the old GCHandle (only applies to SGen).
443
444 2009-05-13  Zoltan Varga  <vargaz@gmail.com>
445
446         * loader.c (mono_get_method_from_token): Avoid the expensive call to
447         mono_metadata_load_generic_params () for non-generic methods.
448
449 2009-05-12  Mark Probst  <mark.probst@gmail.com>
450
451         * monitor.c, monitor.h (mono_monitor_get_object_monitor_weak_link):
452         New function for returning a monitor's weak link if it has one.
453
454         * sgen-gc.c: Remove an object's monitor's weak link (if it has
455         one) when clearing a domain.  These can still be around because
456         the object might not have been collected.
457
458 2009-05-12  Zoltan Varga  <vargaz@gmail.com>
459
460         * gc.c: Fix a warning.
461
462 2009-05-12  KornĂ©l PĂ¡l  <kornelpal@gmail.com>
463
464         * gc.c (mono_gc_init): Set gc_thread on creation. This avoids the
465         prevous wait that resulted in a deadlock on Windows when initializing
466         the runtime form DllMain. Also results in improved startup time.
467         (finalizer_thread): Get rid of thread_started_event.
468         * threads.c, threads-types.h (mono_thread_create_internal): Return the
469         resulting MonoThread.
470
471         Contributed under MIT/X11 license.
472
473 2009-05-11 Rodrigo Kumpera  <rkumpera@novell.com>
474
475         * metadata-verify.c: Verify the implmap table.
476         Don't require that #US and #Strings be present.
477
478 2009-05-11  Sebastien Pouliot  <sebastien@ximian.com>
479
480         * security-core-clr.c: Delegate checks are done at creation time,
481         not a invocation time. Fix exception for Telerik Silverlight demo
482
483 2009-05-11  Mark Probst  <mark.probst@gmail.com>
484
485         * sgen-gc.c (need_remove_object_for_domain): Remove the special
486         case for the Thread class.
487
488         * threads.c: Do clean-up of abort exception/state in
489         thread_cleanup() instead of Thread.free_internal().  Also clean up
490         current_appcontext.  The reason we have to do that is because
491         those references might point into another domain and if that
492         domain is unloaded before the thread is finalized, they point to
493         invalid data.
494
495 2009-05-10  Andreas Faerber  <andreas.faerber@web.de>
496
497         * null-gc.c (mono_gc_weak_link_add, mono_gc_clear_domain): Fix
498         stub signatures.
499         
500         Contributed unter MIT/X11 license.
501
502 2009-05-09  Miguel de Icaza  <miguel@novell.com>
503
504         * verify.c, metadata-verifier.c: Add support for disabling the
505         verifier in some builds.
506
507         [ Sorry, my previous commit accidentally commited some work in
508         progress ]
509
510 2009-05-08  Zoltan Varga  <vargaz@gmail.com>
511
512         * class.c (mono_class_setup_fields): Set class->field.first for
513         generic instances.
514
515 2009-05-07 Rodrigo Kumpera  <rkumpera@novell.com>
516
517         * metadata-verify.c: Verify the typespec table.
518
519 2009-05-07 Rodrigo Kumpera  <rkumpera@novell.com>
520
521         * metadata-verify.c: Verify the module table.
522
523 2009-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
524
525         * metadata-verify.c: Verify the methodimpl table.
526
527 2009-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
528
529         * metadata-verify.c: Verify the property table.
530
531 2009-05-06  Zoltan Varga  <vargaz@gmail.com>
532
533         * debug-helpers.c (mono_method_desc_match): Add support for generic
534         glob patterns.
535
536 2009-05-05 Rodrigo Kumpera  <rkumpera@novell.com>
537
538         * metadata-verify.c: Verify the propertymap table.
539
540 2009-05-04 Rodrigo Kumpera  <rkumpera@novell.com>
541
542         * metadata-verify.c: Verify the event table.
543
544         * metadata-verify.c (search_sorted_table): Fix offset
545         calculation.
546
547 2009-05-02  Zoltan Varga  <vargaz@gmail.com>
548
549         * domain-internals.h (struct _MonoJitInfo): Add a 'from_llvm' flag.
550
551 2009-05-01  Mark Probst  <mark.probst@gmail.com>
552
553         * gc.c (mono_gc_run_finalize): Don't set the domain too late,
554         because mono_delegate_free_ftnptr() needs it.
555
556 2009-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
557
558         * metadata-verify.c: Verify the eventmap table.
559
560 2009-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
561
562         * metadata-verify.c: Verify the standalonesig table.
563
564 2009-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
565
566         * metadata-verify.c: Verify the field layout table.
567
568 2009-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
569
570         * class.c (mono_type_get_name_recurse): Don't crash
571         for ownerless generic params.
572
573         * debug-helpers.c (mono_type_get_desc): Correct the format
574         for ownerless generic params.
575
576 2009-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
577
578         * metadata-verify.c: Verify the class layout table.
579
580 2009-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
581
582         * metadata-verify.c: Verify the decl security table.
583
584 2009-04-30  Mark Probst  <mark.probst@gmail.com>
585
586         * domain.c (mono_domain_set_internal_with_options): Don't do
587         anything if the old domain is the same as the old one.  Fixes
588         #499326.
589
590 2009-04-30  Mark Probst  <mark.probst@gmail.com>
591
592         * appdomain.c: Deregister the reflection_info roots when unloading
593         a domain.
594
595         * sgen-gc.c, domain.c, gc-internal.h: mono_gc_clear_domain() nulls
596         memory allocated by a domain and frees its disappearing links.
597
598         * boehm-gc.c, null-gc.c: Empty implementation of
599         mono_gc_clear_domain().
600
601 2009-04-30  Mark Probst  <mark.probst@gmail.com>
602
603         * appdomain.c (clear_cached_vtable): Free the static fields memory
604         block.
605
606 2009-04-30  Mark Probst  <mark.probst@gmail.com>
607
608         * gc.c: Set the correct domain when invoking finalizers.
609
610         * appdomain.c: Set the correct domain when creating threads.
611
612 2009-04-30  Mark Probst  <mark.probst@gmail.com>
613
614         * sgen-gc.c: Fix skip size for vectors.
615
616 2009-05-03  Martin Baulig  <martin@ximian.com>
617
618         * mono-debug-debugger.c
619         (mono_debugger_check_breakpoints): Check class init handlers even
620         if we don't have any method load handers.
621
622 2009-04-30  Zoltan Varga  <vargaz@gmail.com>
623
624         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Avoid 
625         returning refonly assemblies if refonly is FALSE. Fixes #499013.
626
627 2009-04-29 Rodrigo Kumpera  <rkumpera@novell.com>
628
629         * metadata-verify.c: Verify the field marshal table.
630
631 2009-04-29 Rodrigo Kumpera  <rkumpera@novell.com>
632
633         * metadata-verify.c: Verify the custom attribute table.
634
635 2009-04-28 Rodrigo Kumpera  <rkumpera@novell.com>
636
637         * metadata-verify.c: Verify the constant table.
638
639 2009-04-28 Rodrigo Kumpera  <rkumpera@novell.com>
640
641         * metadata-verify.c: Verify the memberef table.
642
643 2009-04-28 Rodrigo Kumpera  <rkumpera@novell.com>
644
645         * metadata-verify.c (get_coded_index_token): Remove
646         dead argument.
647
648 2009-04-28 Rodrigo Kumpera  <rkumpera@novell.com>
649
650         * metadata-verify.c: Verify the interfaceimpl table.
651
652 2009-04-28 Rodrigo Kumpera  <rkumpera@novell.com>
653
654         * verify.c: Improve error message.
655
656         * debug-helpers.c (mono_type_get_desc): Harden the code that
657         deals with VAR and MVAR.
658
659 2009-04-28  Zoltan Varga  <vargaz@gmail.com>
660
661         * image.c (mono_image_fixup_vtable): Avoid casting an lvalue. Fixes 
662         part of #498692.
663
664 2009-04-23 Tom Hindle <tom_hindle@sil.org>
665
666         * cominterop.c (ves_icall_System_Runtime_InteropServices_Marshal_ReleaseComObjectInternal):
667         changed to match .Net behaviour of not aborting on additional calls to ReleaseComObject.
668
669 2009-04-28  Sebastien Pouliot  <sebastien@ximian.com>
670
671         * security-core-clr.c: Avoid redundant checks for platform code, 
672         e.g. check for method and for class (very common) and check
673         for class and outer class (less common)...
674
675 2009-04-27  Zoltan Varga  <vargaz@gmail.com>
676
677         * reflection.c: Avoid returning random cattrs for synthetic methods.
678         Fixes #498545.
679
680 2009-04-27 Gonzalo Paniagua Javier <gonzalo@novell.com>
681
682         * assembly.c: assemblies in the GAC should never be shadow-copied.
683
684 2009-04-26  Mark Probst  <mark.probst@gmail.com>
685
686         * domain.c, domain-internals.h: Disable
687         track_resurrection_{objects,handles}_hash in MonoDomain if using
688         SGen.
689
690 2009-04-24 Rodrigo Kumpera  <rkumpera@novell.com>
691
692         * metadata-verify.c: Verify the param table.
693
694 2009-04-24 Rodrigo Kumpera  <rkumpera@novell.com>
695
696         * metadata-verify.c (verify_typedef_table): Range check FieldList and
697         MethodList.
698
699         * metadata-verify.c (verify_method_table): Proper check the ParamList
700         field.
701
702 2009-04-24 Rodrigo Kumpera  <rkumpera@novell.com>
703
704         * metadata-verify.c (verify_method_table): Check for runtime
705         implemented functions such as delegate .ctors. Remove spurious
706         printf.
707         
708 2009-04-24 Rodrigo Kumpera  <rkumpera@novell.com>
709
710         * pedump.c: Proper initialize the runtime forcing the 2.0 profile.
711
712 2009-04-24  Raja R Harinath  <harinath@hurrynot.org>
713
714         Don't allocate MonoGenericInfo for ownerless generic params.
715         * class-internals.h (MonoGenericParam::info): Move field to ...
716         (MonoGenericParamFull): ... this.  New struct.
717         (MonoGenericContainer::type_params): Change type to
718         MonoGenericParamFull.
719         (MonoGenericParam, MonoGenericContainer): Update accessors.
720         * metadata.c (mono_metadata_parse_generic_param): Don't initialize
721         'info' field for ownerless generic param.
722         (mono_metadata_load_generic_params): Update to changes.
723         * reflection.c (mono_reflection_create_generic_class): Likewise.
724         (reflection_methodbuilder_to_mono_method): Likewise.
725         (mono_reflection_initialize_generic_parameter): Likewise.
726
727 2009-04-24  Raja R Harinath  <harinath@hurrynot.org>
728
729         Don't use MonoGenericParamInfo for ownerless generic params.
730         * class.c (get_anon_gparam_class, set_anon_gparam_class): New.  Don't
731         use ParamInfo class at all.
732         (mono_class_from_generic_parameter): Use them.
733         (make_generic_param_class): Fix a couple of instances where 'pinfo
734         == NULL' wasn't handle.
735
736 2009-04-24  Raja R Harinath  <harinath@hurrynot.org>
737
738         * class.c (make_generic_param_class): Carve out of ...
739         (mono_class_from_generic_parameter): ... here.
740
741 2009-04-24  Raja R Harinath  <harinath@hurrynot.org>
742
743         Simplify mono_class_from_generic_parameter
744         * class-internals.h (MonoGenericParamInfo::token): New field.
745         * metadata.c (mono_metadata_load_generic_params): Initialize it
746         from metadata.
747         * class.c (mono_class_from_generic_parameter): Use it instead of
748         searching through metadata.
749
750 2009-04-23 Rodrigo Kumpera  <rkumpera@novell.com>
751
752         * metadata-verify.c: Add verification of the method table.
753
754 2009-04-23 Rodrigo Kumpera  <rkumpera@novell.com>
755
756         * icall.c (ves_icall_Type_GetMethodsByName): Fix memleak for the
757         Delegate::Invoke optimization.
758
759 2009-04-23 Rodrigo Kumpera  <rkumpera@novell.com>
760
761         * appdomain.c (mono_domain_create_appdomain_internal): Free the
762         string returned by get_shadow_assembly_location_base.
763
764         * appdomain.c (get_shadow_assembly_location_base): Add a comment
765         about caller's ownership.
766
767 2009-04-23 Rodrigo Kumpera  <rkumpera@novell.com>
768
769         * reflection.c: Add mono_reflection_cleanup_domain to cleanup
770         reflection memory on domain unload.
771
772         * domain.c (mono_domain_free): Don't free refobject_hash, let the
773         reflection cleanup code do it.
774
775         * domain-internals.h: Add mono_reflection_cleanup_domain.
776
777         This fixes a memory leak for managed mirrors of reflection objects
778         on domain unload. 
779
780 2009-04-22 Rodrigo Kumpera  <rkumpera@novell.com>
781
782         * metadata-verify.c: Implement more verification of the field table.
783
784 2009-04-22 Rodrigo Kumpera  <rkumpera@novell.com>
785
786         * pedump.c (main): Init mono with mscorlib so it defaults to 2.0 and
787         doesn't try to parse the input assembly, which can be broken.
788
789 2009-04-23  Mark Probst  <mark.probst@gmail.com>
790
791         * boehm-gc.c, gc-internal.h, gc.c, monitor.c, null-gc.c,
792         sgen-gc.c: Implement track resurrection in weak GC handles in SGen
793         by using the lowest bit in the link to store whether the link is
794         tracked.  Move the track_resurrection hashes into boehm-gc.c.
795
796 2009-04-22  Miguel de Icaza  <miguel@novell.com>
797
798         * Makefile.am: Split the console support in platform specific code
799         and put together a framework for making this easy in the future so
800         that we can start splitting code instead of having a mess of PLATFORM_WIN32
801
802 2009-04-21 Rodrigo Kumpera  <rkumpera@novell.com>
803
804         * pedump.c: Fix a warning.
805
806 2009-04-21 Rodrigo Kumpera  <rkumpera@novell.com>
807
808         * verify.c (mono_delegate_type_equal): Compare valuetypes using
809         mono_class_from_mono_type to avoid bad interactions with the dual representation
810         of the generic type definition.
811
812 2009-04-21 Rodrigo Kumpera  <rkumpera@novell.com>
813
814         * verify.c (do_invoke_method): Use mono_class_from_mono_type to
815         get the MonoClass for the call context type as it might be a generic
816         instance.
817
818         Fixes #491483.
819
820 2009-04-21  Mark Probst  <mark.probst@gmail.com>
821
822         * object-internals.h: The Thread object has no execution_context
823         member anymore.
824
825         * threads.c, threadpool.c, threads-types.h: Accessor functions for
826         the execution context.
827
828         * appdomain.c: Bump corlib version.
829
830 2009-04-20 Rodrigo Kumpera  <rkumpera@novell.com>
831
832         * verify.c (do_newobj): Improve error message.
833
834 2009-04-20 Rodrigo Kumpera  <rkumpera@novell.com>
835
836         * verify.c (verify_clause_relationship): Only mask as an error if the exception clause
837         is nested in the filter block.
838
839         * verify.c (verify_clause_relationship): The disjoint check must verify if the exception
840         block is not fully nested.
841
842         Fixes #495656.
843
844 2009-04-20 Rodrigo Kumpera  <rkumpera@novell.com>
845
846         * verify.c (verify_type_compatibility_full): Compare MonoClass and
847         not MonoType to check for equality of valuetypes as the generic type
848         definition allows for two different encodings: the generic type definition
849         class or a generic instance over the GTD arguments.
850
851         Fixes #496175.
852
853 2009-04-20 Rodrigo Kumpera  <rkumpera@novell.com>
854
855         * verify.c (dump_stack_value): Fix compilation with extra debug turned on.
856
857         * verify.c (do_initobj): Improve error message.
858
859 2009-04-20 Rodrigo Kumpera  <rkumpera@novell.com>
860
861         * metadata-verify.c: Enable pe verification as the issue with #496453
862         is that the authenticode data directory have a different unspecified
863         format. Ignore it for now.
864
865         * pedump.c: Run the metadata verifier together with the IL verifier.
866
867         Fixes ##496453.
868
869 2009-04-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
870
871         * metadata-verify.c: Temporarily disable pe verification due to #496453.
872
873 2009-04-17 Rodrigo Kumpera  <rkumpera@novell.com>
874
875         * class.c (can_access_type): Check visibility against
876         the element type for pointers and arrays.
877
878         Fixes #496150.
879
880 2009-04-17 Rodrigo Kumpera  <rkumpera@novell.com>
881
882         * metadata-verify.c: Fix cli and table verification to use information
883         from the MonoImage. A lot of duplicated code got killed.
884
885 2009-04-17 Rodrigo Kumpera  <rkumpera@novell.com>
886
887
888         This patch starts to integrate the metadata verifier with the runtime code.
889
890         This patch causes major regression in functionality for the metadata verifier
891         as cli and table verification are disabled since they require to be ported to
892         use MonoImage information.
893
894         * image.c (do_mono_image_load): Split the code in this function
895         into mono_image_load_pe_data and mono_image_load_cli_data.
896         Add     care_about_pecoff parameter to not load pecoff data.
897         Call into the metadata verifier for pecoff and cli verification.
898
899         * image.c (mono_image_open_raw): New function that doesn't perform
900         any parsing of the image contents.
901         
902         The reason for the 3 new functions is to give pedump better control
903         into the interaction with the verifier.
904
905         * metadata-internals.h: Add new functions from image.c as part of the
906         internal mono API.
907
908         * metadata-verify.c: Split mono_image_verify into mono_verifier_verify_pe_data,
909         mono_verifier_verify_cli_data and mono_verifier_verify_table_data. Prepare
910         to make those functions work together with the runtime.
911
912         * verify.c: Add mono_verifier_is_enabled_for_image function that returns
913         true if the image needs to be verified.
914
915         * verify-internals.h: Export new functions from metadata-verify.c and verify.c.
916
917         * pedump.c: Use new metadata verifier API.
918
919 2009-04-19  Zoltan Varga  <vargaz@gmail.com>
920
921         * object.c (mono_install_vtable_trampoline): Make this receive a
922         trampoline creation function instead of trampoline, allowing the JIT
923         to use a different trampoline for each vtable.
924
925 2009-04-18  Mark Probst  <mark.probst@gmail.com>
926
927         * object.c (mono_raise_exception): Don't reset the thread abort
928         exception state here.
929
930 2009-04-18  Mark Probst  <mark.probst@gmail.com>
931
932         * icall-def.h: New icall for getting the thread abort exception
933         state for a thread.
934
935         * object.c, thread.c, object-internals.h: A thread's abort
936         exception state is now a GC handle.  To get the object it stands
937         for, we must move it into the current app domain, if it's
938         different than the one where it originated from.
939
940         * appdomain.c: Bump corlib version.
941
942         * domain.c, domain-internals.h: New function for setting the
943         domain and migrate the thread abort exception or not.
944
945 2009-04-16 Rodrigo Kumpera  <rkumpera@novell.com>
946
947         * metadata-verify.c: Add initial verification of the
948         field table.
949
950 2009-04-16 Rodrigo Kumpera  <rkumpera@novell.com>
951
952         * metadata-verify.c: Add a macro to conditionally enable
953         dumping of verification information. Add  make_coded_token
954         and search_sorted_table to enable search sorted tables
955         by a given coded token.
956
957 2009-04-16 Rodrigo Kumpera  <rkumpera@novell.com>
958
959         * metadata-verify.c: Add array mapping from table index
960         to description offset. Add get_col_offset and get_col_size
961         functions.
962
963 2009-04-16 Rodrigo Kumpera  <rkumpera@novell.com>
964
965         * metadata-verify.c: Add remaining table descriptions offsets.
966         Add remaining coded index descriptions.
967
968 2009-04-16 Rodrigo Kumpera  <rkumpera@novell.com>
969
970         * metadata-verify.c: Fixed constant table description.
971         Fixed calculation of HasCustomAttribute coded index size.
972         Fixed calculation of size for many table indexes. 
973
974 2009-04-16 Rodrigo Kumpera  <rkumpera@novell.com>
975
976         * pedump.c (dump_metadata): Dump table offset instead
977         of useless pointer in memory.
978
979 2009-04-16 Rodrigo Kumpera  <rkumpera@novell.com>
980
981         * metadata-verify.c (verify_typedef_table): Add tests for MethodList.
982
983 2009-04-15 Rodrigo Kumpera  <rkumpera@novell.com>
984
985         * metadata-verify.c (verify_typedef_table): Add tests for FieldList and
986         a missing of for interface types.
987
988 2009-04-15 Rodrigo Kumpera  <rkumpera@novell.com>
989
990         * metadata-verify.c (verify_pe_optional_header): Add comment of why
991         the code is commented.
992
993         * metadata-verify.c (verify_resources_table): Remove spurious printf
994         and don't fail if there are unmanaged resources. Gmcs generates a useless
995         one     for all assemblies - I bet it's some MS compatibility junk.
996
997 2009-04-15 Rodrigo Kumpera  <rkumpera@novell.com>
998
999         * metadata-verify.c (verify_typedef_table): Verify the extends field.
1000
1001         * metadata-verify.c (mono_image_verify): Add a is_corlib.
1002
1003         * verify-internals.h: Same.
1004
1005         * pedump.c: Fix for mono_image_verify new signature.
1006
1007 2009-04-15 Rodrigo Kumpera  <rkumpera@novell.com>
1008
1009         * metadata-verify.c (verify_typedef_table): Verify for some invalid
1010         flags combinations.
1011
1012 2009-04-15 Rodrigo Kumpera  <rkumpera@novell.com>
1013
1014         * metadata-verify.c (verify_module_table): Ignore the generation field.
1015
1016 2009-04-15  Martin Baulig  <martin@ximian.com>
1017
1018         * debug-mono-symfile.c
1019         (mono_debug_symfile_lookup_location): Don't print a warning for
1020         unknown extended opcodes if they're within 0x40 and 0x7f.
1021
1022 2009-04-15  Zoltan Varga  <vargaz@gmail.com>
1023
1024         * marshal.c (mono_marshal_get_runtime_invoke_sig): Don't share runtime
1025         invoke signatures returning an enum. Fixes #494847.
1026
1027 2009-04-14 Rodrigo Kumpera  <rkumpera@novell.com>
1028
1029         * metadata-verify.c: Initial code to verify the typedef table.
1030
1031 2009-04-14 Rodrigo Kumpera  <rkumpera@novell.com>
1032
1033         * verify.c (mono_method_verify): Don't fail if an unconditional branch
1034         with non empty stack happens before the beginning of a try block.
1035
1036         Fixes #494812.
1037
1038 2009-04-14 Rodrigo Kumpera  <rkumpera@novell.com>
1039
1040         * metadata-verify.c: Verify typename and typenamespace fields of
1041         the typeref table.
1042
1043 2009-04-13 Rodrigo Kumpera  <rkumpera@novell.com>
1044
1045         * metadata-verify.c: Initial code to verify the typeref table.
1046
1047 2009-04-13 Rodrigo Kumpera  <rkumpera@novell.com>
1048
1049         * verify.c (verify_delegate_compatibility): Fix error message.
1050
1051 2009-04-14  Sebastien Pouliot  <sebastien@ximian.com>
1052
1053         * security-core-clr.c: Fix typo
1054
1055 2009-04-14  Zoltan Varga  <vargaz@gmail.com>
1056
1057         * marshal.c (delegate_hash_table_add): Make delegate_target_locations 
1058         a MonoGHashTable to keep its values alive.
1059         (emit_marshal_boolean): Fix a warning.
1060
1061 2009-04-13 Gonzalo Paniagua Javier <gonzalo@novell.com>
1062
1063         * socket-io.c: don't return IPv4/IPv6 addresses if the machine does
1064         not have any interface configured for IPv4/IPv6.
1065
1066 2009-04-13 Gonzalo Paniagua Javier <gonzalo@novell.com>
1067
1068         * assembly.c: fix typo in error message.
1069
1070 2009-04-14  Zoltan Varga  <vargaz@gmail.com>
1071
1072         * marshal.c (mono_delegate_to_ftnptr): Use mono_gc_alloc_fixed () for
1073         allocating the location holding the this argument to prevent
1074         'too many root sets' errors.
1075
1076         * object.c (mono_class_create_runtime_vtable): Set field->offset to -1
1077         to mark fields as special static.
1078         (mono_field_static_get_value): Handle special static fields.
1079         (mono_field_static_set_value): Ditto.
1080
1081         * class-internals.h (struct _MonoClassField): Document this.
1082
1083 2009-04-13  Bill Holmes  <billholmes54@gmail.com>
1084
1085         * cominterop.c (mono_cominterop_emit_marshal_com_interface): Assigning
1086           the argument a value of null for the MARSHAL_ACTION_MANAGED_CONV_OUT
1087           case.  This will handle when managed code returns null to native code.
1088
1089         Code is contributed under MIT/X11 license.
1090
1091 2009-04-13  Bill Holmes  <billholmes54@gmail.com>
1092
1093         * object.c (build_imt_slots): Changing a free to a g_free to match
1094           the g_malloc0 in add_imt_builder_entry that allocated this memory.
1095
1096         Code is contributed under MIT/X11 license.
1097
1098 2009-04-13  Bill Holmes  <billholmes54@gmail.com>
1099
1100         * marshal.c (emit_marshal_boolean): Adding code to ensure that
1101           the correct TRUE value is passed through the marshaling layer.
1102
1103         Code is contributed under MIT/X11 license.
1104
1105 2009-04-13  Zoltan Varga  <vargaz@gmail.com>
1106
1107         * marshal.c (mono_marshal_emit_managed_wrapper): Handle closed delegates
1108         correctly. Fixes #492330.
1109         
1110         * marshal.c: Fix the embedding of object pointers into JITted code in
1111         the native-to-managed wrappers by allocating some GC tracked memory, and
1112         embedding the address of that.
1113
1114 2009-04-11  Zoltan Varga  <vargaz@gmail.com>
1115
1116         * object.c (mono_class_create_runtime_vtable): Avoid putting MonoMethod
1117         pointers into the vtable.
1118
1119 2009-04-09 Rodrigo Kumpera  <rkumpera@novell.com>
1120
1121         * verify.c (mono_delegate_type_equal): Proper check MONO_TYPE_CLASS.
1122
1123         * verify.c (verify_ldftn_delegate): Improve error message.
1124
1125 2009-04-09  Raja R Harinath  <harinath@hurrynot.org>
1126
1127         * reflection.c (my_mono_class_from_mono_type): Remove.
1128
1129 2009-04-09  Raja R Harinath  <harinath@hurrynot.org>
1130
1131         Prepare to reduce memory usage of owner-less generic parameters (1/n)
1132         * class-internals.h (MonoGenericParam): Carve out pklass, name, flags
1133         and constraints fields into ...
1134         (MonoGenericParamInfo): ... this.
1135         (mono_generic_param_info, mono_generic_container_get_param_info):
1136         New accessors.
1137         * class.c, debug-helpers.c, icall.c: Update to changes.
1138         * metadata.c, reflection.c, verify.c: Likewise.
1139
1140 2009-04-09  Zoltan Varga  <vargaz@gmail.com>
1141
1142         * debug-helpers.c (dis_one): Fix decoding of strings in dynamic images.
1143
1144         * marshal.c (get_runtime_invoke_type): Share enums with their base types.
1145         
1146         * marshal.c (get_runtime_invoke_type): Share pointers with ints and
1147         booleans with sbytes.
1148
1149 2009-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
1150
1151         * class.c (can_access_instantiation): Verify accesibility of element types
1152         for arrays and pointers.
1153
1154         * class.c (can_access_type): Return true if the target class is VAR or MVAR.
1155
1156         * class.c (mono_method_can_access_method_full): Fix typos in the documentation.
1157
1158         Fixes #493068.
1159
1160 2009-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
1161
1162         * verify.c (do_invoke_method): Improve error messages.
1163
1164 2009-04-08  Bill Holmes  <billholmes54@gmail.com>
1165
1166         * verify.c:  Fixing the MSVC build.
1167
1168         Code is contributed under MIT/X11 license.
1169
1170 2009-04-08  Sebastien Pouliot  <sebastien@ximian.com>
1171
1172         * security-core-clr.c: Simplify get_reflection_caller not to call
1173         mono_method_get_last_managed (another stack walk) and adjust the
1174         callers to handle a (should not happen) NULL return value.
1175
1176 2009-04-08  Raja R Harinath  <harinath@hurrynot.org>
1177
1178         Add accessors to some MonoGenericParam fields
1179         * class-internals.h (mono_generic_param_owner): New accessor.
1180         (mono_generic_param_num): Likewise.
1181         (mono_type_get_generic_param_owner): New helper.
1182         (mono_type_get_generic_param_num): New helper.
1183         * class.c, icall.c, metadata.c, reflection.c, verify.c: Use them.
1184
1185 2009-04-08  Raja R Harinath  <harinath@hurrynot.org>
1186
1187         * class-internals.h (mono_generic_container_get_param): New wrapper.
1188         * class.c, icall.c, metadata.c, verify.c: Use it.
1189
1190 2009-04-08  Raja R Harinath  <harinath@hurrynot.org>
1191
1192         Fix gtest-252.cs
1193         * verify.c (mono_type_is_valid_type_in_context): Rewrite to use
1194         the standard case/loop.  In particular, don't complain about
1195         references to generic type definitions.
1196
1197 2009-04-07  Zoltan Varga  <vargaz@gmail.com>
1198
1199         * debug-helpers.c (dis_one): Decode string arguments.
1200
1201 2009-04-07 Rodrigo Kumpera  <rkumpera@novell.com>
1202
1203         * pedump.c (dump_verify_info): Dump type name correctly.
1204
1205 2009-04-07 Rodrigo Kumpera  <rkumpera@novell.com>
1206
1207         * verify.c (mono_method_verify): Don't init code slots for exception boundaries if they
1208         are larger than code size.
1209
1210         This can happen in valid code if the try/catch block is not followed by any instruction
1211         and do a backward branch on the leave instruction.
1212
1213         Fixes #492494.
1214
1215 2009-04-06  Sebastien Pouliot  <sebastien@ximian.com>
1216
1217         * security-core-clr.c: Fix typo while comparing second method names
1218         in can_avoid_corlib_reflection_delegate_optimization
1219
1220 2009-04-06 Rodrigo Kumpera  <rkumpera@novell.com>
1221
1222         * verify.c (do_throw): Don't allow an unboxed generic param ar argument.
1223
1224         Fixes #487738.
1225
1226 2009-04-06 Rodrigo Kumpera  <rkumpera@novell.com>
1227
1228         * metadata.c (do_mono_metadata_parse_type): Fail if we are decoding
1229         a MVAR using a class context.
1230
1231         Fixes #490335.
1232
1233 2009-04-06  Zoltan Varga  <vargaz@gmail.com>
1234
1235         * object.c (mono_class_compute_gc_descriptor): Make this non-static.
1236
1237         * domain-internals.h (struct _MonoJitInfo): Add a 'gc_info' field.
1238
1239         * gc-internal.h (MonoGCCallbacks): New stucture containing the callback
1240         functions supplied by the JIT for the SGEN GC.
1241
1242         * sgen-gc.c: Call the callbacks supplied by the JIT to do stack marking.
1243         
1244 2009-04-06  Massimiliano Mantione  <massi@ximian.com>
1245
1246         monitor.c (mono_monitor_try_enter_internal):
1247         Added calls to profile monitor contentions.
1248         Also duplicated a small piece of code (the "get the monitor" logic)
1249         from the fast path to the slow path, and changed the relevant goto
1250         statements, so that monitor acquisition events can be emitted from the
1251         slow path (this is by Paolo Molaro).
1252
1253 2009-04-06  Massimiliano Mantione  <massi@ximian.com>
1254
1255         * profiler.c, profiler.h, profiler-private.h:
1256         Added support for profiling monitor contentions.
1257
1258 2009-04-03 Rodrigo Kumpera  <rkumpera@novell.com>
1259
1260         * metadata-verify.c: Verify the modules table.
1261
1262 2009-04-02 Rodrigo Kumpera  <rkumpera@novell.com>
1263
1264         * verify.c (mono_generic_param_is_constraint_compatible): Inflate the candidate
1265         using the context of the method been verifier and not of the method been called.
1266
1267         * verify.c: Add verifier_inflate_type and mono_type_is_valid_type_in_context to
1268         safely inflate generic types. 
1269
1270 2009-04-02  Sebastien Pouliot  <sebastien@ximian.com>
1271
1272         * security-core-clr.c: Change the strategy for checking the 
1273         "reflection using delegates optimization" to avoid unneeded 
1274         attributes in multiple class libraries.
1275
1276 2009-04-02  Mark Probst  <mark.probst@gmail.com>
1277
1278         * sgen-gc.c: Remove object element in the disappearing link struct
1279         by storing the object pointer in the link.
1280
1281 2009-03-31 Rodrigo Kumpera  <rkumpera@novell.com>
1282
1283         * pedump.c (dump_verify_info): Don't crash if signature decoding fails.
1284
1285 2009-03-31 Rodrigo Kumpera  <rkumpera@novell.com>
1286
1287         * verify.c (verifier_load_field): Fail if the field parent could not be loaded.
1288
1289         * verify.c (mono_method_verify): Do proper bounds checking of exception
1290         clause ranges.
1291
1292 2009-03-31 Rodrigo Kumpera  <rkumpera@novell.com>
1293
1294         * loader.c (mono_field_from_token): Don't crash if the field parent could
1295         not be decoded.
1296
1297 2009-03-31  Mark Probst  <mark.probst@gmail.com>
1298
1299         * sgen-gc.c: Execute critical finalizers after ordinary
1300         finalizers.
1301
1302         * class-internals.h, domain.c: Add CriticalFinalizerObject to
1303         mono_defaults.
1304
1305 2009-03-31 Jb Evain <jbevain@novell.com>
1306
1307         * verify.c (do_ldstr): don't check if a string is in the user strings
1308         heap if the current image is dynamic.
1309
1310 2009-03-31  Mark Probst  <mark.probst@gmail.com>
1311
1312         * sgen-gc.c: Wait until the last finalizer has executed when
1313         returning from WaitForPendingFinalizers.
1314
1315 2009-03-31  Martin Baulig  <martin@ximian.com>
1316
1317         * mono-debug-debugger.h (MonoDebuggerEvent): Add
1318         `MONO_DEBUGGER_EVENT_CREATE_APPDOMAIN' and
1319         `MONO_DEBUGGER_EVENT_UNLOAD_APPDOMAIN'.
1320         (mono_debugger_event_create_appdomain): New function.
1321         (mono_debugger_event_unload_appdomain): New function.
1322
1323         * appdomain.c (mono_domain_create_appdomain_internal): Call
1324         mono_debugger_event_create_appdomain().
1325
1326 2009-03-31  Martin Baulig  <martin@ximian.com>
1327
1328         * mono-debug-debugger.c
1329         (mono_debugger_register_class_init_callback): Also register the
1330         class init callback if the class is already initialized to make
1331         things work with shadow copied assemblies.
1332
1333 2009-03-31  Sebastien Pouliot  <sebastien@ximian.com>
1334
1335         * security-core-clr.c
1336         (mono_security_core_clr_ensure_reflection_access_field): Let 
1337         critical code access the field (just like we do for methods). Use
1338         check_field_access helper.
1339         (mono_security_core_clr_ensure_reflection_access_method): Use 
1340         check_field_access helper.
1341
1342 2009-03-31  Mark Probst  <mark.probst@gmail.com>
1343
1344         * sgen-gc.c: Remove data (callback) element from FinalizeEntry and
1345         call the run-finalize function directly.
1346
1347         * gc.c, gc-internal.h: Make run_finalize() non-static.
1348
1349 2009-03-31  Mark Probst  <mark.probst@gmail.com>
1350
1351         * sgen-gc.c: Use a separate struct for disappearing links.
1352
1353 2009-03-31 Gonzalo Paniagua Javier <gonzalo@novell.com>
1354
1355         * socket-io.c: don't fail if the SocketOptionsFlag has Partial or
1356         * MaxIOVectorLength enabled, just ignore them.
1357         Fixes bug #349688.
1358
1359 2009-03-30 Rodrigo Kumpera  <rkumpera@novell.com>
1360
1361         * metadata-verify.c: Fix eglib build.
1362
1363 2009-03-30  Zoltan Varga  <vargaz@gmail.com>
1364
1365         * threads-types.h: Fix the win32 build.
1366
1367 2009-03-28  Sebastien Pouliot  <sebastien@ximian.com>
1368
1369         * class.c: move coreclr inheritance/override checks to 
1370         security-core.clr.c
1371         * security-core.clr.c|h: add code from class.c with additional
1372         documentation. Fix override check when the method is not critical.
1373
1374 2009-03-28  Zoltan Varga  <vargaz@gmail.com>
1375
1376         * debug-helpers.c (mono_method_desc_match): Make '*' match anything.
1377         (match_class): Ditto.
1378
1379 2009-03-27 Rodrigo Kumpera  <rkumpera@novell.com>
1380
1381         * metadata-verify.c: Rename bounds_check_offset to bounds_check_datadir.
1382
1383         * metadata-verify.c: Implement table layout row size calculation. Verify
1384         the total size of the tables.
1385
1386 2009-03-27 Rodrigo Kumpera  <rkumpera@novell.com>
1387
1388         * metadata-verify.c: Verify heap sizes and size to decode row counts. 
1389
1390 2009-03-27 Gonzalo Paniagua Javier <gonzalo@novell.com>
1391
1392         * appdomain.c:
1393         * console-io.[ch]: added new mono_console_init() to make sure that
1394         file descriptors 0, 1 and 2 are opened.
1395         Bug #489019 fixed.
1396
1397 2009-03-27  Sebastien Pouliot  <sebastien@ximian.com> 
1398
1399         * appdomain.h: Export a new callback type and a new function to
1400         set this callback. This allow a mono host to provide it's own
1401         definition for "platform code".
1402         * metadata-internals.h: Add a core_clr_platform_code flag on 
1403         _MonoImage to (cache and) know if it is representing platform 
1404         code.
1405         * image.c (do_mono_image_open): Set core_clr_platform_code flag 
1406         on platform code images.
1407         * security-core-clr.c|h 
1408         (mono_security_set_core_clr_platform_callback): Allow the host
1409         to provide it's own platform check definition.
1410         (mono_security_core_clr_determine_platform_image): Detect if an 
1411         image is platform code (using the specified callback).
1412         (mono_security_core_clr_is_platform_image): Return cached value 
1413         for platform code.
1414
1415 2009-03-27  Zoltan Varga  <vargaz@gmail.com>
1416
1417         * threads.c (mono_create_thread): New helper function to wrap CreateThread
1418         which has different parameter types for the 'tid' argument in windows and
1419         the io-layer.
1420
1421         * appdomain.c attach.c threads.c: Use the new helper.
1422
1423 2009-03-26 Rodrigo Kumpera  <rkumpera@novell.com>
1424
1425         * metadata-verify.c: Verify valid table bits.
1426
1427 2009-03-26 Rodrigo Kumpera  <rkumpera@novell.com>
1428
1429         * metadata-verify.c (verify_metadata_header): Store size in the size field.
1430
1431         * metadata-verify.c: Add initial table schema verification.
1432
1433 2009-03-26  Zoltan Varga  <vargaz@gmail.com>
1434
1435         * icall.c (ves_icall_get_parameter_info): Add a 'member' argument, used to
1436         obtain the refclass argument needed by mono_param_get_objects (). Fixes
1437         #488383.
1438
1439         * reflection.c (mono_param_get_objects_internal): Add a 'refclass' argument.
1440
1441         * appdomain.c (MONO_CORLIB_VERSION): Bump this.
1442
1443 2009-03-26  Sebastien Pouliot  <sebastien@ximian.com>
1444
1445         * security-core-clr.c: Add/update documentation
1446
1447 2009-03-26  Zoltan Varga  <vargaz@gmail.com>
1448
1449         * marshal.c (emit_marshal_object): Generate code to throw an exception
1450         instead of throwing it. Fixes #488670.
1451
1452 2009-03-25  Sebastien Pouliot  <sebastien@ximian.com>
1453
1454         * appdomain.c: Bump MONO_CORLIB_VERSION to 73.
1455         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Add
1456         an extra 'throwOnBindFailure' parameter to the icall. Remove FIXME
1457         and add a call to mono_security_core_clr_ensure_delegate_creation
1458         to do the extra checks required by CoreCLR.
1459         * security-core-clr.c|h: Add function to check delegate creation,
1460         both in the binding and accessibility, under CoreCLR.
1461
1462 2009-03-25  Sebastien Pouliot  <sebastien@ximian.com> 
1463
1464         * reflection.c (mono_reflection_create_dynamic_method): when 
1465         coreclr is enabled make sure that every resolved object are
1466         checked (e.g. field and method access).
1467         * security-core-clr.c|h: Add function to check objects resolved
1468         when a dynamic method is created.
1469
1470 2009-03-24 Rodrigo Kumpera  <rkumpera@novell.com>
1471
1472         * metadata-verify.c: Cache directory rva translations.
1473
1474         * metadata-verify.c: Add cli-header and streams verification.
1475
1476 2009-03-24 Rodrigo Kumpera  <rkumpera@novell.com>
1477
1478         * image.c (load_metadata_ptrs): We decode MonoImage::md_version_minor at
1479         the wrong offset (8 instead of 6).
1480
1481 2009-03-23  Zoltan Varga  <vargaz@gmail.com>
1482
1483         * marshal.c (mono_delegate_to_ftnptr): For delegates wrapping pinvoke
1484         methods, return the native function address itself. Fixes
1485         #487758.
1486
1487 2009-03-23 Gonzalo Paniagua Javier <gonzalo@novell.com>
1488
1489         * console-io.c: some of the values for control characters might not be
1490         present.
1491
1492 2009-03-21  Sebastien Pouliot  <sebastien@ximian.com>
1493
1494         * exception.c|h: Add helpers to create [Field|Method]AccessException
1495         * icall.c: Add required coreclr check calls for field reflection.
1496         Move the existing (method) check logic into security-core-clr.c
1497         * security-core-clr.c: Add functions to check if the access of a
1498         field or method is allowed when reflecting under coreclr. This is
1499         mostly done using a stack walk to find the "real" caller: i.e. the
1500         code that is calling the reflection
1501
1502 2009-03-20  Zoltan Varga  <vargaz@gmail.com>
1503
1504         * gc-internal.h: Change location of gc_wrapper.h
1505
1506 2009-03-20  Sebastien Pouliot  <sebastien@ximian.com> 
1507
1508         * class.c: Simplification to coreclr checks for overrides that
1509         makes it easier to set breakpoints.
1510
1511 2009-03-20  Sebastien Pouliot  <sebastien@ximian.com>
1512
1513         * security-core-clr.c|h: (mono_security_core_clr_class_level, 
1514         mono_security_core_clr_method_level): Avoid potential 
1515         MonoCustomAttrInfo allocation for transparent assemblies (e.g. 
1516         user/application code) and make it easier to set breakpoints
1517
1518 2009-03-19 Rodrigo Kumpera  <rkumpera@novell.com>
1519
1520         * metadata-verify.c: Reject cli header tables that mono don't handle.
1521
1522 2009-03-19 Rodrigo Kumpera  <rkumpera@novell.com>
1523
1524         * pedump.c: Fix CLI header dumping.
1525
1526 2009-03-19 Rodrigo Kumpera  <rkumpera@novell.com>
1527
1528         * metadata-verify.c: More CLI header verification.
1529
1530 2009-03-19  Zoltan Varga  <vargaz@gmail.com>
1531
1532         * locales.c (get_current_locale_name): Use g_malloc instead of malloc.
1533
1534 2009-03-18 Rodrigo Kumpera  <rkumpera@novell.com>
1535
1536         * metadata-verify.c: Initial verification of the CLI header.
1537
1538 2009-03-18 Rodrigo Kumpera  <rkumpera@novell.com>
1539
1540         * metadata-verify.c (verify_resources_table): Fix verification of zero
1541         sized resource section and id entries count.
1542
1543 2009-03-18  Zoltan Varga  <vargaz@gmail.com>
1544
1545         * icall.c: Handle user types in many Type icalls. Fixes #486303.
1546
1547 2009-03-17  Jb Evain  <jbevain@novell.com>
1548
1549         * profiler.c: call mono_gc_base_init from mono_profiler_load.
1550
1551 2009-03-17  Zoltan Varga  <vargaz@gmail.com>
1552
1553         * sgen-gc.c (mono_gc_make_descr_for_object): Fix 64 bit support.
1554         (mono_gc_make_descr_for_array): Ditto.
1555
1556 2009-03-17  Sebastien Pouliot  <sebastien@ximian.com>
1557
1558         * verify.c (mono_verifier_is_class_full_trust): Add support for
1559         CoreCLR security mode where trusted assemblies are defined as
1560         "platform code".
1561
1562 2009-03-16 Rodrigo Kumpera  <rkumpera@novell.com>
1563
1564         * metadata-verify.c: Add minimal PECOFF resource verification.
1565
1566 2009-03-16 Rodrigo Kumpera  <rkumpera@novell.com>
1567
1568         * metadata-verify.c: Be less restrictive with some coff fields.
1569
1570 2009-03-16 Rodrigo Kumpera  <rkumpera@novell.com>
1571
1572         * verify.c (init_stack_with_value_at_exception_boundary): Init generic
1573         params as boxed values on stack. Fixes #485706.
1574
1575 2009-03-16 Gonzalo Paniagua Javier <gonzalo@novell.com>
1576
1577         * console-io.c: the termios values may vary in different flavors of unix.
1578
1579 2009-03-16 Gonzalo Paniagua Javier <gonzalo@novell.com>
1580
1581         * console-io.[ch]: return the entire set of control characters when
1582         initializing the terminal.
1583         * appdomain.c: bump corlib version.
1584
1585 Mon Mar 16 11:11:26 CET 2009 Paolo Molaro <lupus@ximian.com>
1586
1587         * mono-perfcounters.c: added support for in-process custom
1588         performance counters.
1589
1590 2009-03-13 Rodrigo Kumpera  <rkumpera@novell.com>
1591
1592         * metadata-verify.c: Small cleanup and add comment for IAT directory entry. 
1593
1594 2009-03-13 Rodrigo Kumpera  <rkumpera@novell.com>
1595
1596         * metadata-verify.c: Verify the data pointed by the import table. 
1597
1598 2009-03-13 Rodrigo Kumpera  <rkumpera@novell.com>
1599
1600         * metadata-verify.c (load_data_directories): Store data
1601         directory contents.
1602
1603         * metadata-verify.c: Verify the import table. 
1604
1605 2009-03-12 Rodrigo Kumpera  <rkumpera@novell.com>
1606
1607         * metadata-verify.c: Verify data directories.
1608
1609 2009-03-12 Rodrigo Kumpera  <rkumpera@novell.com>
1610
1611         * metadata-verify.c: Check section header flags.
1612
1613 2009-03-12 Gonzalo Paniagua Javier <gonzalo@novell.com>
1614
1615         * appdomain.c: if the assembly name is a shadow-copied file, return
1616         TRUE from mono_is_shadow_copy_enabled but don't actually do anything
1617         in mono_make_shadow_copy.
1618         * icall.c: if the assembly name is a shadow-copied file, replace it
1619         with the original assembly path.
1620
1621         Bug #484244 fixed. NUnit tests for corlib can be run without
1622         --noshadow now.
1623
1624 2009-03-12  Zoltan Varga  <vargaz@gmail.com>
1625
1626         * sgen-gc.c (add_to_global_remset): Fix the handling of root global remset
1627         entries when the table is reallocated.
1628
1629         * icall.c: Allocate the memory used by the mono_ptr_array macros using
1630         mono_gc_alloc_fixed () since it contains GC refs.
1631
1632 2009-03-10  Zoltan Varga  <vargaz@gmail.com>
1633
1634         * reflection.c (ensure_complete_type): New helper function to call
1635         type resolve handlers for unfinished dynamic types.
1636         (resolve_object): Call it for MonoClassFields. Fixes #483852.
1637
1638 2009-03-09  Zoltan Varga  <vargaz@gmail.com>
1639
1640         * reflection.c (mono_custom_attrs_has_attr): Handle interfaces. Fixes
1641         #483247.
1642
1643 2009-03-08 Rodrigo Kumpera  <rkumpera@novell.com>
1644
1645         * appdomain.c (get_shadow_assembly_location): Fix memleak.
1646
1647 2009-03-08  Zoltan Varga  <vargaz@gmail.com>
1648
1649         * domain-internals.h (struct _MonoDomain): Add new hash tables mapping
1650         between GCHandles of type WeakTrackResurrection and the objects they
1651         point to.
1652
1653         * gc.c: Partly implement the sematics of GCHandles of type 
1654         WeakTrackResurrection: these handles should only be cleared after the
1655         finalizer of the object they are pointing to has ran.
1656
1657 2009-03-06  Mark Probst  <mark.probst@gmail.com>
1658
1659         * icall.c: Partially revert r126631 because using the jump
1660         trampolines for generic shared methods makes it superfluous.
1661
1662 2009-03-06  Zoltan Varga  <vargaz@gmail.com>
1663
1664         * threads.c (handle_store): Create the 'threads' hash table with the proper
1665         MONO_HASH_VALUE_GC type.
1666
1667 2009-03-05  Zoltan Varga  <vargaz@gmail.com>
1668
1669         * domain-internals.h (struct _MonoDomain): Move 'typeof_void' before
1670         FIRST_GC_TRACKED.
1671
1672         * domain.c (mono_domain_create): Register the fields between FIRST_GC_TRACKED
1673         and LAST_GC_TRACKED as a GC root.
1674
1675         * gc-internal.h: Fix the comment of mono_gc_alloc_fixed.
1676
1677         * object.c (mono_class_create_runtime_vtable): Create a GC descriptor for
1678         the static data even if it consists of 1 reference.
1679
1680         * boehm-gc.c (mono_gc_alloc_fixed): Allocate using GC_MALLOC_EXPLICITLY_TYPED
1681         if there is a GC descriptor.
1682
1683         * reflection.c (ALLOC_REFENTRY): Allocate ReflectedEntry-es using malloc
1684         instead of through the GC since they contain no object references.
1685
1686 2009-03-05  Mark Probst  <mark.probst@gmail.com>
1687
1688         * generic-sharing.c (instantiate_other_info): Always return a jump
1689         trampoline for method code.
1690
1691 2009-03-05  Marek Habersack  <mhabersack@novell.com>
1692
1693         * culture-info-tables.h: generated to include the en-tt culture.
1694
1695 2009-03-04 Rodrigo Kumpera  <rkumpera@novell.com>
1696
1697         * domain-internals.h (MonoDomain): Add two fields to cache invoke wrappers to
1698         capture the thread context.
1699
1700         * object.c (mono_async_result_new): Cache the invoke wrappers to
1701         ExecutionContext::Capture.
1702
1703 2009-03-04 Rodrigo Kumpera  <rkumpera@novell.com>
1704
1705         * marshal.h: Add a prototype for what mono_compile_method returns
1706         for invoke wrappers.
1707
1708         * gc.c: Use the new prototype declaration.
1709
1710 2009-03-04  Geoff Norton  <gnorton@novell.com>
1711
1712         * boehm-gc.c: Add some MONO_LOG tracing for the GC
1713         * gc-internal.h:
1714         * mono-gc.h: Expose mono_gc_invoke_finalizers in the embedding api.
1715
1716 2009-03-04  Martin Baulig  <martin@ximian.com>
1717
1718         * mono-debug.h
1719         (mono_debugger_runtime_invoke): Removed.
1720
1721         * mono-debug-debugger.c
1722         (mono_runtime_invoke): Moved into ../mini/debug-mini.c.
1723
1724 2009-03-02  Martin Baulig  <martin@ximian.com>
1725
1726         * mono-debug.h
1727         (mono_debugger_unhandled_exception): Removed.
1728         (mono_debugger_handle_exception): Removed.
1729         (mono_debugger_throw_exception): Removed.
1730
1731         * mono-debug.c
1732         (mono_debug_debugger_version): Bump to 5.
1733
1734         * mono-debug-debugger.c: Moved the exception handling code to
1735         ../mini/debug-mini.c
1736
1737 2009-03-03  Zoltan Varga  <vargaz@gmail.com>
1738
1739         * domain-internals.h (struct _MonoDomain): Add a separate lock for the
1740         finalize_objects_hash.
1741
1742         * gc.c: Use the separate lock to access the finalize_objects_hash field.
1743         
1744         * domain-internals.h (struct _MonoDomain): Add finalize_runtime_invoke
1745         field.
1746
1747         * metadata-internals.h (struct _MonoImage): Add runtime_invoke_vcall_cache
1748         cache.
1749
1750         * image.c (mono_image_close): Free it.
1751         
1752         * marshal.c (mono_marshal_get_runtime_invoke): Add a 'virtual' argument
1753         allowing a creation of a wrapper which invokes its method using a CALLVIRT
1754         on the this argument.
1755
1756         * gc.c (run_finalize): Optimize the calling of the finalizers.
1757
1758 2009-03-03  Martin Baulig  <martin@ximian.com>
1759
1760         * mono-debug.h (MONO_DEBUGGER_MAJOR_VERSION): Bump to 81 because
1761         of the `MonoGenericInst' changes.
1762
1763 2009-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
1764
1765         * icall.c (ves_icall_MonoType_GetGenericArguments): Use
1766         mono_array_class_get_cached to reduce locking contention. Extract
1767         a domain var.
1768
1769         * icall.c (ves_icall_Type_GetFields_internal): Avoid allocating
1770         intermediary managed arrays. Use caching version of mono_array_new
1771         to allocate the result array.
1772
1773         * icall.c (ves_icall_Type_GetEvents_internal): Same.    
1774
1775         * icall.c (ves_icall_Type_GetNestedTypes): Same.        
1776
1777         * locales.c (create_names_array_idx):  Use mono_array_new_cached
1778         to reduce locking contention.
1779
1780 2009-03-03  Zoltan Varga  <vargaz@gmail.com>
1781                 
1782         * object.c (mono_method_add_generic_virtual_invocation): Put back the
1783         thunk builder code for the non-interface case.
1784
1785 2009-03-02  Zoltan Varga  <vargaz@gmail.com>
1786
1787         * object.c (get_generic_virtual_entries): New helper function to collect
1788         the virtual generic method instances which need to be added to an IMT
1789         thunk.
1790         (mono_method_add_generic_virtual_invocation): Add a 'vtable' argument.
1791         Instead of creating a new IMT thunk, reset the vtable slot to the
1792         trampoline, the thunk will be created the next time the trampoline is called.
1793         (build_imt_slots): Add support for virtual generic methods in interfaces by
1794         adding to the IMT thunk all the methods registered using 
1795         mono_method_add_generic_virtual_invocation ().
1796
1797         * object-internals.h (_MonoImtBuilderEntry): Add a 'has_target_code' field.
1798         (struct _MonoIMTCheckItem): Ditto.
1799
1800         * object.c (mono_method_add_generic_virtual_invocation): Take a
1801         MonoMethod argument instead of a MonoGenericInst. Fix the construction of
1802         the IMT thunk to include all items.
1803         
1804         * object.c (mono_class_create_runtime_vtable): Add a missing
1805         mono_loader_unlock ().
1806
1807 2009-03-02 Rodrigo Kumpera  <rkumpera@novell.com>
1808
1809         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1810
1811         * object-internals.h (MonoReflectionEvent): Add cached_add_event.
1812
1813 2009-03-02 Rodrigo Kumpera  <rkumpera@novell.com>
1814
1815         * object-internals.h: Rename _MonoReflectionEvent to
1816         MonoReflectionMonoEvent so it reflects the right managed type.
1817         Add a MonoReflectionEvent that correctly represents System.EventInfo.
1818
1819         * icall.c:
1820         * reflection.c: Adjust code to use the new MonoReflectionMonoEvent
1821         type.
1822
1823 2009-03-02 Rodrigo Kumpera  <rkumpera@novell.com>
1824
1825         * icall.c (ves_icall_Type_GetMethodsByName): Avoid allocating
1826         intermediary managed arrays. Use caching version of mono_array_new
1827         to allocate the result array.
1828
1829 2009-03-01 Rodrigo Kumpera  <rkumpera@novell.com>
1830
1831         * reflection.c: Use cached version of mono_array_new alongside
1832         the mono_reflection_get_custom_attrs_by_type call path.
1833
1834 2009-03-01 Rodrigo Kumpera  <rkumpera@novell.com>
1835
1836         * icall.c (ves_icall_Type_GetInterfaces): Avoid allocating
1837         intermediary managed arrays. Use caching version of mono_array_new
1838         to allocate the result array.
1839
1840         * icall.c (ves_icall_Type_GetConstructors_internal): Same.
1841
1842 2009-03-01 Rodrigo Kumpera  <rkumpera@novell.com>
1843
1844         * icall.c: Add small implementation of a growable stack bound array.
1845
1846         * icall.c (ves_icall_System_Enum_get_hashcode): Fix warning.
1847
1848         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid allocating
1849         intermediary managed arrays. Use caching version of mono_array_new
1850         to allocate the result array.
1851
1852 2009-02-27 Rodrigo Kumpera  <rkumpera@novell.com>
1853
1854         * icall.c: New icall ves_icall_System_Enum_compare_value_to that
1855         helps Enum::CompareTo to be implemented without reboxing all enums
1856         to their underlying type.
1857 2009-02-27  Zoltan Varga  <vargaz@gmail.com>
1858
1859         * domain.c (SET_APPDOMAIN): Avoid calling TlsSetValue () on some platforms,
1860         since it acquires a global lock leading to scalability problems.
1861
1862         * profiler.c: Make the stat profiler work with multiple appdomains, this
1863         currently only works when no appdomains are unloaded.
1864
1865 2009-02-26 Gonzalo Paniagua Javier <gonzalo@novell.com>
1866
1867         * appdomain.c: make the check to avoid copying when the assembly is
1868         already shadow copied actually work.
1869
1870 2009-02-26  Zoltan Varga  <vargaz@gmail.com>
1871
1872         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1873
1874         * object-internals.h (struct _MonoReflectionGenericClass): Sync with
1875         changes to the managed side.
1876
1877 2009-02-25  Zoltan Varga  <vargaz@gmail.com>
1878
1879         * metadata-internals.h (struct _MonoImage): Add a new cache for szarray
1880         classes + a separate lock for it, as it is used frequently at runtime, not
1881         just during metadata loading/JIT compilation.
1882
1883         * class.c (mono_bounded_array_class_get): Use the separate cache + lock
1884         for szarrays.
1885         
1886         * object-internals.h (mono_class_from_name_cached): New macro to cache
1887         the results of the lookup locally without having to declare a static
1888         variable to hold it.
1889         (mono_class_get_field_from_name_cached): Ditto.
1890         (mono_array_class_get_cached): Ditto.
1891
1892         * threadpool.c threads.c locales.c icall.c reflection.c socket-io.c: Use
1893         the new macros.
1894         
1895         * object.c (mono_get_delegate_invoke): Call setup_methods () to avoid the
1896         slower search in metadata.
1897
1898         * pedump.c: Fix a warning.
1899
1900 2009-02-23  Zoltan Varga  <vargaz@gmail.com>
1901
1902         * reflection.c (encode_locals): Add checks for user types.
1903         (method_encode_clauses): Ditto.
1904         (method_encode_code): Ditto.
1905         (mono_image_create_token): Ditto.
1906
1907         * object-internals.h: Change the type of more fields from MonoReflectionType*
1908         to MonoObject*.
1909
1910 2009-02-22  Zoltan Varga  <vargaz@gmail.com>
1911
1912         * threads.c (mono_thread_suspend_all_other_threads): Handle the case when
1913         the a thread does not suspend within 100ms.
1914
1915         * monitor.c (mono_monitor_try_enter_internal): Handle SuspendRequested
1916         in addition to StopRequested as well.
1917
1918         * mono-debug.c: Call _mono_debug_get_image () while holding the debug lock.
1919
1920         * debug-mono-symfile.c (mono_debug_symfile_lookup_method): Actually
1921         search the method_hash before inserting a new entry, to avoid crashes when
1922         the same method is inserted multiple times, causing the old 
1923         MonoDebugMethodInfo structure to be freed by the value dtor function.
1924
1925 2009-02-22 Gonzalo Paniagua Javier <gonzalo@novell.com>
1926
1927         * socket-io.c: support SO_MAXCONN, SO_USELOOPBACK and
1928         SO_EXLUSIVEADDRUSE where available.
1929
1930 2009-02-21  Zoltan Varga  <vargaz@gmail.com>
1931
1932         * marshal.c (mono_marshal_get_runtime_invoke): Fix _another_ bug sharing
1933         runtime invoke wrappers, this time it is string ctor wrappers, which
1934         pass a dummy string as 'this' instead of their obj argument. Fixes
1935         #478473.
1936
1937 2009-02-21  Jb Evain  <jbevain@novell.com>
1938
1939         * icall.c (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
1940         only get create_culture once.
1941
1942 2009-02-20  Zoltan Varga  <vargaz@gmail.com>
1943
1944         * reflection.c (mono_reflection_setup_internal_class): Move the user type
1945         check before the locking.
1946         
1947         * reflection.c (mono_reflection_setup_internal_class): Check for user types.
1948         (mono_reflection_create_runtime_class): Ditto.
1949         (mono_reflection_sighelper_get_signature_local): Ditto.
1950         (mono_reflection_sighelper_get_signature_field): Ditto.
1951
1952         * object-internals.h (CHECK_MONOTYPE): New macro to check that a Type object
1953         is a System.MonoType object or similar.
1954         (monotype_cast): New helper function to cast a MonoObject to a 
1955         MonoReflectionType object.
1956
1957         * object-internals.h: Change MonoReflectionType* members in structures to
1958         MonoObject* members to force the usage of the monotype_cast () function.
1959
1960         * reflection.c icall.c: Use monotype_cast () for accessing Type members of
1961         structures/arrays. This causes us to assert instead of crashing when 
1962         instances of user defined subclasses of System.Type are encountered.
1963
1964 2009-02-20 Gonzalo Paniagua Javier <gonzalo@novell.com>
1965
1966         * cil-coff.h:
1967         * icall-def.h:
1968         * icall.c: add new GetUnmanagedResourcePtr that returns a pointer to a
1969         win32 resource loaded from a PE file.
1970
1971         * image.c: fix mono_image_lookup_resource.
1972
1973 2009-02-20 Gonzalo Paniagua Javier <gonzalo@novell.com>
1974
1975         * icall-def.h:
1976         * threads-types.h:
1977         * threads.c: added internal call for WaitHandle.SignalAndWait.
1978
1979 2009-02-19  Bill Holmes  <billholmes54@gmail.com>
1980
1981         * cominterop.c : Adding cominterop_type_from_handle and 
1982           registering it as an icall.  Replacing all references
1983           to type_from_handle.
1984
1985         Code is contributed under MIT/X11 license.
1986
1987 2009-02-19 Rodrigo Kumpera  <rkumpera@novell.com>
1988
1989         * Makefile.am: Add lock-tracer.h and lock-trace.c.
1990
1991         * appdomain.c: Call the tracer init function.
1992
1993         * domain-internals.h: Enable the tracer for the domain locks.
1994
1995         * image.c: Enable the tracer for image locks.
1996
1997         * loader.c: Enable the trace for the loader lock.
1998
1999         * lock-tracer.h:
2000         * lock-tracer.c: Initial implementation of the lock trace utility.
2001         The tracer requires a compile time define to be enabled and a env var
2002         to be enabled at runtime.
2003
2004 2009-02-19 Rodrigo Kumpera  <rkumpera@novell.com>
2005
2006         * domain.c (mono_domain_code_foreach): Improve documentation.
2007
2008 2009-02-19 Rodrigo Kumpera  <rkumpera@novell.com>
2009
2010         * appdomain.c:
2011         * generic-sharing.c:
2012         * object.c:
2013         * reflection.c:  Adjust locking order to the new semantics where the loader lock
2014         comes first.
2015
2016 2009-02-18 Rodrigo Kumpera  <rkumpera@novell.com>
2017
2018         * domain.c: Add mono_domain_code_* functions that perform locking
2019         around the domain codeman.
2020
2021         * domain-internals.h: Export those functions.
2022
2023         * object.c: Use new functions instead of acquiring the domain lock.
2024
2025 2009-02-19  Zoltan Varga  <vargaz@gmail.com>
2026
2027         * marshal.c (mono_ftnptr_to_delegate): Convert a NULL ftnptr to a null
2028         delegate. Fixes #477396.
2029
2030 2009-02-18  Zoltan Varga  <vargaz@gmail.com>
2031
2032         * reflection.c (create_custom_attr): Get rid of alloca.
2033
2034 2009-02-18  Bill Holmes  <billholmes54@gmail.com>
2035
2036         * cominterop.c (cominterop_get_managed_wrapper_adjusted) :
2037           Adding exception handling for all CCW calls.
2038
2039         Code is contributed under MIT/X11 license.
2040
2041 2009-02-18  Zoltan Varga  <vargaz@gmail.com>
2042
2043         * reflection.c (mono_reflection_init): Remove the unused reflection mutex.
2044
2045         * marshal.c (emit_marshal_boolean): Add null checks to the new 
2046         native->managed marshalling code. Fixes #476247.
2047
2048 2009-02-17  Zoltan Varga  <vargaz@gmail.com>
2049
2050         * class.c (mono_class_get_vtable_entry): Move the addition of
2051         static rgctx invoke wrappers for vtable methods here, this simplifies
2052         a lot of code and causes fewer rgctx wrappers to be created.
2053
2054         * marshal.c (mono_marshal_get_static_rgctx_invoke): Change the
2055         name of the statistics to begin with an uppercase.
2056
2057 2009-02-17 Rodrigo Kumpera  <rkumpera@novell.com>
2058
2059         * reflection.c: Revert previous change as it breaks the build.
2060         
2061 2009-02-17 Rodrigo Kumpera  <rkumpera@novell.com>
2062
2063         * verify.c: Properly handle SZARRAY element type.
2064
2065         Fixes #474271.
2066
2067 2009-02-17 Rodrigo Kumpera  <rkumpera@novell.com>
2068
2069         * reflection.c (mono_image_create_method_token): Correctly encode
2070         MethodDef MemberRefParent token.
2071
2072         Fixes #472845.
2073
2074 2009-02-17  Zoltan Varga  <vargaz@gmail.com>
2075
2076         * image.c (mono_image_close): Delete the critical section before
2077         freeing the memory holding it.
2078
2079 2009-02-16 Rodrigo Kumpera  <rkumpera@novell.com>
2080
2081         * verify.c (mono_method_verify): rethrow opcode doesn not fall through.
2082         Fixes #476257.
2083
2084 2009-02-16 Rodrigo Kumpera  <rkumpera@novell.com>
2085
2086         * pedump.c (main): Call mono_marshal_init so pedump
2087         doesn't crash.
2088
2089 2009-02-16 Rodrigo Kumpera  <rkumpera@novell.com>
2090
2091         * loader.c (method_from_memberref): Properly fix #474271 and
2092         don't break the runtime bad.
2093
2094 2009-02-16  Zoltan Varga  <vargaz@gmail.com>
2095
2096         * domain.c (mono_domain_alloc): Add locking so the caller doesn't have to.
2097         (mono_domain_alloc0): Ditto.
2098
2099 2009-02-16 Rodrigo Kumpera  <rkumpera@novell.com>
2100
2101         * loader.c (method_from_memberref): Don't abort if the array
2102         method is not found. A regular loader failure is more informative
2103         and correct.
2104
2105         Fixes #474271.
2106
2107 2009-02-16 Rodrigo Kumpera  <rkumpera@novell.com>
2108
2109         *loader.c: Guard MonoImage::method_cache/methodref_cache
2110         using the image lock instead of the loader lock.
2111
2112         * metadata.h: Add comments about which fields are protected by
2113         the image lock.
2114
2115 2009-02-16  Zoltan Varga  <vargaz@gmail.com>
2116
2117         * appdomain.c (mono_set_private_bin_path_from_config): Fix a warning.
2118
2119         * generic-sharing.c (mono_method_construct_object_context): Remove the
2120         wrapper_type == NONE assert, it is not needed.
2121
2122 2009-02-15  Zoltan Varga  <vargaz@gmail.com>
2123
2124         * reflection.c (clear_cached_object): New helper function.
2125         (mono_method_clear_object): New function to clear the cached reflection
2126         objects for a dynamic method.
2127
2128         * object.c (mono_runtime_free_method): Call mono_method_clear_object ().
2129         Partly fixes # 463323.
2130         
2131 2009-02-14 Rodrigo Kumpera  <rkumpera@novell.com>
2132
2133         * class.c:
2134         * loader.c:
2135         * reflection.c: Remove all explicit uses of MonoImage::property_hash.
2136
2137 2009-02-14 Rodrigo Kumpera  <rkumpera@novell.com>
2138
2139         * image.c: Add mono_image_property_(lookup,insert,remove) functions that
2140         take the image lock instead of the loader lock.
2141
2142         * metadata-internals.h: Export new functions.
2143
2144 2009-02-12  Miguel de Icaza  <miguel@novell.com>
2145
2146         * domain.c (app_config_parse): Remove another use of stat that is
2147         not necessary as g_file_get_contents already does the presence
2148         check. 
2149
2150 2009-02-13  Zoltan Varga  <vargaz@gmail.com>
2151
2152         * cominterop.c icall-def.h: Fix the DISABLE_COM build.
2153
2154         * marshal.c: Move the bstr handling code to cominterop.c.
2155
2156         * marshal.c: Remove some COM interop code missed previously.
2157
2158 2009-02-12  Miguel de Icaza  <miguel@novell.com>
2159
2160         More Paolo patches from the Wii port:
2161         
2162         * security.c: Remove ves_icall_System_Environment_get_UserName
2163         from here.
2164
2165         * icall.c: And put ves_icall_System_Environment_get_UserName
2166         here. 
2167
2168         * appdomain.c (mono_set_private_bin_path_from_config): Remove
2169         redundant call to stat that was only used to test for the file
2170         existence.   Patch from Paolo.
2171
2172         * gc.c (run_finalize): If COM is disabled, do not link in
2173         mono_marshal_free_ccw.
2174
2175         * generic-sharing.c: Use alloca.h here as well.
2176
2177 2009-02-13 Rodrigo Kumpera  <rkumpera@novell.com>
2178
2179         * reflection.c (mono_reflection_lookup_dynamic_token): Do the locking properly.
2180
2181 2009-02-13  Zoltan Varga  <vargaz@gmail.com>
2182
2183         * cominterop.c cominterop.h: New files.
2184
2185         * marshal.c: Move the COM interop related code to cominterop.c. Make a few
2186         function/typedefs which are needed by cominterop.c global.
2187
2188 2009-02-12  Mark Probst  <mark.probst@gmail.com>
2189
2190         * generic-sharing.c: Don't take the loader lock to guard image
2191         mempool allocs.
2192
2193 2009-02-12 Rodrigo Kumpera  <rkumpera@novell.com>
2194
2195         * reflection.c (mono_reflection_lookup_dynamic_token): This function might be
2196         called without the loader lock which is required to guard MonoImage:tokens.
2197
2198 2009-02-12 Rodrigo Kumpera  <rkumpera@novell.com>
2199
2200         * class.c:
2201         * metadata.c:
2202         * method-builder.c:
2203         * marshal.c:
2204         * reflection.c: Don't take the loader lock to alloc memory from the image mempool.
2205
2206 2009-02-12 Rodrigo Kumpera  <rkumpera@novell.com>
2207
2208         * metadata.c: Remove mono_image_alloc_lock and mono_image_alloc0_lock.
2209         Rework the code to use regular mono_image_alloc/0.
2210
2211         * loader.c: Rework the code to use regular mono_image_alloc/0.
2212
2213         * metadata-internals.h: Remove mono_image_alloc_lock and mono_image_alloc0_lock.
2214
2215 2009-02-12  Bill Holmes  <billholmes54@gmail.com>
2216
2217         * object-internals.h : Fixing a typo in the 
2218           MonoReflectionComVisibleAttribute struct.
2219
2220         * marshal.c (cominterop_com_visible): Check the implemented 
2221           interfaces for ComImport.
2222
2223         * marshal.c (cominterop_get_native_wrapper_adjusted): For COM calls 
2224           assume that bools should be treated as VARIANTBOOLs.
2225
2226         * marshal.c (emit_marshal_boolean): Adding cases for 
2227           MARSHAL_ACTION_MANAGED_CONV_IN and MARSHAL_ACTION_MANAGED_CONV_OUT.
2228
2229         * marshal.c (mono_marshal_emit_managed_wrapper): Adding calls to 
2230           emit_marshal MARSHAL_ACTION_MANAGED_CONV_IN and OUT for bools.
2231
2232         * marshal.c (cominterop_get_ccw): For COM calls assume that bools
2233           should be treated as VARIANTBOOLs.    
2234
2235         Code is contributed under MIT/X11 license.
2236
2237 2009-02-12 Rodrigo Kumpera  <rkumpera@novell.com>
2238
2239         * image.c (mono_image_alloc, mono_image_alloc0, mono_image_strdup): Guard mempool
2240         allocation with the image lock.
2241
2242 2009-02-12 Rodrigo Kumpera  <rkumpera@novell.com>
2243
2244         This patch is the last of a series to remove explicit reference of MonoImage::mempool
2245         and use mono_image_alloc set of functions instead. This time we finish with reflection.c
2246
2247         * object.c: Add mono_string_to_utf8_image.
2248
2249         * object-internals.h: Export mono_string_to_utf8_image.
2250
2251         * reflection.c: Rework all explicit references to the the image mempool to go thought
2252         the mono_image_alloc set of functions.
2253
2254 2009-02-12 Rodrigo Kumpera  <rkumpera@novell.com>
2255
2256         This patch is the third of a series to remove explicit reference of MonoImage::mempool
2257         and use mono_image_alloc set of functions instead. This time we finish with marshal.c
2258         and generics-sharing.c.
2259
2260         * generics-sharing.c (set_other_info_templates): Take a MonoImage instead of a MonoMemPool
2261         as first argument. Note that this function remains broken as it doesn't perform locking around the
2262         mempool allocation.
2263
2264         * generics-sharing.c (rgctx_template_set_other_slot): Pass the image and not the mempool.
2265
2266         * image.c: Add g_slist_append_image.
2267
2268         * metadata.c (mono_metadata_field_info_with_mempool): Remove the mempool argument and use
2269         the supplied image for allocation. Move code into mono_metadata_field_info_full.
2270
2271         * metadata.c (mono_metadata_parse_marshal_spec_full): Take a MonoImage instead of a MonoMemPool.
2272         Fix all related code to do the same.
2273
2274         * marshal.c (mono_marshal_load_type_info): Pass the image instead of the mempool.
2275
2276         * metadata-internals.h: Fix the signatures.
2277
2278 2009-02-12 Rodrigo Kumpera  <rkumpera@novell.com>
2279
2280         This patch is the second of a series to remove explicit reference of MonoImage::mempool
2281         and use mono_image_alloc set of functions instead. This time we rework mono_metadata_type_dup
2282         and similar to work using MonoImage.
2283
2284         * class.c (mono_mempool_dup): Rename to mono_image_memdup and take a MonoImage instead of a
2285         MonoMemPool.
2286
2287         * class.c (mono_dup_array_type): Take a MonoImage instead of a MonoMemPool as first argument.
2288
2289         * class.c (mono_metadata_signature_deep_dup): Same.
2290
2291         * class.c (inflate_generic_type): Same.
2292
2293         * class.c (mono_class_inflate_generic_type_with_mempool): Same.
2294
2295         * metadata.c (mono_metadata_signature_dup_full): Same.
2296
2297         * metadata.c: Add mono_metadata_signature_dup_mempool and extract common functionality from 
2298         mono_metadata_signature_dup_full.
2299
2300         * metadata.c (mono_metadata_type_dup): Same.
2301
2302         * marshal.c: Pass the image to calls to mono_metadata_type_dup.
2303
2304         * reflection.c: Same.
2305
2306         * generic-sharing.c: Pass the image to calls to mono_class_inflate_generic_type_with_mempool.
2307
2308         * metadata-internals.h: Fix the signatures.
2309
2310         * class-internals.h: Same.
2311
2312 2009-02-11 Rodrigo Kumpera  <rkumpera@novell.com>
2313
2314         This patch is the first of a series to remove explicit reference of MonoImage::mempool
2315         and use mono_image_alloc set of functions instead. 
2316
2317         * class.c (mono_class_inflate_generic_type_with_mempool_no_copy):
2318         Rename to mono_class_inflate_generic_type_no_copy and take a MonoImage instead
2319         of a MonoMemPool.
2320
2321         * class.c (mono_class_setup_fields): Adapt to mono_class_inflate_generic_type_no_copy.
2322
2323         * class.c (g_list_prepend_mempool): Removed.
2324
2325         * class.c (mono_class_get_nested_types): Use g_list_prepend_image instead of g_list_prepend_mempool.
2326
2327         * image.c: Add g_list_prepend_image.
2328
2329         * metadata-internals.h (struct MonoImage): Fix comment. Export g_list_prepend_image as internal.
2330
2331         * reflection.c (mono_reflection_create_runtime_class): Use g_list_prepend_image instead of g_list_prepend_mempool.
2332
2333
2334 2009-02-11 Rodrigo Kumpera  <rkumpera@novell.com>
2335
2336         * metadata-internals.h (struct MonoImage): Add lock field. Export mono_image_lock and
2337         mono_image_unlock.
2338
2339         * image.c (mono_image_init): Init the lock field.
2340  
2341         * image.c (mono_image_init): Cleanup the lock field.
2342
2343         * image.c: Add mono_image_(un)lock functions.
2344
2345 2009-02-11  Mark Probst  <mark.probst@gmail.com>
2346
2347         * class.c, class-internals.h: mono_method_get_context_general()
2348         combines the functionality of mono_method_get_context() and
2349         mini_method_get_context().
2350
2351         * generic-sharing.c, domain-internals.h:
2352         mono_method_construct_object_context() and
2353         mono_domain_lookup_shared_generic() moved from mini.
2354
2355         * icall.c (ves_icall_InternalInvoke): Handle the case where the
2356         method doesn't have the correct instantiation because it's shared
2357         generic code.  Fixes #473999.
2358
2359 2009-02-11  Zoltan Varga  <vargaz@gmail.com>
2360
2361         * loader.c (mono_method_get_wrapper_data): Handle inflated methods as well.
2362
2363         * loader.c (mono_loader_lock): Add a comment pointing to the locking document.
2364         
2365 2009-02-11 Rodrigo Kumpera  <rkumpera@novell.com>
2366
2367         * metadata.c: Make mono_image_alloc_lock and mono_image_alloc0_lock non static.
2368
2369         * metadata-internals.h: Export mono_image_alloc_lock and mono_image_alloc0_lock.
2370
2371         * loader.c (mono_get_method_full): Drop the loader lock while constructing the method
2372         and recheck the cache for dups after it.
2373
2374         * loader.c (mono_get_method_from_token): Use _lock version of mono_image_alloc0.
2375
2376         Fixes one of the deadlocks found in #473150.
2377
2378 2009-02-11  Bill Holmes  <billholmes54@gmail.com>
2379
2380         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Accept_internal):
2381           For Win32, add additional break conditions for accept.
2382
2383         Code is contributed under MIT/X11 license.
2384
2385 2009-02-10  Zoltan Varga  <vargaz@gmail.com>
2386
2387         * marshal.c (mono_marshal_get_native_func_wrapper): Use get_cache to
2388         lazily initialize the native wrapper cache.
2389         (mono_marshal_get_native_wrapper): Put aot-ed native wrappers into a separate
2390         cache, since they are different from the normal wrappers.
2391
2392         * image.c (mono_image_init): Initialize native_wrapper_cache lazily as well.
2393
2394         * metadata-internals.h (struct _MonoImage): Add a new wrapper for
2395         AOT compiled native wrappers.
2396
2397 2009-02-09  Geoff Norton  <gnorton@novell.com>
2398
2399         * appdomain.h:
2400         * security-core-clr.c: Allow enabling core-clr from the embedding
2401         API.
2402
2403 2009-02-07 Gonzalo Paniagua Javier <gonzalo@novell.com>
2404
2405         * socket-io.c: when requesting all the local ips, if there are no
2406         interfaces up and running, MS returns 127.0.0.1.
2407
2408 2009-02-07 Gonzalo Paniagua Javier <gonzalo@novell.com>
2409
2410         * mono-perfcounters-def.h: processor time is an inverse time.
2411         Fixes bug #468625.
2412
2413 2009-02-07 Gonzalo Paniagua Javier <gonzalo@novell.com>
2414
2415         * socket-io.c: an empty host name returns the list of local IPs.
2416         Fixes bug #386637 part 1/2.
2417
2418 2009-02-07  Zoltan Varga  <vargaz@gmail.com>
2419
2420         * verify.c (mono_class_interface_implements_interface): Call
2421         mono_class_setup_interfaces ().
2422         (merge_stacks): Ditto.
2423
2424 2009-02-06  Zoltan Varga  <vargaz@gmail.com>
2425
2426         * class.c (mono_class_setup_interfaces): New function to lazily initalize
2427         klass->interfaces.
2428         (mono_generic_class_get_class): Don't initalize klass->interfaces.
2429         (mono_generic_class_get_class): Ditto.
2430
2431 2009-02-06  U-QUACK\miguel  <miguel@quack>
2432
2433         * icall-defs.h: Include also the Encrypt/Decrypt string methods as
2434         they live in security.c
2435
2436         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Integrated
2437         another bit from Paolo's code.
2438
2439 2009-02-06  Zoltan Varga  <vargaz@gmail.com>
2440
2441         * object.c (build_imt_slots): Add a small optimization to avoid inflating
2442         methods which will be discarded by add_imt_builder_entry ().
2443
2444         * marshal.c (get_runtime_invoke_type): Avoid sharing enum types since they
2445         need to be boxed.
2446
2447         * loader.c: Add a statistics for the size of the memberref signature cache.
2448         
2449         * loader.c (find_cached_memberref_sig): New helper function.
2450         (cache_memberref_sig): Ditto.
2451
2452         * loader.c: Cache the result of parsing memberref signatures, since otherwise
2453         they will be parsed again for every generic instantiation, leading to unbounded
2454         memory growth.
2455
2456 2009-02-05  Zoltan Varga  <vargaz@gmail.com>
2457
2458         * loader.c (mono_get_method_from_token): Avoid creating class for the generic
2459         parameters of generic methods.
2460
2461         * class.c (mono_class_inflate_generic_method_full): Set is_mb_open again
2462         after the original method is copied to the inflated method.
2463         (mono_class_get_vtable_entry): Handle rgctx invoke wrappers more efficiently.
2464
2465         * class-internals.h (struct _MonoMethodInflated): Move the is_mb_open
2466         field to MonoMethod since it only consumes 1 bit there, and 4/8 bytes here.
2467
2468         * class.c metadata.c: Update after the changes above.
2469
2470 2009-02-05 Rodrigo Kumpera  <rkumpera@novell.com>
2471
2472         * metadata-verify.c: Simplified error handling and added
2473         section table validation.
2474
2475 2009-02-05  Zoltan Varga  <vargaz@gmail.com>
2476
2477         * class-internals.h (MonoClassExt): New structure containing rarely used
2478         fields of MonoClass.
2479         (struct _MonoClass): Move rarely used fields to MonoClassExt, accessed
2480         through a new 'ext' field.
2481
2482         * class.c (mono_class_alloc_ext): New helper function to allocate 
2483         class->ext.
2484
2485         * class.c metadata.c reflection.c: Update after MonoClass structure changes.
2486
2487 2009-02-05  Mark Probst  <mark.probst@gmail.com>
2488
2489         * object.c (mono_object_get_virtual_method): Properly inflate
2490         generic methods.  Fixes #472692.
2491
2492 2009-02-05 Rodrigo Kumpera  <rkumpera@novell.com>
2493
2494         * class.c (mono_class_create_from_typedef): The CLR supports SystemF
2495         recursive types such as List<T>:Cons<T,List<T>> so when doing the lookup
2496         for the parent type, the created type must be ready to be used on a generic
2497         instantiation.
2498         We fill this_arg/byval_arg if the parent is a generic instance to make sure
2499         we won't have duplicated entries in generic_inst_cache.
2500
2501         Fixes #469553.
2502
2503 2009-02-05  Miguel De Icaza  <miguel@novell.com>
2504
2505         * threadpool.c (socket_io_add_poll): Remove the BSD6 define and
2506         replace with plain BSD per the comments on the bug MONO77637.
2507
2508 2009-02-05  Zoltan Varga  <vargaz@gmail.com>
2509
2510         * class.c (mono_class_get_generic_class): New accessor function.
2511         (mono_class_get_generic_container): Ditto.
2512
2513         * class-internals.h (struct _MonoClass): Add 'is_generic' and 'is_inflated'
2514         fields, similar to the ones in MonoMethod.
2515
2516         * class.c (mono_generic_class_get_class): Set klass->is_inflated.
2517         (mono_class_create_from_typedef): Set klass->is_generic if needed.
2518
2519         * reflection.c (mono_reflection_create_generic_class): Set klass->is_generic.
2520         
2521         * class-internals.h (struct _MonoClass): Remove enum_basetype, it contains
2522         the same information as element_class->byval_arg.
2523
2524         * class.c reflection.c: Remove references to class->byval_arg.
2525
2526         * class.c marshal.c: Use mono_class_enum_basetype () instead of accessing 
2527         klass->enum_basetype directly.
2528
2529         * verify.c metadata.c object.c icall.c reflection.c: Use 
2530         mono_class_enum_basetype () instead of accessing klass->enum_basetype 
2531         directly.
2532
2533 2009-02-04  Miguel de Icaza  <miguel@novell.com>
2534
2535         * icall-def.h: Remove internal calls for sockets when
2536         DISABLE_SOCKET is defined, file system writing features when the
2537         OS only support reading and not writing data and Policy support if
2538         the Policy is disabled.
2539         
2540         * image.c (do_mono_image_open): Apply Paolo's patches for using
2541         mono_file_map_ APIs here.
2542
2543         * assembly.c: Add support for platforms to avoid prefix
2544         auto-detection. 
2545
2546 2009-02-04  Zoltan Varga  <vargaz@gmail.com>
2547
2548         * generic-sharing.c (mono_method_fill_runtime_generic_context): Fix a
2549         warning.
2550
2551         * class.c (mono_class_inflate_generic_class): New helper function.
2552
2553         * class.c: Use mono_class_inflate_generic_class in a few places. Add
2554         statistics for inflated methods/classes.
2555
2556         * loader.c (inflate_generic_header): Use mono_class_inflate_generic_class.
2557
2558         * icall.c (ves_icall_Type_GetMethodsByName): Optimize the case when
2559         the call is made from Delegate.CreateDelegate () for the invoke method of
2560         a delegate.
2561
2562         * loader.c: Add a statistics for the memory occupied by inflated signatures.
2563
2564         * metadata.c (mono_metadata_signature_size): New helper function.
2565
2566         * class.c (mono_class_get_method_from_name_flags): Add an optimization for
2567         generic instances.
2568
2569         * metadata.c (inflated_method_in_image): Avoid calling 
2570         mono_method_signature () if the method does not already have a signature.
2571
2572 2009-02-03 Rodrigo Kumpera  <rkumpera@novell.com>
2573
2574         * verify.c (is_compatible_boxed_valuetype): When checking if the boxed 
2575         valuetype is compatible with target type, check by inheritance as a
2576         VT is not really compatible with System.ValueType, for example.
2577
2578         * verify.c (do_invoke_method): Improve error message.
2579
2580         * verify.c (do_box_value): If boxing a nullable, use the type argument
2581         on stack instead.
2582
2583         * verify.c (do_newobj): Improve error message.  
2584
2585         Fixes #469549.
2586
2587 2009-02-03  Miguel de Icaza  <miguel@novell.com>
2588
2589         * appdomain.c: Add support for DISABLE_SOCKETS and DISABLE_SHADOW_COPY
2590
2591 2009-02-03  Mark Probst  <mark.probst@gmail.com>
2592
2593         * generic-sharing.c: Don't hold domain lock when calling
2594         instantiate_other_info().  Fixes #471958.
2595
2596         * domain-internals.h, loader.c: Describe locking policy of domain
2597         lock vs loader lock.
2598
2599 2009-02-03 Rodrigo Kumpera  <rkumpera@novell.com>
2600
2601         * verify.c (mono_delegate_signature_equal): Make it possible to check
2602         first-arg-bound delegates to static method.
2603
2604         * verify.c (verify_delegate_compatibility): Correctly verify delegates to
2605         static methods with the first arg bound.
2606
2607         Fixes #469529.
2608
2609 2009-02-03 Rodrigo Kumpera  <rkumpera@novell.com>
2610
2611         * verify.c: Added stack_slot_full_name to provide decent and more meanfull
2612         errors.
2613
2614         * verify.c (is_compatible_boxed_valuetype): Be less restrictive when not
2615         under strict mode. Any type, when boxed can be seen as a reference type.
2616
2617         Fixes #469528.
2618
2619 2009-02-03 Rodrigo Kumpera  <rkumpera@novell.com>
2620
2621         * object.h: The lower bound of an array is a signed integer value.
2622         Introduce mono_array_lower_bound_t typedef. It should be used instead of
2623         gint32 as under MONO_BIG_ARRAYS it will be a gint64.
2624
2625         * icall.c: Cast MonoArrayBounds::length to a signed value so correctly
2626         calculate the upper bound.
2627         
2628         Fixes #471252.
2629
2630 2009-02-02  Miguel de Icaza  <miguel@novell.com>
2631
2632         From Paolo's work, refactored, cleared up:
2633         
2634         * threadpool.c, icall.c: ifdef code that requires a working socket
2635         stack.
2636
2637         * metadata.c (mono_metadata_field_info): Do not attempt to return
2638         a value from a function declared as void.
2639
2640         * console-io.c: Use MONO_NULL_TTYDRIVER to remove the tty driver
2641         from the console stack.
2642
2643         * assembly.c: use strrchr instead of rindex.
2644
2645         * class.c, object.c, marshal.c, icall.c, reflection.c: include
2646         alloca.h on systems that have it.
2647
2648         * environment.c: Avoid code that uses stuff from
2649         HAVE_SYS_UTSNAME_H
2650         
2651         * appdomain.c: Include sys/time.h.
2652
2653         * console-io.c: include sys/ioctl.h if it is available.
2654
2655 2009-02-03  Zoltan Varga  <vargaz@gmail.com>
2656
2657         * method-builder.h (_MonoMethodBuilder): Add a 'skip_visibility' flag.
2658
2659         * method-builder.c (mono_mb_create_method): Set method->skip_visibility from
2660         the method builder.
2661
2662         * marshal.c: Set mb->skip_visibility instead of setting it on the method
2663         after it was created and cached, as the later is not thread safe.
2664         
2665 2009-02-02  Zoltan Varga  <vargaz@gmail.com>
2666
2667         * mono-debug.c (mono_debug_print_stack_frame): Avoid crashes when this is
2668         called while the debugging module is not initialized. Fixes #471669.
2669
2670 2009-02-02 Rodrigo Kumpera  <rkumpera@novell.com>
2671
2672         * icall.c (type_from_name): Ignore reflection frames to find out the real caller.
2673
2674         Fixes #471255.
2675
2676 2009-02-02  Mark Probst  <mark.probst@gmail.com>
2677
2678         * generic-sharing.c (lookup_or_register_other_info): Make sure the
2679         loader lock is not taken while the templates lock is held.  Fixes
2680         #471089.
2681
2682 2009-02-02  Mark Probst  <mark.probst@gmail.com>
2683
2684         * metadata.c (type_in_image): Added a check to fix a monodis
2685         crash.
2686
2687 2009-02-02  Zoltan Varga  <vargaz@gmail.com>
2688
2689         * marshal.c (mono_marshal_get_runtime_invoke): Add support for byref
2690         nullable arguments.
2691
2692         * object.c (mono_runtime_invoke_array): Ditto.
2693         
2694         * marshal.c (mono_marshal_free_dynamic_wrappers): New function for
2695         freeing wrappers of dynamic methods.
2696
2697         * loader.c (mono_free_method): Call it. Fixes #463323.
2698         
2699         * marshal.c (mono_marshal_get_runtime_invoke): Disable sharing for
2700         methods taking vtype/byref arguments, to fix yet another bug caused by
2701         the sharing of runtime invoke wrappers. Partly fixes #471259.
2702
2703 2009-02-01  Zoltan Varga  <vargaz@gmail.com>
2704
2705         * debug-mono-symfile.c (check_line): Return NULL instead of returning
2706         <first file in file table>:1 when the IL offset does not have an associated
2707         line number.
2708
2709 2009-01-31  Zoltan Varga  <vargaz@gmail.com>
2710
2711         * mono-debug.c (mono_debug_lookup_locals): New function to return local
2712         variable info for a method.
2713
2714         * debug-mono-symfile.c (mono_debug_symfile_lookup_locals): Ditto.
2715         
2716 2009-01-30  Jb Evain  <jbevain@novell.com>
2717
2718         * pedump.c: reuse code from monodis to make sure pedump honors
2719         MONO_PATH, which is needed to verify net_2_1 assemblies.
2720
2721 2009-01-29  Zoltan Varga  <vargaz@gmail.com>
2722
2723         * mono-debug.c (mono_debug_print_stack_frame): Print the IL offset even when
2724         there is no line number info.
2725
2726 2009-01-29  Raja R Harinath  <harinath@hurrynot.org>
2727
2728         Avoid some MonoType allocations
2729         * reflection.c (mono_reflection_initialize_generic_parameter):
2730         Reuse MonoType from param->pklass rather than allocating one.
2731         (mono_dynamic_image_free): Update to changes.
2732
2733 2009-01-28  Raja R Harinath  <harinath@hurrynot.org>
2734
2735         Rearrange some code to improve consistency
2736         * reflection.c (mono_reflection_setup_generic_class): Move body ...
2737         (mono_reflection_initialize_generic_parameter): ... here.
2738
2739 2009-01-28  Zoltan Varga  <vargaz@gmail.com>
2740
2741         * generic-sharing.c (has_constraints): Enable gshared for methods/classes
2742         with type constraints as an experiment.
2743
2744         * boehm-gc.c (on_gc_notification): Update mono_stats.
2745
2746 2009-01-28  Raja R Harinath  <harinath@hurrynot.org>
2747
2748         Avoid some allocations
2749         * class-internals.h (_MonoGenericInst::type_argv): Convert from
2750         pointer to tail array to avoid extra allocation.
2751         * metadata.c (free_generic_inst): Update to changes.
2752         (mono_metadata_get_generic_inst): Likewise.  Use alloca instead of
2753         on-stack struct.
2754
2755 2009-01-27  Zoltan Varga  <vargaz@gmail.com>
2756
2757         * icall.c (ves_icall_System_Type_EqualsInternal): For user-defined types,
2758         return TRUE if the two type objects are the same.
2759
2760 2009-01-26  Zoltan Varga  <vargaz@gmail.com>
2761
2762         * marshal.c (mono_marshal_load_type_info): Fill out info->min_align.
2763         (mono_class_native_size): Use klass->marshal_info->min_align instead of
2764         klass->min_align, since klass->min_align contains the managed alignment,
2765         while the native alignment can be different, like for longs on x86.
2766         Fixes #469135.
2767
2768         * class-internals.h (MonoMarshalType): Add a min_align field.
2769
2770 2009-01-26 Rodrigo Kumpera  <rkumpera@novell.com>
2771
2772         * assembly.c (mono_assembly_try_decode_skip_verification): Add a hack to check
2773         the 1.0 format.
2774
2775 2009-01-26  Zoltan Varga  <vargaz@gmail.com>
2776
2777         * domain-internals.h (struct _MonoJitInfo): Add a 'from_aot' field plus
2778         some comments about the usage of the used_regs field.
2779
2780         * marshal.c (emit_marshal_ptr): Allow pointers to blittable structures.
2781         Fixes #469217.
2782
2783 2009-01-24 Gonzalo Paniagua Javier <gonzalo@novell.com>
2784
2785         * appdomain.c: return NULL instead of throwing FileNotFoundException
2786         when LoadAssembly() fails.
2787
2788 2009-01-23  Mark Probst  <mark.probst@gmail.com>
2789
2790         * metadata.c (mono_metadata_generic_param_equal): Only compare the
2791         image if the owner is NULL.  Fixes the AOT failures.
2792
2793 2009-01-23  Zoltan Varga  <vargaz@gmail.com>
2794
2795         * metadata.c (mono_metadata_load_generic_params): Initialize the 
2796         MonoGenericParam structure using memset so the image field is initialized
2797         as well.
2798
2799 2009-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
2800
2801         * appdomain.c (mono_domain_unload): Change the InterlockedIncrement to
2802         a plain store.
2803
2804 2009-01-21  Zoltan Varga  <vargaz@gmail.com>
2805
2806         * class.c (mono_class_setup_vtable_general): In the generic instance
2807         optimization, set method->slot for abstract virtual methods. Fixes part of
2808         #467834.
2809
2810 2009-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
2811
2812         * domain-internals.h: Add new appdomain state MONO_APPDOMAIN_UNLOADING_START
2813         which signals that the unloading has started but all appdomain services must
2814         remain operational.
2815
2816         * appdomain.c (mono_domain_unload): The initial state for unloading now
2817         is unloading_start and we switch to unloading after the managed call to
2818         AppDomain::DomainUnload has finished.
2819
2820         The new unloading state has to be created because managed code in the
2821         DomainUnload event can depend on things like the threadpool still working.
2822         The domain must remain fully functional while the event executes.
2823
2824         This shown as an issue due to Process::WaitForExit, which waits for
2825         async reads of stdout and stderr to complete. Since those are processed
2826         in the threadpool the code deadlocks because the DomainUnload callback 
2827         waits for the async read finished event, which should have been set by a
2828         threadpool job but has been discarded due to the domain been in unload
2829         state.
2830
2831 2009-01-21  Mark Probst  <mark.probst@gmail.com>
2832
2833         * metadata.c (mono_metadata_generic_param_equal): Owner as well as
2834         image must match.
2835
2836 2009-01-21  Mark Probst  <mark.probst@gmail.com>
2837
2838         * reflection.c (resolve_object): For fields, inflate the class and
2839         then get the field in the inflated class.
2840
2841 2009-01-20  Mark Probst  <mark.probst@gmail.com>
2842
2843         * object-internals.h (struct _MonoException): Added a comment
2844         explaining the new use of trace_ips.
2845
2846 2009-01-20  Mark Probst  <mark.probst@gmail.com>
2847
2848         * generic-sharing.c (inflate_other_data): Inflate array methods
2849         correctly.
2850
2851         * loader.c, class-internals.h: Rename search_in_array_class() to
2852         mono_method_search_in_array_class() and make it non-static.
2853
2854 2009-01-19  Zoltan Varga  <vargaz@gmail.com>
2855
2856         * metadata.c (inflated_signature_in_image): Call signature_in_image as well.
2857         Hopefully fixes #458168.
2858
2859 2009-01-19  Christian Hergert  <christian.hergert@gmail.com>
2860
2861         * object.c (mono_raise_exception): Remove call to InterlockedIncrement
2862         as it is performed elsewhere.
2863
2864         Code is contributed under MIT/X11 license
2865
2866 2009-01-19  Christian Hergert  <christian.hergert@gmail.com>
2867
2868         * mono-perfcounters-def.h: Add counters for asp.net requests total and
2869         requests queued.
2870         * object.c (mono_raise_exception): Increment the exceptions total
2871         counter when an exception is thrown.
2872         * class-internals.h: Add a location for storing the total number of
2873         asp.net requests served.
2874         * mono-perfcounters.c: Implement update support for asp.net counters
2875         from the class libraries. Implement read support for asp.net counters
2876         and exceptions total counter.
2877
2878 2009-01-19  Zoltan Varga  <vargaz@gmail.com>
2879
2880         * loader.c (search_in_array_class): Call mono_class_setup_methods () before
2881         accessing klass->methods. Fixes #467385.
2882
2883 2009-01-18  Zoltan Varga  <vargaz@gmail.com>
2884
2885         * marshal.c (emit_marshal_custom): Avoid calling MarshalNativeToManaged
2886         for byval arguments without an [Out] attribute. Fixes #467212.
2887
2888         * attach.c: Applied patch from Koushik Dutta (koush@koushikdutta.com). 
2889         Fix compilation under android.
2890         
2891         * sgen-gc.c: Instead of scanning gray objects after all roots have been 
2892         processed, scan them directly after they are copied, to achieve better locality
2893         and cache usage.
2894
2895         * socket-io.c: Applied patch from Koushik Dutta
2896         (koush@koushikdutta.com). Disable IPV6 when running under android.
2897
2898 2009-01-18  Zoltan Varga  <vargaz@gmail.com>
2899
2900         * icall.c (ves_icall_InternalExecute): Add write barriers.
2901
2902         * marshal.c (mono_marshal_get_write_barrier): Remove, this is now done in
2903         the GC code.
2904
2905         * sgen-gc.c: Implement write barriers in IL code.
2906
2907 2009-01-17  Geoff Norton  <gnorton@novell.com>
2908
2909         * image.c: Avoid trying to walk the reference table of dynamic assemblies.
2910
2911 2009-01-17  Geoff Norton  <gnorton@novell.com>
2912
2913         * image.c: When unloading the image->references table, there can be gaps
2914         in it.  Ensure that we iterate every entry to avoid leaking assembly references
2915         when unloading an appdomain.
2916
2917 2009-01-16  Zoltan Varga  <vargaz@gmail.com>
2918
2919         * sgen-gc.c: Add support for allocating a nursery at an aligned address, to
2920         speed up ptr-in-nursery checks.
2921
2922         * threads.c (mono_threads_abort_appdomain_threads): Abort threads outside the
2923         threads_lock () to prevent deadlocks.
2924
2925         * sgen-gc.c gc-internal.h: Add a new root type root-with-wbarrier, which
2926         does not need to be scanned during minor collections, since writes to it
2927         must use write barriers.
2928
2929 2009-01-15 Rodrigo Kumpera  <rkumpera@novell.com>
2930
2931         * metadata-verify.c: Add pe nt header verification.
2932         
2933 2009-01-15  Zoltan Varga  <vargaz@gmail.com>
2934
2935         * gc.c: Fix a few warnings when using SGEN.
2936
2937 2009-01-14 Rodrigo Kumpera  <rkumpera@novell.com>
2938
2939         * metadata-verify.c: Add pe optional header verification.
2940
2941 2009-01-15  Zoltan Varga  <vargaz@gmail.com>
2942
2943         * sgen-gc.c: Add support for user defined marker functions, used by
2944         MonoGHashTable to avoid registering a GC root for every hash node.
2945
2946 2009-01-14  Zoltan Varga  <vargaz@gmail.com>
2947
2948         * sgen-gc.c: Fix warnings. Optimize copy_object () a bit. Split pinned/
2949         non-pinned roots into separate hashes to avoid having to traverse them
2950         in functions which are only interested in one kind.
2951
2952 2009-01-13 Rodrigo Kumpera  <rkumpera@novell.com>
2953
2954         * metadata-verify.c: Add pe header machine field verification.
2955         
2956 2009-01-13 Rodrigo Kumpera  <rkumpera@novell.com>
2957
2958         * metadata-verify.c: Add pe header size verification.
2959
2960 2009-01-14  Zoltan Varga  <vargaz@gmail.com>
2961
2962         * reflection.c (ALLOC_REFENTRY): Don't allocate the ReflectionEntry structures
2963         using the GC, they don't contain references.
2964
2965         * domain.c (mono_domain_create): Create ldstr_table using MONO_HASH_KEY_VALUE_GC.
2966
2967 2009-01-13  Geoff Norton  <gnorton@novell.com>
2968
2969         * appdomain.c|h: Expose mono_domain_unload to the embedding api so that 
2970         AppDomains created on the native side can be cleaned up on the native side.
2971
2972 2009-01-13  Geoff Norton  <gnorton@novell.com>
2973
2974         * appdomain.c: Ensure that we call mono_context_init for the embedding api
2975         as well as the managed api.
2976
2977 2009-01-13  Geoff Norton  <gnorton@novell.com>
2978
2979         * appdomain.h|c: New API for creating a MonoDomain in the embedding api
2980         with a MonoAppDomain initialized against it.
2981
2982 2009-01-13  Zoltan Varga  <vargaz@gmail.com>
2983
2984         * reflection.c (MOVING_GC_REGISTER): Fix a warning.
2985         
2986         * reflection.c (mono_image_get_generic_param_info): Use MOVING_GC_REGISTER.
2987
2988         * marshal.c: Avoid setting the exception clauses after a method has been entered 
2989         into the wrapper caches. Fixes #465700.
2990
2991         * method-builder.c (mono_mb_set_clauses): New function to set the clauses of the
2992         method builder.
2993         (mono_mb_create_method): Set the clauses from the method builder.
2994
2995 2009-01-13 Gonzalo Paniagua Javier <gonzalo@novell.com>
2996
2997         * threadpool.c: include sys/socket.h. Fixes compilation on FreeBSD.
2998         Patch from Makoto Kishimoto.
2999
3000 2009-01-13  Zoltan Varga  <vargaz@gmail.com>
3001
3002         * sgen-gc.c (mono_gc_make_descr_from_bitmap): Handle large bitmaps by 
3003         encoding them as ROOT_DESC_COMPLEX.
3004         (precisely_scan_objects_from): Implement support for ROOT_DESC_COMPLEX.
3005
3006 2009-01-12  Zoltan Varga  <vargaz@gmail.com>
3007
3008         * sgen-gc.c (scan_from_remsets): Clear the global remset of pointers which
3009         no longer point to the nursery.
3010
3011         * sgen-gc.c: Add a few comments/FIXMEs.
3012         
3013         * sgen-gc.c: Implement scanning of the alloc_pinned objects.
3014
3015         * marshal.c (mono_marshal_get_synchronized_wrapper): Make the 
3016         initialization of the various _method variables thread safe. Fixes
3017         #465377.
3018
3019 2009-01-12  Mark Probst  <mark.probst@gmail.com>
3020
3021         * domain.c, domain-internals.h: Remove the shared_generics_hash
3022         and its lookup functions.
3023
3024 2009-01-12  Bill Holmes  <billholmes54@gmail.com>
3025
3026         * socket-io.c:  Fixing the MSVC build. 
3027
3028         Code is contributed under MIT/X11 license.
3029
3030 2009-01-12 Rodrigo Kumpera  <rkumpera@novell.com>
3031
3032         * metadata-verify.c: Add pe header watermark verification.
3033
3034 2009-01-09 Rodrigo Kumpera  <rkumpera@novell.com>
3035
3036         * metadata-verify.c: Add lfanew verification.
3037
3038 2009-01-12  Jb Evain  <jbevain@novell.com>
3039
3040         * tabldefs.h: rename METHOD_ATTRIBUTE_CHECK_ACCESS_ON_OVERRIDE to
3041         METHOD_ATTRIBUTE_STRICT to match the ECMA terminology.
3042
3043 2009-01-10  Zoltan Varga  <vargaz@gmail.com>
3044
3045         * socket-io.c: Fix the build.
3046
3047         * environment.c: Fix an #ifdef.
3048
3049 2009-01-09  Zoltan Varga  <vargaz@gmail.com>
3050
3051         * threadpool.c (async_invoke_thread): Handle the wait function returning
3052         WAIT_IO_COMPLETION as well.
3053         (async_invoke_io_thread): Ditto.
3054
3055 2009-01-09  Bill Holmes  <billholmes54@gmail.com>
3056
3057         * threads.c: Fixing the Windows build.
3058
3059         Code is contributed under MIT/X11 license.
3060
3061 2009-01-09  Zoltan Varga  <vargaz@gmail.com>
3062  
3063         * threads.c (signal_thread_state_change): Call wapi_interrupt_thread () to
3064         interrupt a wait.
3065         (mono_thread_execute_interruption): Call wapi_clear_interruption () to enable
3066         the thread to wait again.
3067
3068 2009-01-09 Rodrigo Kumpera  <rkumpera@novell.com>
3069
3070         * metadata-verify.c: Initial skeleton of the metadata verifier.
3071
3072         * pedump.c: Add support for the metadata verifier.
3073
3074         * verify-internal.h: Export the whole assembly metadata verifier function.
3075
3076 2009-01-09 Rodrigo Kumpera  <rkumpera@novell.com>
3077
3078         * gc.c (mono_gc_init): Fix the comments about deadlock on windows.
3079
3080 2009-01-09  Zoltan Varga  <vargaz@gmail.com>
3081
3082         * Makefile.am: Upgrade dtrace-prelink.sh location.
3083
3084 2009-01-08 Rodrigo Kumpera  <rkumpera@novell.com>
3085
3086         * gc.c (mono_gc_init): Wait for finalizer thread to init on windows as
3087         well. Otherwise the shutdown deadlock that happens on unix will can happen
3088         as well.
3089         If the main thread code finishes too fast it's possible that the finalizer
3090         thread won't have executed yet, won't record itself as the finalizer thread
3091         and the shutdown sequence will wait on it forever.
3092
3093 2009-01-08 Rodrigo Kumpera  <rkumpera@novell.com>
3094
3095         * threads.c (mono_thread_current): Make THREAD_DEBUG work on windows
3096         with MSVC.
3097
3098 2009-01-08  Miguel de Icaza  <miguel@novell.com>
3099
3100         * appdomain.c: Initialize the mono_strtod_mutex here, thanks to
3101         Robert Jordan for pointing this out.
3102
3103 2009-01-08  Christian Prochnow  <cproch@seculogix.de>
3104
3105         * icall.c
3106         * icall-def.h: added internal calls ves_icall_System_IO_DriveInfo_GetDiskFreeSpace,
3107         ves_icall_System_IO_DriveInfo_GetDriveType.
3108
3109 2009-01-07  Miguel de Icaza  <miguel@novell.com>
3110
3111         * icall.c: Wrap calls to mono_strtod in CriticalSection
3112         invocations when using eglib, to work around #464316.
3113
3114 2009-01-07 Rodrigo Kumpera  <rkumpera@novell.com>
3115
3116         * file-io.c (ves_icall_System_IO_MonoIO_GetCurrentDirectory): Double check the
3117         return value of GetCurrentDirectory to never access unitialized memory.
3118
3119 2009-01-07 Rodrigo Kumpera  <rkumpera@novell.com>
3120
3121         * file-io.c (ves_icall_System_IO_MonoIO_GetCurrentDirectory): Properly check the
3122         return value of GetCurrentDirectory and expand the buffer if needed.
3123
3124         Fixes #459094.
3125
3126 2009-10-07 Tom Hindle  <tom_hindle@sil.org>
3127
3128         * marshal.c (GetIUnknownForObjectInternal, GetIUnknownForObjectInternal) : 
3129           Adding a call to mono_init_com_types.
3130
3131         Code is contributed under MIT/X11 license.
3132
3133 2009-01-07  Geoff Norton  <gnorton@novell.com>
3134
3135         * socket-io.c: ioctlsocket(FIONREAD) returns the size of the UDP header as well on 
3136         darwin.  Use getsockopt SO_NREAD instead to get the right values for TCP and UDP.
3137         ai_canonname can be null in some cases on darwin, where the runtime assumes it will 
3138         be the value of the ip buffer.
3139
3140 2009-01-06 Rodrigo Kumpera  <rkumpera@novell.com>
3141
3142         * verify.c (mono_class_interface_implements_interface): Verify parents as we can't rely on
3143         interfaces_packed here.
3144
3145         Fixes part of #463294.
3146
3147 2009-01-06 Rodrigo Kumpera  <rkumpera@novell.com>
3148
3149         * verify.c (is_array_type_compatible): Ignore bounds and sizes when checking array compatibility.
3150
3151         Fixes part of #463294.
3152
3153 2009-01-06 Rodrigo Kumpera  <rkumpera@novell.com>
3154
3155         * verify.c (stack_slot_is_complex_type_not_reference_type): Check if the type
3156         is a boxed complex as well.
3157
3158         Fixes part of #463294.
3159
3160 2009-01-06 Rodrigo Kumpera  <rkumpera@novell.com>
3161
3162         * reflection.c (mono_image_get_methodref_token): Add an extra create_typespec parameter to
3163         control if a methodspec should be created for the generic method definition from external assemblies.
3164         Caching of methodspec is done using the handleref hash table.
3165
3166         Fixes #462592.
3167
3168 2009-01-05 Rodrigo Kumpera  <rkumpera@novell.com>
3169
3170         * loader.c (find_method): When searching the interfaces of a class
3171         check the transitive closure of implemented interfaces.
3172
3173         Fixes #463303.
3174
3175 2009-01-03 Rodrigo Kumpera  <rkumpera@novell.com>
3176
3177         * class.c (get_implicit_generic_array_interfaces): Improve debugging code.
3178         
3179 2009-01-03 Rodrigo Kumpera  <rkumpera@novell.com>
3180
3181         * class.c (get_implicit_generic_array_interfaces): Extract valuetype
3182         interfaces calculation to fill_valuetype_array_derived_types.
3183
3184         * class.c (get_implicit_generic_array_interfaces): Valuetypes need IList /
3185         ICollection / IEnumerator interfaces for their extra twin type - sbyte for byte
3186         for example.
3187
3188         * class.c (get_implicit_generic_array_interfaces): InternalEnumerator gets
3189         interfaces for valuetypes if needed.    
3190
3191         * class.c (fill_valuetype_array_derived_types): Enums should have interfaces
3192         for their basetype as well. Types are array expanded if rank is > 0.
3193
3194         Fixes #400716.
3195
3196 2008-12-30  Bill Holmes  <billholmes54@gmail.com>
3197
3198         * socket-io.h : Changing the signature of
3199           ves_icall_System_Net_Sockets_Socket_Accept_internal to pass
3200           the blocking state.
3201
3202         * icall-def.h :  Changing the signature of
3203           System.Net.Sockets.Socket.Accept_internal to pass the blocking state.
3204
3205         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Accept_internal) :
3206           For Windows only.  Avoid blocking when calling accept by
3207           querying for a connection via select.  The loop also queries
3208           the thread state every 1000 micro seconds for the thread
3209           stop state.  This will avoid the process hanging on shutdown
3210           when using a TcpChannel that is never connected to.
3211
3212         Code is contributed under MIT/X11 license.
3213
3214 2008-12-30  Marek Safar  <marek.safar@gmail.com>
3215
3216         * tabledefs.h: Add METHOD_ATTRIBUTE_CHECK_ACCESS_ON_OVERRIDE.
3217
3218 2008-12-26 Rodrigo Kumpera  <rkumpera@novell.com>
3219
3220         * class.c (get_implicit_generic_array_interfaces): Extract common
3221         code to a helper function making it a lot easier on the eyes.
3222
3223 2008-12-26 Rodrigo Kumpera  <rkumpera@novell.com>
3224
3225         * class.c (get_implicit_generic_array_interfaces): If the internal
3226         enumerator is an interface inflate System.Object instead of itself.
3227
3228         Fixes #461261.
3229
3230 2008-12-24 Rodrigo Kumpera  <rkumpera@novell.com>
3231
3232         * object.c (mono_runtime_invoke_array): Don't assert with
3233         byref nullable types.
3234
3235         * marshal.c (mono_marshal_get_runtime_invoke): To handle
3236         byref nullables we unbox the object and store it on the
3237         stack. 
3238         We can't use the boxed object since it is the T of Nullable<T>
3239         and the boxed representation of a nullable it's underlying type
3240         or null.
3241         We could cheat and create a boxed nullable and use the same
3242         machinery of other byref VTs but this feels like a hack and
3243         using the stack has the bonus of reducing heap pressure.
3244
3245         Fixes #461941.
3246
3247 2008-12-23 Rodrigo Kumpera  <rkumpera@novell.com>
3248
3249         * marshal.c (mono_marshal_emit_managed_wrapper): Handle char
3250         return value.
3251
3252         Fixes #461867.
3253
3254 2008-12-19  Bill Holmes  <billholmes54@gmail.com>
3255
3256         * icall-def.h : Adding an internal call definition for 
3257           System.Environment.internalBroadcastSettingChange.
3258
3259         * icall.c : Adding a Windows only implementation to broadcast a 
3260           WM_SETTINGCHANGE when an environment variable has changed.
3261
3262         Code is contributed under MIT/X11 license.
3263
3264 2008-12-19  Mark Probst  <mark.probst@gmail.com>
3265
3266         * class.c, class-internals.h: Made
3267         mono_class_has_parent_and_ignore_generics() non-static.
3268
3269 Thu Dec 18 16:35:22 CET 2008 Paolo Molaro <lupus@ximian.com>
3270
3271         * image.c: deal with the mmap failing when loading an image.
3272
3273 2008-12-17  Geoff Norton  <gnorton@novell.com>
3274
3275         * threadpool.c: Ensure that the io_queue_lock is initialized
3276         in all circumstances, as we always attempt to cleanup against it.
3277
3278 2008-12-17  Miguel de Icaza  <miguel@novell.com>
3279
3280         * icall.c (ves_icall_System_Environment_get_Platform): For
3281         compatibility reasons for existing client code we will keep
3282         returning 4 for a while.   
3283
3284         For how long will depend on the documentation being updated, and
3285         for us to give client code a chance to be updated.
3286
3287         This reverts the original decison on #433108 since we did not
3288         catch roughly 33 instances of the broken code in our own source
3289         code base, we did not catch failures on the buildbots, and QA did
3290         not bring this as a problem.
3291
3292         Only today I found some customer's code breaking due to our own
3293         class libraries not being fully updated and tracked it down to
3294         this change.  I am reverting it because if we could not even get
3295         our story straight in our own code base, how can we hope that our
3296         end user code be fixed?
3297
3298         As of this morning, our Wiki page that documents how to detect
3299         Unix had not been fixed.    
3300
3301 2008-12-16  Zoltan Varga  <vargaz@gmail.com>
3302
3303         * metadata.c (inflated_method_in_image): Add a workaround for #458168.
3304
3305         * class.c (mono_class_get_fields): Handle loading errors.
3306
3307 2008-12-12 Mark Mason <mmason@upwardaccess.com>
3308
3309         * metadata.c (mono_type_stack_size_internal): If SIZEOF_REGISTER > SIZEOF_VOID_P then use SIZEOF_REGISTER as the size and alignment of the stack slots.
3310         
3311 2008-12-12 Gonzalo Paniagua Javier <gonzalo@novell.com>
3312
3313         * mono-perfcounters.c: avoid warning.
3314
3315 2008-12-12 Rodrigo Kumpera  <rkumpera@novell.com>
3316
3317         * reflection.c (ensure_runtime_vtable): Work on generic instances and
3318         make sure all interfaces have MonoClass::interface_id set.
3319
3320         * reflection.c (ensure_generic_class_runtime_vtable): Ensure the
3321         method table is property set.
3322
3323 2008-12-12 Rodrigo Kumpera  <rkumpera@novell.com>
3324
3325         * class.c: New function mono_class_setup_interface_id that setup
3326         MonoClass::interface_id if needed.
3327
3328         * class-internals.h: Export new function.
3329
3330 2008-12-12 Rodrigo Kumpera  <rkumpera@novell.com>
3331
3332         * class.c: Add code to sanity check the vtable after setup_vtable_general
3333         has done it's work.
3334
3335 2008-12-11 Gonzalo Paniagua Javier <gonzalo@novell.com>
3336
3337         * icall.c: make Assembly.GetExecutingAssembly work properly when
3338         reflection is used to invoke the method.
3339         Bug #321781 fixed.
3340
3341 2008-12-11  Mark Probst  <mark.probst@gmail.com>
3342
3343         * metadata/generic-sharing.c: Look for constraints in all type
3344         arguments, not just the first one.
3345
3346 2008-12-10 Gonzalo Paniagua Javier <gonzalo@novell.com>
3347
3348         * appdomain.c: return the correct CodeBase for an Assembly instance
3349         that was loaded from the shadow-copy directories.
3350         Bug #458190 fixed.
3351
3352 2008-12-10  Zoltan Varga  <vargaz@gmail.com>
3353
3354         * sgen-gc.c (build_nursery_fragments): Clear nursery_next/nursery_frag_real_end.
3355
3356         * sgen-gc.c (check_object): New debugging helper function.
3357
3358         * object.c: Fix calls to mono_value_copy_array ().
3359
3360 2008-12-10 Rodrigo Kumpera  <rkumpera@novell.com>
3361
3362         * class.c (mono_class_setup_fields): If working on an inflated class
3363         first check if the generic definition did init with success.
3364
3365         Fixes #445361.
3366
3367 2008-12-10 Rodrigo Kumpera  <rkumpera@novell.com>
3368
3369         pedump.c (main): Fix a warning.
3370
3371 2008-12-10  Bill Holmes  <billholmes54@gmail.com>
3372
3373         * object-internals.h : Adding a definition for 
3374           MonoReflectionComVisibleAttribute.
3375
3376         * marshal.c (cominterop_com_visible) :  Method added to check the 
3377           ComVisible attribute of a class.
3378
3379         * marshal.c (cominterop_raise_hr_exception, cominterop_get_interface) :  
3380           cominterop_raise_hr_exception added to consolidate common code 
3381           to raise hr exceptions.
3382
3383         * marshal.c (cominterop_can_support_dispatch) :  Method added to determine 
3384           if a managed class should support IDispatch.
3385
3386         * marshal.c 
3387           (cominterop_get_idispatch_for_objec, cominterop_ccw_queryinterfacet) :  
3388           Added additional checks for managed object when getting 
3389           an IDispatch interface.
3390
3391         Code is contributed under MIT/X11 license.
3392
3393 2008-12-10 Rodrigo Kumpera  <rkumpera@novell.com>
3394
3395         pedump.c (main): Handle mono_get_method () returning NULL. 
3396
3397 2008-12-09  Zoltan Varga  <vargaz@gmail.com>
3398
3399         * marshal.h: Fix a warning.
3400
3401 2008-12-09  Bill Holmes  <billholmes54@gmail.com>
3402
3403         * marshal.c : Adding cominterop_release_all_rcws to release all
3404           runtime callable wrappers held by the runtime.
3405
3406         * marshal.h : Adding declaration for cominterop_release_all_rcws.
3407           
3408         Code is contributed under MIT/X11 license.
3409
3410 2008-12-09  Zoltan Varga  <vargaz@gmail.com>
3411
3412         * metadata.c (mono_image_alloc_lock): New helper function.
3413         (mono_image_alloc0_lock): Ditto.
3414
3415         * metadata.c: Use the alloc_lock () helper functions for allocating
3416         memory from the image mempool.
3417
3418 2008-12-08 Rodrigo Kumpera  <rkumpera@novell.com>
3419
3420         * class.c (mono_class_from_generic_parameter): Document it's
3421         locking behavior. Fix double checked locking here, we stored in
3422         param->pklass a partially initialized MonoClass and no membar was used.
3423
3424 2008-12-05  Marek Habersack  <mhabersack@novell.com>
3425
3426         * sysmath.c (ves_icall_System_Math_Round2): if round (3) and rint
3427         (3) functions are present in the C library use them to do the
3428         job. If they are absent, make sure that the sum of int_part and
3429         dec_part is rounded before returning. This is necessary due to the
3430         division of dec_part by the power of 10 before the final addition
3431         is performed - if the result is not rounded in some cases it will
3432         yield invalid results.
3433
3434 2008-12-04  Zoltan Varga  <vargaz@gmail.com>
3435
3436         * marshal.c (mono_marshal_emit_native_wrapper): Add AOT support for pinvoke
3437         wrappers by emitting the function address using a CEE_MONO_ICALL_ADDR 
3438         instruction instead of a pointer constant.
3439
3440 2008-12-03  Zoltan Varga  <vargaz@gmail.com>
3441
3442         * loader.c (mono_method_get_header): Do most of the work outside the
3443         loader lock, to avoid assembly load hook deadlocks.
3444
3445         * metadata.c (mono_metadata_parse_mh_full): Use finer-grained locking.
3446         (mono_metadata_parse_type_full): Ditto.
3447
3448 2008-12-02 Rodrigo Kumpera  <rkumpera@novell.com>
3449
3450         * mempool.c (mono_backtrace): Take the number of allocated bytes as argument.
3451         Make the stack depth fixed. Ensure proper argument passing to the backtrace
3452         funtions. Finally, use a lock to produce well ordered output.
3453
3454         The lock looks silly, as all calls to the corlib mempool should be guarded
3455         with the loader lock, but for some reason this fact doesn't help. 
3456
3457         * mempool.c (mono_mempool_alloc0): Add support for TRACE_ALLOCATIONS.
3458
3459 2008-12-02  Mark Probst  <mark.probst@gmail.com>
3460
3461         * socket-io.c: 64 bit big-endian fixes.
3462
3463 2008-12-01 Rodrigo Kumpera  <rkumpera@novell.com>
3464
3465         * verify.c (is_compatible_boxed_valuetype): Rewrite function to work properly with
3466         targets that require strict compatibility between the types.
3467
3468         * verify.c (verify_stack_type_compatibility_full): Boxed values are not compatible
3469         to unboxed types. All cases that this is true are checked by is_compatible_boxed_valuetype.
3470         Kill the strict argument and create a new one valuetype_must_be_boxed.
3471
3472         * verify.c (verify_delegate_compatibility): Use verify_stack_type_compatibility_full to
3473         state that all valuetypes must be boxed.
3474
3475         Fixes #448560.
3476
3477 2008-11-29  KornĂ©l PĂ¡l  <kornelpal@gmail.com>
3478
3479         * coree.c (MonoFixupExe): Use sizeof(IMAGE_BASE_RELOCATION) instead of
3480         IMAGE_SIZEOF_BASE_RELOCATION as newer Vista SDKs no longer define the latter.
3481
3482         Contributed under MIT/X11 license.
3483
3484 2008-11-28 Rodrigo Kumpera  <rkumpera@novell.com>
3485
3486         * class.c (mono_class_setup_fields): Don't copy MonoType::attrs as
3487         the inflate_generic_type machinery should handle it.
3488
3489         This avoids a crash when the field's flags is zero and it's type is
3490         a primitive.
3491         What happens is that mono_metadata_parse_type_full will see that opt_attrs
3492         is zero and will return one of the cached built-in primitive types. Since
3493         those types live in read-only memory, the code that copies it crashes.  
3494
3495 2008-11-28  Mark Probst  <mark.probst@gmail.com>
3496
3497         * object.c: Don't put function descriptors into generalized IMT
3498         thunks.
3499
3500 2008-11-28  Mark Probst  <mark.probst@gmail.com>
3501
3502         * class.c: Enable generic code sharing on PPC64.
3503
3504 2008-11-27  Mark Probst  <mark.probst@gmail.com>
3505
3506         * mempool.c, mempool-internals.h: Added g_slist_append_mempool()
3507         from mini/mini.c.
3508
3509         * generic-sharing.c: Allocate the method template slists from the
3510         image mempool so it doesn't leak.
3511
3512 2008-11-27 Rodrigo Kumpera  <rkumpera@novell.com>
3513
3514         * class.c (generic_array_methods): Release the linked list.
3515
3516 2008-11-27  Mark Probst  <mark.probst@gmail.com>
3517
3518         * marshal.c (mono_string_builder_to_utf8): Fixed a wrong
3519         invocation to g_utf16_to_utf8().
3520
3521 2008-11-26  Mark Probst  <mark.probst@gmail.com>
3522
3523         * icall.c (mono_ArgIterator_IntGetNextArg): Handle sub-word sized
3524         arguments on big endian archs.
3525
3526 2008-11-25 Gonzalo Paniagua Javier <gonzalo@novell.com>
3527
3528         * reflection.c: (_mono_reflection_parse_type) skip leading spaces in
3529         the type name (test added in corlib).
3530
3531 2008-11-25 Gonzalo Paniagua Javier <gonzalo@novell.com>
3532
3533         * pedump.c: initialize perf. counters. Fixes a segv.
3534
3535 2008-11-25  Martin Baulig  <martin@ximian.com>
3536
3537         * mono-debug-debugger.c
3538         (mono_debugger_runtime_invoke): Return the exception object if an
3539         exception was thrown.  Visual Studio displays the exception object
3540         in the locals window.
3541
3542 2008-11-24  Mark Probst  <mark.probst@gmail.com>
3543
3544         * mini-trampolines.c (mono_delegate_trampoline): Don't return a
3545         ftnptr.
3546
3547 2008-11-24  Mark Probst  <mark.probst@gmail.com>
3548
3549         * marshal.c (mono_type_native_stack_size): MONO_TYPE_I and
3550         MONO_TYPE_U are sizeof (gpointer), too.
3551
3552 2008-11-24  Mark Probst  <mark.probst@gmail.com>
3553
3554         * marshal.c (mono_type_native_stack_size): Fixed size and
3555         alignment for reference types.
3556
3557 2008-11-23  Mark Probst  <mark.probst@gmail.com>
3558
3559         * class.c (mono_class_generic_sharing_enabled): Disable generic
3560         code sharing for PPC64.
3561
3562 2008-11-21 Rodrigo Kumpera  <rkumpera@novell.com>
3563
3564         * icall.c (mono_method_get_equivalent_method): Make sure
3565         method->klass->methods is inited before looping over it.
3566
3567 2008-11-20 Gonzalo Paniagua Javier <gonzalo@novell.com>
3568
3569         * object.c: when calling ExecuteAssembly in a newly created domain,
3570         the configuration file and application base are already set up.
3571         Bug #446353 take 2 fixed.
3572
3573 2008-11-20  Zoltan Varga  <vargaz@gmail.com>
3574
3575         * marshal.c: Add support for MONO_TYPE_GENERICINST to some functions.
3576         Fixes #444715. Fix a warning.
3577
3578 2008-11-18 Gonzalo Paniagua Javier <gonzalo@novell.com>
3579
3580         * appdomain.c: write the full path of the assembly to the .ini file
3581         created when "shadow-copying"
3582         Bug #446353 fixed.
3583
3584 2008-11-18  Zoltan Varga  <vargaz@gmail.com>
3585
3586         * debug-helpers.c (mono_method_full_name): Stringify wrapper types even
3587         if signature==FALSE.
3588
3589 2008-11-17  Bill Holmes  <billholmes54@gmail.com>
3590
3591         * marshal.h : Fix the cygwin build.
3592            marshal.c:12442: undefined reference to `_IID_IMarshal'
3593           
3594         Code is contributed under MIT/X11 license.
3595
3596 2008-11-17  Bill Holmes  <billholmes54@gmail.com>
3597
3598         * marshal.h : cominterop_ccw_getfreethreadedmarshaler added to return the
3599           free threaded marshaler when QueryInterface is called on a COM callable
3600           wrapper requesting the IMarshal interface.
3601           
3602         Code is contributed under MIT/X11 license.
3603
3604 2008-11-14  Zoltan Varga  <vargaz@gmail.com>
3605
3606         * domain-internals.h (MonoDomain): Update MONO_DOMAIN_LAST_GC_TRACKED.
3607
3608         * reflection.c (mono_type_get_object): Special case the very common
3609         void type.
3610
3611         * domain-internals.h (struct _MonoDomain): Add 'typeof_void' field to
3612         hold typeof(void).
3613
3614 2008-11-13  Bill Holmes  <billholmes54@gmail.com>
3615
3616         * process.h : Adding method declaration for
3617           ves_icall_System_Diagnostics_Process_WaitForInputIdle_internal.
3618           
3619         * process.c : Adding implementation for
3620           ves_icall_System_Diagnostics_Process_WaitForInputIdle_internal.
3621           
3622         * icall-def.h : Registering ICALL Processs.WaitForInputIdle_internal
3623           to ves_icall_System_Diagnostics_Process_WaitForInputIdle_internal.
3624
3625         Code is contributed under MIT/X11 license.
3626
3627 2008-11-10  Rodrigo Kumpera  <rkumpera@novell.com>
3628
3629         * appdomain.c (unload_thread_main): Clean up threadpool by
3630         calling mono_thread_pool_remove_domain_jobs.
3631
3632         * domain-internals.h (struct _MonoDomain): Add new fields to
3633         help coordinate the cleanup of the threadpool.
3634
3635         * threadpool.c (mono_thread_pool_remove_domain_jobs): New fuction
3636         that cleans up the threadpool of all jobs associated with an appdomain.
3637         It does that by cleaning up the queues and making sure all active
3638         threads are accounted.
3639
3640         * threadpool.c (async_invoke_io_thread): Ignore job if its domain is
3641         unloaded or in the process of. Take this is such way that there is
3642         no race condition between another thread starting the unload and the
3643         current thread acknowledging it.
3644
3645         * threadpool.c (async_invoke_thread): Same.
3646
3647         * threadpool.c (start_io_thread_or_queue): Increment threadpool_jobs before
3648         firing the new thread.
3649
3650         * threadpool.c (start_tpthread): Same.
3651
3652         * theadpool.c (append_job): Increment threadpool_jobs before queueing.
3653
3654         * threadpool.h: Add mono_thread_pool_remove_domain_jobs.
3655
3656 2008-11-06  Jonathan Chambers  <joncham@gmail.com>
3657
3658         * file-io.c (ves_icall_System_IO_MonoIO_DuplicateHandle): 
3659         Add support for DuplicateHandle.
3660         
3661         * file-io.h (ves_icall_System_IO_MonoIO_DuplicateHandle): 
3662         Add support for DuplicateHandle.
3663         
3664         * icall-def.h (ves_icall_System_IO_MonoIO_DuplicateHandle): 
3665         Add support for DuplicateHandle.
3666
3667         Code is contributed under MIT/X11 license.
3668
3669 2008-11-06  Mark Probst  <mark.probst@gmail.com>
3670
3671         * class-internals.h: Make min_align into a whole byte.
3672
3673         * class.c: Set min_align for SIMD types to 16.
3674
3675 2008-11-05  Geoff Norton  <gnorton@novell.com>
3676
3677         * attach.c: Default the attacher to enabled for all cases including
3678         embedded.
3679
3680 Wed Nov 5 16:33:41 CET 2008 Paolo Molaro <lupus@ximian.com>
3681
3682         * monitor.c, class-internals.h, wrapper-types.h: revert incorrect
3683         change r117650.
3684
3685 2008-11-04  Mark Probst  <mark.probst@gmail.com>
3686
3687         * monitor.c, monitor.h: New function for querying offsets of
3688         members of MonoThreadsSync.
3689
3690 2008-11-04  Zoltan Varga  <vargaz@gmail.com>
3691
3692         * marshal.c (mono_marshal_get_runtime_invoke): Use runtime_invoke_direct_cache
3693         to speed up this function and to avoid the boundless memory growth caused by
3694         the signature_dup () calls.
3695
3696 2008-11-02  Zoltan Varga  <vargaz@gmail.com>
3697
3698         * monitor.c (mono_monitor_get_fast_enter_method): Add a proper type for the
3699         wrapper.
3700
3701         * class-internals.h (struct _MonoMethod): Increase the size of 'wrapper_type'
3702         by 1 bit.
3703
3704         * wrapper-types.h: Add MONO_WRAPPER_MONITOR_FAST_ENTER/EXIT.
3705
3706 2008-10-31 Gonzalo Paniagua Javier <gonzalo@novell.com>
3707
3708         * appdomain.c:
3709         * domain-internals.h: made mono_set_private_bin_path_from_config()
3710         "internal".
3711         * object.c: call the above function after setting the configuration
3712         file path for the root domain.
3713         Fixes bug #314478.
3714
3715 2008-10-31 Gonzalo Paniagua Javier <gonzalo@novell.com>
3716
3717         * assembly.c: when the assembly is loaded from an absolute path, end
3718         basedir with a directory separator.
3719         Bug #440781 fixed.
3720
3721 2008-10-30  Mark Probst  <mark.probst@gmail.com>
3722
3723         * monitor.c (mono_monitor_get_fast_enter_method): If
3724         CompareExchange is not available, don't create the fastpath
3725         instead of asserting.  (The method is missing in the 1.1 profile.)
3726
3727 2008-10-30  Mark Probst  <mark.probst@gmail.com>
3728
3729         * marshal.c, marshal.h: Rename signature_no_pinvoke() and make it non-static.
3730
3731         * monitor.c, monitor.h: Code for generating Monitor.Enter and
3732         Monitor.Exit IL fastpaths.
3733
3734 2008-10-28  Rodrigo Kumpera  <rkumpera@novell.com>
3735
3736         * class.c (mono_class_create_from_typedef): Added Vector2ul.
3737
3738 2008-10-28  Rodrigo Kumpera  <rkumpera@novell.com>
3739
3740         * class.c (mono_class_create_from_typedef): Added Vector2l.
3741
3742 2008-10-27  Rodrigo Kumpera  <rkumpera@novell.com>
3743
3744         * class.c (mono_class_create_from_typedef): Added Vector2d.
3745
3746 2008-10-27 Gonzalo Paniagua Javier <gonzalo@novell.com>
3747
3748         * appdomain.c: translate \ into / for cache_path.
3749         * domain-internals.h: new mono_is_shadow_copy_enabled().
3750         * icall.c: (fill_reflection_assembly_name) do the same path
3751         manipulations that get_code_base does.
3752         (get_code_base) use mono_is_shadow_copy_enabled.
3753
3754 2008-10-26 Gonzalo Paniagua Javier <gonzalo@novell.com>
3755
3756         * appdomain.c: shadow-copied assemblies go to CachePath +
3757         ApplicationName when both are set. DynamicBase has nothing to do with
3758         shadow copies.
3759         Bug #406877 fixed.
3760
3761 2008-10-26  Zoltan Varga  <vargaz@gmail.com>
3762
3763         * reflection.c (encode_locals): Use a cache to avoid duplicate entries in the
3764         STANDALONESIG table.
3765
3766         * metadata-internals.h (struct _MonoDynamicImage): Add cache for
3767         standalone signatures.
3768
3769         * marshal.c (mono_marshal_get_runtime_invoke): Rewrite the signature 
3770         comparison code: instead of comparing the signatures using a custom
3771         equals function, transform them to a common signature and compare that. This
3772         works better with AOT.
3773
3774 2008-10-25  Zoltan Varga  <vargaz@gmail.com>
3775
3776         * Reapply r116521 with (!mono_debug_using_mono_debugger ()) checks.
3777
3778         * class.c (mono_class_init): Remove unneccesary mono_class_setup_properties ()
3779         call for generic instances.
3780         (mono_class_setup_properties): Call setup_properties () before accessing
3781         gklass->properties.
3782
3783         * class.c (mono_class_get_virtual_methods): New helper function to iterate
3784         over the virtual methods of a class using metadata if possible, avoiding the
3785         creation of MonoMethod's for non-virtual methods.
3786         
3787         * class.c (mono_class_setup_vtable_general): Rewrite this to use 
3788         get_virtual_methods () to iterate over the virtual methods of classes.
3789
3790 2008-10-25  Martin Baulig  <martin@ximian.com>
3791
3792         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_DEAD): New #define.
3793
3794 2008-10-24  Rodrigo Kumpera  <rkumpera@novell.com>
3795
3796         * class.c (mono_class_create_from_typedef): Added Vector4i.
3797
3798 2008-10-24  Mark Probst  <mark.probst@gmail.com>
3799
3800         * marshal.c (mono_marshal_get_synchronized_wrapper): Emit
3801         ldtoken+GetTypeFromHandle instead of i4+icall so that the JIT
3802         special-casing applies to eliminate the call completely.
3803
3804 2008-10-24  Rodrigo Kumpera  <rkumpera@novell.com>
3805
3806         * class.c (mono_class_create_from_typedef): Added Vector8s.
3807
3808 2008-10-23  Rodrigo Kumpera  <rkumpera@novell.com>
3809
3810         * class.c (mono_class_create_from_typedef): Added Vector16sb.
3811
3812 2008-10-23 Gonzalo Paniagua Javier <gonzalo@novell.com>
3813
3814         * icall.c: get rid of annoying warning.
3815
3816 2008-10-23 Gonzalo Paniagua Javier <gonzalo@novell.com>
3817
3818         * threadpool.c: in 1.x, if you change the background status of the
3819         threadpool thread, it's not reset.
3820         Remove unnecessary calls to SetState.
3821
3822 2008-10-22 Gonzalo Paniagua Javier <gonzalo@novell.com>
3823
3824         * threadpool.c: asynchronously create a set of idle threads upon first
3825         use of the threadpool. SetMinThreads will now start the appropriate
3826         number of idle threads if they are not already running. The default is
3827         1 threadpool thread per CPU. Increased the maximum number of threads
3828         per CPU to 10.
3829
3830 2008-10-22  Martin Baulig  <martin@ximian.com>
3831
3832         Revert r116521 from Zoltan, it breaks the debugger:
3833
3834         * class.c (mono_class_get_virtual_methods): New helper function to iterate
3835         over the virtual methods of a class using metadata if possible, avoiding the
3836         creation of MonoMethod's for non-virtual methods.
3837         
3838         * class.c (mono_class_setup_vtable_general): Rewrite this to use 
3839         get_virtual_methods () to iterate over the virtual methods of classes.
3840
3841 2008-10-22 Gonzalo Paniagua Javier <gonzalo@novell.com>
3842
3843         * threads.c: when creating a threadpool thread, set its state to
3844         'background'.
3845         * threadpool.c: reset the background state of a threadpool thread
3846         after finishing each work item
3847         Bug #437888 fixed.
3848
3849 2008-10-22  Zoltan Varga  <vargaz@gmail.com>
3850
3851         * class.c (mono_class_get_vtable_entry): Add an optimization for szarrays.
3852         
3853         * class.c (mono_class_setup_vtable_general): Add an optimized version for
3854         generic instances which works by inflating the methods in the container
3855         class's vtable.
3856
3857         * class.c (mono_class_inflate_generic_type_with_mempool_no_copy): New
3858         variant which doesn't make a copy if no inflation was done.
3859         (mono_class_setup_fields): Use it.
3860
3861         * metadata.c (mono_metadata_get_shared_type): New helper function to
3862         return a shared instance of a given MonoType.
3863
3864         * class.c (mono_class_inflate_generic_type_with_mempool): Avoid making
3865         a copy of most non-generic types.
3866
3867 Wed Oct 22 18:00:46 CEST 2008 Paolo Molaro <lupus@ximian.com>
3868
3869         * threadpool.c: remove one more GetSystemInfo () call.
3870
3871 Wed Oct 22 17:45:48 CEST 2008 Paolo Molaro <lupus@ximian.com>
3872
3873         * mono-perfcounters.c, icall-def.h, environment.c, environment.h:
3874         use the code in mono-proclib.h to get processor information.
3875
3876 2008-10-22 Gonzalo Paniagua Javier <gonzalo@novell.com>
3877
3878         * appdomain.c: fixed the logic that determines whether assemblies in a
3879         directory are "shadow-copied" or not. Bug #433483 fixed.
3880
3881 2008-10-22  Zoltan Varga  <vargaz@gmail.com>
3882
3883         * process.c (ves_icall_System_Diagnostics_Process_GetProcessData): Fix a
3884         warning.
3885
3886 2008-10-21  Zoltan Varga  <vargaz@gmail.com>
3887
3888         * marshal.c (runtime_invoke_signature_equal): Don't shared wrappers
3889         returning a vtype.
3890
3891         * class.c debug-helpers.c object.c class-internals.h marshal.c icall.c
3892         reflection.c: Use mono_field_get_name () for accessing a field's name.
3893
3894         * class-internals.h (MONO_CLASS_HAS_STATIC_METADATA): Move this here from
3895         class.c
3896
3897         * class.c (mono_field_get_rva): Fix crash if this is called on a dynamic
3898         field.
3899
3900         * loader.c (find_method_in_class): Reenable the metadata optimization by
3901         not using it for generic instances.
3902
3903         * class-internals.h (MonoFieldDefaultValue): Extract the rarely used 
3904         data/def_type fields from MonoClassField into a separate structure.
3905         (struct MonoClassField): Remove data/def_type fields.
3906         (struct _MonoClass): Add a 'field_def_values' array to store the default
3907         values/RVA for fields.
3908
3909         * class.c reflection.c: Update after the changes.
3910         
3911         * object.c (mono_class_create_runtime_vtable): Use mono_field_get_data ()
3912         for accessing field->data.
3913
3914         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_InitializeArray): Ditto.
3915
3916         * loader.c (find_method_in_class): Revert the last change for now as
3917         it breaks Mono.C5 unit tests.
3918
3919         * class-internals.h (struct _MonoDynamicGenericClass): Add fields
3920         'field_generic_types' and 'field_objects' which contain the information
3921         previously stored in MonoInflatedField.
3922         (MonoInflatedField): Delete.
3923         (struct _MonoClassField): Delete 'generic_info' field.
3924
3925         * reflection.c: Store the information which was previously in 
3926         field->generic_info in MonoDynamicGenericClass instead.
3927
3928         * metadata.c (free_generic_class): Update after MonoDynamicGenericClass/
3929         MonoClassField changes.
3930
3931 Tue Oct 21 17:07:55 CEST 2008 Paolo Molaro <lupus@ximian.com>
3932
3933         * marshal.c, method-builder.c: get rid of wrapper_hash and instead
3934         store the value inside the data array of the MonoMethodWrapper.
3935         This saves memory, is faster and fixes the lifetime issues (methods
3936         were never removed from the hash previously). May also fix bug#436996.
3937
3938 2008-10-21  Zoltan Varga  <vargaz@gmail.com>
3939
3940         * reflection.c (mono_image_get_fieldref_token): For fields of non-dynamic 
3941         generic instances, compute the type from the generic definition instead of
3942         looking in field->generic_info.
3943
3944         * class.c (mono_class_setup_fields): Don't create a MonoInflatedField
3945         for inflated fields, the only user was get_fieldref_token () which no
3946         longer needs it.
3947
3948         * class.c (mono_class_init): Revert the last change as it seems to cause
3949         crashes.
3950
3951         * class-internals.h (struct _MonoClassField): Reorder fields to save 4
3952         bytes on 64 bit platforms.
3953
3954         * object.c (mono_class_create_runtime_vtable): Fix a warning.
3955         
3956         * object.c (mono_class_create_runtime_vtable): Don't initalize
3957         field->data/field->def_type here, it is done lazily by 
3958         mono_class_get_field_default_value ().
3959
3960         * icall.c (ves_icall_get_enum_info): Call 
3961         mono_class_get_field_default_value () instead of directly accessing
3962         field->data and field->def_type.
3963
3964         * object.c (get_default_field_value): Ditto.
3965
3966         * class.c (mono_field_get_data): Ditto.
3967         
3968         * class.c (mono_class_init): Remove unneccesary mono_class_setup_methods ()
3969         call for generic instances.
3970
3971         * loader.c (find_method_in_class): If klass != from_class, then inflate
3972         the method with the context of from_class, since the caller assumes this.
3973
3974 2008-10-20  Zoltan Varga  <vargaz@gmail.com>
3975
3976         * class.c (mono_method_get_vtable_index): Use mono_method_get_vtable_slot ()
3977         for accessing method->slot.
3978
3979 2008-10-20  Cedric Vivier  <cedricv@neonux.com>
3980
3981         * icall-def.h, icall.c: Add icall for Debugger.IsAttached.
3982
3983 2008-10-19  Zoltan Varga  <vargaz@gmail.com>
3984
3985         * class.c (mono_method_get_vtable_index): Use
3986         mono_method_get_vtable_slot () for accessing method->slot.
3987
3988         * object.c (build_imt_slots): Use mono_class_get_method_by_index () for
3989         accessing klass->methods.
3990
3991         * class.c (mono_method_get_vtable_slot): New helper function.
3992         (mono_class_get_vtable_entry): Ditto.
3993         (mono_class_setup_vtable_general): Use mono_method_get_vtable_slot () for
3994         accessing method->slot.
3995
3996         * generic-sharing.c (mono_class_get_method_generic): Pass the declaring
3997         method to get_inflated_method ().
3998
3999         * class.c (mono_class_get_inflated_method): New helper method to obtain
4000         a method of an inflated class without calling setup_methods ().
4001         (mono_class_get_cctor): Use get_inflated_method.
4002
4003         * generic-sharing.c (mono_class_get_method_generic): Ditto.
4004         
4005         * marshal.c image.c: Lazily create all the marshal caches.
4006
4007         * image.c (mono_image_init): Move initialization of runtime_invoke
4008         caches to marshal.c.
4009
4010         * marshal.c (get_cache): New helper function to lazily initialize a 
4011         wrapper cache.
4012         (mono_marshal_get_runtime_invoke): Share more runtime invoke wrappers.
4013
4014         * debug-helpers.c (mono_method_full_name): Include generic arguments.
4015
4016 Fri Oct 17 10:51:32 CEST 2008 Paolo Molaro <lupus@ximian.com>
4017
4018         * loader.c: fixed check for interface type.
4019
4020 Thu Oct 16 20:59:11 CEST 2008 Paolo Molaro <lupus@ximian.com>
4021
4022         * appdomain.c: check for NULL setup before it's referenced.
4023
4024 p
4025 Thu Oct 16 16:12:23 CEST 2008 Paolo Molaro <lupus@ximian.com>
4026
4027         * class.c: remove the unused old vtable setup code.
4028
4029 Thu Oct 16 12:53:29 CEST 2008 Paolo Molaro <lupus@ximian.com>
4030
4031         * class.c: don't depend on interface order in
4032         setup_interface_offsets (bug #435777).
4033         * reflection.c: sort the InterfaceImpl table (patch from
4034         Jb Evain  <jbevain@novell.com>).
4035
4036 2008-10-13  Zoltan Varga  <vargaz@gmail.com>
4037
4038         * assembly.c (mono_assembly_open_full): Avoid loading images while holding
4039         the low level assemblies lock.
4040
4041 Mon Oct 13 16:35:26 CEST 2008 Paolo Molaro <lupus@ximian.com>
4042
4043         * domain-internals.h, domain.c, icall.c, image.c, marshal.c,
4044         object.c, reflection.c, socket-io.c, threads.c: introduced
4045         mono_framework_version () to return the major framewrok version,
4046         changed the code that was using more complex patterns to use it.
4047         Return the correct value for PlatformID for OSX.
4048
4049 Mon Oct 13 14:38:01 CEST 2008 Paolo Molaro <lupus@ximian.com>
4050
4051         * icall-def.h, process.h, process.c: added an icall to get info about
4052         processes using mono-proclib.
4053
4054 Mon Oct 13 11:14:44 CEST 2008 Paolo Molaro <lupus@ximian.com>
4055
4056         * mono-perfcounters.c: use the mono-proclib functions to
4057         access process information.
4058
4059 Mon Oct 13 11:00:49 CEST 2008 Paolo Molaro <lupus@ximian.com>
4060
4061         * domain.c, assembly.c, debug-mono-symfile.c, debug-mono-symfile.h,
4062         monosn.c, Makefile.am, pedump.c, image.c, metadata-internals.h,
4063         reflection.c: remove rawbuffer usage: mmap support is more sanely
4064         provided by utils/mono-mmap.
4065
4066 Sat Oct 11 19:46:19 CEST 2008 Paolo Molaro <lupus@ximian.com>
4067
4068         * gc.c: use posix semaphores when possible so that
4069         mono_gc_finalize_notify() is signal safe.
4070
4071 2008-10-11  Zoltan Varga  <vargaz@gmail.com>
4072
4073         * reflection.c: Implement DISABLE_REFLECTION_EMIT, remove some
4074         #ifdef DISABLE_REFLECTION_SAVE stuff, only the exported functions need to
4075         be #ifdef-ed out, the linker will remove the rest.
4076
4077         * marshal.c: Implement DISABLE_COM.
4078
4079         * reflection.c: Implement DISABLE_REFLECTION_EMIT_SAVE.
4080
4081 2008-10-11  Miguel de Icaza  <miguel@novell.com>
4082
4083         * locales.c (string_invariant_compare_char): Optimization: do not
4084         call g_unichar_type unless we actually need the information.
4085
4086 2008-10-10  Mark Probst  <mark.probst@gmail.com>
4087
4088         * object.c, class-internals.h: Also create remoting trampolines
4089         for generic methods.  Pass the domain to the remoting trampoline
4090         creation function, too.
4091
4092 2008-10-10  Zoltan Varga  <vargaz@gmail.com>
4093
4094         * class.c (mono_class_init): Fix+re-enable the finalize optimization.
4095
4096 2008-10-10  Rodrigo Kumpera  <rkumpera@novell.com>
4097
4098         * class.c (mono_class_create_from_typedef): Vector4u was renamed to
4099         Vector4ui.
4100
4101 2008-10-10 Gonzalo Paniagua Javier <gonzalo@novell.com>
4102
4103         * assembly.c:
4104         * locales.c: remove the use of g_strdown. Fixes bug #322313.
4105
4106 Fri Oct 10 17:01:42 CEST 2008 Paolo Molaro <lupus@ximian.com>
4107
4108         * assembly.c: in mono_assembly_load_friends() take the assemblies lock
4109         for the least possible amount of time (extending the fix in r113458).
4110
4111 2008-10-10  Rodrigo Kumpera  <rkumpera@novell.com>
4112
4113         * class.c (mono_class_create_from_typedef): Retrofit to new type names.
4114
4115 2008-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
4116
4117         * class.c (mono_class_create_from_typedef): Added Vector8u and Vector16u
4118         as possible simd intrinsic types.
4119         Optimized the test to check for the common prefix first.
4120
4121 Thu Oct 9 17:38:24 CEST 2008 Paolo Molaro <lupus@ximian.com>
4122
4123         * class.c: back out part of a broken optimization committed on
4124         May 23th (bug #433908).
4125
4126 2008-10-09  Mark Probst  <mark.probst@gmail.com>
4127
4128         * profiler.c (simple_shutdown): Don't call mono_thread_attach() on
4129         Win32.  Should fix #432388 for most cases until we have the new
4130         profiler on Win32.
4131
4132 2008-10-08  Zoltan Varga  <vargaz@gmail.com>
4133
4134         * metadata.c (mono_metadata_generic_context_hash): Call generic_inst_hash
4135         instead of using inst->id so the hash is stable for AOT.
4136
4137 2008-10-07 Gonzalo Paniagua Javier <gonzalo@novell.com>
4138
4139         * appdomain.c:
4140         * icall.c: create a .ini file for shadow-copied assemblies that
4141         contains the location of the original assembly. Use this to return the
4142         proper CodeBase for shadow-copied assemblies. Fixes bug #323606.
4143         Also fix the number of '/' for windows when returning the CodeBase.
4144         Fixes bug #430920.
4145
4146 2008-10-07  Bill Holmes  <billholmes54@gmail.com>
4147
4148         * marshal.c (cominterop_get_ccw) : Fixing a copy paste error from r115126.
4149
4150         Code is contributed under MIT/X11 license.
4151
4152 2008-10-07  Bill Holmes  <billholmes54@gmail.com>
4153
4154         * marshal.c (cominterop_get_native_wrapper) : Adding a call to mono_class_setup_vtable
4155           if if the class vtable needs initialized.
4156
4157         Code is contributed under MIT/X11 license.
4158
4159 2008-10-07  Bill Holmes  <billholmes54@gmail.com>
4160
4161         * marshal.c (cominterop_get_native_wrapper_adjusted, cominterop_get_ccw) : 
4162           Adding default MonoMarshalSpecs for COM methods.  OBJECT->STRUCT,
4163           STRING->BSTR, and CLASS->INTERFACE.
4164
4165         Code is contributed under MIT/X11 license.
4166
4167 2008-10-07  Marek Habersack  <mhabersack@novell.com>
4168
4169         * sysmath.h: changed the declaration of the
4170         ves_icall_System_Math_Round2 icall by adding an extra
4171         away_from_zero parameter.
4172
4173         * sysmath.c (ves_icall_System_Math_Round2): added support for
4174         away from zero rounding. The icall now takes an extra boolean
4175         parameter to signal that away from zero operation is requested.
4176
4177 2008-10-06  Zoltan Varga  <vargaz@gmail.com>
4178
4179         * marshal.c (mono_marshal_get_delegate_begin_invoke): Put the wrapper in
4180         the delegate klass so it can work with full-aot.
4181         (mono_marshal_get_delegate_end_invoke): Ditto.
4182         (mono_marshal_get_delegate_invoke): Ditto.
4183
4184 Mon Oct 6 16:10:02 CEST 2008 Paolo Molaro <lupus@ximian.com>
4185
4186         * gc.c, attach.h, attach.c: remove a bad pattern:
4187         add_finalizer_callback () is not implemented correctly, it can't
4188         without adding more overhead to the finalizer loop and it's not
4189         even needed, since we know exactly what we need to call, so there is
4190         no need to do so through an expensive function pointer.
4191
4192 2008-10-04  Zoltan Varga  <vargaz@gmail.com>
4193
4194         * gc.c: Define a dummy version of mono_gc_add_finalizer_thread_callback ()
4195         for the no-gc case.
4196         * attach.c (mono_attach_init): Remove the #ifdef.
4197
4198 2008-10-04  Andreas Färber  <andreas.faerber@web.de>
4199
4200         * attach.c (mono_attach_init): Don't use
4201         mono_gc_add_finalizer_thread_callback when compiling without GC.
4202         Fixes #432306.
4203         
4204         Code is contributed under MIT/X11 license.
4205
4206 2008-10-03  Zoltan Varga  <vargaz@gmail.com>
4207
4208         * class.c (mono_class_create_from_typedef): Remove the 
4209         #ifndef DISABLE_SIMD stuff.
4210
4211 2008-10-03  Rodrigo Kumpera  <rkumpera@novell.com>
4212
4213         * class-internals.h (MonoClass): Added simd_type bit field.
4214
4215         * class.c (mono_class_create_from_typedef): Check if type is a simd
4216         intrinsic.
4217
4218 2008-10-03  Mark Probst  <mark.probst@gmail.com>
4219
4220         * object.c (mono_method_add_generic_virtual_invocation): Only add
4221         instantiations to the thunk whose count is at least as large as
4222         the threshold.
4223
4224 2008-10-02 Gonzalo Paniagua Javier <gonzalo@novell.com>
4225
4226         * icall.c: changed the Type of the exception thrown when trying to
4227         invoke a constructor on an abstract class. Part of the fix for bug
4228         #324185.
4229
4230 2008-10-02  Mark Probst  <mark.probst@gmail.com>
4231
4232         * class.c, class-internals.h (mono_method_get_vtable_index): New
4233         function which returns the index into the vtable and properly
4234         handles inflated virtual generic methods.
4235
4236 2008-10-01  Mark Probst  <mark.probst@gmail.com>
4237
4238         * object.c, domain.c, object-internals.h, domain-internals.h:
4239         Generalize IMT thunk machinery to also handle thunks for virtual
4240         generic method invokes.  When a virtual generic method is invoked
4241         more than a number of times we insert it into the thunk so that it
4242         can be called without lookup in unmanaged code.
4243
4244         * generic-sharing.c, class-internals.h: Fetching a
4245         MonoGenericInst* for a method from an (M)RGCTX.
4246
4247 2008-10-01  Zoltan Varga  <vargaz@gmail.com>
4248
4249         * marshal.c (emit_marshal_string): Applied a variant of a patch by
4250         tom hindle <tom_hindle@sil.org>. Fix byref native-to-managed string
4251         marshalling. Fixes #431304.
4252
4253 2008-10-01  Bill Holmes  <billholmes54@gmail.com>
4254
4255         * marshal.c (emit_marshal_variant) : Change the attribute checks to 
4256           handle when ref is specified without In or Out.
4257
4258         Code is contributed under MIT/X11 license.
4259
4260 2008-09-30  Mark Probst  <mark.probst@gmail.com>
4261
4262         * loader.c (mono_get_method_constrained): Don't expand method with
4263         the class's context, because it's already a method of that class.
4264
4265 2008-09-30  Atsushi Enomoto  <atsushi@ximian.com>
4266
4267         * attach.c : should be correct build fix.
4268
4269 2008-09-29  Zoltan Varga  <vargaz@gmail.com>
4270
4271         * attach.c: Fix the previous change.
4272
4273 2008-09-29  Atsushi Enomoto  <atsushi@ximian.com>
4274
4275         * attach.c : quick w32 build fix.
4276
4277 2008-09-27  Miguel de Icaza  <miguel@novell.com>
4278
4279         * Turn off MONO_GENERIC_SHARING=all and go back to corlib as it
4280         crashes MonoDevelop: #430455.
4281
4282 2008-09-27  Zoltan Varga  <vargaz@gmail.com>
4283
4284         * domain-internals.h (struct _MonoDomain): Move most fields used only by
4285         the JIT do MonoJitDomainInfo in ../mini/mini.h.
4286
4287         * domain.c: Remove initialization/cleanup of the removed fields.
4288
4289 2008-09-27  Mark Probst  <mark.probst@gmail.com>
4290
4291         * class.c (mono_class_generic_sharing_enabled): Enable generic
4292         code sharing for PPC.
4293
4294 2008-09-26  Bill Holmes  <billholmes54@gmail.com>
4295
4296         * attach.c : Fixing the Windows builds.
4297
4298         Code is contributed under MIT/X11 license.
4299
4300 2008-09-25  Zoltan Varga  <vargaz@gmail.com>
4301
4302         * class.c (mono_class_generic_sharing_enabled): Experimentally change 
4303         the default generic sharing mode to 'all'.
4304
4305 2008-09-25  Mark Probst  <mark.probst@gmail.com>
4306
4307         * generic-sharing.c, class-internals.h: New function for checking
4308         whether a method needs a static RGCTX invoke wrapper.  A few
4309         funtions moved from mini/generic-sharing.c.
4310
4311         * icall.c: New function used.
4312
4313 2008-09-25  Mark Probst  <mark.probst@gmail.com>
4314
4315         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal):
4316         Static RGCTX invoke wrapping applies to value type methods, too.
4317
4318         * class.c (mono_class_setup_vtable_general): In generic-shared
4319         value types, wrap methods with a static RGCTX invoke wrapper.
4320
4321 2008-09-25  Zoltan Varga  <vargaz@gmail.com>
4322
4323         * attach.c (ipc_connect): Use AF_UNIX instead of AF_FILE to fix the
4324         osx build.
4325
4326 2008-09-24  Zoltan Varga  <vargaz@gmail.com>
4327
4328         * gc.c (mono_gc_add_finalizer_thread_callback): New function to
4329         register a callback which is called when the finalizer thread is woken
4330         up.
4331         (finalizer_thread): Call the callback if it exists.
4332
4333         * attach.h attach.c: New files, implementing the attach mechanism.
4334
4335         * appdomain.c: Init/cleanup the attach mechanism on startup/shutdown.
4336         
4337         * object.c (mono_object_get_virtual_method): Fix an assertion introduced
4338         by the previous change.
4339
4340 Tue Sep 23 15:24:03 CEST 2008 Paolo Molaro <lupus@ximian.com>
4341
4342         * class.c, domain-internals.h, domain.c, generic-sharing.c, image.c,
4343         loader.c, marshal.c, metadata-internals.h, metadata.c,
4344         method-builder.c, object.c, reflection.c: introduced specific functions
4345         to allocate from the domain and image mempools and cleaned up most of
4346         the code to use them (still missing a few in reflection.c).
4347         Keep the loader bytes counter updated.
4348
4349 Mon Sep 22 17:33:12 CEST 2008 Paolo Molaro <lupus@ximian.com>
4350
4351         * domain.c, monitor.c, boehm-gc.c, gc.c: update some of the GC and
4352         loader-related counters.
4353
4354 Mon Sep 22 17:29:54 CEST 2008 Paolo Molaro <lupus@ximian.com>
4355
4356         * mono-perfcounters-def.h, mono-perfcounters.c, class-internals.h:
4357         added more MS-compatible counters.
4358
4359 2008-09-22  Zoltan Varga  <vargaz@gmail.com>
4360
4361         * class.c (mono_class_setup_fields): Call setup_fields before accessing
4362         class->blittable. Fixes #428217.
4363
4364 2008-09-21  Zoltan Varga  <vargaz@gmail.com>
4365
4366         * reflection.c (mono_image_get_field_on_inst_token): Call 
4367         field_encode_signature () since that handles custom modifiers too.
4368         Fixes #424663.
4369
4370 2008-09-20  Zoltan Varga  <vargaz@gmail.com>
4371
4372         * reflection.c (add_custom_modifiers): New helper function to merge custom
4373         modifiers stored in objects to a MonoType.
4374         (fieldref_encode_signature): Encode custom modifiers.
4375         (mono_image_get_generic_field_token): Call add_custom_modifiers ().
4376         (fieldbuilder_to_mono_class_field): Ditto. Fixes #424663.
4377
4378 2008-09-19  KornĂ©l PĂ¡l  <kornelpal@gmail.com>
4379
4380         * coree.c (_CorValidateImage): Some 64-bit IL only images have entry point
4381         calling _CorDllMain imported from mscoree.dll. Set entry point RVA to 0 for
4382         64-bit IL only images because imports are not resolved for IL only images.
4383         Special thanks to Bill Holmes for finding this bug and testing the patch.
4384         Also fail for 64-bit images marked as CLI_FLAGS_32BITREQUIRED.
4385
4386         Contributed under MIT/X11 license.
4387
4388 2008-09-19  Miguel de Icaza  <miguel@novell.com>
4389
4390         * mono-config.c (dllmap_start): Add support for the bits keyword
4391         on dllentry and dllmap to easily detect 32 vs 64 bit systems.
4392
4393 2008-09-19  Mark Probst  <mark.probst@gmail.com>
4394
4395         * reflection.c (inflate_mono_method): When the class the method is
4396         to be inflated for is itself not inflated, just return the method.
4397
4398 Fri Sep 19 11:51:36 CEST 2008 Paolo Molaro <lupus@ximian.com>
4399
4400         * mono-perfcounters.c: use more user friendly process instance names.
4401
4402 2008-09-18  Bill Holmes  <billholmes54@gmail.com>
4403
4404         * marshal.c (emit_marshal_variant) : Change the attribute checks to 
4405           handle "[in] ref" and "[in][out] ref" cases.
4406
4407         * marshal.c (cominterop_get_ccw) : The wrong signature was being passed
4408           to mono_mb_create_method.  This was causing problems calling native to
4409           managed passing Variants by value.
4410
4411         Code is contributed under MIT/X11 license.
4412
4413 2008-09-18  Zoltan Varga  <vargaz@gmail.com>
4414
4415         * class.c (can_access_internals): Call mono_assembly_load_friends ()
4416         before accessing the friend_assembly_names field.
4417
4418         * assembly.c (mono_assembly_load_friends): Make this callable multiple
4419         times.
4420         (mono_assembly_load_from_full): Avoid calling load_friends (), it is
4421         called lazily when it is needed.
4422
4423         * metadata-internals.h (struct _MonoAssembly): Add 
4424         'friend_assembly_names_inited' flag.
4425
4426 Thu Sep 18 18:18:47 CEST 2008 Paolo Molaro <lupus@ximian.com>
4427
4428         * mono-perfcounters-def.h: fix the types of a few counters.
4429         * mono-perfcounters.c: implemented the instance names getter
4430         and a few bugfixes.
4431
4432 2008-09-18  Atsushi Enomoot  <atsushi@ximian.com>
4433
4434         * culture-info-table.h : regenerated.
4435
4436 2008-09-17  Robert Jordan  <robertj@gmx.net>
4437
4438         * marshal.c (mono_marshal_get_ldflda_wrapper): Add support for
4439         context bound objects. Fixes #415577.
4440
4441         Code is contributed under MIT/X11 license.
4442
4443 Tue Sep 16 21:03:58 CEST 2008 Paolo Molaro <lupus@ximian.com>
4444
4445         * icall-def.h, threads-types.h, threads.c: fixed SpinWait()
4446         implementation (bug #423582).
4447
4448 2008-09-16  Zoltan Varga  <vargaz@gmail.com>
4449
4450         * object.c (mono_object_get_virtual_method): Handle the case method->slot
4451         is not set. Fixes #426309.
4452
4453 2008-09-16  Jb Evain  <jbevain@novell.com>
4454
4455         * class.c (mono_class_from_name): fix the exported type look up
4456         when the type is defined in a referenced assembly.
4457
4458 2008-09-16  Jb Evain  <jbevain@novell.com>
4459
4460         * reflection.c (mono_image_fill_export_table_from_type_forwarders):
4461         increment the next index counter on each iteration to make that work
4462         for more than one type forwarder. Unmanaged part to fix #422929.
4463
4464 2008-09-15  Mark Probst  <mark.probst@gmail.com>
4465
4466         * object-internals.h: enum ComInterfaceType in
4467         MonoInterfaceTypeAttribute is guint32, not guint16.
4468
4469 2008-09-12  Mark Probst  <mark.probst@gmail.com>
4470
4471         * cil-coff.h, image.c, reflection.c: Endianness fixes in image
4472         writing code.
4473
4474 2008-09-11  Mark Probst  <mark.probst@gmail.com>
4475
4476         * icall.c: Boolean arguments to a runtime invoke are MonoBoolean,
4477         not gboolean.
4478
4479 2008-09-11  Mark Probst  <mark.probst@gmail.com>
4480
4481         * debug-mono-symfile.c (mono_debug_symfile_lookup_location):
4482         Endianness fixes for MonoSymbolFileOffsetTable.
4483
4484 2008-09-10  Bill Holmes  <billholmes54@gmail.com>
4485
4486         * process.c (complete_path) : Removing quotes from the 
4487           input path.  The glib file routines do not handle file paths
4488           that have quotes around them.
4489
4490         Code is contributed under MIT/X11 license.
4491
4492 2008-09-10  Bill Holmes  <billholmes54@gmail.com>
4493
4494         * socket-io.h : Adding a comment to provide locations where 
4495           changes to MonoSocketAsyncResult need to be synced.
4496
4497         Code is contributed under MIT/X11 license.
4498
4499 2008-09-10  Zoltan Varga  <vargaz@gmail.com>
4500
4501         * marshal.c (emit_marshal_custom): Call NativeToManaged for non-out 
4502         parameters as well. Fixes #425001.
4503
4504 2008-09-08  Miguel de Icaza  <miguel@novell.com>
4505
4506         * console-io.c (ves_icall_System_ConsoleDriver_TtySetup): Fix
4507         windows build.
4508
4509 2008-09-07  Miguel de Icaza  <miguel@novell.com>
4510
4511         * console-io.c: Add support for tracking the window size if it
4512         changes.
4513
4514         The setup is very simple: the TtySetup function will now return a
4515         pointer to a location in memory that tracks the current console
4516         size.  The managed code checks its current value every time its
4517         queried against the last value set, and updates accordingly.
4518
4519         With this setup we can work with multiple consoles, and we do not
4520         require to poke into managed code from a signal handler.
4521
4522         Additionally, the environment for COLUMNS and LINES is now handled
4523         in unmanaged code.
4524
4525         (ves_icall_System_ConsoleDriver_GetTtySize): This is now gone.
4526
4527 2008-09-07  Mark Probst  <mark.probst@gmail.com>
4528
4529         * marshal.c (mono_type_native_stack_size): Treat
4530         MONO_TYPE_TYPEDBYREF like MONO_TYPE_VALUETYPE.
4531
4532 2008-09-04  Jb Evain  <jbevain@novell.com>
4533
4534         * class.c (mono_class_is_assignable_from): fix assignability of nullables
4535         to nullables.
4536
4537 2008-09-03 Rodrigo Kumpera  <rkumpera@novell.com>
4538
4539         * verify.c (verify_type_compatibility_full): Revert change
4540         to allow converting a native int to unmanaged pointer be verifiable
4541         under non-strict mode.
4542         It turns out that "(IntPtr)null" is indeed unverifiable, go figure.
4543
4544         * verify.c: Added some TODOs.
4545
4546 2008-09-02  Bill Holmes  <billholmes54@gmail.com>
4547
4548         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi,
4549           ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni) :
4550           Changed to use GlobalAlloc for the memory returned on Windows platforms.
4551
4552         Code is contributed under MIT/X11 license.
4553
4554 2008-09-02  Jb Evain  <jbevain@novell.com>
4555
4556         * object.c (mono_ldstr_metdata_sig): renamed to mono_ldstr_metadata_sig.
4557
4558 2008-09-02 Rodrigo Kumpera  <rkumpera@novell.com>
4559
4560         reflection.c (typebuilder_setup_fields): Handle classes with
4561         explicit size.
4562
4563 2008-09-01 Rodrigo Kumpera  <rkumpera@novell.com>
4564
4565         class.c (mono_class_setup_events): Add memory barrier due to
4566         double checked locking.
4567         
4568         class.c (mono_class_setup_properties): Same.
4569
4570 2008-08-31  Zoltan Varga  <vargaz@gmail.com>
4571
4572         * class.c (mono_class_is_assignable_from): Fix the build.
4573         
4574         * class.c (mono_class_is_assignable_from): Call mono_class_setup_vtable ()
4575         before accessing klass->interface_bitmap. Fixes #421744.
4576
4577 2008-08-28  Zoltan Varga  <vargaz@gmail.com>
4578
4579         * appdomain.c (mono_runtime_set_no_exec): New internal function setting
4580         the runtime into no-exec mode, useful when running the AOT compiler.
4581
4582         * appdomain.c gc.c object.c: Avoid executing managed code when running
4583         in no-exec mode.
4584         
4585         * rawbuffer.c (mono_raw_buffer_load_mmap): Disable this on the iphone.
4586
4587         * reflection.c (_mono_reflection_get_type_from_info): Handle the 
4588         special case when the mono_assembly_loaded () returns NULL because the 
4589         search hook is not installed.
4590
4591 2008-08-25  Zoltan Varga  <vargaz@gmail.com>
4592
4593         * marshal.c: Applied patch from tom hindle (tom_hindle@sil.org) to fix
4594         crashes in bstr marshalling on linux.
4595
4596 2008-08-24  Zoltan Varga  <vargaz@gmail.com>
4597
4598         * debug-helpers.c (mono_type_get_desc): Fix printing of generic instances
4599         with more than one parameter.
4600
4601 2008-08-24  Miguel de Icaza  <miguel@novell.com>
4602
4603         * console-io.c (ves_icall_System_ConsoleDriver_TtySetup): Disable
4604         start/stop flow control as well when turning off ICANON (allows
4605         C-s and C-q to be read by Console.ReadKey).
4606
4607 2008-08-24  Zoltan Varga  <vargaz@gmail.com>
4608
4609         * class.c (mono_class_init): Move the initialization of nested classes
4610         into mono_class_get_nested_types (). Fixes #418433.
4611
4612         * class-internals.h (struct _MonoClass): Add a new 'nested_classes_inited'
4613         flag.
4614
4615         * class.c reflection.c icall.c: Use mono_class_get_nested_types () for 
4616         iterating tough the nested classes of a class.
4617
4618 2008-08-23  Zoltan Varga  <vargaz@gmail.com>
4619
4620         * class.c (mono_class_generic_sharing_enabled): Enable generic sharing
4621         on arm.
4622
4623 2008-08-22  Miguel de Icaza  <miguel@novell.com>
4624
4625         * console-io.c (sigcont_handler): Support signal chaining for
4626         SIGCONT.
4627
4628         (console_set_signal_handlers): Use best practices with sigaction,
4629         clear the structure before using it. 
4630
4631 2008-08-22  Robert Jordan  <robertj@gmx.net>
4632
4633         * console-io.c (ves_icall_System_ConsoleDriver_TtySetup):
4634         Fix the Windows build.
4635
4636 2008-08-22  Zoltan Varga  <vargaz@gmail.com>
4637
4638         * class.c (mono_class_generic_sharing_enabled): Make the default
4639         sharing mode 'corlib'.
4640
4641 2008-08-21  Zoltan Varga  <vargaz@gmail.com>
4642
4643         * console-io.c (console_set_signal_handlers): Fix a warning.
4644
4645         * marshal.c (mono_marshal_get_synchronized_wrapper): Call the wrapper
4646         method normally, the JIT will take care of avoiding recursion.
4647
4648 2008-08-20  Bill Holmes  <billholmes54@gmail.com>
4649
4650         * console-io.c : Fixing builds for platforms that do not have <termios.h>.
4651
4652         Code is contributed under MIT/X11 license.
4653
4654 2008-08-20  Miguel de Icaza  <miguel@novell.com>
4655
4656         * console-io.c (sigcont_handler): We need to restore the entire
4657         termios state, not only the original settings, as things like echo
4658         can be controlled after this (Booish exposes this issue with its
4659         own ReadLine implementation).
4660
4661         Additionally, we need to set the terminal back into keypad_xmit
4662         mode.
4663         
4664         (ves_icall_System_ConsoleDriver_TtySetup): Take the keypad xmit
4665         string as a paramter as well.   Otherwise we get different
4666         keyboard sequences.
4667
4668 2008-08-20  Zoltan Varga  <vargaz@gmail.com>
4669
4670         * marshal.c (emit_marshal_object): Avoid managed-to-native marshalling of
4671         delegates with byref out parameter passing. Fixes #351520.
4672
4673         * debug-helpers.c (mono_context_get_desc): New helper function to stringify
4674         a generic context.
4675         (mono_type_get_desc): Add the type arguments for GENERICINST.
4676         (mono_method_full_name): Stringify the class name using mono_type_full_name
4677         so it picks up generic arguments.
4678
4679 2008-08-19  Gert Driesen  <drieseng@users.sourceforge.net>
4680
4681         * console-io.c: Removed debug output.
4682
4683 2008-08-19 Rodrigo Kumpera  <rkumpera@novell.com>
4684
4685         reflection.c (mono_reflection_create_runtime_class): Alloc
4686         the nested classes linked list using the dynamic image mempool.
4687         Fixes leak in corlib compilation.
4688
4689 2008-08-19  Miguel de Icaza  <miguel@novell.com>
4690
4691         * console-io.c: Fix incredibly annoying behavior on the console
4692         after resuming execution after control-z.   This affected every
4693         console application.
4694
4695 2008-08-18 Rodrigo Kumpera  <rkumpera@novell.com>
4696
4697         * mempool-internals.h: Header for mono private mempool functions. The first
4698         two function are for allocating glib linked lists using pools.
4699
4700         * mempool.c: Added g_list_prepend_mempool and g_slist_prepend_mempool.
4701
4702         * Makefile.am: Added mempool-internals.h.
4703
4704 2008-08-16  Zoltan Varga  <vargaz@gmail.com>
4705
4706         * domain.c (mono_domain_create): Call the JIT domain hook if installed.
4707         (mono_domain_free): Ditto.
4708
4709         * domain-internals.h (struct _MonoDomain): Add 'runtime_info' field, this could
4710         be used by the JIT to store its domain-specific information, instead of putting
4711         it directly into MonoDomain.
4712
4713         * domain.c (mono_install_create_domain_hook): New helper function to install
4714         a hook which initializes domain->runtime_info.
4715
4716         * domain.c (mono_install_free_domain_hook): Ditto.
4717         
4718 2008-08-15  Zoltan Varga  <vargaz@gmail.com>
4719
4720         * marshal.c (mono_delegate_end_invoke): Raise an exception instead of
4721         asserting if the ares parameter is null.
4722
4723         * mono-perfcounters.c: Fix warnings.
4724
4725         * marshal.c (mono_marshal_get_delegate_begin_invoke): Don't set save_lmf, it
4726         is not needed, don't check for interruptions either.
4727         (mono_marshal_get_delegate_end_invoke): Ditto.
4728
4729 2008-08-15  Marek Habersack  <mhabersack@novell.com>
4730
4731         * mono-perfcounters.c (predef_readonly_counter): added support for
4732         reading the ASP.NET Requests Queued counter from another process.
4733
4734 2008-08-12  Zoltan Varga  <vargaz@gmail.com>
4735
4736         * metadata-internals.h: Move the 'aot_module' field from MonoAssembly to
4737         MonoImage to simplify the AOT code.
4738
4739 2008-08-10  Zoltan Varga  <vargaz@gmail.com>
4740
4741         * marshal.c (emit_marshal_object): Implement native-to-managed StringBuilder
4742         marshalling. Fixes #416078.
4743
4744 2008-08-08  Zoltan Varga  <vargaz@gmail.com>
4745         
4746         * marshal.c (mono_marshal_get_native_wrapper): Add an 'aot' argument, when
4747         it is set, looking up the icall address is deferred to the JIT, since 
4748         in embedded scenarios, the icall might not be registered in the runtime
4749         doing the AOT compilation. Backported from the 2.0 branch.
4750
4751 2008-08-08  Zoltan Varga  <vargaz@gmail.com>
4752
4753         * marshal.c (mono_remoting_wrapper): Handle nullable types correctly.
4754         Fixes #415621.
4755
4756 2008-08-05  Marek Habersack  <mhabersack@novell.com>
4757
4758         * Makefile.am: added support for cross-compilation.
4759
4760 2008-08-04  Zoltan Varga  <vargaz@gmail.com>
4761
4762         * socket-io.c (get_socket_assembly): Make 'moonlight' variable static.
4763
4764 Fri Aug 1 18:47:48 CEST 2008 Paolo Molaro <lupus@ximian.com>
4765
4766         * mono-perfcounters.c: jitted methods and jitted bytes counters.
4767
4768 Fri Aug 1 16:07:09 CEST 2008 Paolo Molaro <lupus@ximian.com>
4769
4770         * class-internals.h, icall-def.h, mono-perfcounters-def.h,
4771         mono-perfcounters.c: performance counters implementation.
4772
4773 2008-07-31  Zoltan Varga  <vargaz@gmail.com>
4774
4775         * metadata-internals.h (struct _MonoAssembly): Change the type of 'aot_module'
4776         to gpointer, letting the AOT code decide what to store in it.
4777
4778 2008-07-31  Bill Holmes  <billholmes54@gmail.com>
4779
4780         * marshal.c (cominterop_get_native_wrapper) : Adding a call to 
4781           mono_class_setup_methods if the methods are not initialized.
4782
4783         Code is contributed under MIT/X11 license.
4784
4785 2008-07-30 Rodrigo Kumpera  <rkumpera@novell.com>
4786
4787         * verify.c: Remove some debug code I commited by accident.
4788
4789         * verify.c (mono_method_is_valid_in_context): Change the return value
4790         to make possible to distinguish between invalid and unverifiable.
4791
4792         * verify.c (verifier_load_method): Don't return NULL for unverifiable
4793         methods.
4794
4795 2008-07-30 Rodrigo Kumpera  <rkumpera@novell.com>
4796
4797         * verify.c (mono_generic_param_is_constraint_compatible): Inflate type
4798         constraints. Fixes regression in gtest-253.
4799
4800 2008-07-30 Rodrigo Kumpera  <rkumpera@novell.com>
4801
4802         * verify.c (mono_verifier_verify_class): Don't allow generic types
4803         with explicit layout.
4804
4805         * verify.c (mono_method_verify): Check locals and argument types.
4806
4807 2008-07-29  Zoltan Varga  <vargaz@gmail.com>
4808
4809         * monitor.c (mono_monitor_try_enter_internal): Allow nterruption of the
4810         wait if the thread is in StopRequested state.
4811
4812         * class.c (mono_class_from_name): Refactor the module searching code into
4813         a separate function so it can be reused in the AOT case too.
4814
4815 2008-07-28 Rodrigo Kumpera  <rkumpera@novell.com>
4816
4817         * verify.c (mono_type_is_valid_in_context): Improve the error message.
4818         Check both the type and it's generic type definition for loader errors.
4819         
4820         * verify.c (mono_method_is_valid_in_context): Don't generate another
4821         error when a type errors occur, this leads to the wrong exception been
4822         thrown.
4823
4824 2008-07-28  Dick Porter  <dick@ximian.com>
4825
4826         * icall-def.h
4827         * process.c
4828         (ves_icall_System_Diagnostics_Process_ProcessHandle_duplicate):
4829         New internal calls to duplicate and close a process handle.
4830
4831 2008-07-27  Andreas Färber  <andreas.faerber@web.de>
4832
4833         * object.c (CHECK_ADD_OVERFLOW_UN): Add missing bracket. Fixes #412499.
4834
4835 2008-07-27  Zoltan Varga  <vargaz@gmail.com>
4836
4837         * appdomain.c (unload_thread_main): Attach the unload thread to the runtime.
4838
4839 2008-07-27  Robert Jordan  <robertj@gmx.net>
4840
4841         * class.c (mono_class_init): Don't compute class.has_finalize for
4842         valuetypes. Fixes #412477.
4843
4844 2008-07-25 Rodrigo Kumpera  <rkumpera@novell.com>
4845
4846         * verify.c: Implement constraint equivalence checking.
4847         This is required when a generic parameter is used as
4848         argument to a constrained one.
4849
4850         Fixes #410637.
4851
4852 2008-07-24  Zoltan Varga  <vargaz@gmail.com>
4853
4854         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4855
4856         * domain-internals.h (struct _MonoDomain): Add 'method_code_hash' field.
4857
4858         * object-internals.h (struct _MonoDelegate): Add 'method_code' field,
4859         synch with managed object layout.
4860
4861 2008-07-24 Rodrigo Kumpera  <rkumpera@novell.com>
4862
4863         * verify.c (do_branch_op): Handle valuetypes and generic
4864         arguments properly.
4865
4866         * verify.c (do_cmp_op): Same.
4867
4868         Fixes #410383.
4869
4870 2008-07-24  Mark Probst  <mark.probst@gmail.com>
4871
4872         * generic-sharing.c: Fix memory leaks.
4873
4874         * class.c, class-internals.h: Make
4875         mono_class_inflate_generic_type_with_mempool() non-static.
4876
4877 2008-07-24 Rodrigo Kumpera  <rkumpera@novell.com>
4878
4879         * pedump.c (dump_verify_info): Dump full class name.
4880
4881 2008-07-24  Mark Probst  <mark.probst@gmail.com>
4882
4883         * generic-sharing.c: Removed some old code that didn't do anything.
4884
4885 2008-07-24  Massimiliano Mantione  <massi@ximian.com>
4886         * profiler.c: Added runtime_initialized_event,
4887         mono_profiler_install_runtime_initialized and
4888         mono_profiler_runtime_initialized. This new hook tells the profiler
4889         when the runtime is sufficiently initialized to be able to call
4890         mono_thread_attach on the root appdomain.
4891         * profiler.h, profiler-private.h: Likewise.
4892
4893 2008-07-23 Rodrigo Kumpera  <rkumpera@novell.com>
4894
4895         * verify.c (do_cast): Do boxing for generic arguments as well.
4896
4897         * class.c (is_nesting_type): Drop generic instantiations before
4898         checking for nesting.
4899
4900         * class.c (can_access_instantiation): Allow access to generic
4901         arguments.
4902
4903 2008-07-23 Rodrigo Kumpera  <rkumpera@novell.com>
4904
4905         * verify.c (verify_class_for_overlapping_reference_fields):
4906         On some cases, the field size might be zero, guard against that.
4907         Fix the explicit layout check to work as expected.
4908
4909 2008-07-23  Zoltan Varga  <vargaz@gmail.com>
4910
4911         * threads.c (ves_icall_System_Threading_Thread_Abort): Avoid calling 
4912         mono_thread_resume () during shutdown, since the thread we want to abort
4913         might be suspended.
4914
4915 2008-07-22  Zoltan Varga  <vargaz@gmail.com>
4916
4917         * mono-debug-debugger.c (mono_debugger_check_breakpoints): Fix a 
4918         warning.
4919
4920         * debug-mono-symfile.c: Fix a warning.
4921
4922         * mono-perfcounters.c (get_cpu_times): Fix a warning.
4923
4924         * object.c (mono_class_vtable): Check if exception_type is set, and return
4925         NULL as defined by the function comments.
4926
4927 2008-07-22  Mark Probst  <mark.probst@gmail.com>
4928
4929         * mempool.c: Use malloc for every single mempool allocation if the
4930         configure option is set.  This makes it easier to track mempool
4931         allocations with tools like Valgrind.
4932
4933 2008-07-22  Jb Evain  <jbevain@novell.com>
4934
4935         * reflection.c (create_dynamic_mono_image): emit the same
4936         metadata version that SL2 does when creating a SL2 image.
4937
4938 2008-07-21 Rodrigo Kumpera  <rkumpera@novell.com>
4939
4940         * icall-def.h:
4941         * icall.c: New icall System.Enum:get_hashcode. This function
4942         avoids the overhead of boxing the enum to the underlying type.
4943
4944 2008-07-21  Mark Probst  <mark.probst@gmail.com>
4945
4946         * reflection.c (mono_method_get_object): Don't let static RGCTX
4947         invoke wrappers get into MonoReflectionMethods.
4948
4949 2008-07-17 Rodrigo Kumpera  <rkumpera@novell.com>
4950
4951         * object-internals.h:
4952         * object.c: New mono_runtime_class_init_full function
4953         that makes throwing the exception optinal.
4954
4955         * class-internals.h: New exception type MONO_EXCEPTION_OBJECT_SUPPLIED
4956         for the case where the exception object is supplied.
4957
4958 2008-07-16  KornĂ©l PĂ¡l  <kornelpal@gmail.com>
4959
4960         * coree.h: Define __ImageBase as _image_base__ on cygwin that fixes build with
4961         old ld versions.
4962
4963         Contributed under MIT/X11 license.
4964
4965 2008-07-16 Rodrigo Kumpera  <rkumpera@novell.com>
4966
4967         * string-icalls.c (ves_icall_System_String_InternalSplit):
4968         Optimize array allocation by caching the MonoClass of the
4969         array type.
4970
4971         * icall.c (ves_icall_Type_GetMethodsByName): Same.
4972
4973         * reflection.c (mono_param_get_objects): Same.
4974
4975 2008-07-16 Rodrigo Kumpera  <rkumpera@novell.com>
4976
4977         * icall-def.h:
4978         * icall.c: New ves_icall_MonoGenericClass_InflateType icall.
4979         It inflates the given type using the class context.
4980
4981 2008-07-15 Rodrigo Kumpera  <rkumpera@novell.com>
4982
4983         * object.c (mono_class_try_get_vtable): New function. Tries to fetch
4984         the vtable if it already exists.
4985
4986         * object-internals.h: Add mono_class_try_get_vtable as part of the
4987         internal API.
4988
4989         * reflection.c (mono_type_get_object): Use the MonoObject from the
4990         vtable when possible. Reduces locking contention on reflection heavy
4991         code.
4992
4993 2008-07-15  Zoltan Varga  <vargaz@gmail.com>
4994
4995         * decimal.c (my_g_bit_nth_msf): Implement this directly without calling
4996         g_bit_nth_msf () since that macro is not implemented in eglib.
4997
4998 2008-07-13  Zoltan Varga  <vargaz@gmail.com>
4999
5000         * class.c (mono_class_generic_sharing_enabled): Always disable generic sharing
5001         on platforms which do not support it.
5002
5003 2008-07-12  Zoltan Varga  <vargaz@gmail.com>
5004
5005         * marshal.c (mono_signature_to_name): Encode sig->hasthis as well.
5006
5007 2008-07-11  Martin Baulig  <martin@ximian.com>
5008
5009         * mono-debug-debugger.h
5010         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_INTERRUPTION_REQUEST'.
5011
5012         * mono-debug-debugger.c
5013         (_mono_debugger_interruption_request): New global volatile variable.
5014         (mono_debugger_check_interruption): New public function.
5015
5016         * threads.c
5017         (mono_thread_current_check_pending_interrupt): Call
5018         mono_debugger_check_interruption().
5019         (mono_thread_interruption_checkpoint_request): Likewise.
5020
5021 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
5022
5023         * verify.c: Add more type checks for loaded types. Verify the result
5024         handle from ldtoken.
5025
5026 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
5027
5028         * loader.c (field_from_memberref): Don't crash if the field
5029         wasn't found.
5030
5031 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
5032
5033         * verify.c: Verify if type and method instantiations
5034         don't have invalid VAR or MVAR arguments.
5035
5036 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
5037
5038         * verify.c: Fix double free of function pointer list.
5039
5040 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
5041
5042         * object.c (mono_string_to_utf8): Comment the new code as it
5043         breaks under eglib.
5044
5045 2008-07-08 Rodrigo Kumpera  <rkumpera@novell.com>
5046
5047         * object.c (mono_string_to_utf8): Avoid allocating a temp array.
5048
5049 2008-07-07  Bill Holmes  <billholmes54@gmail.com>
5050
5051         * threads.c : Thread.Interrupt changes to ensure that ThreadInterruptedException
5052           is not throw too many times.
5053
5054         Code is contributed under MIT/X11 license.
5055
5056 2008-07-07  Zoltan Varga  <vargaz@gmail.com>
5057
5058         * mono-debug.c (mono_debug_find_method): Allow this to be called even when
5059         debugging is turned off.
5060
5061 2008-07-06  Zoltan Varga  <vargaz@gmail.com>
5062
5063         * generic-sharing.c (mono_method_lookup_rgctx): Fix a warning.
5064
5065 2008-07-04  Mark Probst  <mark.probst@gmail.com>
5066
5067         * class-internals.h, class.c: Added new generic sharing option:
5068         Share only stuff in System.Collections.Generic, which is now the
5069         default.
5070
5071 2008-07-04  Mark Probst  <mark.probst@gmail.com>
5072
5073         * generic-sharing.c, class-internals.h: New function for getting a
5074         generic method in a generic class given the corresponding method
5075         for a different instantiation of the class.  Partly refactored
5076         from mini-trampolines.c.
5077
5078         * class.c: Make sure generic methods have a class_inst if they are
5079         part of a generic class.
5080
5081         * metadata.c (mono_type_stack_size_internal): Handle type
5082         variables.
5083
5084 2008-07-04  Mark Probst  <mark.probst@gmail.com>
5085
5086         * domain-internals.h: New field (has_this) in MonoGenericJitInfo.
5087         Signifies whether information on the this/vtable/mrgctx variable
5088         is available.
5089
5090 2008-07-04  Mark Probst  <mark.probst@gmail.com>
5091
5092         * object.c, object-internals.h, icall.c: New function
5093         mono_delegate_ctor_with_method(), which does the same as
5094         mono_delegate_ctor(), but takes an explicit method argument
5095         instead of taking the method from the jit info.
5096
5097         * marshal.c: When creating a delegate with an inflated method take
5098         the "this" argument as the target class for the castclass.
5099
5100 2008-07-03  Mark Probst  <mark.probst@gmail.com>
5101
5102         * domain.c (mono_jit_info_table_find): Fixed a bug that caused
5103         mono_jit_info_table_find() to perform very badly in some cases.
5104
5105 2008-07-02  Zoltan Varga  <vargaz@gmail.com>
5106
5107         * icall.c (type_from_typename): Handle 'string'.
5108
5109         * marshal.c (mono_marshal_get_runtime_invoke): Don't insert runtime invoke
5110         wrappers into the wrapper_hash, since the key is not a MonoMethod.
5111
5112 2008-07-01  Zoltan Varga  <vargaz@gmail.com>
5113
5114         * icall.c (mono_get_jit_icall_info): New function to return the jit icall hash table.
5115
5116         * *-gc.c (mono_gc_get_managed_allocator_types): New function to return the
5117         number of available managed allocator types.
5118
5119         * marshal.c (mono_marshal_init): Register Thread:ResetAbort as an icall ().
5120         (mono_marshal_get_runtime_invoke): Call ResetAbort as an icall.
5121
5122 2008-06-30  Zoltan Varga  <vargaz@gmail.com>
5123
5124         * domain-internals.h (struct _MonoDomain): Add 'jit_code_hash_lock' field,
5125         which is a low level lock protecting just the 'jit_code_hash' hash table.
5126
5127         * domain.c: Initialize+cleanup jit_code_hash_lock.
5128         
5129 2008-06-30  KornĂ©l PĂ¡l  <kornelpal@gmail.com>
5130
5131         * coree.c (mono_load_coree): Set coree_module_handle global variable only
5132         after initialization.
5133
5134         * coree.h: Make MonoFixupExe internal.
5135
5136         Contributed under MIT/X11 license.
5137
5138 2008-06-30  KornĂ©l PĂ¡l  <kornelpal@gmail.com>
5139
5140         * coree.c (_CorValidateImage): Retain IMAGE_DIRECTORY_ENTRY_SECURITY
5141         because that is platform independent. Check NumberOfRvaAndSizes in PE32
5142         as well.
5143         (MonoLoadImage): New wrapper function around LoadLibrary to ensure that the
5144         image being loaded is a CLI image and _CorValidateImage gets called.
5145
5146         * coree.h: Add MonoLoadImage.
5147
5148         * image.c (mono_image_open_full): Load CLI images using MonoLoadImage
5149         instead of LoadLibrary.
5150
5151         Contributed under MIT/X11 license.
5152
5153 2008-06-29 Rodrigo Kumpera  <rkumpera@novell.com>
5154
5155         * icall.c (ves_icall_System_ValueType_Equals): Avoid allocating objects
5156         for any primitive type.
5157
5158 2008-06-29  Zoltan Varga  <vargaz@gmail.com>
5159
5160         * object.c (mono_array_new_specific): Optimize this and the other allocation
5161         functions a bit.
5162         
5163         * object.c (mono_class_create_runtime_vtable): Use typed allocation in other
5164         domains too if mono_dont_free_domains is set.
5165
5166         * domain-internals.h (mono_dont_free_domains): New internal option controlling
5167         whenever to free appdomain data after it has been unloaded.
5168
5169         * domain.c (mono_domain_free): Don't free appdomain data if the option is set.
5170         
5171 2008-06-28  Zoltan Varga  <vargaz@gmail.com>
5172
5173         * icall.c (ves_icall_System_Enum_get_underlying_type): New icall.
5174         (mono_method_get_equivalent_method): Fix a warning.
5175
5176         * object.c (mono_message_init): Avoid looking up array types for each call.
5177
5178 2008-06-27  Zoltan Varga  <vargaz@gmail.com>
5179
5180         * object.c (mono_message_invoke): Avoid looking up the object[] type for each
5181         call.
5182
5183         * icall.c (ves_icall_System_ValueType_Equals): Optimize the comparison of enums
5184         even more.
5185
5186         * class.c (mono_class_get_fields): Avoid calling setup_fields_locking () for
5187         each iteration.
5188
5189         * icall.c (ves_icall_System_ValueType_Equals): Avoid traversing all the static
5190         fields of an enum.
5191
5192 2008-06-26 Rodrigo Kumpera  <rkumpera@novell.com>
5193
5194         * object.c (mono_value_box): Fix boxing of nullables.
5195
5196 2008-06-26  KornĂ©l PĂ¡l  <kornelpal@gmail.com>
5197
5198         * assembly.c (mono_set_rootdir): Use __ImageBase instead of
5199         mono_module_handle that is defined by the linker; no initialization required.
5200         * coree.h: Remove mono_module_handle, add __ImageBase, update
5201         mono_image_open_from_module_handle.
5202         * coree.c (_CorValidateImage): Convert platform independent PE32 images to
5203         PE32+ on 64-bit Windows that makes the OS able to load CIL images as modules.
5204         (MonoFixupCorEE): Export Address Table RVAs are 32-bit unsigned integers so
5205         memory has to be allocated for trampolines (x64) or procedure labels (IA64) up
5206         to 4 GB away from image base address. IA64 version is not tested but was very
5207         easy to implement and should work if we ever need it.
5208         * domain.c (mono_init_internal): Avoid system error message boxes.
5209         * image.c (mono_image_open_from_module_handle): Replace ref_count argument
5210         with has_entry_point. Handle do_mono_image_load fauilre correctly.
5211         (mono_image_open_full, mono_image_close): Use has_entry_point instead of
5212         coff_attributes that is a more reliable way to detect if _CorDllMain was called.
5213         * metadata-internals.h: Add has_entry_point to _MonoImage on Windows.
5214
5215         Contributed under MIT/X11 license.
5216
5217 2008-06-25 Rodrigo Kumpera  <rkumpera@novell.com>
5218
5219         * class.c, class-internals.h: Export mono_class_get_generic_type_definition
5220         as part of the private mono API.
5221         
5222         * loader.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandleInternalType):
5223         Do proper argument checking for methods that belong to generic classes.
5224         Do proper type resolution for GMFH/2.
5225         Fixes #377324.
5226         
5227 2008-06-25 Rodrigo Kumpera  <rkumpera@novell.com>
5228
5229         * verify.c (do_switch): Fix a memory corruption bug with
5230         the jump index is out of bound.
5231
5232 2008-06-25 Rodrigo Kumpera  <rkumpera@novell.com>
5233
5234         * verify.c: Disable debug code.
5235
5236 2008-06-25 Rodrigo Kumpera  <rkumpera@novell.com>
5237
5238         * reflection.c (mono_image_get_methodbuilder_token): Use
5239         mono_image_get_methodspec_token_for_generic_method_definition
5240         instead of mono_image_get_memberref_token. We cache more memberef
5241         entries now.
5242
5243 2008-06-24 Rodrigo Kumpera  <rkumpera@novell.com>
5244
5245         * verify.c: Inflate exception clause types.
5246         Fixes #402606.
5247         
5248 2008-06-24 Rodrigo Kumpera  <rkumpera@novell.com>
5249
5250         * reflection.c (mono_image_get_methodbuilder_token): Don't leak
5251         name.
5252
5253         * reflection.c (mono_image_get_ctorbuilder_token): Same.
5254
5255         * reflection.c (mono_image_create_method_token): Same.
5256
5257 2008-06-24 Rodrigo Kumpera  <rkumpera@novell.com>
5258
5259         * reflection.c: Added mono_image_get_methodref_token_for_methodbuilder.
5260         It does the same as mono_image_get_methodref_token but works on
5261         MethodBuilder.
5262
5263         * reflection.c: Use mono_image_get_methodspec_token_for_generic_method_definition
5264         and always generate a methodspec. This follows the old behavior and fixes
5265         the regressions in System.Core. 
5266
5267 2008-06-24  Zoltan Varga  <vargaz@gmail.com>
5268
5269         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Collect exceptions for classes where 
5270         don't event mono_class_get () succeeds. Fixes #402182.
5271
5272 2008-06-20 Rodrigo Kumpera  <rkumpera@novell.com>
5273
5274         * metadata-internals.h: Added MonoDynamicImage::methodspec
5275         hashtable to store methodspec tokens created for MethodBuilders.
5276
5277         * reflection.c (mono_image_get_methodbuilder_token): Encode generic
5278         MethodBuilders as open instantiations if a methodspec was requested.
5279
5280         * reflection.c (fixup_method): Skip MethodBuilder with methodspec tokens.
5281
5282         * reflection.c (create_dynamic_mono_image): Create the methodspec hashtable.
5283
5284         * reflection.c (mono_dynamic_image_free): Release the methodspec hashtable.
5285
5286         Fixes bug #349190.
5287
5288 2008-06-20 Rodrigo Kumpera  <rkumpera@novell.com>
5289
5290         * loader.c (method_from_methodspec): Avoid crashing if the
5291         method lookup fails.
5292
5293 2008-06-20  Dick Porter  <dick@ximian.com>
5294
5295         * socket-io.c (get_socket_assembly): Cope with Moonlight network
5296         classes being in a different assembly.  Fixes bug 399184.
5297
5298 2008-06-20  Zoltan Varga  <vargaz@gmail.com>
5299
5300         * loader.c (mono_loader_init): Make this callable multiple times.
5301         (mono_dllmap_insert): Call mono_loader_init () so this works even before
5302         the runtime is initialized. Fixes #401755.
5303
5304 2008-06-19  Dick Porter  <dick@ximian.com>
5305
5306         * socket-io.c (convert_socketflags): Ignore SocketFlags.Partial.
5307         Fixes bug 349688.
5308
5309 2008-06-19  Dick Porter  <dick@ximian.com>
5310
5311         * socket-io.c:
5312         * icall-def.h: Implement Socket generic Send() and Receive()
5313         methods.  Fixes bug 395168.
5314
5315 2008-06-19  KornĂ©l PĂ¡l  <kornelpal@gmail.com>
5316
5317         * icall-def.h, icall.c: Add ves_icall_System_Reflection_Module_GetHINSTANCE.
5318
5319         Contributed under MIT/X11 license.
5320
5321 2008-06-18  Martin Baulig  <martin@ximian.com>
5322
5323         * mono-debug.h (MONO_DEBUGGER_VERSION): Split into
5324         `MONO_DEBUGGER_MAJOR_VERSION' and `MONO_DEBUGGER_MINOR_VERSION';
5325         set to 80.0.  The debugger <-> runtime interface is now frozen as
5326         well.   
5327
5328         * mono-debug.c
5329         (mono_debug_debugger_version): Bump to 4.
5330
5331 2008-06-18  Martin Baulig  <martin@ximian.com>
5332
5333         * debug-mono-symfile.c
5334         (load_symfile): Don't check the minor version.
5335
5336         * debug-mono-symfile.h: Bump the version number to 50.0.
5337
5338 2008-06-18  Martin Baulig  <martin@ximian.com>
5339
5340         * debug-mono-symfile.c
5341         (load_symfile): Treat `MONO_SYMBOL_FILE_MINOR_VERSION' as a
5342         minimum required version.
5343
5344 2008-06-17 Rodrigo Kumpera  <rkumpera@novell.com>
5345
5346         * reflection.c (mono_custom_attrs_from_property): Fix support for
5347         retriveving cattrs of dynamic inflated generic types.
5348
5349         * reflection.c (mono_custom_attrs_from_event): Same.
5350
5351         * reflection.c (mono_custom_attrs_from_field): Same;
5352
5353         * reflection.c (typebuilder_setup_events): Same cattrs of events.
5354
5355         * loader.c (-mono_metadata_get_corresponding_field_from_generic_type_definition):
5356         Moved to metadata.c.
5357
5358         * metadata.c: New functions to retrive the equivalent field, event
5359         of property from the generic type definition.
5360
5361         * metadata-internals.h: Added new functions from metadata.c.
5362
5363 2008-06-17 Rodrigo Kumpera  <rkumpera@novell.com>
5364
5365         * reflection.c (mono_custom_attrs_from_builders): Mark MonoCustomAttrInfo
5366         to cached in a mempool is used.
5367
5368         * metadata.c (free_generic_class): In some situations field generic_info type
5369         is not properly dup'ed and leads to double free'ing.
5370
5371         Fixes #400643.
5372
5373 2008-06-17  Mark Probst  <mark.probst@gmail.com>
5374
5375         * marshal.c (mono_marshal_get_static_rgctx_invoke): Also handle
5376         this arguments (will be needed later for generic methods).
5377         Collect stats.
5378
5379 2008-06-17  Mark Probst  <mark.probst@gmail.com>
5380
5381         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal):
5382         Create a static RGCTX invoke wrapper for methods which require it.
5383
5384 2008-06-17  Mark Probst  <mark.probst@gmail.com>
5385
5386         * object.c, class-internals.h: New function for checking whether
5387         an individual field is special static.
5388
5389 2008-06-15  Zoltan Varga  <vargaz@gmail.com>
5390
5391         * metadata.c (mono_metadata_get_generic_param_row): Use bsearch instead of
5392         linear search since the table is sorted.
5393
5394         * gc.c (mono_gc_cleanup): Abort the finalizer thread more gracefully.
5395         Fixes #324180.
5396
5397 2008-06-14  Zoltan Varga  <vargaz@gmail.com>
5398
5399         * appdomain.c (unload_thread_main): Applied patch from Tim Howard 
5400         (timh@ict.om.org). Remove the timeouts when waiting for appdomains to unload.
5401
5402         * gc.c (mono_domain_finalize): Allow an infinite timeout.
5403
5404         * threads.c (mono_threads_abort_appdomain_threads): Ditto.
5405         
5406         * threads.c (mono_thread_request_interruption): Get rid of locking, use
5407         InterlockedCompareExchange to query and modify 
5408         thread->interruption_requested.
5409
5410         * object-internals.h (struct _MonoThread): Change interruption_requested
5411         to a gint32 so it can be modified by atomic operations. Add 
5412         'critical_region_level' from the managed side, change small_id to a guint32,
5413         add new set of 'unused' fields.
5414
5415         * appdomain.c: Bump corlib version.
5416
5417 2008-06-13  Zoltan Varga  <vargaz@gmail.com>
5418
5419         * class.c (mono_class_from_name): Search modules as well. Fixes
5420         #322332.
5421
5422 2008-06-13  Mark Probst  <mark.probst@gmail.com>
5423
5424         * generic-sharing.c: Code for maintaining the MRGCTX and MRGCTX
5425         templates.  Templates are generalized with an additional type_argc
5426         argument.  RGCTX templates have type_argc==0, MRGCTX templates
5427         have type_argc>0.
5428
5429         * domain-internals.h, domain.c: New hash table for looking up
5430         MRGCTXs.
5431
5432         * metadata.c, metadata-internals.h: Rename hash and equal
5433         functions for MonoGenericInst's and make them public.
5434
5435         * class-internals.h: New data structures for the MRGCTX.  Macros
5436         for distinguishing slots in the RGCTX and the MRGCTX.
5437
5438 2008-06-13  Mark Probst  <mark.probst@gmail.com>
5439
5440         * object.c (mono_method_get_imt_slot): Put the same methods of
5441         different instantiations of the same generic interface in the same
5442         IMT slots, to make generic sharing simpler.
5443
5444 2008-06-12 Rodrigo Kumpera  <rkumpera@novell.com>
5445
5446         * metadata-internals.h: Added mono_metadata_field_info_with_mempool.
5447
5448         * metadata.c (mono_metadata_field_info_with_mempool): Added.
5449         This function works just like mono_metadata_field_info, but
5450         accept a mempool as argument to be used allocating memory.
5451
5452         * marshal.c (mono_marshal_load_type_info): Use new function
5453         to load marshal data into image mempool.
5454
5455 2008-06-12 Rodrigo Kumpera  <rkumpera@novell.com>
5456
5457         * class.c (mono_class_inflate_generic_type_with_mempool):
5458         This function allows to inflate a generic type using
5459         a mempool.
5460
5461         * class.c (inflate_generic_type): Take a mempool as argument
5462         and use it to do type dup'ing.
5463
5464         * class.c (mono_class_setup_fields): Field type for generic
5465         generic classes are allocated from the image mempool.
5466
5467         * metadata.c (free_generic_class): Inflated field type is
5468         now allocated in the image mempool.
5469
5470 2008-06-12 Rodrigo Kumpera  <rkumpera@novell.com>
5471
5472         * threads.c (thread_cleanup): Free MonoThread::name.
5473
5474 2008-06-12  Marek Habersack  <mhabersack@novell.com>
5475
5476         * appdomain.c (ensure_directory_exists): avoid unnecessary
5477         mkdir(2) calls when the shadow directory already exists.
5478         (mono_make_shadow_copy): copy also satellite assemblies from the
5479         private bin directories.
5480
5481 2008-06-11  Zoltan Varga  <vargaz@gmail.com>
5482
5483         * threads.c (mono_thread_get_stack_bounds): Align the stack in all cases.
5484         
5485         * threads.c (mono_thread_get_stack_bounds): Align the stack address to
5486         a page boundary. Fixes #396219.
5487
5488 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
5489
5490         * marshal.c (mono_marshal_load_type_info): Add a memory barrier
5491         due to double-checked locking.
5492
5493 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
5494
5495         * assembly.c (build_assembly_name): Release memory on failure.
5496
5497         * assembly.c (mono_assembly_name_parse_full): Release memory on failure.
5498
5499 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
5500
5501         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Release
5502         memory on failure.
5503
5504 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
5505
5506         * icall.c (ves_icall_System_Reflection_AssemblyName_ParseName): Release
5507         memory on failure.
5508
5509 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
5510
5511         * loader.c (field_from_memberref): Check if field signature type is equal
5512         to the non-inflated type of the field. Fixes #398980.
5513
5514 2008-06-11  Zoltan Varga  <vargaz@gmail.com>
5515
5516         * assembly.c (mono_assembly_load_from_full): Call 
5517         mono_assembly_load_friends () outside the assemblies lock, since it can
5518         acquire the loader lock. Fixes #323696.
5519
5520         * reflection.c (resolve_object): Inflate the inst with the context for
5521         FieldOnTypeBuilderInst. Fixes #399010.
5522
5523 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
5524
5525         * reflection.c (mono_image_get_field_on_inst_token): Don't
5526         inflate the field to encode it's signature. If it's a
5527         VAR or MVAR it should stay that way in the signature.
5528         Fixes #399047.
5529
5530 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
5531
5532         * reflection.c (resolve_object): Release memory of inflated types.
5533
5534 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
5535
5536         * loader.c (mono_method_get_signature_full): Remove assert about
5537         loading a methodspec to a generic method. We have such methods, such as
5538         System.Threading.Interlocked::CompareExchange<T>.
5539         This assert was removed since it crashes the verifier when it checks
5540         methods calling CompareExchange<T>.
5541
5542 2008-06-10  Marek Safar  <marek.safar@gmail.com>
5543
5544         * icall.c (ves_icall_MonoMethod_GetGenericArguments): Creates an instance
5545         of Type array and not MonoType.
5546
5547 2008-06-10  Marek Habersack  <mhabersack@novell.com>
5548
5549         * profiler.c: fix a segfault on shutdown. Patch from Paolo Molaro
5550         <lupus@ximian.com>
5551
5552 2008-06-10  Martin Baulig  <martin@ximian.com>
5553
5554         * debug-mono-symfile.h
5555         (MONO_SYMBOL_FILE_MINOR_VERSION): Bump to 6.  There were no
5556         changes to the file format, but we were generating incorrect
5557         source file indices in the line number table due to a bug, which
5558         made backtraces report an incorrect source file.
5559
5560 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
5561
5562         * mono-debug.c: Moved mono_debug_free_method_jit_info from
5563         mini/debug-mini.c to here.
5564
5565         * mono-debug.c (il_offset_from_address): Free memory from find_method.
5566
5567         * mono-debug.h: Export mono_debug_free_method_jit_info, users should
5568         use it to release structs returned by mono_debug_find_method.
5569
5570 2008-06-10  Zoltan Varga  <vargaz@gmail.com>
5571
5572         * class.c (mono_class_setup_vtable): Call setup_methods even for interfaces
5573         since it needs to set method->slot for all interface methods.
5574
5575 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
5576
5577         * class-internals.h: Forgot to add.
5578
5579 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
5580
5581         * class-internals.h: Added MONO_PROP_DYNAMIC_CATTR.
5582
5583         * reflection.c (lookup_custom_attr): Added a MonoImage argument.
5584         Lookup the custom attributes from property_hash.
5585
5586         * reflection.c (mono_save_custom_attrs): Save the custom attributes
5587         in property_hash. Allocate all data using the image mempool.
5588
5589         * reflection.c: Removed dynamic_custom_attrs. Changed all checks
5590         for dynamic_custom_attrs to checks if the image is dynamic.
5591
5592 2008-06-09  Zoltan Varga  <vargaz@gmail.com>
5593
5594         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Free the
5595         assemblies array.
5596         
5597         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Avoid calling
5598         runtime functions while holding the domain assemblies lock.
5599
5600 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
5601
5602         * verify.c: Reapplied the last bit of the reverted changes.
5603
5604 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
5605
5606         * verify.c: Reapplied more of the reverted changes.
5607
5608 2008-06-09  Martin Baulig  <martin@ximian.com>
5609
5610         * debug-mono-symfile.c (load_symfile): Check the major version
5611         first; if it's wrong, don't print the minor version in the error message.
5612
5613 2008-06-09  Zoltan Varga  <vargaz@gmail.com>
5614
5615         * appdomain.c (set_domain_search_path): Make this use the domain assemblies
5616         lock instead of the domain lock to avoid deadlocks, since the thread might
5617         already hold the loader lock.
5618
5619         * threads.c (start_wrapper): Call mono_monitor_init_tls ().
5620         (mono_thread_attach): Ditto.
5621
5622         * monitor.c: Use a TLS variable for holding the current thread id instead
5623         of calling pthread_self ().
5624         (mono_monitor_init_tls): New internal function to initialize the TLS
5625         variable.
5626         (mono_monitor_try_enter_internal): Put the owner == id check after the
5627         owner == 0 check.
5628
5629         * object-internals.h (_G_BOOLEAN_EXPR): Redefine this glib macro to avoid
5630         missed optimizations when using gcc-4.3.
5631
5632 2008-06-08 Rodrigo Kumpera  <rkumpera@novell.com>
5633
5634         * reflection.c (mono_dynamic_image_free): Free the memory
5635         used by MonoGenericParam in MonoDynamicImage::gen_param.
5636
5637         * reflection.c (mono_reflection_setup_generic_class): Allocate
5638         container from mempool.
5639
5640         * reflection.c (mono_reflection_initialize_generic_parameter): Allocate
5641         container from mempool.
5642
5643 2008-06-07  Zoltan Varga  <vargaz@gmail.com>
5644
5645         * threads.c (mono_set_pending_exception): New internal function to set the
5646         pending exception of the current thread.
5647         (mono_thread_get_and_clear_pending_exception): Check for 
5648         thread->pending_exception as well.
5649
5650         * object-internals.h (struct _MonoThread): Add 'pending_exception' field.
5651
5652         * boehm-gc.c (mono_gc_base_init): Set GC_no_dls before calling GC_init () since
5653         it can trigger a collection.
5654
5655 2008-06-06  Martin Baulig  <martin@ximian.com>
5656
5657         Merged the `debugger-kahalo' branch.
5658
5659         * mono-debug.h
5660         (MONO_DEBUGGER_VERSION): Bumped to 72.
5661
5662         * debug-mono-symfile.h
5663         (MonoSymbolFileMethodIndexEntry): Removed.
5664         (MonoSymbolFileMethodEntry): New public typedef.
5665         (MonoSymbolFileOffsetTable): Added `_is_aspx_source'.
5666         (MonoSymbolFileSourceEntry): Remove everything except `index' and
5667         `data_offset'.
5668         (MonoSymbolFileMethodEntry): Removed.
5669         (MonoSymbolFileLexicalBlockEntry): Removed.
5670         (MonoSymbolFileLineNumberEntry): Removed.
5671         (MonoDebugLexicalBlockEntry): Removed.
5672         (MonoDebugMethodInfo): Replaced `entry' by `guint32 entry_offset';
5673         removed `num_il_offsets' and `il_offsets'.
5674         (MonoSymbolFile): Replace `version' with `major_version' and
5675         `minor_version'.
5676         (MONO_SYMBOL_FILE_VERSION): Replace with
5677         `MONO_SYMBOL_FILE_MAJOR_VERSION' and
5678         `MONO_SYMBOL_FILE_MINOR_VERSION'.
5679
5680         * debug-mono-symfile.c
5681         (mono_debug_symfile_lookup_location): Add support for the new line
5682         number table format.
5683
5684 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
5685
5686         * metadata.c (free_generic_class): Release the inflated
5687         MonoClass of dynamic generic classes if it's not a generic
5688         type definition.
5689
5690 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
5691
5692         * verify.c: Reapplied more of the reverted changes.
5693
5694 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
5695
5696         * reflection.c (lookup_custom_attr): Clean the cached flag or
5697         nobody will free it. Fixes a memleak in MonoCustomAttrs::IsDefinedInternal
5698         for SRE types.
5699
5700 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
5701
5702         * verify.c: Reapplied a small part of the reverted changes.
5703
5704 2008-06-07  Zoltan Varga  <vargaz@gmail.com>
5705
5706         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5707
5708         * monitor.c (mono_monitor_try_enter_internal): Add NULL check which was 
5709         previously in managed code.
5710         (mono_monitor_exit): Ditto.
5711         (ves_icall_System_Threading_Monitor_Monitor_exit): Removed, not needed anymore.
5712
5713         * icall-def.h: Rename the Enter/Exit icalls to simply Enter/Exit to match
5714         the managed definition.
5715
5716 2008-06-06 Rodrigo Kumpera  <rkumpera@novell.com>
5717
5718         * verify.c: Revert changes to see if it helps with weird buildbot crashes.
5719
5720 2008-06-06  Zoltan Varga  <vargaz@gmail.com>
5721
5722         * monitor.c: Redefine GetCurrentThreadId () with a macro on !win32.
5723         
5724         * monitor.c: Add some micro optimizations.
5725
5726         * icall.c (type_from_typename): Handle 'bool'.
5727
5728 2008-06-06 Rodrigo Kumpera  <rkumpera@novell.com>
5729
5730         * verify.c: Implement constructor verification per P III 1.8.1.4.
5731         Fixes #396716.
5732
5733 2008-06-06  Zoltan Varga  <vargaz@gmail.com>
5734
5735         * assembly.c (mono_assembly_loaded_full): Avoid calling the search hooks while
5736         holding the assemblies lock here too.
5737
5738 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
5739
5740         * verify.c: Kill stack_top function.
5741
5742 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
5743
5744         * verify.c: Kill stack_get function.
5745
5746 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
5747
5748         * verify.c (mono_method_verify): Last change broke the build. Fixed.
5749
5750 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
5751
5752         * verify.c (verify_type_compatibility_full): Make SZARRAY checks
5753         more reliable.
5754
5755         * verify.c (mono_method_verify): Inflate params and locals to avoid
5756         mismatch when checking for compatibility.
5757
5758 2008-06-05  Jonathan Chambers  <joncham@gmail.com>
5759
5760         * metadata.c (mono_string_from_bstr): Fix BSTR marshalling.
5761         Length prefix should be size in bytes. Fix bug #339530.
5762         
5763         * metadata.c (mono_string_to_bstr): Fix BSTR marshalling.
5764         Length prefix should be size in bytes. Fix bug #339530.
5765
5766         Code is contributed under MIT/X11 license.
5767
5768 2008-06-05  Bill Holmes <billholmes54@gmail.com>
5769
5770         * decimal.c:  Adding MSVC implementation to my_g_bit_nth_msf.
5771
5772         Contributed under MIT/X11 license.
5773
5774 2008-06-05  Martin Baulig  <martin@ximian.com>
5775
5776         * mono-debug-debugger.c
5777         (mono_debugger_check_breakpoints): Reflect latest runtime changes.
5778
5779 2008-06-05  Zoltan Varga  <vargaz@gmail.com>
5780
5781         * assembly.c (mono_assembly_load_from_full): Avoid calling the search hooks
5782         while holding the assemblies lock to prevent deadlocks. Handle the case
5783         where the search hook returns NULL but the assembly was still loaded.
5784         Fixes #323696.
5785
5786         * appdomain.c (set_domain_search_path): Acquire the domain lock since we
5787         modify domain state.
5788
5789 2008-06-05  Andreas Färber  <andreas.faerber@web.de>
5790
5791         * boehm-gc.c: Add DTrace probes gc-{begin,end}.
5792         * Makefile.am (pedump_LDADD): Post-process object files and
5793         add dtrace-generated object file, if necessary.
5794
5795         Code is contributed under MIT/X11 license.
5796
5797 2008-06-04 Rodrigo Kumpera  <rkumpera@novell.com>
5798
5799         * reflection.c (mono_dynamic_image_free): Free MonoDynamicImage::public_key.
5800
5801 2008-06-04 Rodrigo Kumpera  <rkumpera@novell.com>
5802
5803         * class.c (mono_type_get_full): Add a work-around for generic type definitions.
5804
5805 2008-06-04  Mark Probst  <mark.probst@gmail.com>
5806
5807         * threads.c: Try to free everything from the delayed free table
5808         when shutting down threads, and set the variable to NULL after the
5809         table is freed so that calling
5810         mono_thread_hazardous_try_free_all() when shutting down the root
5811         domain doesn't crash.
5812
5813 2008-06-04 Rodrigo Kumpera  <rkumpera@novell.com>
5814
5815         * class.c (mono_type_retrieve_from_typespec): Add an argument to inform
5816         the caller if resulting type was inflated.
5817
5818         * class.c (mono_class_create_from_typespec): Free the MonoType if it
5819         was inflated.
5820
5821         * class.c (mono_type_get_full): Free the MonoType if it was inflated.
5822
5823
5824 2008-06-04  Zoltan Varga  <vargaz@gmail.com>
5825
5826         * decimal.c (rescale128): Rework the code a bit so it no longer crashes the
5827         class library tests.
5828
5829         * icall.c (ves_icall_InternalInvoke): Applied patch from Andy Hume 
5830         (andyhume32@yahoo.co.uk). Add more useful exception messages. Fixes
5831         #396989.
5832
5833 2008-06-04  Mark Probst  <mark.probst@gmail.com>
5834
5835         * domain.c, domain-internals.h: The JIT infos are now freed by the
5836         JIT info table code.  They are freed immediately if there only a
5837         single JIT info table in circulation.  If there is more, the free
5838         is delayed via a queue.
5839
5840         * threads.c, threads-types.h: New hazard pointer function for
5841         freeing all freeable delayed items in one sitting.
5842
5843 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
5844
5845         * reflection.c (typebuilder_setup_fields): Use mempool for allocations.
5846
5847         * reflection.c (typebuilder_setup_properties): Same.
5848
5849         * reflection.c (typebuilder_setup_events): Same.
5850
5851 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
5852
5853         * reflection.c (mono_custom_attrs_from_builders): Receive a MonoMemPool
5854         and use it for allocating memory.
5855
5856         * reflection.c (mono_marshal_spec_from_builder): Same.
5857
5858         * reflection.c: Change code to use new signatures.
5859
5860         * metadata.c (mono_metadata_type_dup): Add a FIXME note.
5861
5862 2008-06-03  Zoltan Varga  <vargaz@gmail.com>
5863
5864         * decimal.c (rescale128): Put back one line which was accidently commented
5865         out.
5866         
5867         * decimal.c (rescale128): Disable the code added by the last patch, as it seems
5868         to cause crashes.
5869
5870 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
5871
5872         * reflection.c (mono_reflection_generic_class_initialize): Name must
5873         be always malloc'ed so we can free it later on. Do this for field, property
5874         and event.
5875
5876         * metadata.c (free_generic_class): Free field, property and event names.
5877
5878 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
5879
5880         * reflection.c (fieldbuilder_to_mono_class_field): Use mono_metadata_type_dup
5881         instead of g_memdup.
5882
5883         * reflection.c (typebuilder_setup_fields): Same.
5884
5885 2008-06-03  Zoltan Varga  <vargaz@gmail.com>
5886
5887         * decimal.c (rescale128): Optimize this function a bit more.
5888
5889 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
5890
5891         * metadata.c (free_generic_class): Release some memory from
5892         SRE generic classes.
5893
5894 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
5895
5896         * reflection.c (mono_image_get_generic_field_token): No reference
5897         to name is kept, free it.
5898
5899         * reflection.c (mono_reflection_generic_class_initialize): Free
5900         more memory of the inflated field.
5901
5902 2008-06-03  Zoltan Varga  <vargaz@gmail.com>
5903
5904         * decimal.c (mono_decimalDiv): Moved equality checks here from managed
5905         code.
5906
5907 2008-06-02 Rodrigo Kumpera  <rkumpera@novell.com>
5908
5909         * reflection.c (mono_dynamic_image_free): Release memory used by
5910         MonoDynamicImage::array_methods elements.
5911
5912         * reflection.c (assembly_add_win32_resources): Release memory after
5913         encoding.
5914
5915 2008-06-02  Zoltan Varga  <vargaz@gmail.com>
5916
5917         * decimal.c (log2_32): Use an optimized version for this function too.
5918         
5919         * decimal.c (log2_64): Fix this on 32 bit machines.
5920
5921 2008-06-02 Rodrigo Kumpera  <rkumpera@novell.com>
5922
5923         * class.c (mono_dup_array_type): Implement allocation using a mempool.
5924
5925         * class.c (mono_metadata_signature_deep_dup): Same.
5926
5927         * metadata.c (mono_metadata_signature_dup_full): Added, allow dup'ng with
5928         a mempool.
5929
5930         * metadata.c (mono_metadata_signature_dup): Delegate to the _full version.
5931
5932         * metadata.c (mono_metadata_type_dup): Remove asserts and FIXME.
5933
5934         * metadata-internals.h: Added mono_metadata_signature_dup_full.
5935
5936         * class-internals.h: Update signatures to take a MonoMemPool.
5937
5938 2008-06-02  Dick Porter  <dick@ximian.com>
5939
5940         * icall.c (ves_icall_System_ComponentModel_Win32Exception_W32ErrorMessage): 
5941         * icall-def.h: Add
5942         System.ComponentModel.Win32Exception.W32ErrorMessage, using the
5943         FormatMessage API to get the error text.  Fixes bug 321827.
5944
5945 2008-06-02  Zoltan Varga  <vargaz@gmail.com>
5946
5947         * decimal.c: Add some micro optimizations to make decimal operations faster.
5948
5949 2008-06-01 Rodrigo Kumpera  <rkumpera@novell.com>
5950
5951         * reflection.c (method_encode_clauses): Take a mempool
5952         as parameter and use it to allocate the clause array.
5953
5954         * reflection.c (mono_image_get_field_on_inst_token): Free
5955         the inflated type after encoding it.
5956
5957         * reflection.c (mono_dynamic_image_free): Free each element
5958         of MonoDynamicImage::gen_params.
5959
5960         * reflection.c (reflection_methodbuilder_to_mono_method):
5961         Allocate the generic param array from the mempool.
5962         Allocate signature params from the mempool.
5963
5964         * reflection.c (mono_reflection_generic_class_initialize):
5965         Free inflated fields after been used.
5966
5967 2008-05-30 Rodrigo Kumpera  <rkumpera@novell.com>
5968
5969         * icall.c: Reapply the memory leak fixes as they no
5970         longer make mono crash.
5971
5972 2008-05-30 Rodrigo Kumpera  <rkumpera@novell.com>
5973
5974         * reflection.c (mono_type_get_object): Don't store the suplied
5975         MonoType with type_hash. A caller which pass a type that
5976         was mono_metadata_type_dup'ed cannot free it reliably, as type_hash
5977         might end with a pointer to freed memory.
5978         The solution is to use byval_arg or this_arg from the associated
5979         MonoClass of the supplied type.
5980
5981 2008-05-29  Zoltan Varga  <vargaz@gmail.com>
5982
5983         * icall.c: Revert the rest of the last change as it breaks the build too.
5984
5985 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
5986
5987         * icall.c: Revert a leak fix as it's breaking the build.
5988
5989 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
5990
5991         * appdomain.c (mono_make_shadow_copy): Fix another leak of dir_name.
5992
5993 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
5994
5995         * appdomain.c (mono_make_shadow_copy): We leaked dir_name.
5996
5997 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
5998
5999         * icall.c: Fix some memory leaks.
6000
6001 2008-05-29  Dick Porter  <dick@ximian.com>
6002
6003         * threadpool.c (mono_thread_pool_remove_socket): Always remove the
6004         async socket operations from the pending list when a socket
6005         closes.  Leaving it until the threadpool services the event
6006         exposes a race condition when a socket descriptor is reused.
6007         Fixes bug 377589.
6008
6009 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
6010
6011         * object.c: Fix negative index check for array alocation.
6012
6013 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
6014
6015         * icall.c, marshal.c: Delegate wrappers should skip visibility.
6016         This check is performed by the verifier for IL created delegates
6017         and by Delegate::CreateDelegate for programatically created ones.
6018         Fixes #372406.
6019
6020 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
6021
6022         * sockey-io.c (ves_icall_System_Net_Sockets_Socket_Select_internal):
6023         Fix code to use mono_array_size_t instead of int.
6024
6025         Based on patch by Luis F. Ortiz.
6026         Contributed under X11 license.
6027         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
6028
6029 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
6030
6031         * icall.c: Added ves_icall_System_Array_GetLongLength and
6032         ves_icall_System_Array_CreateInstanceImpl64. Both allow handling big
6033         arrays.
6034
6035         * icall.h: Export both new functions.
6036
6037         Based on patch by Luis F. Ortiz.
6038         Contributed under X11 license.
6039         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
6040
6041 2008-05-28  Martin Baulig  <martin@ximian.com>
6042
6043         The debugger now requires exactly r103463.
6044
6045         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 71.
6046         This version is not supported by the debugger, wait for 72.
6047
6048 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
6049
6050         * object.h: Changed array related functions to use
6051         mono_array_size_t instead of guint32. Forgot to commit this file.
6052
6053         Patch by Luis F. Ortiz.
6054         Contributed under X11 license.
6055         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
6056
6057
6058 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
6059
6060         * object.h: Don't use G_MAXINT32 or G_MAXUINT32 as old glibs
6061         don't define it. Use the number literal instead.
6062
6063 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
6064
6065         * icall.c: Changed array related functions to use
6066         mono_array_size_t instead of guint32.
6067
6068         * icall.c (ves_icall_System_Array_GetLength): Check for length
6069         overflow under MONO_BIG_ARRAYS.
6070
6071         Based on patch by Luis F. Ortiz.
6072         Contributed under X11 license.
6073         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
6074
6075 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
6076
6077         * object.c: Add 64bits bounds check for arrays under MONO_BIG_ARRAYS.
6078
6079         Based on patch by Luis F. Ortiz.
6080         Contributed under X11 license.
6081         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
6082
6083 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
6084
6085         * object.c, object.h: Changed array related functions to use
6086         mono_array_size_t instead of guint32.
6087
6088         Patch by Luis F. Ortiz.
6089         Contributed under X11 license.
6090         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
6091
6092 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
6093
6094         * object.h: Introduced mono_array_size_t typedef. This must be used
6095         in all places an array length is expected. This is 64bits wide if
6096         MONO_BIG_ARRAYS is enabled.
6097
6098         Patch by Luis F. Ortiz.
6099         Contributed under X11 license.
6100         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
6101
6102 2008-05-27  Zoltan Varga  <vargaz@gmail.com>
6103
6104         * security-manager.c class.c: Set the class exception info by calling
6105         mono_class_set_failure ().
6106
6107         * class.c (mono_class_get_exception_data): New accessor function.
6108         (mono_class_set_failure): Store exception_data in the property hash.
6109
6110         * class-internals.h (struct _MonoClass): Store 'exception_data' outside
6111         the struct as a property.
6112
6113         * loader.c (mono_get_method_full): Store the lookup result for method
6114         tokens in method_cache, the others in methodref_cache to decrease the memory
6115         usage of hash tables.
6116
6117         * image.c (mono_image_close): Destroy method_cache and methodref_cache.
6118         (mono_image_init): method_cache is lazy inited now.
6119
6120         * metadata-internals.h (struct _MonoImage): Change method_cache to
6121         a MonoValueHashTable, add a separate methodref_cache.
6122
6123 2008-05-27  Eyal Alaluf <eyala@mainsoft.com>
6124
6125         * number-formatter.h: Fix tables to avoid arithemtic overflow in
6126           Double.ToString as exposed by Bug #383531.
6127
6128 2008-05-26  Zoltan Varga  <vargaz@gmail.com>
6129
6130         * number-formatter.h: Make some tables static.
6131
6132         * class.c (mono_method_set_generic_container): New accessor function.
6133         (mono_method_get_generic_container): Ditto.
6134
6135         * class-internals.h (struct _MonoMethod): Remove rarely used 
6136         'generic_container' field, store it in the property hash instead. Add 
6137         'is_generic' boolean field instead.
6138
6139         * image.c (mono_image_init): Initialize property_hash.
6140         (mono_image_close): Destroy property_hash.
6141
6142         * metadata-internals.h (struct _MonoImage): Add 'property_hash' hash table to
6143         hold rarely used fields of runtime structures belonging to this image.
6144
6145         * class.c loader.c verify.c icall.c reflection.c: Use the new accessor functions
6146         to get/set method->generic_container.
6147
6148         * loader.c (mono_get_method_from_token): Avoid loading the method header for
6149         generic methods.
6150
6151 2008-05-25  Zoltan Varga  <vargaz@gmail.com>
6152
6153         * class.c (mono_class_inflate_generic_method_full): Don't increase
6154         mono_stats.inflated_method_count for methods found in the cache.
6155
6156         * threads.c (mono_thread_request_interruption): Add a comment about 
6157         QueueUserAPC ().
6158
6159 2008-05-24  Zoltan Varga  <vargaz@gmail.com>
6160
6161         * class.c (setup_interface_offsets): Use sizeof (guint16) when allocating the
6162         interface_offsets_packed table.
6163         
6164         * class.c (mono_class_init): Remove some dead code.
6165
6166         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Call
6167         mono_class_setup_vtable () when CAS is active to detect security problems.
6168
6169 2008-05-23 Rodrigo Kumpera  <rkumpera@novell.com>
6170
6171         * verify.c (mono_delegate_type_equal): Handle VAR, MVAR and GENERICINST.
6172
6173         * verify.c (mono_delegate_signature_equal): Don't compar number of generic
6174         parameters as it's irrelevant for delegate checking.
6175
6176 2008-05-23  Zoltan Varga  <vargaz@gmail.com>
6177
6178         * class-internals.h class.c: Correct the name of the 'mono_no_setup_vtable_in_class_init' variable.
6179
6180         * class.c (mono_class_init): Control the creation of a generic vtable using
6181         a global which is true by default, but set to false by the runtime startup code.
6182         
6183         * class.c (mono_class_init): Avoid constructing a generic vtable in most cases.
6184         Disabled for now since it breaks the embedding API.
6185         Move the setup of class->methods for arrays to mono_class_setup_methods ().
6186         (mono_class_setup_methods): Add a memory barrier.
6187
6188         * object.c (mono_class_create_runtime_vtable): Add code to handle the case
6189         when mono_class_init () doesn't compute the generic vtable.
6190         
6191 2008-05-23  Massimiliano Mantione  <massi@ximian.com>
6192         * profiler.c: Added mono_profiler_install_statistical_call_chain,
6193         mono_profiler_stat_get_call_chain_depth and mono_profiler_stat_call_chain
6194         to support call chains (backtrace) in the stat profiler.
6195         * profiler.c, profiler-private.h: Likewise.
6196
6197 2008-05-22  Mark Probst  <mark.probst@gmail.com>
6198
6199         * generic-sharing.c: Init generic class when a method of it is
6200         requested via a runtime generic context.
6201
6202 2008-05-22  Zoltan Varga  <vargaz@gmail.com>
6203
6204         * class.c (mono_class_init): Add a comment about trying to avoid calling this.
6205
6206         * reflection.c (mono_type_get_object): Add a FIXME.
6207
6208         * loader.c (find_method_in_class): Use mono_class_get_method_by_index ().
6209
6210         * class.c (mono_class_get_method_by_index): New helper function, returning an
6211         entry in the class->methods array.
6212
6213 2008-05-21  Zoltan Varga  <vargaz@gmail.com>
6214
6215         * class.c (mono_class_init): Only do the array optimization for szarrays. 
6216         Avoid creating a generic vtable for generic instances as well.
6217         (mono_class_get_method_from_name_flags): Don't search in the metadata for
6218         generic instances.
6219
6220 2008-05-21 Rodrigo Kumpera  <rkumpera@novell.com>
6221
6222         * loader.c (mono_get_method_constrained): Inflate the signature
6223         with class context. Fix #325283.
6224
6225 2008-05-21  Zoltan Varga  <vargaz@gmail.com>
6226
6227         * object.c (mono_class_create_runtime_vtable): Add a comment.
6228
6229         * class.c (get_implicit_generic_array_interfaces): Call mono_class_init ()
6230         where needed.
6231         (setup_interface_offsets): Handle the case when this is called twice for arrays.
6232         (mono_class_setup_vtable_general): Add an assert.
6233         (mono_class_init): Avoid creating a generic vtable for arrays.
6234
6235         * class.c (mono_generic_class_get_class): Don't call setup_interface_offsets ()
6236         here, let mono_class_init () do that.
6237
6238         * class.c (mono_class_init): Avoid calling mono_class_setup_methods () for
6239         interfaces in mscorlib.
6240
6241         * class.c (mono_class_setup_vtable): Avoid calling setup_methods () for
6242         interfaces. Add some comments.
6243         (mono_class_init): Call mono_class_setup_methods () here since it is no
6244         longer called by mono_class_setup_vtable ().
6245
6246         * object.c (mono_class_proxy_vtable): Null out entries in pvt->vtable which are
6247         not set in class->vtable.
6248         (mono_class_create_runtime_vtable): Reenable the disabled code.
6249
6250         * object.c (mono_class_create_runtime_vtable): Disable the last change for
6251         now as it causes some test failures.
6252
6253         * object.c (mono_class_create_runtime_vtable): Avoid creating a generic vtable
6254         if using the vtable trampoline. Also remove some strange code which put the
6255         generic methods themselves into the vtable slots. Remove the AOT init_vtable
6256         stuff as it is no longer needed.
6257
6258 2008-05-19 Rodrigo Kumpera  <rkumpera@novell.com>
6259
6260         * pedump.c: Give make --verify all option check code as well.
6261         Using --verify code won't check for metadata now.
6262
6263 2008-05-19  Martin Baulig  <martin@ximian.com>
6264
6265         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 70.
6266
6267         * mono-debug.c
6268         (_mono_debug_using_mono_debugger): New global variable; it's set
6269         directly by the debugger, so mono_debug_using_mono_debugger() also
6270         works after attaching.
6271
6272 2008-05-18 Rodrigo Kumpera  <rkumpera@novell.com>
6273
6274         * object.c (mono_class_create_runtime_vtable): Use memory barriers
6275         as we do double checked locking on MonoClass::runtime_info and
6276         MonoClassRuntimeInfo::domain_vtables.
6277
6278 2008-05-18  Zoltan Varga  <vargaz@gmail.com>
6279
6280         * debug-helpers.c (print_field_value): Fix a warning.
6281
6282 2008-05-16  Zoltan Varga  <vargaz@gmail.com>
6283
6284         * object.c (mono_object_get_virtual_method): Fix a crash if method->slot is not
6285         set in the AOT case.
6286
6287 2008-05-16 Rodrigo Kumpera  <rkumpera@novell.com>
6288
6289         * class.c (mono_class_setup_vtable_general): Use memory barriers
6290         as we do double checked locking on MonoClass::vtable.
6291
6292 2008-05-16 Rodrigo Kumpera  <rkumpera@novell.com>
6293
6294         * reflection.c (resolve_object): Inflate only if the generic context
6295         is not null. Fixes #389886.
6296
6297 2008-05-15  Jonathan Chambers  <joncham@gmail.com>
6298
6299         * metadata.c (emit_marshal_string): Free return strings using mono_marshal_free
6300         instead of g_free.
6301
6302         Code is contributed under MIT/X11 license.
6303
6304 2008-05-14 Rodrigo Kumpera  <rkumpera@novell.com>
6305
6306         * class.c: Revert unrelated change.
6307
6308 2008-05-14 Rodrigo Kumpera  <rkumpera@novell.com>
6309
6310         * verify.c (check_is_valid_type_for_field_ops): Type on stack can be
6311         a generic instantiation, use mono_class_from_mono_type instead of playing
6312         with MonoType directly.
6313
6314 2008-05-14 Rodrigo Kumpera  <rkumpera@novell.com>
6315
6316         * class.c: Added mono_class_has_parent_and_ignore_generics. Visibility
6317         checks must ignore generic instantiations, so mono_class_has_parent is not
6318         suitable. Fixes #390128.
6319
6320 2008-05-14  Zoltan Varga  <vargaz@gmail.com>
6321
6322         * reflection.c (mono_image_create_token): Add a 'register_token' argument, and use
6323         it to avoid registering tokens during metadata generation. Fixes #390023.
6324
6325 2008-05-14  KornĂ©l PĂ¡l  <kornelpal@gmail.com>
6326
6327         * coree.c: Rename dwOldProtect to OldProtect that makes naming convention
6328         consistent.
6329
6330         Contributed under MIT/X11 license.
6331
6332 2008-05-14  KornĂ©l PĂ¡l  <kornelpal@gmail.com>
6333
6334         * domain.c (mono_init_internal): Enable LoadLibrary support. Load EXE image
6335         even when get_runtimes_from_exe didn't load it that allows mono_fixup_exe_image
6336         to fixup the EXE image.
6337         (mono_cleanup): Use mono_close_exe_image.
6338         (mono_close_exe_image): New function.
6339         * image.c: Include "marshal.h".
6340         (mono_image_open_from_module_handle): Add ref_count argument. Return the image.
6341         (mono_image_open_full, mono_image_close): Fix LoadLibrary/FreeLibrary reference
6342         counting when the image is loaded outside of mono_image_open_full. Set status
6343         based on GetLastError.
6344         * coree.c: Include required headers. Add init_from_coree.
6345         (_CorDllMain): Support fix in mono_image_open_full, mono_image_close. Call
6346         mono_assembly_open only when the image has vtfixups. Set init_from_coree.
6347         (_CorExeMain): Set init_from_coree.
6348         (CorExitProcess): Only call ExitProcess for now.
6349         (CorBindToRuntimeEx): New stub implementation.
6350         (CorBindToRuntime): New function.
6351         (MonoFixupCorEE): Fixup CorBindToRuntime and CorBindToRuntimeEx.
6352         (MonoFixupExe): ILONLY executables require no fixups.
6353         (mono_set_act_ctx): New function to set activation context.
6354         (mono_load_coree): Use init_from_coree. Call mono_set_act_ctx.  
6355         * coree.h: Move STATUS_SUCCESS and STATUS_INVALID_IMAGE_FORMAT to header.
6356         Declare mono_module_handle, coree_module_handle, mono_get_module_file_name,
6357         mono_load_coree, mono_fixup_exe_image and mono_image_open_from_module_handle
6358         as MONO_INTERNAL.
6359         * domain-internals.h: Add mono_close_exe_image.
6360
6361         Contributed under MIT/X11 license.
6362
6363 2008-05-13 Rodrigo Kumpera  <rkumpera@novell.com>
6364
6365         * metadata.c (mono_metadata_compute_size): Correctly calculate field
6366         size for generic param and event tables. Fixes #388977.
6367
6368 2008-05-13  Zoltan Varga  <vargaz@gmail.com>
6369
6370         * loader.c (mono_method_signature): Use memory barriers because of the double
6371         checked locking pattern.
6372
6373         * threads.c (remove_and_abort_threads): Stop and wait for threads which are
6374         aborting or aborted as well. Fixes #376391.
6375         
6376         * threads.c (mono_thread_execute_interruption): Avoid depending on no longer
6377         existing runtime state in the Suspend handler during shutdown.
6378
6379 2008-05-12  Zoltan Varga  <vargaz@gmail.com>
6380
6381         * threads.c (mono_thread_request_interruption): Add some FIXMEs.
6382
6383         * threads.c (mono_thread_suspend_all_other_threads): Add support for threads 
6384         which are starting up or shutting down.
6385
6386         * threads.c (mono_threads_set_shutting_down): Don't return a value since
6387         this function never returns if the runtime is already shutting down.
6388
6389         * icall.c (ves_icall_System_Environment_Exit): Update after 
6390         mono_threads_set_shutting_down () signature change.
6391         
6392 2008-05-09 Rodrigo Kumpera  <rkumpera@novell.com>
6393
6394         * class.c: Added can_access_instantiation to verify if the instantiation
6395         is visible. Fix access check for nested types as they returned TRUE
6396         before doing type and generic instantiation visibility checks.
6397
6398 2008-05-08 Rodrigo Kumpera  <rkumpera@novell.com>
6399
6400         * reflection.c (mono_reflection_create_generic_class): The created type
6401         must have a different container from its TypeBuilder. Otherwise they
6402         will end sharing generic arguments, which is wrong.
6403
6404         Due to the sharing, making a generic instance of the created type using
6405         the TypeBuider generic arguments resulted in the generic type definition
6406         been returned, which is wrong as well.
6407
6408         As a bonus the code was leaking the type_params array. This memory should
6409         be allocated from the image mempool.
6410
6411         This fixes bug #354047.
6412
6413 2008-05-08 Rodrigo Kumpera  <rkumpera@novell.com>
6414
6415         * metadata-internals.h: Move MONO_SECMAN_FLAG macros from mini/declsec.h
6416         to here         as they are now used in assembly.c new code.
6417         Added a skipverification flag to MonoAssembly.
6418         New internal function mono_assembly_has_skip_verification.
6419
6420         * assembly.c: New function mono_assembly_has_skip_verification. It checks
6421         if an assembly has a version 2.0 SkipVerification security attribute. Fixes
6422         part of #387274.
6423
6424 2008-05-07  Zoltan Varga  <vargaz@gmail.com>
6425
6426         * object.c (mono_object_get_virtual_method): Inflate the resulting method if
6427         needed. Fixes #387034.
6428
6429         * class.c (mono_class_inflate_generic_type): Avoid a crash if context is NULL.
6430
6431 2008-05-06  Miguel de Icaza  <miguel@novell.com>
6432
6433         * assembly.c (mono_assembly_load_reference): Prevent crash while
6434         disassembling Silverlight 2.0 executables while we still do not
6435         have GACed libraries.
6436
6437 2008-05-07  Zoltan Varga  <vargaz@gmail.com>
6438
6439         * reflection.c: Special case generic type definitions as well. Fixes #383444.
6440
6441 2008-05-06  Zoltan Varga  <vargaz@gmail.com>
6442
6443         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Fix handling
6444         of the dynamic case. Fixes #387404.
6445
6446 2008-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
6447
6448         *verify.c (mono_verifier_is_class_full_trust): If under
6449         verify_all and the verifier mode was not set, only
6450         gac and corlib types are fulltrust. This makes --verify-all
6451         usable to detect unverifiable code, which is the expected
6452         use case.
6453
6454 2008-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
6455
6456         * verify.h: Ops, commited the header with debug
6457         enabled.
6458
6459 2008-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
6460
6461         * verify.c (merge_stack): Use the new value on unverifiable
6462         stack merges.
6463
6464         * verify.c (verify_type_compatibility_full): Comparison
6465         of nullable types can't use mono_class_is_assignable_from.
6466
6467         * verify.c, verify.h: Added MONO_VERIFY_REPORT_ALL_ERRORS
6468         that makes all verification errors be reported.
6469
6470         * pedump.c: Pass MONO_VERIFY_REPORT_ALL_ERRORS to
6471         mono_method_verify.
6472
6473 2008-05-05  Robert Jordan  <robertj@gmx.net>
6474
6475         * marshal.c (mono_marshal_get_thunk_invoke_wrapper):
6476         support for value types. See #386415.
6477
6478         * object.c: comments.
6479
6480         Code is contributed under MIT/X11 license.
6481
6482 2008-05-05  Martin Baulig  <martin@ximian.com>
6483
6484         * debug-mono-symfile.h
6485         (MONO_SYMBOL_FILE_COMPATIBILITY_VERSION): Removed; dropped support
6486         for old pre-terrania symbol files.
6487
6488 2008-05-05  Andreas Färber  <andreas.faerber@web.de>
6489
6490         * mono-config.c: Add ppc64 architecture.
6491
6492         Code is contributed under MIT/X11 license.
6493
6494 2008-05-05  Andreas Färber  <andreas.faerber@web.de>
6495
6496         * object.c (mono_create_ftnptr, mono_get_addr_from_ftnptr):
6497           PPC64 uses function descriptors as well.
6498
6499         Code is contributed under MIT/X11 license.
6500
6501 2008-05-04  Zoltan Varga  <vargaz@gmail.com>
6502
6503         * object.c (compute_class_bitmap): Ignore literal static fields.
6504
6505         * sgen-gc.c (mono_gc_base_init): Print some help when the MONO_GC_DEBUG env
6506         var has an invalid format.
6507         (describe_ptr): Add some sanity checks for the vtable.
6508         (add_nursery_frag): Clear unused nursery fragments.
6509         (major_collection): Clear all remaining nursery fragments.
6510
6511 2008-05-03  Robert Jordan  <robertj@gmx.net>
6512
6513         * image.c, metadata-internals.h: add thunk_invoke_cache.
6514
6515         * marshal.c, marshal.h: implement
6516         mono_marshal_get_thunk_invoke_wrapper ().
6517
6518         * object.c, object.h: implement mono_method_get_unmanaged_thunk ().
6519
6520         Code is contributed under MIT/X11 license.
6521
6522 2008-05-02 Rodrigo Kumpera  <rkumpera@novell.com>
6523
6524         * verify.c (do_leave): Empty the stack.
6525
6526 2008-05-02 Rodrigo Kumpera  <rkumpera@novell.com>
6527
6528         * class.c (mono_class_is_assignable_from): Variance
6529         doesn't work between reference and value types. For example,
6530         given type C<T+>, C<int32> is not assignable to C<object>.
6531         Break the argument checking loop on first error. 
6532
6533 2008-05-02  Atsushi Enomoto  <atsushi@ximian.com>
6534
6535         * icall.c : base64_to_byte_array() needs some more strict
6536           check for sequence of '=' characters. Patch by Santa
6537           Marta (http://deee.g.hatena.ne.jp/santamarta).
6538
6539           Contributed under MIT/X11 license.
6540           (see http://www.lingr.com/room/mono-jp/archives/2008/04/20)
6541
6542 2008-05-02  Jonathan Chambers  <joncham@gmail.com>
6543
6544         * domain.c: Disable LoadLibrary support to fix Win32 build.
6545
6546         Code is contributed under MIT/X11 license.
6547
6548 2008-05-02  Zoltan Varga  <vargaz@gmail.com>
6549
6550         * sgen-gc.c: Add support for clearing nursery memory when a tlab is allocated,
6551         to help with cache behaviour.
6552
6553 2008-05-01  Miguel de Icaza  <miguel@novell.com>
6554
6555         * appdomain.c (mono_domain_from_appdomain): Add new accessor
6556         method. 
6557
6558 2008-05-01  Zoltan Varga  <vargaz@gmail.com>
6559
6560         * sgen-gc.c: Implement thread-local allocation and a managed allocation routine.
6561
6562 2008-05-01  Dick Porter  <dick@ximian.com>
6563
6564         * process.c (process_get_fileversion): Only pass 16 bits of
6565         language ID to VerLanguageName.  Fixes bug 381204.
6566
6567 2008-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
6568
6569         * verify.c (mono_method_verify): Fix the comparison
6570         operator for code bounds check.
6571
6572 2008-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
6573
6574         * verify.c (mono_method_verify): Check the bounds of
6575         all access of the code array.
6576
6577 2008-04-29  KornĂ©l PĂ¡l  <kornelpal@gmail.com>
6578
6579         * appdomain.c: Use HAVE_SYS_UTIME_H that fixes MSVC build.
6580
6581 2008-04-28  Zoltan Varga  <vargaz@gmail.com>
6582
6583         * image.c (mono_image_strong_name_position): Fix return value when the rva is
6584         not valid.
6585
6586 2008-04-28  KornĂ©l PĂ¡l  <kornelpal@gmail.com>
6587
6588         * loader.c (mono_get_method_from_token, mono_method_signature): Add
6589         support for METHOD_IMPL_ATTRIBUTE_NATIVE.
6590         * domain.c (mono_init_internal): Load and fixup mscoree.dll on startup and
6591         fixup main EXE images when using mono.exe for mixed-mode assembly support.
6592         * domain-internals.h: Add MonoLoadFunc, mono_install_runtime_load and
6593         mono_runtime_load.
6594         * appdomain.c: Add mono_install_runtime_load, mono_runtime_load to support
6595         runtime initialization from metadata.
6596         * assembly.c: Remove obsolete ceGetModuleFileNameA.
6597         (mono_set_rootdir): Use mono_get_module_file_name.
6598         (mono_assembly_load_from_full): Call mono_image_fixup_vtable for module
6599         handles.
6600         * cil-coff.h: Add MonoVTableFixup. Update mono_cli_rva_image_map signature.
6601         * metadata-internals.h: Add is_module_handle to _MonoImage on Windows.
6602         * image.c (mono_cli_rva_image_map): Use MonoImage instead of
6603         MonoCLIImageInfo. Add support for module handles.
6604         (load_cli_header): Update mono_cli_rva_image_map signature.
6605         (load_metadata_ptrs): Update mono_cli_rva_image_map signature.
6606         (mono_image_strong_name_position): Use mono_cli_rva_image_map.
6607         (mono_image_rva_map): Add support for module handles.
6608         (mono_image_ensure_section_idx): Add support for module handles.
6609         (mono_image_close): Add support for module handles.
6610         (do_load_header): Add support for module handles.
6611         (mono_image_open_from_module_handle): New function for internal use.
6612         (mono_image_open_full): Load normal images using LoadLibrary on Windows.
6613         (mono_image_load_module): Call mono_image_fixup_vtable for module handles.
6614         (mono_image_load_file_for_image): Call mono_image_fixup_vtable for module
6615         handles.
6616         (mono_image_fixup_vtable): New function for mixed-mode assembly support.
6617         * image.h: Add mono_image_fixup_vtable.
6618         * coree.c: New file for mscoree.dll functions and mixed-mode assembly
6619         support.
6620         * coree.h: New file.
6621         * marshal.c (mono_marshal_get_native_wrapper): Throw exception for
6622         unsupported native code.
6623         (mono_marshal_set_callconv_from_modopt): New function splitted from
6624         mono_marshal_get_managed_wrapper.
6625         (mono_marshal_get_managed_wrapper): Use
6626         mono_marshal_set_callconv_from_modopt.
6627         (mono_marshal_get_vtfixup_ftnptr): New function for mixed-mode assembly support.
6628         * marshal.h: Add mono_marshal_get_vtfixup_ftnptr.
6629         * gc.c (mono_gc_init): Don't wait for the finalizer thread on Windows because
6630         that results in a deadlock when the runtime is loaded in _CorDllMain.
6631         * Makefile.am: Add coree.c and coree.h.
6632
6633         Contributed under MIT/X11 license.
6634
6635 2008-04-28  Mark Probst  <mark.probst@gmail.com>
6636
6637         * generic-sharing.c: Search for type arguments in array element
6638         types as well.
6639
6640 2008-04-28  Mark Probst  <mark.probst@gmail.com>
6641
6642         * class-internals.h, generic-sharing.c: New, small runtime generic context.
6643
6644         * metadata-internals.h, domain.c, image.c: Less bookkeeping is required for the new RGCTX.
6645
6646         * object.c: Don't setup the RGCTX when the vtable is created,
6647         because we're setting it up lazily now.
6648
6649 2008-04-26  Zoltan Varga  <vargaz@gmail.com>
6650
6651         * sgen-gc.c: Make the 'desc' variables an mword instead of a guint32 to fix 
6652         64 bit support.
6653
6654 2008-04-24 Rodrigo Kumpera  <rkumpera@novell.com>
6655
6656         * verify.c (verify_class_for_overlapping_reference_fields): 
6657         If class is under fulltrust allow reference types to overllap
6658         if they have the same RVA.
6659
6660 2008-04-24 Rodrigo Kumpera  <rkumpera@novell.com>
6661
6662         * pedump.c: Added new flag valid-only, that makes the verifier
6663         behaves just like --security=validil. It won't fail type load
6664         due to unverifiable restrictions.
6665
6666 2008-04-23 Rodrigo Kumpera  <rkumpera@novell.com>
6667
6668         * class-internals.h (struct MonoMethod): Added a verification_success
6669         field to cache verifier executions. Reduced MonoMethod:slot size by
6670         one bit.
6671
6672 2008-04-23  Zoltan Varga  <vargaz@gmail.com>
6673
6674         * sgen-gc.c (OBJ_RUN_LEN_SIZE): Make this and other macros take a 'desc' argument
6675         instead of a 'vt' argument to save an indirection and to allow these to be used
6676         for valuetypes.
6677         (scan_vtype): New helper function to scan an area using a gc descriptor.
6678         (mono_gc_wbarrier_value_copy): Implement this.
6679         (handle_remset): Add support for REMSET_VTYPE.
6680         (find_in_remset_loc): Ditto.
6681         (mono_gc_base_init): Allow some debugging options to be controlled through the
6682         use of the MONO_GC_DEBUG env variable.
6683         (mono_gc_alloc_obj): Add support the 'collect-before-allocs' debug option.
6684         (collect_nursery): Add support for the 'check-at-minor-collection' debug option.
6685
6686 2008-04-23  Martin Baulig  <martin@ximian.com>
6687
6688         * domain.c (mono_domain_create): Move the call to
6689         mono_debug_domain_create() down, after allocating the domain id.
6690
6691 2008-04-23 Rodrigo Kumpera  <rkumpera@novell.com>
6692
6693         verify.c (verify_class_for_overlapping_reference_fields): Skip
6694         static fields while verifying for overlapping fields as they
6695         don't matter at all.
6696
6697 2008-04-23  Marek Habersack  <mhabersack@novell.com>
6698
6699         * domain-internals.h: added a declaration of
6700         mono_make_shadow_copy.
6701
6702         * assembly.c (mono_assembly_open_full): shadow copying of
6703         assemblies moved to here, so that all the assemblies within the
6704         application domain's private binary directories can be
6705         processed. Fixes bug #380546
6706
6707         * appdomain.c (mono_make_shadow_copy): make_shadow_copy renamed to
6708         mono_make_shadow_copy and made non-static. The decision whether
6709         to shadow-copy an assembly is made based on its location - it's
6710         copied if it's in one of the private application domain binary
6711         directories and its different to the target file in the shadow
6712         directory. Fixes bug #380546
6713
6714 2008-04-22  Zoltan Varga  <vargaz@gmail.com>
6715
6716         * reflection.c (fixup_method): Handle {Method|Constructor}OnTypeBuilderInst.
6717
6718         * object-internals.h: Add MonoReflection{Method|Constructor}OnTypeBuilderInst
6719         types.
6720
6721         * reflection.c (mono_image_create_token): Handle 
6722         Method/ConstructorOnTypeBuilderInst.
6723         (resolve_object): Ditto.
6724         (inflate_mono_method): Receive the inflated class instead of a MonoGenericClass
6725         so it can be called from resolve_object. Also handle the case when the inflated
6726         class already has its methods setup.
6727
6728 2008-04-21  Martin Baulig  <martin@ximian.com>
6729
6730         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 69.
6731
6732 2008-04-20  Geoff Norton  <gnorton@novell.com>
6733
6734         * icall.c: Fix the _NSGetEnviron define to prevent an impropoer
6735         pointer dereference.
6736
6737 2008-04-15  Marek Habersack  <mhabersack@novell.com>
6738
6739         * appdomain.c (try_load_from): if IOMAP is in effect, call the
6740         portability API to look up the assembly file. Fixes behavior in
6741         situations when the application has a bin/ directory, but the
6742         assembly search patch refers to Bin/ (and thus the requested file
6743         name is Bin/SomeLibrary.dll). Fixes bug #379888
6744
6745 2008-04-15 Rodrigo Kumpera  <rkumpera@novell.com>
6746
6747         verify.c (mono_type_is_generic_argument): Extracted this check
6748         from a dozen places to here.
6749
6750         verify.c: Fixed all issues related to boxing generic arguments
6751         and their constraints.
6752
6753 2008-04-14 Rodrigo Kumpera  <rkumpera@novell.com>
6754
6755         verify.c (mono_class_interface_implements_interface): Fix win32 build.
6756
6757 2008-04-14  Zoltan Varga  <vargaz@gmail.com>
6758
6759         * reflection.c (mono_custom_attrs_construct): Fix crash when the cattr type
6760         isn't finished yet. Fixes #363447.
6761
6762 2008-04-13  Zoltan Varga  <vargaz@gmail.com>
6763
6764         * class.c (mono_bounded_array_class_get): Fix the name of bounded array types.
6765         Fixes #346419.
6766
6767 2008-04-13  Jb Evain  <jbevain@novell.com>
6768
6769         * domain.c: update the 2.1 profile versions.
6770         Merged from the Moonlight 2 branch.
6771
6772 2008-04-12  Zoltan Varga  <vargaz@gmail.com>
6773
6774         * assembly.c (mono_assembly_load_from_full): Do the check for loading other
6775         mscorlibs for the non-refonly case as well.
6776
6777         * image.c (do_mono_image_load): Remove the mscorlib check, it is already done
6778         in mono_assembly_load_from_full (). Fixes #378924.
6779
6780 2008-04-11  Geoff Norton  <gnorton@novell.com>
6781
6782         * icall.c: The global extern environ doesn't exist on Mac.  We
6783         need to call NSGetEnviron instead.
6784
6785 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
6786
6787         verify.c: Add generic method constraint verification.
6788
6789 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
6790
6791         class.c (mono_class_inflate_generic_method_full): Add a long
6792         explanation to the is_mb_open hack. Remove the FIXME.
6793
6794 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
6795
6796         * verify.c (mono_method_verify): Mark all unknown opcodes
6797         as invalid. Mark jmp as unverifiable.
6798
6799 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
6800
6801         * verify.c: Add code to do type constraint verification on class instances.
6802
6803         * verify.c (mono_verifier_verify_class): Use the type constraint 
6804         verification code.
6805
6806 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
6807
6808         * class.c (mono_class_get_field_default_value): Don't pass cindex
6809         as hint to mono_metadata_get_constant_index. The local is not initialized
6810         and should contain garbage most of the time. This could only work
6811         with a lot of luck.
6812
6813 2008-04-09 Rodrigo Kumpera  <rkumpera@novell.com>
6814
6815         * tokentype.h: Add MONO_TOKEN_GENERIC_PARAM.
6816
6817 2008-04-09 Rodrigo Kumpera  <rkumpera@novell.com>
6818
6819         * class-internals.h: Add generic_param_token to MonoClass::sizes union.
6820
6821         * class.c (mono_class_from_generic_parameter): Save the token of the
6822         generic param in MonoClass::sizes.generic_param_token.
6823
6824         * reflection.c (mono_custom_attrs_from_class): If the class type is
6825         VAR or MVAR retrieve the attributes of the generic param.
6826
6827 2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
6828
6829         * class.c (mono_class_init): Do class verification if the verifier
6830         is enabled.
6831
6832 2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
6833
6834         * verify-internal.h: Added mono_verifier_verify_class.
6835
6836         * verify.c: Added mono_verifier_verify_class. It checks for
6837         classes with explicit layout that have overlapping reference fields.
6838
6839         * pedump.c: Init the verifier state prior to verification. Fixed
6840         command line arguments.
6841
6842 2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
6843
6844         * Makefile.am: Added verify-internals.h, hopefully fix the build.
6845
6846 2008-04-08  Zoltan Varga  <vargaz@gmail.com>
6847
6848         * verify-internals.h: Fix a warning.
6849
6850 2008-04-07 Rodrigo Kumpera  <rkumpera@novell.com>
6851
6852         * verify-internals.h: New header with the verifier configuration
6853         extracted from mini.c.
6854
6855         * verify.c: Implemented the new functions exported by verify-internals.h.
6856
6857 2008-04-07 Rodrigo Kumpera  <rkumpera@novell.com>
6858
6859         * verify.c: Add proper verification of ckfinite.
6860
6861 2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
6862
6863         * verify.c (do_conversion): Improved error message to something
6864         more meanfull.
6865
6866         * verify.c (check_is_valid_type_for_field_ops): Fix to work
6867         with primitive types.
6868
6869 2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
6870
6871         * verify.c: Added tail prefix checking. Marked icall
6872         as unverifible.
6873
6874 2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
6875
6876         * verify.c: Fix the detection of branches to the middle
6877         of an instruction.
6878
6879 2008-04-03 Rodrigo Kumpera  <rkumpera@novell.com>
6880
6881         * verify.c: Implemented verification of volatile. and
6882         unaligned. prefix. Check if a type is valid after retrieving it.
6883
6884 2008-04-01  Dick Porter  <dick@ximian.com>
6885
6886         * process.c (process_get_fileversion): If there's no string block,
6887         set the file language to en_US.  Fixes the other new part of bug
6888         374600.
6889
6890 2008-03-29 Rodrigo Kumpera  <rkumpera@novell.com>
6891
6892         * class.c: New functions mono_method_can_access_field_full and
6893         mono_method_can_access_method_full. They perform type visibility
6894         and type site check.
6895
6896         * class-internal.h: Added exported functions.
6897
6898         * verify.c: Use new functions to implement proper visibility checks.
6899
6900 2008-03-29  Zoltan Varga  <vargaz@gmail.com>
6901
6902         * mono-config.h: Add missing G_BEGIN_DECLS/G_END_DECLS. Fixes #375188.
6903
6904 2008-03-28  Dick Porter  <dick@ximian.com>
6905
6906         * process.c (process_get_fileversion): Use the first language ID
6907         we see, rather than insisting on an invariant language.  Fixes bug
6908         374600.
6909
6910 2008-03-28  Zoltan Varga  <vargaz@gmail.com>
6911
6912         * reflection.c (calc_section_size): Use add_stream_zero to align the size of
6913         the streams to fix reading of invalid memory later.
6914
6915         * metadata.h (MonoType): Use 'MonoTypeEnum' instead of int for the 'type' field
6916         to ease debugging.
6917
6918 2008-03-26  Zoltan Varga  <vargaz@gmail.com>
6919
6920         * marshal.c (signature_dup): Use mono_metadata_signature_alloc ().
6921         (cominterop_method_signature): Ditto. Fix the size passed to memcpy.
6922
6923 2008-03-26  Massimiliano Mantione  <massi@ximian.com>
6924         * threads.h: Added MonoThreadManageCallback type and
6925         mono_thread_set_manage_callback prototype
6926         * object-internals.h: In _MonoThread, renamed unused6 to manage_callback
6927         (used to store the mono_thread_manage callback).
6928         * threads.c: Added mono_thread_set_manage_callback, and handle
6929         "MonoThread->manage_callback" in build_wait_tids.
6930
6931 2008-03-26  Dick Porter  <dick@ximian.com>
6932
6933         * process.c (process_get_fileversion): Set FileVersionInfo strings
6934         to Empty when the resource doesn't have the particular info.
6935         Fixes bug 355717.
6936
6937 2008-03-25 Rodrigo Kumpera  <rkumpera@novell.com>
6938
6939         * verify.c (mono_method_verify): Proper prefix validation.
6940
6941 2008-03-25  Zoltan Varga  <vargaz@gmail.com>
6942
6943         * icall.c (ves_icall_InternalInvoke): Return exceptions thrown by the icall
6944         itself in a separate argument instead of throwing them. Fixes #373448.
6945
6946         * appdomain.c: Bump corlib version.
6947
6948 2008-03-24 Rodrigo Kumpera  <rkumpera@novell.com>
6949
6950         * verify.c: Implemented readonly prefix and verify controled mutability pointers.
6951
6952 2008-03-20  KornĂ©l PĂ¡l  <kornelpal@gmail.com>
6953
6954         * file-io.c, filewatcher.c, threadpool.c, threads.c: Removed Windows
6955         version macros.
6956
6957 2008-03-20  Mark Probst  <mark.probst@gmail.com>
6958
6959         * generic-sharing.c, class-internals.h: Code for putting
6960         reflection types into the runtime generic context.
6961
6962 2008-03-19 Rodrigo Kumpera  <rkumpera@novell.com>
6963
6964         * icall.c (ves_icall_get_method_info): Return correct values for the call convention.
6965         Fixes #340662. 
6966
6967
6968 2008-03-17 Rodrigo Kumpera  <rkumpera@novell.com>
6969
6970         * verify.c (VerifyContext): Added instruction prefix data to the struct.
6971
6972         * verify.c (is_compatible_boxed_valuetype): Don't check if the type is a valuetype, been boxed is enough.
6973
6974         * verify.c (do_invoke): Support constrained callvirt form. Grouped similar checks together.
6975
6976         * verify.c (do_cast): Let the result value keep the boxed status.
6977
6978         * verify.c (mono_method_verify): Add proper support for prefixed and implement contrained.
6979
6980 2008-03-17  Jb Evain  <jbevain@novell.com>
6981
6982         * reflection.c: when running on a 2.0 runtime, emit
6983         unconditionally the #~ header version as 2.0, and the
6984         CLI header version as 2.5, for symmetry's sake with csc.
6985
6986 2008-03-16  Zoltan Varga  <vargaz@gmail.com>
6987
6988         * class.c: Remove the unused cache_interface_offsets stuff.
6989
6990         * class.c loader.c domain.c verify.c metadata.c debug-helpers.c threadpool.c
6991         profiler.c: Fix warnings.
6992
6993 2008-03-16  Mark Probst  <mark.probst@gmail.com>
6994
6995         * generic-sharing.c, class-internals.h: Support for putting
6996         methods into the runtime generic context.
6997
6998 2008-03-16  Zoltan Varga  <vargaz@gmail.com>
6999
7000         * class.c (mono_class_setup_fields): Ignore calls made to this function for
7001         classes which are generic instances of not-yet finished typebuilders. Fixes
7002         #351172.
7003
7004         * reflection.c (fixup_method): Add support for FieldOnTypeBuilderInst.
7005
7006 2008-03-15  Zoltan Varga  <vargaz@gmail.com>
7007
7008         * metadata-internals.h (MonoDynamicImage): Add 'generic_def_objects' hash table.
7009
7010         * class-internals.h (MonoMethodInflated): Remove the rarely used reflection_info
7011         field, replace it with a hash table in MonoDynamicImage.
7012
7013         * reflection.c (inflate_mono_method): Access the generic definition object from
7014         image->generic_def_objects instead of imethod->reflection_info.
7015
7016         * reflection.c (mono_reflection_bind_generic_method_parameters): Ditto. 
7017
7018         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition): Ditto.
7019         
7020         * image.c (mono_image_close): Move the dynamic image freeing code to a separate
7021         function in reflection.c so it is easier to keep in sync with the dynamic image
7022         creation code.
7023
7024         * reflection.c (mono_dynamic_image_free): New internal function, extracted from
7025         mono_image_close ().
7026
7027 2008-03-15  Mark Probst  <mark.probst@gmail.com>
7028
7029         * class.c (mono_class_generic_sharing_enabled): Disable generic
7030         sharing for all architectures except AMD64 and x86 to fix build.
7031
7032 2008-03-14 Rodrigo Kumpera  <rkumpera@novell.com>
7033
7034         * verify.c: Use the generic definition MonoGenericContext when available.
7035         Remove code for checking generics instance compatibility in favor of
7036         mono_class_is_assignable_from.
7037
7038 2008-03-14  Mark Probst  <mark.probst@gmail.com>
7039
7040         * marshal.c, marshal.h, metadata-internals.h, image.c,
7041         wrapper-types.h: New wrapper for invoking a shared static method
7042         without having to pass the runtime generic context argument.
7043
7044 2008-03-14 Rodrigo Kumpera  <rkumpera@novell.com>
7045
7046         * icall-def.h: Add missing function PerformanceCounterCategory::GetInstanceNames.
7047
7048 2008-03-14  Zoltan Varga  <vargaz@gmail.com>
7049
7050         * reflection.c (mono_image_get_field_on_inst_token): Add caching.
7051         
7052         * reflection.c (mono_image_get_field_on_inst_token): New helper function to
7053         create a token from a FieldOnTypeBuilderInst.
7054         (mono_image_create_token): Handle FieldOnTypeBuilderInst.
7055         (resolve_object): Ditto.
7056
7057         * object-internals.h (MonoReflectionFieldOnTypeBuilderInst): New structure
7058         mirroring System.Reflection.Emit.FieldOnTypeBuilderInst.
7059
7060 2008-03-14  Martin Baulig  <martin@ximian.com>
7061
7062         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 68.
7063
7064         * debug-mono-symfile.h
7065         (MONO_SYMBOL_FILE_VERSION): Bump to 41.
7066         (MONO_SYMBOL_FILE_COMPATIBILITY_VERSION): New #define.
7067
7068 2008-03-10  Martin Baulig  <martin@ximian.com>
7069
7070         * debug-mono-symfile.h
7071         (MonoSymbolFileMethodAddress): Removed `num_lexical_blocks' and
7072         `lexical_block_table_offset'.
7073         (MonoDebugMethodInfo): Removed `num_lexical_blocks' and
7074         `lexical_blocks'.
7075         (MonoSymbolFile): Added `version'.
7076
7077         * mono-debug.h
7078         (MonoDebugLexicalBlockEntry): Removed.
7079         (MonoDebugMethodJitInfo): Removed `num_lexical_blocks' and
7080         `lexical_blocks'.
7081
7082         * mono-debug.c (mono_debug_add_method): Don't compute lexical
7083         blocks here; the debugger now does this internally.
7084
7085 2008-02-27  Martin Baulig  <martin@ximian.com>
7086
7087         * object.c (mono_runtime_exec_main): Call
7088         `mono_debugger_event (MONO_DEBUGGER_EVENT_REACHED_MAIN)' and
7089         `mono_debugger_event (MONO_DEBUGGER_EVENT_MAIN_EXITED)' here.
7090
7091 2008-03-12 Rodrigo Kumpera  <rkumpera@novell.com>
7092
7093         * verify.c (verify_type_compatibility_full): Allow native int to be converted
7094         to native pointer in non-strict mode. Required to "(IntPtr)null" work.
7095
7096 2008-03-12 Rodrigo Kumpera  <rkumpera@novell.com>
7097
7098         * verify.c (verify_ldftn_delegate): Accept a sealed type when using
7099         ldftn with a virtual method.
7100
7101 2008-03-13  Geoff Norton  <gnorton@novell.com>
7102
7103         * decimal.c:  Only include memory.h if the platform has it.
7104
7105 Wed Mar 12 12:11:06 CET 2008 Paolo Molaro <lupus@ximian.com>
7106
7107         * assembly.c, class.c, metadata-internals.h: make sure public key
7108         tokesns are compared in a case-insensitive way. Also, all
7109         the lookups in the GAC use a lowercase public key token
7110         (gaacutil already does the lowercasing on install). Fixes
7111         bug #369541.
7112
7113 2008-03-11 Rodrigo Kumpera  <rkumpera@novell.com>
7114
7115         * verify.c (mono_delegate_signature_equal): Do proper variance check on arguments
7116         and return value.
7117
7118 Tue Mar 11 17:41:38 CET 2008 Paolo Molaro <lupus@ximian.com>
7119
7120         * image.c: when someone loads a mscorlib from a file, return the
7121         currently loaded mscorlib (fixes bug #369253).
7122
7123 Tue Mar 11 16:47:32 CET 2008 Paolo Molaro <lupus@ximian.com>
7124
7125         * class.c: handle types with no parents by forcing them to have
7126         System.Object as a parent and marking them as broken (this currently
7127         allows the first part of bug #369173 to work as well, likely because
7128         we don't check for typeload exceptions everywhere yet).
7129
7130 Tue Mar 11 15:23:54 CET 2008 Paolo Molaro <lupus@ximian.com>
7131
7132         * class.c: more complete check that types belong to corlib
7133         (fixes second part of bug #369173).
7134
7135 2007-03-10  Bill Holmes  <billholmes54@gmail.com>
7136
7137         * generic-sharing.c:  Including glib.h for the MSVC builds to define
7138           "inline" to "__inline" before including mono-membar.h.
7139           
7140         * mono-perfcounters.c:  Adding HAVE_SYS_TIME_H check for MSVC builds.
7141           Rename "Unknown" to "CatTypeUnknown" to avoid name collisions for 
7142           MSVC builds.
7143
7144         Contributed under MIT/X11 license.
7145
7146 2008-03-10 Rodrigo Kumpera  <rkumpera@novell.com>
7147
7148         * verify.c (do_invoke_method): Remove return type validation.
7149
7150         * verify.c (do_ret): Do return type validation at return site instead of
7151         call site.
7152
7153 2008-03-10 Rodrigo Kumpera  <rkumpera@novell.com>
7154
7155         * verify.c (do_invoke_method): Mark callvirt to static methods unverifiable.
7156
7157         * verify.c: Some todos cleaned and improved a few error messages.
7158
7159 2008-03-08  Zoltan Varga  <vargaz@gmail.com>
7160
7161         * class.c (mono_class_setup_mono_type): Improve the test for corlib.
7162
7163 2008-03-07  Zoltan Varga  <vargaz@gmail.com>
7164
7165         * class.c (mono_class_setup_mono_type): Handle types whose name clashes with
7166         system types correctly.
7167
7168         * exception.h exception.c (mono_exception_from_token_two_strings): New helper
7169         function.
7170
7171 2008-03-06  Zoltan Varga  <vargaz@gmail.com>
7172
7173         * assembly.c (build_assembly_name): Fix a warning.
7174
7175 Thu Mar 6 19:43:41 CET 2008 Paolo Molaro <lupus@ximian.com>
7176
7177         * marshal.c: ldfld_remote and stfld_remote needs just one wrapper as
7178         the called function takes an object type argument. Fixes storing or
7179         valuetypes across remoting as well as reducing memory usage.
7180         * image.c, metadata-internals.h: remove now unused ldfld_remote and
7181         stfld_remote wrapper caches.
7182
7183 2008-03-06  Zoltan Varga  <vargaz@gmail.com>
7184
7185         * icall.c (mono_lookup_internal_call): Update the exception message when an icall
7186         is not found.
7187
7188         * reflection.c (mono_image_register_token): New helper function to save
7189         a token->object mapping.        
7190
7191         * icall.c (ves_icall_ModuleBuilder_RegisterToken): New icall to access it from
7192         managed code.
7193
7194         * reflection.c (_mono_reflection_parse_type): Distinguish between vectors and
7195         one dimension arrays. Fixes #367670.
7196         (mono_reflection_get_type_internal): Ditto.
7197
7198 Tue Mar 4 19:04:02 CET 2008 Paolo Molaro <lupus@ximian.com>
7199
7200         * marshal.c: mono_load_remote_field_new() always returns object.
7201         so use the proper signature (fixes bug #366445).
7202
7203 2008-03-04  Zoltan Varga  <vargaz@gmail.com>
7204         
7205         * class-internals.h (MonoMethod): Remove unused uses_this flag, 
7206         add an 'inline_failure' flag instead.
7207
7208 2008-03-04  Mark Probst  <mark.probst@gmail.com>
7209
7210         * domain-internals.h, domain.c: Replaced MonoGenericSharingContext
7211         with a new structure, MonoGenericJitInfo, in the MonoJitInfo.  It
7212         contains the location of "this", used for exception handling.
7213
7214 2008-03-04  Zoltan Varga  <vargaz@gmail.com>
7215
7216         * class.c (mono_class_layout_fields): Set the min alignment of small structs to
7217         their size on all platforms for perf reasons.
7218
7219 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
7220
7221         * reflection.h: Move mono_reflection_is_valid_dynamic_token to
7222         object-internal.h
7223
7224         * object-internal.h: Same.
7225
7226 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
7227
7228         * reflection.h: Fix the build I just broke.
7229
7230 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
7231
7232         * reflection.c (mono_reflection_is_valid_dynamic_token): New function,
7233         Test if a token is valid, this remove explicit usage of 
7234         MonoDynamicImage::tokens from the verifier code.
7235
7236         * reflection.h: Added mono_reflection_is_valid_dynamic_token.
7237
7238         * verify.c (token_bounds_check): Use mono_reflection_is_valid_dynamic_token
7239         instead of direct access to MonoDynamicImage::tokens.
7240
7241 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
7242
7243         * verify.c (token_bounds_check): Fix the build I just broke.
7244
7245 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
7246
7247         * verify.c (token_bounds_check): Fix bounds check for dynamic images.
7248
7249         * verify.c (verifier_load_method): Fixed the errors message.
7250
7251         * verify.c (mono_method_verify): Fixed a debug message.
7252
7253 Thu Feb 28 19:49:45 CET 2008 Paolo Molaro <lupus@ximian.com>
7254
7255         * icall-def.h, domain.c, mono-perfcounters-def.h, mono-perfcounters.c,
7256         mono-perfcounters.h, class-internals.h: support for predefined
7257         writable counters, query of categories and counters, bugfixes.
7258
7259 2008-02-28 Rodrigo Kumpera  <rkumpera@novell.com>
7260
7261         * verify.c (do_refanytype): Verify the refanytype opcode.
7262
7263         * verify.c (mono_method_verify): Use do_refanytype.
7264
7265 2008-02-28 Rodrigo Kumpera  <rkumpera@novell.com>
7266
7267         * verify.c (do_mkrefany): Verify the mkrefany opcode.
7268
7269         * verify.c (mono_method_verify): Use do_mkrefany.
7270
7271 Wed Feb 27 19:49:16 CET 2008 Paolo Molaro <lupus@ximian.com>
7272
7273         * Makefile.am, icall-def.h, icall.c, mono-perfcounters-def.h,
7274         mono-perfcounters.c, mono-perfcounters.h: basic performance counter
7275         implementation.
7276
7277 2008-02-27  Zoltan Varga  <vargaz@gmail.com>
7278
7279         * marshal.c (mono_marshal_get_synchronized_wrapper): Fix the code which throws
7280         the type load exception.
7281
7282 2008-02-27 Rodrigo Kumpera  <rkumpera@novell.com>
7283
7284         * verify.c: Added a few FIXME for method signatures
7285
7286         * verify.c (do_invoke_method): Use mono_method_get_signature_full instead
7287         of mono_method_get_signature and get vararg call working. Removed unused
7288         checks for return value.
7289
7290         * verify.c (do_refanyval): Verify the refanyval opcode.
7291
7292         * verify.c (mono_method_verify): Implemented verification of arglist and
7293         use do_refanyval.
7294
7295 2008-02-27  Zoltan Varga  <vargaz@gmail.com>
7296
7297         * class.c (mono_class_setup_methods): Move the check for synchronized methods on
7298         vtypes to marshal.c.
7299
7300         * marshal.c (mono_marshal_get_synchronized_wrapper): Do the vtype check here so
7301         it works for AOT as well.
7302
7303 Tue Feb 26 17:46:32 CET 2008 Paolo Molaro <lupus@ximian.com>
7304
7305         * monitor.c, threads.c, threadpool.c: replace the use of GetTickCount ()
7306         with mono_msec_ticks () which is monotonic and doesn't cause bugs when
7307         the system time is adjusted.
7308
7309 Tue Feb 26 17:40:10 CET 2008 Paolo Molaro <lupus@ximian.com>
7310
7311         * icall.c, icall-def.h: use the new time functions (fixes the
7312         non-monotonic behaviour of TickCount).
7313
7314 2008-02-26  Zoltan Varga  <vargaz@gmail.com>
7315
7316         * reflection.c (mono_custom_attrs_from_builders): Revert the last change as
7317         it breaks the build.
7318         
7319         * reflection.c (mono_custom_attrs_from_builders): Assert instead of a crash if the
7320         cattr is not finished yet.
7321
7322 2008-02-25 Rodrigo Kumpera  <rkumpera@novell.com>
7323
7324         * verify.c: Proper token validation for field, method and type.
7325
7326 2008-02-25 Rodrigo Kumpera  <rkumpera@novell.com>
7327
7328         * loader.c (field_from_memberref): Generate a loader error if the type is not found.
7329
7330         * loader.c (method_from_memberref): Generate type load error instead of method missing
7331         if the type is not found.
7332
7333 2008-02-23  Zoltan Varga  <vargaz@gmail.com>
7334
7335         * marshal.c (mono_marshal_emit_managed_wrapper): Avoid generating invalid IL if
7336         some of the conversions caused the generation of a marshal directive exception.
7337
7338 2008-02-21 Rodrigo Kumpera  <rkumpera@novell.com>
7339
7340         verify.c: Report which exception should be thrown by the JIT.
7341         Added a lot of FIXME notes.
7342
7343 2008-02-22  Mark Probst  <mark.probst@gmail.com>
7344
7345         * generic-sharing.c: Runtime generic context slots are not
7346         instantiated on init anymore.  Instead, provide function to do the
7347         instantiating on demand.
7348
7349         * class-internals.h: Added vtable to runtime generic context.
7350         Macros for encoding direct and indirect slot offsets in one
7351         guint32.
7352
7353 2008-02-21  Mark Probst  <mark.probst@gmail.com>
7354
7355         * object.c, generic-sharing.c: Moved some generic sharing code
7356         from object.c to generic-sharing.c.
7357
7358         * generic-sharing.c: Added support for extensible runtime generic
7359         context.
7360
7361         * metadata-internals.h: Two new hash tables in MonoImage for
7362         extensible runtime generic context support.
7363
7364         * domain.c: Unregister generic vtables upon domain unloading.
7365
7366         * image.c: Destroy new hash tables upon image unloading.
7367
7368         * metadata.c: Unregister generic subclasses upon image unloading.
7369
7370         * class-internals.h: New data structure for runtime generic
7371         context template.  New fields in the runtime generic context for
7372         extensible part.
7373
7374         * Makefile.am: Added generic-sharing.c.
7375
7376 2008-02-21 Rodrigo Kumpera  <rkumpera@novell.com>
7377
7378         icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): If
7379         there is a pending loader exception, raise it.
7380
7381         icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
7382         same.
7383
7384         icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken): 
7385         same.
7386
7387         Fixes #363450.
7388
7389 2008-02-20  Zoltan Varga  <vargaz@gmail.com>
7390
7391         * icall.c (ves_icall_Type_GetPacking): Handle dynamic types.
7392
7393         * assembly.c (mono_assembly_load_from_full): Fix a leak in the previous patch.
7394         
7395         * assembly.c (mono_assembly_load_from_full): Return the non-refonly corlib for
7396         ref-only requests for compatibility with MS.
7397
7398 2008-02-20  Raja R Harinath  <harinath@hurrynot.org>
7399
7400         * reflection.c (mono_custom_attrs_from_method): Don't silently
7401         return an empty list for generic method instances.
7402         (mono_custom_attrs_from_param): Likewise.
7403
7404 2008-02-20  Rodrigo Kumpera  <rkumpera@novell.com>
7405             Raja R Harinath  <harinath@hurrynot.org>
7406
7407         Fix #354757
7408         * class-internals.h (struct _MonoMethodInflated.is_mb_open): Add.
7409         * class.c (mono_class_inflate_generic_method_full): Initialize it
7410         when a fully-open method is instantiated.
7411         * metadata.c (inflated_method_equal, inflated_method_hash): Update
7412         to new field.
7413         * reflection.c (inflate_mono_method): Don't create a temporary context.
7414
7415 2008-02-20  Raja R Harinath  <harinath@hurrynot.org>
7416
7417         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
7418         Compute correct value, to prepare for imethod->reflection_info going away.
7419
7420 2008-02-19  Zoltan Varga  <vargaz@gmail.com>
7421
7422         * class.c (mono_class_setup_vtable_general): Ignore static methods in interfaces.
7423
7424 2008-02-18 Rodrigo Kumpera  <rkumpera@novell.com>
7425
7426         * verify.c: Implement skip visibility flag.
7427
7428 2008-02-18 Rodrigo Kumpera  <rkumpera@novell.com>
7429
7430         * verify.h: Added MONO_VERIFY_SKIP_VISIBILITY and struct MonoVerifyInfoExtended
7431         which contains an extra field to tell the kind of exception that should be thrown.
7432
7433         * verify.c: Use MonoVerifyInfoExtended instead of MonoVerifyInfo.
7434
7435 2008-02-17  Raja R Harinath  <harinath@hurrynot.org>
7436
7437         * loader.c (mono_method_get_param_names): Initialize 'klass' after
7438         'method' is updated.
7439
7440 2008-02-11  Zoltan Varga  <vargaz@gmail.com>
7441
7442         * class.c (mono_class_layout_fields): Set class->min_align for classes using
7443         explicit layout as well. Fixes #360375.
7444
7445 2008-02-11  Geoff Norton  <gnorton@novell.com>
7446
7447         * loader.c: Guard and dereference against inflated generic methods
7448
7449 2008-02-10  Gert Driesen  <drieseng@users.sourceforge.net>
7450
7451         * class.c: Include Retargetable spec in assembly name.
7452         * assembly.c: Always include PublicKeyToken spec in assembly name
7453         (with value "null" if assembly is not signed), and include
7454         Retargetable spec.
7455         * icall-def.h: Added icall for Assembly.get_fullname.
7456         * icall.c: Added icall returning the fullname of an assembly.
7457
7458 2008-02-09  Zoltan Varga  <vargaz@gmail.com>
7459
7460         * class.c (mono_class_setup_vtable_general): Add a missing call to
7461         mono_class_setup_methods () which is needed in the AOT case.
7462
7463 2008-02-08 Rodrigo Kumpera  <rkumpera@novell.com>
7464
7465         * verify.c (mono_type_get_stack_name): Added. Return the name for the
7466         stack type of the given MonoType.
7467
7468         * verify.c (verify_type_compatibility_full): Handle the void type.
7469
7470         * verify.c (is_compatible_boxed_valuetype): Changed to fit the
7471         way stack merging works.
7472
7473         * verify.c (store_local): Improved verification message.
7474
7475         * verify.c (do_branch_op): If the merging is invalid, the method
7476         is unverifiable and not invalid. Improved error message.
7477
7478         * verify.c (merge_stacks): Properly merge a boxed valuetype and
7479         a reference type diferent than System.Object. Improved error
7480         message.
7481
7482 2008-02-07 Rodrigo Kumpera  <rkumpera@novell.com>
7483
7484         * verify.c (mono_type_is_enum_type): Added. Test if a type is an enum.
7485
7486         * verify.c (mono_type_get_underlying_type_any): Added. Return the underlying
7487         type of an enum even if the argument is byref.
7488
7489         * verify.c: Replace all explicit uses of enumtype and enum_basetype
7490         to calls to mono_type_is_enum_type and mono_type_get_underlying_type_any.
7491
7492         * verify.c: Check for an enum in all cases of MONO_TYPE_GENERICINST.
7493
7494         *verify.c (verify_type_compatibility_full): Make enum types
7495         compatible with their base types.
7496
7497         * verify.c (is_compatible_boxed_valuetype): Added. Check if both
7498         types are compatible for the special case of a boxed valuetype and
7499         System.Object.
7500
7501         * verify.c (verify_stack_type_compatibility): The function
7502         is_compatible_boxed_valuetype was extracted from here.
7503
7504         * verify.c (push_arg): Only set ctx->has_this_store if the method
7505         is not static.
7506
7507         * verify.c (do_ldelem): Fixed a typo in an error message and added
7508         strict check for mixing int32 and native int as the array type
7509         and ldelem type.
7510
7511         * verify.c (merge_stacks): Consider boxed valuetypes in the
7512         compatibility checks.
7513
7514 2008-02-07  Massimiliano Mantione  <massi@ximian.com>
7515         * profiler.h: (MonoGCEvent): Added start-stop the world events.
7516
7517 2008-02-06  Massimiliano Mantione  <massi@ximian.com>
7518         *class.c: use_new_interface_vtable_code: renamed the env var to have
7519         a "MONO_" prefix, and fix the logic to enable it by default.
7520
7521 2008-02-06  Massimiliano Mantione  <massi@ximian.com>
7522         *class.c:
7523         mono_class_setup_vtable_general: rewrote the way in which interface
7524         methods are added to vtables. Makes bug-77127.exe pass, and hopefully
7525         makes the code more maintainable.
7526         For now the old code is still there, and can be activated setting
7527         the env var "USE_NEW_INTERFACE_VTABLE_CODE".
7528
7529 2008-02-06 Rodrigo Kumpera  <rkumpera@novell.com>
7530
7531         * verify.c: guarded some debug functions around and #ifdef.
7532
7533         * verify.c (merge_stacks): implement proper PIII 1.8.1.3 stack state merging.
7534
7535 2008-02-06  Zoltan Varga  <vargaz@gmail.com>
7536
7537         * marshal.c (mono_marshal_get_runtime_invoke): Revert the direct_wrapper
7538         changes for now since they seem to break too many things.
7539
7540 2008-02-05  Mark Probst  <mark.probst@gmail.com>
7541
7542         * marshal.c, marshal.h (mono_marshal_find_bitfield_offset,
7543         mono_marshal_find_nonzero_bit_offset): Added macro and function
7544         for finding the byte- and bit-offset of a bitfield within a
7545         struct.
7546
7547 2008-02-05  Zoltan Varga  <vargaz@gmail.com>
7548
7549         * marshal.c (mono_marshal_get_ptr_to_struct): Make the signature non-pinvoke.
7550         (mono_marshal_get_struct_to_ptr): Ditto.
7551
7552         * marshal.c (mono_marshal_get_runtime_invoke): Fix the signature of 
7553         cctor_signature.
7554
7555 2008-02-03  Zoltan Varga  <vargaz@gmail.com>
7556
7557         * marshal.c (mono_marshal_get_runtime_invoke): Fix sharing of runtime wrappers
7558         between methods for non-corlib types.
7559
7560 2008-02-02  Geoff Norton  <gnorton@novell.com>
7561
7562         * loader.c (mono_method_get_param_names): Populate the parameter name for 
7563         generic parameters as well. (Fixes #342536)
7564
7565 2008-01-31 Rodrigo Kumpera  <rkumpera@novell.com>
7566
7567         * verify.c (is_valid_bool_arg): Allow boxed values and null literals as well.
7568
7569         * verify.c (do_invoke_method): Fix for calling with byref structs.
7570
7571         * verify.c (do_cast): push a boxed value type based on the type token and not
7572         the type of stack.
7573
7574 2008-01-31  William Holmes  <billholmes54@gmail.com>
7575
7576         * process.c (process_module_string_read): Check the size returned form 
7577           VerQueryValue to avoid out of memory exception. 
7578
7579 2008-01-30  Zoltan Varga  <vargaz@gmail.com>
7580
7581         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
7582         Handle properly modules which are not in the moduleref table. Fixes
7583         #356938.
7584
7585 2008-01-29  Zoltan Varga  <vargaz@gmail.com>
7586
7587         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Remove
7588         the dynamic case which is now in managed code.
7589         (ves_icall_System_Reflection_Assembly_GetTypes): Ditto.
7590
7591         * marshal.c (mono_string_to_bstr): Fix a warning.
7592         (init_com_provider_ms): Ditto.
7593
7594         * appdomain.c (ves_icall_System_AppDomain_createDomain): Add some FIXMEs.
7595
7596         * exception.c (mono_get_exception_out_of_memory): New helper function.
7597
7598 2008-01-28  Jonathan Chambers  <joncham@gmail.com>
7599
7600         * marshal.c: Add support for BSTR marshalling
7601         using other COM systems.
7602
7603         Code is contributed under MIT/X11 license.
7604
7605 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
7606
7607         * object.c (mono_runtime_invoke_array): reverted previous
7608         commit as it breaks the build.
7609
7610 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
7611
7612         * object.c (mono_runtime_invoke_array): Verify arguments for
7613         invalid types. Fixes #348522.
7614
7615 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
7616
7617         * verify.c: added IL_CODE_CALL_NONFINAL_VIRTUAL to track calls to
7618         non-final virtual calls using call. 
7619
7620         * verify.c (do_invoke): fixed some TODOs.
7621
7622         * verify.c (push_arg): set has_this_store for "ldarga 0".
7623
7624 2008-01-27  Zoltan Varga  <vargaz@gmail.com>
7625
7626         * reflection.c (reflection_methodbuilder_to_mono_method): Allow DynamicMethods
7627         which belong to an inflated class. Fixes #356531.
7628
7629 2008-01-26  Robert Jordan  <robertj@gmx.net>
7630
7631         * file-io.c: Implement and use wrappers for GetFileAttribute|Ex ()
7632         which resort to FindFirstFile when a certain error condition
7633         (ERROR_SHARING_VIOLATION) occured. Fixes bug #325212.
7634         Code is contributed under MIT/X11 license.
7635
7636 2008-01-24  Jonathan Chambers  <joncham@gmail.com>
7637
7638         * marshal.c (emit_marshal_string): Fix out string marshalling
7639         to use specified encoding. Fixes #323900.
7640
7641         Code is contributed under MIT/X11 license.
7642
7643 2008-01-24  Raja R Harinath  <harinath@hurrynot.org>
7644
7645         * class.c (mono_class_inflate_generic_method_full): Don't modify
7646         iresult->context after cache check.
7647
7648 2008-01-23  Zoltan Varga  <vargaz@gmail.com>
7649
7650         * class.c (mono_class_inflate_generic_method_full): Change the
7651         struct assignments to memcpy for better visibility and add some comments.
7652
7653 2008-01-23  Dick Porter  <dick@ximian.com>
7654
7655         * threads.c (mono_threads_set_shutting_down): Simplify shutdown
7656         procedure, and make it work on windows.
7657
7658 2008-01-22  Zoltan Varga  <vargaz@gmail.com>
7659
7660         * object-internals.h (MonoReflectionGenericClass): Make the 'generic_type' field
7661         a MonoReflectionTypeBuilder since it is always of that type.
7662
7663         * reflection.c (mono_type_get_object): Remove an unneccesary check.     
7664
7665         * reflection.c (mono_generic_class_get_object): Simplify this a bit.
7666
7667         * reflection.c (mono_reflection_bind_generic_parameters): Ditto.
7668         
7669         * icall.c (ves_icall_MonoGenericClass_GetParentType): Ditto.
7670
7671         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Ditto.
7672
7673         * reflection.c (mono_reflection_create_runtime_class): Remove already created
7674         instantiations from the type cache.
7675
7676 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
7677
7678         * verify.c (do_ldstr): fixed token verification. previous code was 100% broken.
7679
7680         * verify.c (do_unbox_value): push a controled mutability managed pointer.
7681
7682 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
7683
7684         * verify.c (do_ldstr): added, verifies if the #US token is valid.
7685
7686         * verify.c (mono_method_verify): removed old TODO
7687
7688 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
7689
7690         * verify.c (do_newobj): add visibility check.
7691
7692 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
7693
7694         * verify.c (do_load_function_ptr): add visibility check.
7695
7696 2008-01-21  Massimiliano Mantione  <massi@ximian.com>
7697         *class.c:
7698         mono_generic_class_get_class: hook profiler events.
7699         mono_field_get_offset: added to support heap-shot in the new profiler.
7700         *class.h: exported mono_field_get_offset.
7701         * reflection.c:
7702         mono_reflection_setup_internal_class: hook profiler events.
7703
7704 2008-01-20  Zoltan Varga  <vargaz@gmail.com>
7705
7706         * marshal.c (mono_marshal_emit_native_wrapper): Add a 'check_exceptions' 
7707         argument here too and use it to avoid checking for pending exceptions if 
7708         possible.
7709
7710 2008-01-20  Gert Driesen  <drieseng@users.sourceforge.net>
7711
7712         * assembly.c (build_assembly_name): add arg for passing the assembly
7713         flags. Do not consider a PublicKey with value "null" valid.
7714         (mono_assembly_name_parse_full): added boolean argument that will be
7715         set if the assembly name contains a PublicKeyToken spec. Added support
7716         for the Retargetable spec for which only Yes or No are allowed as valid
7717         value. Consider assembly name invalid if Retargetable spec is set, but
7718         either version, culture or public key (token) are not specified.
7719         * metadata-internals.h: sync signature of mono_assembly_name_parse_full
7720         with implementation in assembly.c.
7721         * icall.c (fill_reflection_assembly_name): also copy assembly flags
7722         from MonoAssemblyName.
7723         (ves_icall_System_Reflection_AssemblyName_ParseName): use newly
7724         introduced argument for mono_assembly_name_parse_full to know if the
7725         assembly name has a PublicKeyToken spec, and if it has instruct
7726         fill_reflection_assembly_name to use default value for keyToken (if
7727         PublicKeyToken is null).
7728
7729 2008-01-18  Rodrigo Kumpera  <rkumpera@novell.com>
7730
7731         * verify.c (mono_method_verify): fixed ovf ops with
7732         float values. They are unverifiable now.
7733
7734 2008-01-18  Rodrigo Kumpera  <rkumpera@novell.com>
7735
7736         * class.c (set_failure_from_loader_error): add BadImageException to the
7737         list of exceptions that can cause a type to fail to load.
7738
7739         * class.c (mono_class_get_exception_for_failure): same.
7740
7741 2008-01-17  Rodrigo Kumpera  <rkumpera@novell.com>
7742
7743         * verify.c (in_any_exception_block): added, check if offset
7744         is part of any exception handling clause.
7745
7746         * verify.c (get_stack_type): added VAR and MVAR types.
7747
7748         * verify.c (do_stobj): better error messages.
7749
7750         * verify.c (do_cpobj): added, check cpobj.
7751
7752         * verify.c (do_initobj): added, check initobj.
7753
7754         * verify.c (do_sizeof): added, check sizeof.
7755
7756         * verify.c (do_localloc): added, check localloc.
7757
7758         * verify.c: adde proper verification for cpobj, initobj, sizeof and localloc.
7759
7760 2008-01-17  Zoltan Varga  <vargaz@gmail.com>
7761
7762         * method-builder.c (mono_mb_emit_native_call): Get rid of the unused
7763         save_lmf/restore_lmf opcodes.
7764
7765         * threads.c (mono_threads_install_notify_pending_exc): New function to
7766         install a callback notifying the JIT there is a pending exception on a thread.
7767         (mono_thread_request_interruption): Call the new callback.
7768         (mono_thread_get_and_clear_pending_exception): New function to return the
7769         exception pending on a thread.
7770
7771         * marshal.c (mono_marshal_get_icall_wrapper): Add a check_exceptions argument
7772         to turn off checking for pending exceptions.
7773         (mono_marshal_get_native_wrapper): Ditto.
7774
7775 2008-01-16  Zoltan Varga  <vargaz@gmail.com>
7776
7777         * threads-types.h: Get rid of the unnecessary extern declarations.
7778
7779 2008-01-16  Gert Driesen  <drieseng@users.sourceforge.net>
7780
7781         * icall.c (ves_icall_Type_GetField): if NonPublic flag is set, only
7782         return field from parent class if not private.
7783         (ves_icall_Type_GetFields_internal): if NonPublic flag is set, only
7784         returns fields from parent class if they are not private.
7785         (method_nonpublic): added function to determine if a given method
7786         should be considered non-public. Returns false for private methods
7787         on parent class, and internal methods from parent on the 1.0 profile.
7788         (ves_icall_Type_GetMethodsByName): if NonPublic flag is set, then
7789         use method_nonpublic function to determine whether method should be
7790         returned.
7791         (property_accessor_public): use newly introduced method_nonpublic
7792         function to determine whether accessor is non-public. 
7793         (ves_icall_MonoType_GetEvent): If NonPublic flag is set, only return
7794         event from parent class if not private. Only return static event if
7795         Static flag is set, and only return static event from parent class if
7796         FlattenHierarchy flag is set.
7797         (ves_icall_Type_GetEvents_internal): If NonPublic flag is set, only
7798         include non-private events from parent class.
7799
7800 2008-01-16  Zoltan Varga  <vargaz@gmail.com>
7801
7802         * icall.c (ves_icall_System_NumberFormatter_GetFormatterTables): Fix a
7803         warning.
7804
7805 2008-01-16  Wade Berrier <wberrier@novell.com>
7806
7807         * security.c: Add assembly.h header to appease some warnings
7808
7809 2008-01-16  Dick Porter  <dick@ximian.com>
7810
7811         * process.c (process_module_string_read): Remove trailing null
7812         when saving string.
7813
7814 2008-01-16  Mark Probst  <mark.probst@gmail.com>
7815
7816         * class-internals.h: A new data structure describing the layout of
7817         a runtime generic context (MonoRuntimeGenericContextTemplate).
7818
7819         * metadata-internals.h: Added a hash table to MonoDomain that maps
7820         from open generic classes to their runtime generic context
7821         templates.
7822
7823         * object.c: Building of the runtime generic context, including
7824         proper handling of generic type arguments of superclasses.
7825         Building of the runtime generic context according to the template.
7826
7827 2008-01-15  Zoltan Varga  <vargaz@gmail.com>
7828
7829         * class.c (mono_class_setup_fields): Set field.count for generic instances.
7830         Fixes #350856.
7831
7832         * image.c (do_mono_image_open): Pass TRUE as last_exists to 
7833         mono_portability_find_file (). Fixes #325466.
7834         (mono_image_get_public_key): Fix a warning.
7835
7836 2008-01-14  Zoltan Varga  <vargaz@gmail.com>
7837
7838         * class.c (mono_class_from_name): Fix comments for NULL-ness of image parameter.
7839         Fixes #353550.
7840         (mono_class_from_name_case): Ditto.
7841
7842 2008-01-13  Eyal Alaluf <eyala@mainsoft.com>
7843
7844         * icall-def.h number-formatter.h icall.c: Implemented a cross app-domain
7845           common storage for the tables used in the System/NumberFormatter class.
7846
7847 2008-01-13  Zoltan Varga  <vargaz@gmail.com>
7848
7849         * marshal.c (mono_marshal_get_runtime_invoke): Fix a typo.
7850
7851 2008-01-11  Rodrigo Kumpera  <rkumpera@novell.com>
7852
7853         * verify.c (get_boxable_mono_type): check if the token is valid.
7854
7855         * verify.c (set_stack_value): changed to add an error if an
7856         invalid type is set on stack. Changed all callers due to signature change.
7857
7858         * verify.c (do_stobj): implement stobj validation.
7859
7860 2008-01-11  Zoltan Varga  <vargaz@gmail.com>
7861
7862         * reflection.c (reflection_methodbuilder_to_mono_method): No need to
7863         set container->is_method, it was set earlier.
7864
7865         * metadata.c (type_in_image): Handle MVARs which belong to not finished
7866         generic methods.
7867
7868         * reflection.c (mono_reflection_initialize_generic_parameter): Set
7869         is_method of the generic container to TRUE for methods.
7870
7871 2008-01-10  Zoltan Varga  <vargaz@gmail.com>
7872
7873         * metadata.c (type_in_image): Handle type parameters properly.
7874
7875         * class-internals.h (MonoGenericParam): Add an 'image' argument to track
7876         memory ownership of this structure.
7877
7878 2008-01-10  Rodrigo Kumpera  <rkumpera@novell.com>
7879
7880         * verify.c (get_boxable_mono_type): make typedref types been just
7881         unverifiable. check for void type.
7882
7883         * verify.c (do_unbox_any): added, verify opcode unbox.any.
7884
7885         * verify.c (do_load_function_ptr): accept method spec tokens.
7886
7887 2008-01-10  Zoltan Varga  <vargaz@gmail.com>
7888
7889         * marshal.c (mono_class_native_size): Always set *align even if this is called
7890         recursively.
7891
7892 2008-01-09  Zoltan Varga  <vargaz@gmail.com>
7893
7894         * verify.c (mono_verify_corlib): Remove this as it was not used and was 
7895         out-of-date.
7896
7897 2008-01-09  Rodrigo Kumpera  <rkumpera@novell.com>
7898
7899         * verify.c: removed some old unused tables. A huge bunch of small fixes
7900         to things found while testing the verifier with mono basic.
7901
7902         * verify.c (dump_stack_value): dump null literal flag to.
7903
7904         * verify.c (verify_type_compatibility_full): fix comparison
7905         for types that have a generic super type.
7906
7907         * verify.c (verify_stack_type_compatibility): fix compatibility
7908         between null literals and reference types. fix compatibility between
7909         boxed valuetypes and object. fix corner case test for enums.
7910
7911         * verify.c (do_cmp_op): proper verification of cgt.un in case
7912         of reference types.
7913
7914         * verify.c (do_invoke_method): fix error message.
7915
7916         * verify.c (do_store_indirect
7917
7918         * verify.c (check_is_valid_type_for_field_ops): proper verification
7919         of managed pointers to valuetypes and boxed valuetypes. proper verification
7920         of null literals.
7921
7922         * verify.c (do_unbox_value): expect valuetypes to be always boxed. don't
7923         allow token to be a reference type.
7924
7925         * verify.c (do_cast): proper handling of boxes valuetypes.
7926
7927         * verify.c (do_stelem): proper handling of storing a boxed valuetype
7928         in object[].
7929
7930         * verify.c (mono_method_verify): pass the opcode to do_cmp_op
7931         to handle cgt.un properly. Implement add/mul/sub ovf opcodes.
7932         fixed the decoding of unbox_any
7933
7934 2008-01-08  Zoltan Varga  <vargaz@gmail.com>
7935
7936         * boehm-gc.c (mono_gc_deregister_root): Fix the size passed to libgc.
7937
7938 2008-01-08  Rodrigo Kumpera  <rkumpera@novell.com>
7939
7940         * verify.c (do_newobj): do delegate verification.
7941
7942         * verify.c (verify_delegate_compatibility): perform delegate
7943         verification.
7944
7945         * verify.c (verify_ldftn_delegate): perform tests related to
7946         ldftn delegates.
7947
7948         * verify.c (mono_delegate_signature_equal): perform the
7949         slightly diferent signature comparison required by delegates.
7950
7951         * metadata.c (mono_metadata_type_equal_full): added and exported
7952         as MONO_INTERNAL. This is a version of mono_metadata_type_equal that
7953         allows signature only comparison.
7954
7955         * metadata-internal.h (mono_metadata_type_equal_full): added and exported
7956         as MONO_INTERNAL.
7957
7958 2008-01-07  Rodrigo Kumpera  <rkumpera@novell.com>
7959
7960         * verify.c: added a bunch of stack_slot_* functions to
7961         make access to stack slot type easier. This is required to
7962         allow optional flags, like null literal, boxed value and
7963         this pointer.
7964         All access paths to IlStackDesc::stype have been changed 
7965         to use these new funcions.
7966         Removed a bunch of unused functions and cleared all warnings.
7967         This patch introduces the usage of the this pointer and 
7968         boxed value flags.
7969
7970 2008-01-07  Zoltan Varga  <vargaz@gmail.com>
7971
7972         * boehm-gc.c (mono_gc_deregister_root): Fix win32 build.
7973
7974 2008-01-06  Zoltan Varga  <vargaz@gmail.com>
7975
7976         * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Change signature to
7977         match managed version.
7978
7979         * appdomain.c: Bump corlib version.
7980         
7981         * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Check for a null
7982         argument.
7983
7984 2008-01-06  Gert Driesen  <drieseng@users.sourceforge.net>
7985
7986         * icall.c (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies)
7987         Set public key token to zero-length byte array if assembly is not
7988         strongnamed.
7989
7990 2008-01-05  Zoltan Varga  <vargaz@gmail.com>
7991
7992         * icall.c (ves_icall_System_Array_SetValueImpl): Use a write barrier when
7993         writing a vtype array elem.
7994
7995 2007-01-05  Gert Driesen  <drieseng@users.sourceforge.net>
7996
7997         * assembly.c (build_assembly_name): return FALSE if length of token is
7998         not 16 (if not "null").
7999         (mono_assembly_name_parse_full): return FALSE if value of version,
8000         culture, token or key is 0.
8001         * icall.c (fill_reflection_assembly_name): add boolean arguments to
8002         specify whether public key and public key token must be set to default
8003         value (zero-length byte array) if not available. Set versioncompat to
8004         SameMachine. If public key is available or the default is set, then
8005         set PublicKey flag.
8006         (ves_icall_System_Reflection_Assembly_FillName): if no public key
8007         is available, use empty byte array as default value. On the 2.0
8008         profile, use default value for public key token if not set.
8009         (ves_icall_System_Reflection_InternalGetAssemblyName): on the 1.0
8010         profile, use default value for public key if not set. On the 2.0
8011         profile, use default value for public key token if not set.
8012         (ves_icall_System_Reflection_AssemblyName_ParseName): do not set
8013         default values for public key and public key token.
8014
8015 2008-01-05  Zoltan Varga  <vargaz@gmail.com>
8016
8017         * object-internals.h (MonoReflectionAssemblyName): Add 'processor_architecture'
8018         field to keep it in synch with the managed object.
8019
8020         * marshal.c (emit_marshal_object): Add support for byref marshalling of
8021         delegates. Fixes #351520.
8022
8023         * sgen-gc.c (conservatively_pin_objects_from): Tell valgrind that the pin queue
8024         contains defined memory.
8025         
8026         * sgen-gc.c: Fix 64 bit warnings. Fix some typos. Update GC stats in mono_stats.
8027
8028         * sgen-gc.c (build_nursery_fragments): Handle half-constructed objects correctly.
8029         
8030         * sgen-gc.c (check_consistency): New helper function to do a consistency check
8031         of the GC data structures.
8032
8033         * gc-internal.h: Moved the REGISTER/UNREGISTER macros here from os/gc_wrapper.h.
8034
8035         * *.c: Include metadata/gc-internal.h instead of os/gc_wrapper.h.
8036         
8037         * object.c (mono_array_full_copy): Fix detection of whenever to use a write
8038         barrier.
8039         (mono_array_clone_in_domain): Ditto.
8040         (mono_array_clone_in_domain): Ditto.
8041
8042         * threads.c (start_wrapper): Register the thread start argument as a GC root.
8043         (cache_culture): Use a write barrier.
8044
8045         * icall.c (ves_icall_System_Array_SetValueImpl): Call a write barrier.
8046         (ves_icall_get_property_info): Ditto.
8047
8048         * object.h (MONO_STRUCT_SETREF): New macro.
8049
8050         * class-internals.h (MonoStats): Add some GC statistics.
8051
8052         * boehm-gc.c null-gc.c: Define mono_gc_deregister_root ().
8053
8054 2008-01-04  Andreas Faerber  <andreas.faerber@web.de>
8055
8056         * exception.c (mono_exception_from_name_two_strings):
8057         Break from loop after method is found.
8058
8059 2008-01-04  Dick Porter  <dick@ximian.com>
8060
8061         * process.c (process_module_string_read): Rename variable to
8062         reflect correct usage, after fixing bug 345972.
8063
8064 2008-01-03  Rodrigo Kumpera  <rkumpera@novell.com>
8065
8066         * verify.c (mono_type_create_fnptr_from_mono_method): 
8067         created a MonoType function pointer instance to be used during
8068         verification. The verifier releases this memory at end.
8069
8070         * verify.c (mono_method_is_constructor): extracted repeated
8071         checks for constructor into a single class.
8072
8073         * verify.c (do_push_field): use new extracted method
8074         for constructor check.
8075
8076         * verify.c (do_newobj): same.
8077
8078         * verify.c (do_ldftn): renamed to do_load_function_ptr
8079         and make it verify ldvirtftn too.
8080
8081         * verify.c (mono_method_verify: proper verification
8082         of ldvirtftn. release created MonoMethod instances.
8083
8084 2007-12-31  Rodrigo Kumpera  <rkumpera@novell.com>
8085
8086         * verify.c (token_bounds_check): added.
8087
8088         * verify.c (do_ldftn): added.
8089
8090         * verify.c (mono_method_verify): proper verificartion of ldftn.
8091
8092 2007-12-31  Rodrigo Kumpera  <rkumpera@novell.com>
8093
8094         * metadata.c (mono_metadata_decode_row): Assert if index is bigger
8095         than the table row count. It's the resposibility of the caller to
8096         make the bounds check and raise the correct error.
8097
8098         * metadata.c (mono_metadata_decode_row_col): Same.
8099
8100         * loader.c (mono_get_method_from_token): perform bounds check
8101         on token for methoddef table.
8102
8103 2007-12-29  Miguel de Icaza  <miguel@novell.com>
8104
8105         * icall.c
8106         (ves_icall_System_CurrentSystemTimeZone_GetTimeZoneData): Turn the
8107         assert into a negative result, the managed code already coped with
8108         that.
8109
8110         Some folks on Windows reported this error. 
8111
8112 2007-12-28  Gert Driesen  <drieseng@users.sourceforge.net>
8113
8114         * appdomain.c: Bump corlib version.
8115         * icall.c:
8116         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies): Use
8117         CultureInfo.CreateCulture to create CultureInfo for name.
8118         (fill_reflection_assembly_name): Use CultureInfo.CreateCulture to
8119         create CultureInfo for name. Fixes bug #347174.
8120
8121 2007-12-27  Rodrigo Kumpera  <rkumpera@novell.com>
8122
8123         * verify.c: added IL_CODE_FLAG_STACK_INITED and IL_CODE_STACK_MERGED
8124         flags.
8125
8126         * verify.c (is_valid_branch_instruction): allow branching to the
8127         first instruction of the protected block.
8128
8129         * verify.c (is_valid_cmp_branch_instruction): same.
8130
8131         * verify.c (stack_init): use IL_CODE_FLAG_STACK_INITED flag to
8132         avoid double initialization.
8133
8134         * verify.c (merge_stacks): use IL_CODE_STACK_MERGED to
8135         detect which cases the eval stack should just be copied.
8136
8137         * verify.c (mono_method_verify): check if the eval stack
8138         is empty when entering a protected block.
8139
8140 2007-12-27  Rodrigo Kumpera  <rkumpera@novell.com>
8141
8142         * verify.c: added is_clause_in_range, is_clause_inside_range,
8143         is_clause_nested and verify_clause_relationship. They perform
8144         the verifications stated in P1 12.4.2.7.
8145
8146         * verify.c (mono_method_verify): remove some unused variables,
8147         add the new exception clause checks, add instruction border
8148         checks for protected block start/end, improved some error 
8149         messages and fixed a bug in the way invalid instruction access
8150         is detected.
8151
8152 2007-12-26  Zoltan Varga  <vargaz@gmail.com>
8153
8154         * boehm-gc.c (mono_gc_register_thread): Use the new GC_register_my_thread () routine
8155         from GC 7.0 if available.
8156
8157         * object.c: Remove an unused define.
8158         
8159         * object.c (mono_class_compute_gc_descriptor): Fix a warning.
8160
8161         * boehm-gc.c (mono_gc_make_descr_for_array): Implement.
8162
8163         * null-gc.c (mono_gc_make_descr_for_array): Implement.
8164
8165         * object.c (mono_class_compute_gc_descriptor): Remove an #ifdef SGEN_GC.
8166
8167         * gc-internal.h: Change the signature of mono_gc_make_descr_for_string ()
8168         to take the same arguments as the other make_descr functions.
8169
8170         * boehm-gc.c null-gc.c: Add implementation for make_descr functions.
8171
8172         * objects.c: Get rid of the MAKE_DESCRIPTOR macros, call make_descr functions
8173         directly.
8174
8175         * boehm-gc.c (mono_gc_base_init): Moved the setting of GC_stackbottom here from
8176         mini.c.
8177
8178         * object.c (mono_class_compute_gc_descriptor): Move the GC_init_gcj_malloc () 
8179         call to boehm-gc.c.
8180
8181         * boehm-gc.c (mono_gc_register_root): Fix a warning.
8182
8183         * null-gc.c (mono_gc_register_root): Fix a warning.
8184
8185         * reflection.c (ALLOC_REFENTRY): Use mono_gc_alloc_fixed for boehm as well.
8186
8187         * boehm-gc.c (mono_gc_register_root): Moved definition here from gc_wrapper.h.
8188         (mono_gc_base_init): Call GC_init ().
8189
8190         * null-gc.c: Define mono_gc_register_root () as a no-op.
8191
8192         * domain.c appdomain.c: Call mono_gc_base_init () instead of MONO_GC_PRE_INIT ().
8193
8194 2007-12-24  Rodrigo Kumpera  <rkumpera@novell.com>
8195
8196         * verify.c: add prototype for merge_stacks at top
8197
8198         * verify.c (do_switch): added.
8199
8200         * verify.c (merge_stacks): on some cases the stack merging
8201         was not happening properly. Unequal stack sizes at merge
8202         points should be invalid.
8203
8204         * verify.c (mono_method_verify): added more debug info on stack state.
8205         verify switch properly.
8206
8207 2007-12-24  Zoltan Varga  <vargaz@gmail.com>
8208
8209         * method-builder.h: New file, moved the mono_mb_ declarations here from 
8210         marshal.h.
8211
8212         * boehm-gc.c marshal.c: Include method-builder.h.
8213
8214         * marshal.c: Use mono_mb_emit_branch_label () in a few places.
8215
8216         * marshal.c: Remove some code which is now in method-builder.c.
8217
8218 2007-12-23  Zoltan Varga  <vargaz@gmail.com>
8219
8220         * method-builder.c: New file, extraction of the method builder functionality 
8221         from marshal.c.
8222
8223         * marshal.c: Move the mb functions into method-builder.c.
8224
8225         * marshal.h marshal.c: Export some mono_mb_... functions.
8226
8227         * marshal.c: Use mono_mb_get_label () and mono_mb_patch_branch () in all places.
8228
8229         * loader.c (field_from_memberref): Remove the dynamic case, it is handled in
8230         the caller.
8231
8232         * class.c (mono_class_get_full): Check the token type in the dynamic case.
8233
8234         * loader.c (mono_field_from_token): Ditto.      
8235
8236         * loader.c (mono_get_method_from_token): Change the check so it checks memberref
8237         type as well.
8238         
8239         * loader.c (mono_get_method_from_token): Check the token type in the dynamic case.
8240         Fixes #342565.
8241
8242         * class-internals.h: Add new loader error type MONO_EXCEPTION_BAD_IMAGE plus
8243         a helper function for setting it.
8244
8245         * loader.c (mono_loader_error_prepare_exception): Handle MONO_EXCEPTION_BAD_IMAGE.
8246
8247         
8248         * assembly.c: Significally simplify code now that referenced assemblies are 
8249         loaded lazily. Get rid of the 'loading' hashtables. Hopefully fixes #347629.
8250
8251         * threads.h: Don't include  the internal threads-types.h header file. Fixes
8252         #349952.
8253
8254 2007-12-21  Rodrigo Kumpera  <rkumpera@novell.com>
8255
8256         * verify.c: added enum value IL_CODE_FLAG_WAS_TARGET, to represent
8257         instructions that were target of branches or are at protected block boundaries.
8258
8259         * verify.c (in_same_block): handle filter clauses.
8260
8261         * verify.c (is_valid_branch_instruction): added. checks the target of
8262         instructions br or brtrue/false.
8263
8264         * verify.c (is_valid_cmp_branch_instruction): added. checks the target of
8265         binary branch instructions such as beq and bge.
8266
8267         * verify.c (init_stack_with_value): renamed to init_stack_with_value_at_exception_boundary
8268         and made it pin the instruction as been part of the exception block.
8269
8270         * verify.c (do_boolean_branch_op): use is_valid_branch_instruction instead
8271         of in_same_block.
8272
8273         * verify.c (do_branch_op): use is_valid_cmp_branch_instruction instead
8274         of in_same_block.
8275
8276         * verify.c (do_ret): ret from a protected block is unverifiable and
8277         not invalid.
8278
8279         * verify.c (do_static_branch): verify br and br.s instructions.
8280
8281         * verify.c (merge_stacks): add extra param to support detection
8282         of branches in the middle of instructions.
8283         
8284         * verify.c (mono_method_verify): verify branches and exception blocks
8285         that target the middle of instructions. Proper verification of br and br.s.
8286
8287 2007-12-21  Zoltan Varga  <vargaz@gmail.com>
8288
8289         * reflection.c (reflection_methodbuilder_from_ctor_builder): Initialize
8290         skip_visibility field.
8291         (reflection_methodbuilder_from_dynamic_method): Ditto.
8292
8293         * object.c (mono_class_compute_gc_descriptor): Remove more unused icall
8294         registrations. Fixes #348193.
8295
8296         * threads.h: Move the internal mono_thread_get_pending_exception () to
8297         threads-types.h and rename it to mono_thread_get_undeniable_exception ().
8298
8299 2007-12-20  Zoltan Varga  <vargaz@gmail.com>
8300
8301         * object.c (mono_class_compute_gc_descriptor): Remove unused GC_gcj_fast_malloc
8302         icall registration. Fixes #348193.
8303
8304         * marshal.c (mono_marshal_get_runtime_invoke): Put all runtime invoke wrappers
8305         for corlib classes into object. Fixes #349621.
8306
8307 2007-12-20  Gert Driesen  <drieseng@users.sourceforge.net>
8308
8309         * icall.c (property_accessor_nonpublic): new function to determine
8310         whether an accessor allows a property to be considered non-public.
8311         Returns false for private accessor(s) from parent class, and internal
8312         accessor(s) from parent on 2.0 profile (and higher).
8313         (ves_icall_Type_GetPropertiesByName): Use newly introduced function
8314         to determine whether property should be included if NonPublic flag
8315         is set. Fixes bug #349078.
8316
8317 2007-12-20  Rodrigo Kumpera  <rkumpera@novell.com>
8318
8319         * verify.c (init_stack_with_value): added.
8320
8321         * verify.c (mono_method_verify): extracted common
8322         code for exception initialization into init_stack_with_value.
8323
8324         * verify.c (mono_method_verify): initialize the exception
8325         for handler clauses as well.
8326
8327         * verify.c (mono_method_verify): fix the exception clause
8328         ordering rules, it should use handler end offset and not
8329         start offset.
8330
8331 Thu Dec 20 12:27:24 CET 2007 Paolo Molaro <lupus@ximian.com>
8332
8333         * rawbuffer.c: remove useless warning.
8334
8335 Thu Dec 20 12:10:38 CET 2007 Paolo Molaro <lupus@ximian.com>
8336
8337         * threads.h, threads-types.h: move functions to the correct header
8338         (fixes bug#349952).
8339
8340 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
8341
8342         * verify.c (mono_method_verify): proper verification
8343         of exception handling clauses ranges and fallthru in
8344         and out of protected blocks.
8345
8346 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
8347
8348         * verify.c (mono_method_verify): fixed compilation issue.
8349
8350 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
8351
8352         * verify.c (mono_method_verify): a printf slipped in, changed
8353         to use verifier debug macro.
8354
8355 2007-12-18  Rodrigo Kumpera  <rkumpera@novell.com>
8356
8357         * verify.c (is_correct_leave): check for filter clauses.
8358
8359         * verify.c (do_filter): added.
8360
8361         * verify.c (mono_method_verify): property verification of leave.
8362
8363
8364 2007-12-18  Mark Probst  <mark.probst@gmail.com>
8365
8366         * threads.c: Disable calls to _wapi_thread_signal_self() to fix
8367         Win32 build, until we figure out how to do the proper thing on
8368         Win32.
8369
8370 2007-12-17  Zoltan Varga  <vargaz@gmail.com>
8371
8372         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Fix a crash introduced
8373         by the previous patch.
8374         
8375         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Avoid calling
8376         the assembly resolve handler for refonly assemblies.
8377
8378 2007-12-17  Mark Probst  <mark.probst@gmail.com>
8379
8380         * threads.c, thread-types.h, icall.c: New shutdown safeguards.
8381         Make sure only one thread is allowed to commence shutdown, and
8382         don't allow new threads to be started once shutdown is in
8383         progress.
8384
8385 2007-12-14  Rodrigo Kumpera  <rkumpera@novell.com>
8386
8387         * verify.c (is_correct_endfilter): added.
8388
8389         * verify.c (is_unverifiable_endfilter): added.
8390
8391         * verify.c (do_endfilter): added.
8392
8393         * verify.c (mono_method_verify): property verification of endfilter
8394         and fixed a corner case or endfinally.
8395
8396 2007-12-13  Rodrigo Kumpera  <rkumpera@novell.com>
8397
8398         * verify.h: new flags to support fail fast of unverifiable code and
8399         do non-strict verification. Non-strict verification is required to
8400         have MS runtime compatibility. There are a huge amount of unverifiable
8401         code that it accepts as verifiable. The strict mode verifies the code
8402         as the specs says.
8403         Non-strict mode will be required in cases where code needs to be
8404         accepted as verifiable but fails under strict mode.
8405
8406         * pedump.c: added support to fail fast and non-strict verification.
8407
8408         * verify.c: added support for both fail fast and non-strict verification.
8409
8410 2007-12-12  Rodrigo Kumpera  <rkumpera@novell.com>
8411
8412         * verify.c (is_correct_endfinally): added.
8413
8414         * verify.c (mono_method_verify): property verification of endfinally.
8415
8416 2007-12-11  Rodrigo Kumpera  <rkumpera@novell.com>
8417
8418         * verify.c (in_any_block): check for filter clauses.
8419
8420         * verify.c (is_correct_rethrow): added.
8421
8422         * verify.c (mono_method_verify): property verification of rethrow.
8423
8424         * metadata.h: added MONO_OFFSET_IN_FILTER macro.
8425
8426 2007-12-11  Rodrigo Kumpera  <rkumpera@novell.com>
8427
8428         * verify.c (do_throw): added.
8429
8430         * verify.c (mono_method_verify): property verification of throw
8431
8432 2007-12-11  Zoltan Varga  <vargaz@gmail.com>
8433
8434         * assembly.c (mono_assembly_load_reference): Try an assembly resolve for ref-only
8435         assemblies. Fixes #346425.
8436
8437 2007-12-10  Zoltan Varga  <vargaz@gmail.com>
8438
8439         * reflection.c (mono_reflection_get_token): Call mono_image_create_token () for
8440         FieldBuilders.
8441
8442         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Fix a warning.
8443
8444         * class.c (mono_lookup_dynamic_token_class): Add a 'valid token' argument to
8445         prevent asserts when this is called with a token which might not be valid.
8446
8447         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Call
8448         lookup_dynamic_token_class with valid_token == FALSE.
8449
8450         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.       
8451
8452         * icall.c (ves_icall_System_Reflection_Module_ResolveStringToken): Ditto.
8453
8454         * icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
8455         
8456 2007-12-10  Mark Probst  <mark.probst@gmail.com>
8457
8458         * gc.c: Don't delay threadpool thread finalization unless Mono is
8459         shutting down.
8460
8461 Mon Dec 10 11:06:23 CET 2007 Paolo Molaro <lupus@ximian.com>
8462
8463         * threads.c: turn an assert into a non-fatal warning.
8464
8465 2007-12-09  Robert Jordan  <robertj@gmx.net>
8466
8467         * icall.c (GetVirtualMethod): Add missing argument validation.
8468
8469 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
8470
8471         * verify.c (do_cast): added.
8472
8473         * verify.c (mono_method_verify): property verification of castclass and isinst.
8474
8475
8476 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
8477
8478         * verify.c (mono_type_from_opcode): added opcodes for stelem.X.
8479
8480         * verify.c (do_stelem): added.
8481
8482         * verify.c (mono_method_verify): property verification of stelem.X.
8483
8484 2007-12-07  Mark Probst  <mark.probst@gmail.com>
8485
8486         * class.c, class-internals.h: Introduce an environment variable
8487         (MONO_GENERIC_SHARING) through which the extent of generic code
8488         sharing can be controlled (share all classes, share only corlib
8489         classes, or share nothing).
8490
8491         * object.c: Only create runtime generic context for classes for
8492         which sharing is enabled.
8493
8494 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
8495
8496         * verify.c (do_ldelem): refactor it to work with ldelem.any.
8497
8498         * verify.c (mono_method_verify): property verification of ldelem.any.
8499
8500 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
8501
8502         * verify.c (get_indirect_op_mono_type): renamed to mono_type_from_opcode,
8503         added ldelem.X opcodes.
8504
8505         * verify.c (do_ldelema): fixed possible invalid usage of MonoType.
8506
8507         * verify.c: proper verification of ldelem.X 
8508
8509 2007-12-06  Zoltan Varga  <vargaz@gmail.com>
8510
8511         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Allow interface cctors to be called too.
8512
8513 2007-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
8514
8515         * verify.c (mono_method_verify): null literal requires special handling,
8516         the value pushed on stack need to be flagged as so.
8517
8518         * verify.c (do_ldelema): Verify ldelema properly.
8519
8520 2007-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
8521
8522         * verify.c: Verify ldlen properly.
8523
8524 2007-12-05  Zoltan Varga  <vargaz@gmail.com>
8525
8526         * icall.c (ves_icall_MonoField_GetValueInternal): Check that the field belongs
8527         to the target object's type. Fixes #346160.
8528
8529 2007-12-05  Dick Porter  <dick@ximian.com>
8530
8531         * threadpool.c (socket_io_add_poll): Asynchronous connect() on
8532         Solaris needs the same workaround as BSD-derived systems.  Fixes
8533         bug 323524, patch by Burkhard Linke
8534         <burkhard.linke@CeBiTec.Uni-Bielefeld.DE>
8535
8536 2007-12-04  Gert Driesen  <drieseng@users.sourceforge.net>
8537
8538         * process.c: When ProcessStartInfo.ErrorDialog is true, pass window
8539         handle to use when error dialog is shown; otherwise, update mask
8540         to show no error dialog when an error occurs.
8541
8542 2007-12-03  Zoltan Varga  <vargaz@gmail.com>
8543
8544         * icall.c (ves_icall_MonoField_GetRawConstantValue): New icall.
8545
8546         * class.c (mono_class_get_field_default_value): New helper function to initialize
8547         field->def_type and field->data.
8548
8549 2007-11-30  Zoltan Varga  <vargaz@gmail.com>
8550
8551         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Use the delegate trampoline instead of
8552         the general one.
8553
8554         * object.c (mono_runtime_create_delegate_trampoline): New helper function.
8555
8556         * marshal.c: Avoid depending on delegate->method_info being set.
8557
8558         * object.c (mono_delegate_ctor): Avoid initializing delegate->method_info.
8559         
8560         * object.c (mono_delegate_ctor): Set delegate->method.
8561
8562         * object-internals.h (struct _MonoDelegate): Add 'method' field.
8563
8564         * appdomain.c: Bump corlib version.
8565
8566 2007-11-27  Raja R Harinath  <harinath@gmail.com>
8567
8568         * metadata.c (mono_generic_inst_equal_full): Short-circuit
8569         equality check if we're comparing canonicalized MonoGenericInsts.
8570
8571 2007-11-23  Zoltan Varga  <vargaz@gmail.com>
8572
8573         * class.c (generic_array_methods): Call mono_class_setup_methods () before
8574         accessing class->methods.
8575
8576 2007-11-22  Dick Porter  <dick@ximian.com>
8577
8578         * threads.c: Ensure that the synch_cs is set before trying to use
8579         it.
8580
8581 Thu Nov 22 12:34:04 CET 2007 Paolo Molaro <lupus@ximian.com>
8582
8583         * profiler.c: r89126 broke the statistial profiler, unbreak.
8584
8585 2007-11-22  Martin Baulig  <martin@ximian.com>
8586
8587         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 66.
8588
8589         * mono-debug.c
8590         (mono_debug_debugger_version): Bump to 3.
8591         (mono_debug_init): Hook `mono_debugger_class_loaded_methods_func'
8592         -> mono_debugger_class_initialized().
8593
8594         * mono-debug-debugger.c
8595         (mono_debugger_add_type): Renamed into mono_debugger_class_initialized().
8596
8597         * class.c
8598         (mono_debugger_start_class_init_func): Removed.
8599         (mono_debugger_class_loaded_methods_func): Added.
8600         (mono_class_setup_methods): Call it here.
8601
8602 2007-11-22  Martin Baulig  <martin@ximian.com>
8603
8604         * mono-debug.c
8605         (mono_debug_add_delegate_trampoline): New public method.
8606         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_DELEGATE_TRAMPOLINE'.
8607
8608         * mono-debug.h
8609         (MonoSymbolTable): Added `global_data_table'.
8610         (MonoDebuggerTypeKind): Removed.
8611
8612 2007-11-21  Zoltan Varga  <vargaz@gmail.com>
8613
8614         * marshal.c (mono_marshal_get_generic_array_helper): Skip visibility checks for
8615         these methods.
8616
8617         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
8618         
8619 Tue Nov 20 23:10:41 CET 2007 Paolo Molaro <lupus@ximian.com>
8620
8621         * object.c: some fields don't have a valid rva: ignore them (bug #343083).
8622
8623 2007-11-20  Martin Baulig  <martin@ximian.com>
8624
8625         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 65.
8626
8627         * mono-debug-debugger.c
8628         (mono_debugger_insert_method_breakpoint): Moved here from debug-mini.c
8629         (mono_debugger_remove_breakpoint): Likewise.
8630         (mono_debugger_check_breakpoints): Likewise.
8631         (mono_debugger_register_class_init_callback): New public method.
8632         (mono_debugger_remove_class_init_callback): Likewise.
8633         (mono_debugger_add_type): Likewise.
8634
8635         * mono-debug-debugger.h
8636         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_CLASS_INITIALIZED'.
8637
8638 Tue Nov 20 20:54:12 CET 2007 Paolo Molaro <lupus@ximian.com>
8639
8640         * class.c: more interface implementations needed for the
8641         array enumerator (fixes bug #341112).
8642
8643 2007-11-18  Gert Driesen  <drieseng@users.sourceforge.net>
8644
8645         * icall.c: Renamed arguments for ves_icall_System_Enum_ToObject to
8646         fix ParamName of ArgumentNullExceptions.
8647
8648 2007-11-17  Miguel de Icaza  <miguel@novell.com>
8649
8650         * reflection.c (mono_reflection_encode_sighelper): Generate the
8651         modopts and modreqs.   I have a useless test that crashes monodis,
8652         but that shows the code working.
8653
8654 2007-11-17  Zoltan Varga  <vargaz@gmail.com>
8655
8656         * boehm-gc.c (create_allocator): Fix size calculation for the string allocator.
8657         (mono_gc_get_managed_allocator): Enable the string allocator on amd64.
8658
8659 2007-11-15  Dick Porter  <dick@ximian.com>
8660
8661         * threads.c (ves_icall_System_Threading_Thread_Join_internal):
8662         When joining a thread, it's the thread that's calling Join that
8663         gets WaitSleepJoin state not the target.  Fixes the standalone
8664         test case in bug 334740, and hopefully the whole bug too.
8665
8666 2007-11-15  Dick Porter  <dick@ximian.com>
8667
8668         * process.c: Read file version info from the files pointed at by
8669         process modules, not the current process.  Fixes bug 315969.
8670
8671         Use windows typedef names in some places to fix warnings on the
8672         windows build.
8673
8674 2007-11-15  Mark Probst  <mark.probst@gmail.com>
8675
8676         * image.c, metadata-internals.h: Added a generic_class_cache hash
8677         to MonoImage for looking up generic classes when sharing generics.
8678
8679 Thu Nov 15 16:11:30 CET 2007 Paolo Molaro <lupus@ximian.com>
8680
8681         * sgen-gc.c: warning cleanups.
8682
8683 2007-11-15  Zoltan Varga  <vargaz@gmail.com>
8684
8685         * icall.c (ves_icall_Type_GetPropertiesByName): Implement proper hiding of
8686         inherited properties.
8687
8688 2007-11-14  Mark Probst  <mark.probst@gmail.com>
8689
8690         * object.c, class-internals.h: Added more information to the
8691         runtime generic context.
8692
8693 2007-11-13  Zoltan Varga  <vargaz@gmail.com>
8694
8695         * marshal.c (mono_marshal_get_delegate_invoke): Take a delegate as argument
8696         instead of just the target method. Generalize the abstract method handling to
8697         handle any non-static method.
8698
8699         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
8700         mono_marshal_get_delegate_invoke () signature change.
8701
8702 2007-11-13  Mark Probst  <mark.probst@gmail.com>
8703
8704         * class.c, class-internals.h: Made
8705         mono_type_get_basic_type_from_generic () public.  Fixed member
8706         access check for shared generics.
8707
8708         * loader.c: Don't insert field into field cache if it's part of a
8709         non-inflated generic class.
8710
8711         * domain.c, domain-internals.h: The generic sharing context is now
8712         part of the jit info data structure.  Added two accessor
8713         functions.
8714
8715 2007-11-12  Zoltan Varga  <vargaz@gmail.com>
8716
8717         * marshal.c (mono_marshal_get_runtime_invoke): Create a non-shared wrapper for
8718         the array Get/Set/Address methods, since the JIT inlines them.
8719
8720         * metadata-internals.h (MonoImage): Add 'runtime_invoke_direct_cache'.
8721
8722         * image.c (mono_image_close): Free runtime_invoke_direct_cache.
8723         (mono_image_init): Initialize runtime_invoke_direct_cache.      
8724
8725         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
8726         mono_marshal_get_delegate_invoke signature change.
8727
8728         * marshal.c (mono_marshal_get_delegate_invoke): Receive the target_method as
8729         an additional argument. Add support for invoking abstract methods.
8730
8731         * metadata-internals.h (MonoImage): Add 'delegate_abstract_invoke_cache'.
8732
8733         * image.c (mono_image_close): Free delegate_abstract_invoke_cache.      
8734
8735 2007-11-09  Mark Probst  <mark.probst@gmail.com>
8736
8737         * class.c: Do field layout for open generic classes as well.
8738
8739 2007-11-09  Mark Probst  <mark.probst@gmail.com>
8740
8741         * gc.c, gc-internal.h: Don't finalize threadpool threads with
8742         other objects, because the threadpool is still around.  Put them
8743         in a list instead and after finalizing all other objects in the
8744         root domain shut down the thread pool and then finalize the
8745         threads.  Fixes bug #337383.
8746
8747         * threads.c, thread-types.h: New mono_thread_create_internal()
8748         function for marking a thread with the threadpool flag before it
8749         started.  Set synch_cs to NULL after freeing it.
8750
8751         * threadpool.c: Mark threadpool threads before they start.
8752
8753 Thu Nov 8 15:31:21 CET 2007 Paolo Molaro <lupus@ximian.com>
8754
8755         * reflection.h, reflection.c: don't export random functions
8756         and lazy load dbnull and missing objects.
8757
8758 2007-11-07  Jonathan Chambers <joncham@gmail.com>
8759
8760         * class.c: Initialize COM types if COM interfaces
8761         are present (not just COM classes).
8762         
8763         Code is contributed under MIT/X11 license.
8764
8765 2007-11-07  Massimiliano Mantione  <massi@ximian.com>
8766         * reflection.c:
8767         create_dynamic_mono_image: hook module profiler events (dynamic case).
8768         mono_image_basic_init: hook assembly profiler events (dynamic case).
8769
8770 2007-11-07  Massimiliano Mantione  <massi@ximian.com>
8771         * profiler.c:
8772         simple_appdomain_unload: completely terminate the profiler
8773         instead of only processing the statistical samples.
8774         simple_shutdown: make sure this is really called exactly once,
8775         even in multithreaded applications, and always listen to
8776         appdomain events.
8777         * gc.c (mono_domain_finalize): don't call mono_profiler_appdomain_event
8778         here, the "[un]load" functions will do it.
8779         Fixes bugs #333791 and #325261.
8780
8781 2007-11-07  Geoff Norton  <gnorton@novell.com>
8782
8783         * socket-io.c:  Use the configure defines for HAVE_SOCKADDR_IN(6)_SIN_LEN
8784         rather than depend on __APPLE__.
8785
8786 2007-11-07  Mark Probst  <mark.probst@gmail.com>
8787
8788         * icall.c: Safety checks in InitializeArray.  Fixes bug #324535.
8789
8790 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com> 
8791
8792         * object.c: Fix mono_string_to_utf8 to handle NULL values inside the
8793         UTF16 MonoString. Fix the crash from bug #335488
8794
8795 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com>
8796
8797         * marshal.c: Correct (for non-Win32 OS) length != size in 
8798         mono_string_from_bstr. Fix #339530.
8799
8800 2007-11-06  Geoff Norton  <gnorton@novell.com>
8801
8802         * socket-io.c: Apple requires sin(6)_len to be set for getnameinfo
8803         to succeed
8804
8805 2007-11-05  KornĂ©l PĂ¡l  <kornelpal@gmail.com>
8806
8807         * process.c: Added run-time GetProcessId API detection for Windows.
8808
8809 2007-11-04  Miguel de Icaza  <miguel@novell.com>
8810
8811         * reflection.c  (mono_param_get_objects): If a parameter has the
8812         attribute [System.Runtime.InteropServices.Optional] we should
8813         set the DefaultValue of the ParameterInfo to be
8814         System.Reflection.Missing instead of DBNull.
8815
8816         See bug #339013.
8817
8818         (mono_get_reflection_missing_object): New method,
8819         returns the System.Reflection.Missing.Value singleton instance.
8820
8821 2007-11-03  Atsushi Enomoto  <atsushi@ximian.com>
8822
8823         * culture-info-table.h : regenerated.
8824
8825 2007-11-02  Jonathan Chambers <joncham@gmail.com>
8826
8827         * icall.c: Use GetEnvironmentStrings on windows
8828         so we are using the same environment block as 
8829         GetEnvironmentVariable/SetEnvironmentVariable. Fixes
8830         #333740.
8831         
8832         Code is contributed under MIT/X11 license.
8833
8834 2007-10-31  Martin Baulig  <martin@ximian.com>
8835
8836         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 64.
8837
8838         * mono-debug-debugger.h
8839         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_TRAMPOLINE'.
8840
8841 2007-10-30  Zoltan Varga  <vargaz@gmail.com>
8842
8843         * reflection.c (mono_custom_attrs_from_class): Add support for dynamic inflated 
8844         classes.
8845
8846 2007-10-30  Atsushi Enomoto  <atsushi@ximian.com>
8847
8848         * culture-info-table.h : regenerated.
8849
8850 2007-10-30  Robert Jordan  <robertj@gmx.net>
8851
8852         * icall-def.h, icall.c:
8853         Add ves_icall_Remoting_RemotingServices_GetVirtualMethod ().
8854
8855         Code is contributed under MIT/X11 license.
8856
8857 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
8858
8859         * class.c (mono_class_setup_vtable): Find the inflated methods in the
8860         inflated class instead of inflating them again.
8861         
8862         * class.c (mono_class_setup_vtable): Inflate the override methods in the 
8863         dynamic case.
8864
8865         * class.c (mono_generic_class_get_class): Set klass->property.count as well.
8866         Call setup_supertypes () after klass->parent is set.
8867         (mono_class_setup_properties): Enable this to work on dynamic generic classes.
8868
8869         * reflection.c (mono_type_get_object): Only return a MonoGenericClass object
8870         for inflated instances of not yet created dynamic generic classes.
8871         (ctorbuilder_to_mono_method): Handle the case when this is called multiple
8872         times from inflated_method.
8873         (methodbuilder_to_mono_method): Ditto.
8874
8875 Mon Oct 29 21:02:53 CET 2007 Paolo Molaro <lupus@ximian.com>
8876
8877         * gc.c: code cleanup and removed old untested option of not creating the
8878         finalizer thread.
8879
8880 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
8881
8882         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Avoid
8883         creating a jump trampoline for dynamic methods.
8884
8885 2007-10-29 Rodrigo Kumpera <rkumpera@novell.com>
8886
8887         * reflection.c (mono_image_create_token): Correctly encode methods and constructors of
8888         generic TypeBuilders when called from another method of the same type (bug #335131).
8889
8890
8891 2007-10-27  Zoltan Varga  <vargaz@gmail.com>
8892
8893         * reflection.c (methodbuilder_to_mono_method): Revert the last change as it
8894         doesn't seem to work perfectly.
8895         
8896         * reflection.c (ctorbuilder_to_mono_method): Handle the case when this is
8897         called multiple times.
8898         (methodbuilder_to_mono_method): Ditto.
8899         (resolve_object): Inflate FieldBuilder's.
8900
8901 Fri Oct 26 19:38:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
8902
8903         * string-icalls.c, string-icalls.h, appdomain.c: patch from
8904         Tyler Larson <mono-devel@tlarson.com> to fix the handling of
8905         RemoveEmptyEntries in the string.Split implementation (bug #322375).
8906
8907 2007-10-26  Dick Porter  <dick@ximian.com>
8908
8909         * appdomain.c (MONO_CORLIB_VERSION): Bump version because of
8910         Thread initialisation changes
8911
8912 2007-10-26 Rodrigo Kumpera <rkumpera@novell.com>
8913
8914         * verify.c: fix compatibility check between arrays and System.Array
8915
8916 2007-10-26  Zoltan Varga  <vargaz@gmail.com>
8917
8918         * reflection.c (mono_reflection_get_custom_attrs_info): Handle MonoGenericClass
8919         too. Fixes #336999.
8920
8921 2007-10-25  Zoltan Varga  <vargaz@gmail.com>
8922
8923         * object.c (mono_value_box): Use typed allocation here.
8924
8925 2007-10-23  Zoltan Varga  <vargaz@gmail.com>
8926
8927         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Create a jump
8928         trampoline instead of compiling the method right away.
8929
8930         * class-internals.h object.c: Add a JIT callback to create a jump trampoline.
8931
8932 2007-10-21  Zoltan Varga  <vargaz@gmail.com>
8933
8934         * class.c (mono_generic_class_get_class): Avoid setting klass->size_inited and
8935         related fields for dynamic classes. Fixes #334493.
8936
8937 2007-10-20  Zoltan Varga  <vargaz@gmail.com>
8938
8939         * class.c (mono_generic_class_get_class): Set klass->field.count as well.
8940         
8941         * class.c (mono_class_layout_fields): Use 1 instead of TRUE for consistency.
8942
8943         * class.c (mono_class_layout_fields): Set size_inited for generic classes as well.
8944         (mono_class_setup_vtable): Obtain overrides for dynamic generic classes correctly.
8945
8946         * class.c (mono_class_setup_methods): Handle dynamic inflated classes correctly.
8947
8948         * reflection.c (create_generic_typespec): Initialize klass->generic_container
8949         if needed.
8950         (reflection_methodbuilder_to_mono_method): Set container->is_method to TRUE.
8951
8952 2007-10-18  Jonathan Chambers <joncham@gmail.com>
8953
8954         * marshal.c: Use correct key when removing item
8955         from ccw_hash.
8956         
8957         Code is contributed under MIT/X11 license.
8958
8959 2007-10-17  William Holmes  <billholmes54@gmail.com>
8960
8961         *marshal.c: Adding a case to marshal booleans to U1
8962
8963         Code is contributed under MIT/X11 license.
8964
8965 2007-10-18  Zoltan Varga  <vargaz@gmail.com>
8966
8967         * class.c (mono_class_from_name): Search the modules compromising dynamic
8968         assemblies. Fixes #331601.
8969
8970 2007-10-16  Zoltan Varga  <vargaz@gmail.com>
8971
8972         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Throw an
8973         exception if the type name contains an assembly component. Fixes #334203.
8974
8975         * reflection.c (mono_reflection_get_type_with_rootimage): Search all the
8976         modules inside dynamic assemblies. Fixes #334200.
8977         
8978         * reflection.c: Set image->public_key and image->public_key_length;
8979
8980         * metadata-internals.h (MonoDynamicImage): Add public_key and public_key_len
8981         fields.
8982
8983         * image.c (mono_image_get_public_key): Handle dynamic assemblies. Fixes #334173.        
8984         
8985 2007-10-16  Mark Probst  <mark.probst@gmail.com>
8986
8987         * metadata.c: Implemented correct comparing of generic classes.
8988         An inflated generic class can be equal to a non-inflated one if it
8989         is inflated with generic type variables as type arguments.  Fixes
8990         bug #333798.
8991
8992 2007-10-15  Dick Porter  <dick@ximian.com>
8993
8994         * monitor.c (mono_monitor_try_enter_internal): Set thread state to
8995         WaitSleepJoin while it is waiting to acquire a lock.  Fixes bug
8996         81646.
8997
8998         * threads.c: Turn the thread synch_lock into a CRITICAL_SECTION,
8999         instead of a monitor lock.  This means that monitor_try_enter and
9000         co can set the thread state safely.
9001         (ves_icall_System_Threading_Thread_Interrupt_internal): Always set
9002         thread_interrupt_requested, so interrupt actually works.
9003
9004         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal,
9005         ves_icall_System_Net_Sockets_Socket_Select_internal): Use thread
9006         state accessor function
9007
9008 2007-10-15  Martin Baulig  <martin@ximian.com>
9009
9010         * mono-debug.h
9011         (MONO_DEBUGGER_VERSION): Bump to 63 to make it impossible to use
9012         the debugger with the current runtime.
9013
9014 Mon Oct 15 10:20:56 CEST 2007 Paolo Molaro <lupus@ximian.com>
9015
9016         * object.c, object-internals.h: added the ability to set a single
9017         trampoline for all the slots in a vtable.
9018
9019 Fri Oct 12 17:50:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
9020
9021         * marshal.c: deal with a possible race condition during multicast
9022         delegate invocation.
9023
9024 Fri Oct 12 13:31:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
9025
9026         * class.c: ensure value type methods don't have the synchronized
9027         flag set.
9028
9029 Fri Oct 12 08:10:59 CEST 2007 Paolo Molaro <lupus@ximian.com>
9030
9031         * string-icalls.c, string-icalls.h: reverted unapproved patch that
9032         breaks the build.
9033
9034 2007-10-11  Joel Reed  <joelwreed@comcast.com>
9035
9036         * string-icalls.c, string-icalls.h: modify System_String_InternalSplit
9037         to take an options parameter so that empty entries can be removed during
9038         the split procedure. Patch from: Tyler Larson <mono-devel@tlarson.com>
9039
9040 Thu Oct 11 20:16:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
9041
9042         * marshal.c: make sure we don't store the signature from a dynamic
9043         method into the runtime invoke cache (bug #327189).
9044
9045 Thu Oct 11 18:22:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
9046
9047         * marshal.c: make sure the wrapper methods are properly initialized.
9048
9049 2007-10-11  Mark Probst  <mark.probst@gmail.com>
9050
9051         * metadata.c, metadata-internals.h: Generalized
9052         mono_type_stack_size() to mono_type_stack_size_internal() which
9053         takes an additional argument specifying whether it allows open
9054         types.
9055
9056 2007-10-10  Rodrigo Kumpera  <rkumpera@novell.com>
9057
9058         * verify.c (do_invoke_method): handle typedbyref params
9059         correctly and check for unverifiable return values.
9060
9061         * verify.c (do_newobj): fix a warning.
9062
9063 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
9064
9065         * verify.c: don't tread typedbyref as allways unverifable,
9066         so uses, like (ld/st)loc.0 are valid. verify for the cases
9067         that it matters, like boxing related operations.
9068
9069 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
9070
9071         * verify.c: add verification of the newobj opcode. verification
9072         of delegate instantation still missing due ldftn and virldftn not
9073         pushing the function type on stack
9074
9075 2007-10-08  Mark Probst  <mark.probst@gmail.com>
9076
9077         * class-internals.h: Runtime generic context data structure
9078         definition.
9079
9080         * object.c: Initialization of runtime generic context at runtime
9081         vtable creation time.
9082
9083 2007-10-08  Massimiliano Mantione  <massi@ximian.com>
9084         * class.c (mono_class_create_from_typedef,
9085         mono_class_from_generic_parameter, mono_ptr_class_get,
9086         mono_fnptr_class_get, mono_bounded_array_class_get)
9087         * domain.c (mono_domain_create, mono_domain_free)
9088         * assembly.c (mono_assembly_load_from_full, mono_assembly_close)
9089         * image.c (do_mono_image_load, mono_image_close):
9090         Hooked up load-unload profiler events.
9091
9092 Mon Oct 8 11:38:04 CEST 2007 Paolo Molaro <lupus@ximian.com>
9093
9094         * domain.c: track statistics about the actual amount of native code
9095         allocated.
9096
9097 Sat Oct 6 10:01:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
9098
9099         * class.c: the valuetype enumerators don't have the additional
9100         supertypes interfaces.
9101
9102 Fri Oct 5 20:33:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
9103
9104         * class.c: need more interfaces setup for the IEnumerator<T>
9105         object created for arrays (tests/ienumerator-interfaces.2.cs).
9106
9107 2007-10-05  Zoltan Varga  <vargaz@gmail.com>
9108
9109         * class.c (mono_ldtoken): Handle methodspec tokens as well. Fixes #331097.
9110
9111 2007-10-05  Alp Toker  <alp@atoker.com>
9112
9113         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
9114         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
9115         #315863.
9116
9117 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
9118
9119         * verify.c (verify_type_compatibility_full): verification of
9120         compatibility improved, validates correctly non-strict checks between
9121         native int and I4 types different than (unsigned)int32.
9122
9123         * verify.c (do_store_indirect): added, do all verification of
9124         ldind.X opcodes. 
9125
9126         * verify.c (get_load_indirect_mono_type): renamed to
9127         get_indirect_op_mono_type, as it now returns the MonoType for 
9128         ldind.X and stind.X opcodes.
9129
9130 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
9131
9132         * reflection.c: Fix the encoding of generic type definition for
9133         TypeBuilders.
9134
9135         * reflection.c (mono_image_typedef_or_ref_full: do the same thing as
9136         mono_image_typedef_or_ref but allows to specify if typespec lookups should
9137         be made. Typespec check is done prior to typeref cache lookup.
9138
9139         * reflection.c (mono_image_typedef_or_ref): now just delegate to
9140         mono_image_typedef_or_ref_full.
9141
9142         * reflection.c (encode_generic_class): encode the generic class
9143         directly instead of calling encode_type.
9144
9145         * reflection.c (encode_type): encode the generic type definition
9146         MonoClass as a generic instantiation.
9147
9148         * reflection.c (create_typespec): cache typespec tokens in
9149         the assembly->typespec cache. Don't create typespec for a generic
9150         instance MonoClass. Create typespec for the generic type defintion.
9151
9152         * reflection.c (create_generic_typespec): encode the generic
9153         class directly instead of calling encode_type.
9154
9155         * reflection.c (mono_image_create_token): encode the generic
9156         type definition not using a typespec for MonoType instances.
9157
9158
9159 2007-10-04  Raja R Harinath  <rharinath@novell.com>
9160
9161         Fix #328812
9162         * class.c (mono_image_init_name_cache): Don't return nested
9163         'protected internal' classes.
9164         (mono_class_from_name_case): Likewise.
9165
9166 2007-10-04  Atsushi Enomoto  <atsushi@ximian.com>
9167
9168         * icall-def.h, icall.c : get_bundled_machine_config() is now the
9169           common function used by both DefaultConfig in System.dll and
9170           InternalConfigurationHost in System.Configuration.dll.
9171
9172 Wed Oct 3 17:26:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
9173
9174         * class.c: automatically add to vectors only a few essential explicit
9175         generic interfaces. The rest of the interfaces that arrays should
9176         provide are currently implicitly added (but still not lazily, see the
9177         design in the discussion of bug#325495 for the details of what is
9178         needed for that). Additionally, implicit interfaces are assigned the
9179         same vtable slot as the explicit interfaces (as they are compatible):
9180         this enables huge memory savings since we don't need to instantiate
9181         as many memthods and as large vtables anymore. Also, Since
9182         GetEnumerator<T> returns an instance of a type that is required to
9183         support a similarly large set of interfaces as arrays, we add
9184         implicit interfaces and interface offset sharing support to those
9185         types, too. This change adds all the required interfaces so that
9186         the anonarray.cs test case in the bug report works (we don't add
9187         all the interfaces to arrays of arrays 3-level deep and more because
9188         of the memory requirements explained in the bug and since they are much
9189         less common: the lazy-loading support will enabled them to work, too).
9190
9191 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
9192
9193         * verify.c (merge_stacks): major clean up, all type compatibility
9194         checks are done by verify_type_compatibility. This fix my earlier lack
9195         of understanding of the CLR type system and merge_stacks no longer looks
9196         scary.
9197
9198         * verify.c: fixed some bad spelling.
9199
9200 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
9201
9202         * verify.c (mono_type_from_stack_slot): added. returns the MonoType for
9203         a given stack slock.
9204         
9205         * verify.c: killed verify_type_compat in favor of verify_type_compatibility and
9206         verify_type_compatibility_full. This removed a near indentical function and fixed
9207         handling of Int32 and IntPtr across all opcodes.
9208
9209 Tue Oct 2 15:24:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
9210
9211         * class.c: only vectors have the additional generic interfaces.
9212
9213 2007-10-01  Jonathan Chambers <joncham@gmail.com>
9214
9215         * mono-config.c: Use g_strcasecmp instead of
9216         strcasecmp like everywhere else to fix
9217         compilation with MSVC.
9218         
9219         Code is contributed under MIT/X11 license.
9220
9221 Mon Oct 1 14:39:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
9222
9223         * object.c, object-internals.h: refactored the IMT code to enable
9224         building a single slot at a time and lazily creating the IMT trampolines
9225         and thunks.
9226
9227 2007-09-29  Zoltan Varga  <vargaz@gmail.com>
9228
9229         * loader.c (inflate_generic_signature): Allocate inflated signatures from the heap.
9230
9231         * metadata.c (mono_metadata_free_inflated_signature): Free the signature itself too.
9232         Fixes #328501.
9233         
9234 2007-09-29  Raja R Harinath  <harinath@gmail.com>
9235
9236         * loader.c (method_from_methodspec): Rearrange to avoid
9237         un-necessary exposition.  Don't assert out if the method's
9238         declaring type is a generic type definition.
9239
9240 2007-09-28  Martin Baulig  <martin@ximian.com>
9241
9242         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 61.
9243
9244 Fri Sep 28 20:15:47 CEST 2007 Paolo Molaro <lupus@ximian.com>
9245
9246         * class-internals.h: optimize field layout of MonoClass to
9247         requires less cachelines at runtime and save a few bytes on 64 bit
9248         systems.
9249
9250 2007-09-28  Jb Evain  <jbevain@novell.com>
9251
9252         * reflection.c: when encoding type names in custom attributes,
9253         if the type is a closed generic type, its generic arguments
9254         have to be serialized as AssemblyQualifiedName, so that when
9255         they are deserialized, it's possible to re-create them properly.
9256         Fixes #329450.
9257
9258
9259 Fri Sep 28 19:19:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
9260
9261         * object.c, class-internals.h: added delegate-creation counter.
9262
9263 Fri Sep 28 18:07:53 CEST 2007 Paolo Molaro <lupus@ximian.com>
9264
9265         * class.c: cleanup of the code that synthetizes interfaces for
9266         arrays in 2.0: saves quit a bit of corlib mempool memory.
9267         Code to fix bug #325495 ifdeffed out for now until the issues
9268         with memory usage and O(n^2) behaviour are fixed.
9269
9270 Fri Sep 28 17:19:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
9271
9272         * marshal.c: when possible, do not duplicate the name of the methods
9273         in the method builder and in the generated MonoMethod.
9274
9275 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
9276         * verify.c: added support for type checking ldind_* opcodes.
9277
9278 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
9279
9280         * class-internals.h (struct _MonoGenericClass): new field is_tb_open
9281         which is used to distinguish the fully open instantiation of a TypeBuilder
9282         with the rest. This temporary hack is required to restore the property that
9283         the fully open instantiation is the same type of the generic type definition.
9284
9285         * class-internals.h (mono_generic_class_is_generic_type_definition):
9286         new function as part of the internal API.
9287
9288         * class.c (inflate_generic_type): return NULL when the generic inst is
9289         fully open. The fully open generic type is now the same as the generic type
9290         definition for non TypeBuilder types.
9291
9292         * class.c (mono_generic_class_get_class): removed assert since it is
9293         no longer valid, gklass->cached_class can point to the generic type definition.
9294
9295         * class.c (mono_generic_class_is_generic_type_definition): new.
9296
9297         * metadata.c (mono_generic_class_hash): added is_tb_open field
9298         to the hash calculation.
9299
9300         * metadata.c (free_generic_class): if the generic class is associated
9301         with the generic type definition, its field will come from the mempool and
9302         must not be freed.
9303
9304         * metadata.c (mono_metadata_is_type_builder_generic_type_definition):
9305         new, this function identifies the corner case of a TypeBuilder fully open
9306         instantiation.
9307
9308         * metadata.c (mono_metadata_lookup_generic_class): use is_tb_open
9309         for lookup. Set gclass->cached_class to be the container class in case of
9310         the fully open instantiation of non TypeBuilder types.
9311
9312         * metadata.c (_mono_metadata_generic_class_equal): use is_tb_open
9313         to compare generic classes.
9314
9315         * reflection.c (method_encode_methodspec): remove assert that
9316         no longer is valid.
9317
9318         * reflection.c (mono_reflection_generic_class_initialize): add
9319         an aditional assert to ensure the proper type is used.
9320
9321 2007-09-26  Rodrigo Kumpera  <rkumpera@novell.com>
9322
9323         * verify.c: disabled all debug spew by default, define MONO_VERIFIER_DEBUG
9324         to enjoy it.
9325
9326 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
9327
9328         * verify.c (push_arg): Fixed support for ldarga
9329         * verify.c (set_stack_value): Removed superfluous parameter, fixed the
9330         MonoType used as first arg in case of instance calls.
9331
9332 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
9333
9334         * verify.c: Support for verifying VAR and MVAR types, 
9335
9336 2007-09-25  Zoltan Varga  <vargaz@gmail.com>
9337
9338         * icall.c (ves_icall_get_property_info): Set the reflected type of the
9339         accessors correctly.
9340
9341 Tue Sep 25 14:56:03 CEST 2007 Paolo Molaro <lupus@ximian.com>
9342
9343         * threads.c: support OSX and other systems in
9344         mono_thread_get_stack_bounds (bug #328026).
9345
9346 2007-09-25  Martin Baulig  <martin@ximian.com>
9347
9348         * mono-debug.h
9349         (MonoDebugVarInfo): Replace `MonoClass *klass' with `MonoType *type'.
9350
9351 2007-09-24  Martin Baulig  <martin@ximian.com>
9352
9353         * mono-debug.h
9354         (MonoDebugClassEntry): Moved the definition of this struct into
9355         mono-debug.c to make it private.
9356
9357         * mono-debug.c
9358         (MonoDebugClassEntry): Removed `symfile_id'; since we now use one
9359         type table per symbol file, we don't need to store the symfile id
9360         any longer.
9361
9362 2007-09-24  Martin Baulig  <martin@ximian.com>
9363
9364         Create one type table per symbol file, since a `MonoClass *' gets
9365         invalid when its image is unloaded.
9366
9367         * mono-debug.h (MonoSymbolTable): Removed `type_table'.
9368         (MonoDebugHandle): Added `type_table'.
9369
9370 Mon Sep 24 17:25:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
9371
9372         * mempool.c, mempool.h: added mono_mempool_new_size () API
9373         to be able to specify a smaller initial size for the pool.
9374         Adjusted the code to slowly increase pool size before using
9375         the previous default size.
9376         * image.c: use a small initial size for image mempools.
9377
9378 2007-09-23  Zoltan Varga  <vargaz@gmail.com>
9379
9380         * marshal.c (emit_marshal_array): Generate valid IL for byref array case.
9381         Fixes ##320990.
9382
9383         * icall.c (ves_icall_System_Reflection_Assembly_get_ManifestModuleInternal): 
9384         Rename this to ves_icall_System_Reflection_Assembly_GetManifestModuleInternal.
9385
9386 2007-09-22  Zoltan Varga  <vargaz@gmail.com>
9387
9388         * metadata.c (mono_type_create_from_typespec): Remove an invalid
9389         free. Fixes #327438.
9390
9391 2007-09-21  Raja R Harinath  <harinath@gmail.com>
9392
9393         * metadata.c (type_in_image) <MONO_TYPE_SZARRAY>: Handle arrays of
9394         generic instantiations, etc.
9395         <MONO_TYPE_ARRAY>: Likewise.
9396
9397 2007-09-21  Martin Baulig  <martin@ximian.com>
9398
9399         * mono-debug.h (MonoSymbolFilePriv, MonoDebugHandlePriv): Removed;
9400         these structs were never defined.
9401         (MonoDebugHandle): Removed the `_priv' field, it was never used.
9402
9403 2007-09-21  Martin Baulig  <martin@ximian.com>
9404
9405         * mono-debug.h (MonoDebugVarInfo): Add `MonoClass *klass'.
9406
9407 Fri Sep 21 14:39:45 CEST 2007 Paolo Molaro <lupus@ximian.com>
9408
9409         * image.c: removed the guid hash tables: we can get the same info
9410         without the additional memory usage hit (partially fixes also bug #327052).
9411
9412 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
9413
9414         * profiler.h, profiler-private.h, profiler.c: add a new profiler
9415         event to handle unloading methods. After the event is called, the
9416         corresponding MonoMethod* must be considered invalid.
9417         * loader.c (mono_free_method): call the new mono_profiler_method_free
9418         event.
9419
9420 2007-09-20  Mark Probst  <mark.probst@gmail.com>
9421
9422         * domain-internals.h: New flag in MonoJitInfo which marks shared
9423         generic methods.  New hash table (shared_generics_hash) in
9424         MonoDomain to keep track of shared generic methods.  Prototypes
9425         for functions to register and lookup shared generic methods.
9426
9427         * domain.c: Support for registering and looking up shared generic
9428         methods via a hash table (shared_generics_hash) in MonoDomain.
9429
9430         * class-internals.h: New exception to signal failure of shared
9431         compilation of a generic method.  New counters for generics
9432         sharing in MonoStats.
9433
9434 Thu Sep 20 16:59:36 CEST 2007 Paolo Molaro <lupus@ximian.com>
9435
9436         * image.c, metadata-internals.h: don't keep a file descriptor open
9437         for loaded assemblies (bug#325988).
9438
9439 2007-09-19  Raja R Harinath  <rharinath@novell.com>
9440
9441         * metadata.c (signature_in_image): New.  Carve out of type_in_image.
9442         (ginst_in_image, gclass_in_image): Simplify.  Change signature to
9443         use the corresponding datatypes.
9444         (type_in_image): Update to changes.
9445         (CleanForImageUserData): Simplify.
9446         (steal_gclass_in_image): Carved out of old 'gclass_in_image'.
9447         Avoid quadratic behaviour in handling the "stolen" list by
9448         separating the filter predicate out, and by prepending the stolen
9449         items rather than appending them.
9450         (steal_ginst_in_image): Likewise.
9451         (mono_metadata_clean_for_image): Update to changes.
9452
9453 2007-09-19  Martin Baulig  <martin@ximian.com>
9454
9455         * domain.c (mono_cleanup): Call mono_debug_cleanup() here.
9456
9457 2007-09-19  Martin Baulig  <martin@ximian.com>
9458
9459         * mono-debug.c (mono_debug_cleanup): Don't call
9460         mono_debugger_cleanup(); this is now called earlier from mini_cleanup().
9461
9462 2007-09-19  Raja R Harinath  <harinath@gmail.com>
9463
9464         Fix crash on 'make run-test' in mcs/errors
9465         * metadata.c (type_in_image): New.  Carve out of ginst_in_image.
9466         Avoid more potential allocations in mono_class_from_mono_type.
9467         (ginst_in_image): Update to changes.
9468         (gclass_in_image): Rearrange slightly.
9469
9470 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
9471
9472         * class.c (mono_class_init): Move the code that sets up class->methods to 
9473         mono_class_setup_methods () for inflated generic classes too. Ditto for properties.
9474
9475         * metadata.c (mono_metadata_get_inflated_signature): New function to return a
9476         canonical instance of an inflated generic signature.
9477         (mono_type_create_from_typespec): Remove an invalid free.
9478
9479         * loader.c (mono_method_get_signature_full): Use mono_metadata_get_inflated_signature.  
9480
9481 2007-09-18  Marek Habersack  <mhabersack@novell.com>
9482
9483         * domain-internals.h: added a declaration of the
9484         mono_assembly_load_full_nosearch internal function.
9485
9486         * assembly.c (mono_assembly_load_with_partial_name): use
9487         mono_try_assembly_resolve return value properly.
9488         (mono_assembly_load_full_nosearch): copied the function body from
9489         mono_assembly_load_full, without the code to invoke assembly
9490         search hooks.
9491         (mono_assembly_load_full): calls the above new function and if the
9492         assembly is not resolved, invokes the search hooks.
9493
9494         * appdomain.c (mono_runtime_init): restore the global postload
9495         assembly search handlers.
9496
9497 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
9498
9499         * class.c (mono_class_init): Make sure class->methods and class->properties
9500         are never NULL in the generics case.
9501
9502         * metadata.c (free_generic_class): Enable this again, skip the dynamic case.
9503
9504 2007-09-17  Zoltan Varga  <vargaz@gmail.com>
9505
9506         * metadata.c (free_generic_class): Disable some code to fix the build.
9507
9508         * domain.c (mono_cleanup): Fix a crash introduced by a previous patch.
9509
9510         * marshal.c (mono_marshal_get_xappdomain_dispatch): Allocate a piece of data
9511         from the image mempool.
9512
9513         * metadata.c (free_generic_class): Free more data from the inflated class.
9514
9515         * class.c (mono_class_from_generic_parameter): Allocate memory from the mempool.
9516
9517         * metadata.c (mono_metadata_parse_generic_param): Allocate memory from the image
9518         mempool.
9519         (mono_type_create_from_typespec): Ditto.
9520
9521         * domain.c (get_runtimes_from_exe): Add an out parameter to return the opened
9522         MonoImage to the caller.
9523         (mono_init_internal): Save the opened image in a global variable.
9524         (mono_cleanup): Close the image opened in get_runtimes_from_exe.
9525
9526         * reflection.c (resolve_object): Fix a leak.
9527
9528         * metadata.c: Fix the freeing of data in the generics caches.
9529         
9530         * metadata.c (free_generic_inst): Comment this out to fix the build.
9531         (free_generic_class): Ditto.
9532
9533         * metadata.c: Free cached generic methods, instantinations and classes when
9534         they are removed from the caches.
9535         (mono_metadata_free_type): Free the type itself.
9536
9537         * class.c: Free the result of mono_class_inflate_generic_type () in a few
9538         places.
9539
9540 Mon Sep 17 16:14:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
9541
9542         * boehm-gc.c: restrict managed allocs to __thread supporting
9543         architectures.
9544
9545 2007-09-16  Zoltan Varga  <vargaz@gmail.com>
9546
9547         * class.c (mono_class_inflate_generic_type): Add a comment describing memory ownership.
9548         (mono_generic_class_get_class): Fix a leak.
9549
9550         * metadata.c (do_mono_metadata_parse_type): Remove an unneccesary call to
9551         mono_metadata_free_type ().
9552         (mono_metadata_inflate_generic_inst): Fix a leak.
9553
9554 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
9555
9556         * mono-debug.c (free_header_data): Fix a leak missed earlier.
9557
9558         * metadata.c (mono_metadata_parse_array_full): Allocate memory from the image
9559         mempool.
9560
9561         * mono-debug.c (mono_debug_close_image): Fix call to 
9562         g_hash_table_remove ().
9563
9564 Fri Sep 14 19:36:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
9565
9566         * icall-def.h: redirect all the string ctor to the managed
9567         CreateString () methods.
9568         * string-icalls.c, string-icalls.h: removed dead code for string
9569         ctors and icalls.
9570
9571 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
9572
9573         * mono-debug.c: Fix memory leaks.
9574
9575 2007-09-14  Jonathan Chambers <joncham@gmail.com>
9576
9577         * threads-types.h: Implement mono_hazard_pointer_set and 
9578         mono_hazard_pointer_clear macros using do/while(0) to fix
9579         compilation with MSVC.
9580         
9581         Code is contributed under MIT/X11 license.
9582
9583 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
9584
9585         * gc.c (ves_icall_System_GCHandle_GetAddrOfPinnedObject): Use a return value of
9586         -2 to communicate to managed code that the handle is not pinned. Fixes #82848.
9587
9588 Fri Sep 14 14:04:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
9589
9590         * icall-def.h, string-icalls.c: get rid of old, no longer used, string
9591         icalls.
9592
9593 Fri Sep 14 11:41:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
9594
9595         * boehm-gc.c, gc-internal.h, object.c: allow strings to be
9596         managed-code allocated as well.
9597
9598 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
9599
9600         * class.c (mono_class_is_assignable_from): Add support for generic variance.
9601
9602 Thu Sep 13 11:55:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
9603
9604         * boehm-gc.c: fixed the build after the AOT changes.
9605
9606 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
9607
9608         * wrapper-types.h: Add an ALLOC wrapper type.
9609
9610         * gc-internals.h boehm-gc.c null-gc.c sgen-gc.c: Add functions needed by AOT to
9611         reference managed allocator methods.
9612
9613 2007-09-12  Marek Safar  <marek.safar@gmail.com>
9614
9615         * icall.c (ves_icall_MonoType_GetGenericArguments): Create an instance
9616         of Type array and not MonoType, a fix suggested by Hari.
9617         
9618 2007-09-12  Jonathan Chambers <joncham@gmail.com>
9619
9620         * domain-internals.h, domain.c : Remove delegate_invoke_impl_with_target_hash
9621         and delegate_invoke_impl_no_target_hash from _MonoDomain struct.
9622         
9623         Code is contributed under MIT/X11 license.
9624
9625 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
9626
9627         * domain.c, object.c, mono-config.c, object-internals.h: Fixed  #82416.
9628
9629 2007-09-12  Marek Habersack  <mhabersack@novell.com>
9630
9631         * image.c (do_mono_image_open): if assembly file fails to open and
9632         MONO_IOMAP is in effect, try to find the path in a
9633         case-insensitive way.
9634
9635         * appdomain.c (mono_runtime_init): do not install postload hooks -
9636         tests show that MS.NET doesn't use anything of that sort to
9637         trigger the AppDomain.AssemblyResolve event.
9638         (mono_try_assembly_resolve): renamed from try_assembly_resolve and
9639         made non-static.
9640         (mono_runtime_init): init portability helpers here.
9641
9642         * assembly.c (mono_assembly_load_with_partial_name): if other   
9643         attempts fail, trigger the AppDomain.AssemblyResolve event handler
9644         to resolve the assembly.
9645
9646         * domain-internals.h: added mono_try_assembly_resolve and marked
9647         it as internal.
9648
9649 2007-09-11  Jb Evain  <jbevain@novell.com>
9650
9651         * object-internals.h (MonoReflectionDynamicMethod): add
9652         a `MonoReflectionType *owner` field. The owner is used
9653         * reflection.c:
9654         (mono_reflection_create_dynamic_method): use the owner of the dynamic
9655         method as the class declaring the dynamic method.
9656         (reflection_methodbuilder_from_dynamic_method): copy the owner of the
9657         dynamic method to the declaring type of the methodbuilder.
9658
9659 2007-09-11  Mark Probst  <mark.probst@gmail.com>
9660
9661         * icall.c (ves_icall_InternalInvoke): Enforce CoreCLR security
9662         rules for calling methods via reflection.
9663
9664 2007-09-11  Zoltan Varga  <vargaz@gmail.com>
9665
9666         * reflection.c (resolve_object): Add support for MonoGenericClass. 
9667         Inflate MonoType's.
9668
9669 Tue Sep 11 16:08:08 CEST 2007 Paolo Molaro <lupus@ximian.com>
9670
9671         * gc-internal.h, boehm-gc.c, null-gc.c, sgen-gc.c: allow the GC to
9672         provide a managed method that does fast allocations without needing
9673         a managed->unmanaged transition. Boehm GC implementation currently
9674         enabled for ptrfree objects on sane architectures.
9675
9676 Tue Sep 11 16:00:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
9677
9678         * marshal.c, marshal.h: exported a couple of useful functions and
9679         added mono_mb_get_label () to easily handle backward branches.
9680
9681 2007-09-10  Zoltan Varga  <vargaz@gmail.com>
9682
9683         * reflection.c (resolve_object): Inflate generic methods. Fixes #82782.
9684
9685 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
9686
9687         * loader.c (find_method): Fixed the regression introduced while
9688         fixing bug #81466.
9689
9690 2007-09-09  Zoltan Varga  <vargaz@gmail.com>
9691
9692         * class.c (mono_lookup_dynamic_token_class): Pass along the context here as
9693         well.
9694         
9695         * class.c loader.c metadata.c object.c class-internals.h object-internals.h
9696         icall.c reflection.c: Pass a MonoGenericContext argument to 
9697         mono_lookup_dynamic_token ().
9698
9699         * reflection.c (resolve_object): Handle GenericTypeParameterBuilder. Fixes
9700         #82744.
9701         
9702 2007-09-09  Robert Jordan  <robertj@gmx.net>
9703
9704         * object.c (mono_class_proxy_vtable): Don't create remoting trampolines
9705         for generic methods.
9706
9707         * object.c (mono_object_get_virtual_method): Handle generic methods.
9708         Fixes bug #78882.
9709
9710         Code is contributed under MIT/X11 license.
9711
9712 Sat Sep 8 18:16:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
9713
9714         * image.c: fix locking in mono_image_load_file_for_image ().
9715
9716 Thu Sep 6 19:48:00 CEST 2007 Paolo Molaro <lupus@ximian.com>
9717
9718         * reflection.c, icall.c, icall-def.h: the methodinfos name field is
9719         used only as a cache: added an icall to fill it.
9720
9721 2007-09-16  Rodrigo Kumpera  <rkumpera@novell.com>
9722
9723         * reflection.h: exposed mono_reflection_free_type_info
9724         * reflection.c (mono_reflection_get_type_internal): type_args is always freed
9725         since mono_reflection_bind_generic_parameters makes a copy of it.
9726         * reflection.c (free_type_info): subinfos should be freed.
9727         * reflection.c (free_type_info): renamed to mono_reflection_free_type_info and 
9728         made non static.
9729         * icall.c (type_from_name and ves_icall_System_Reflection_Assembly_InternalGetType):
9730         replaced explicit cleanup of MonoTypeNameParse struct with a call to mono_reflection_free_type_info,
9731         this fixes #82695 and #81726.
9732    
9733
9734 2007-09-03  Atsushi Enomoto  <atsushi@ximian.com>
9735
9736         * process.h, process.c:  added support for user profile/info in
9737           ProcessStartInfo. For now only Windows works.
9738
9739 Fri Aug 31 17:30:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
9740
9741         * metadata.c: consider the generic arguments when comparing
9742         signatures (bug #82614).
9743
9744 Thu Aug 30 18:34:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
9745
9746         * cil-coff.h, image.c: updated assembly loader to cope with the
9747         PE32+ 64 bit file format.
9748
9749 Thu Aug 30 16:47:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
9750
9751         * assembly.c, class.c, domain.c, loader.c: remove useless
9752         inclusion of cil-coff.h.
9753
9754 2007-08-29  Jonathan Chambers  <joncham@gmail.com>
9755
9756         * marshal.c (cominterop_get_ccw): Walk up interface hierarchy
9757         if interface is marked with CoClassAttribute. 
9758    
9759         Code is contributed under MIT/X11 license.
9760
9761 Wed Aug 29 19:27:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
9762
9763         * sgen-gc.c: ensure no object from the to space is copied again or finalized
9764         if it's seen twice in major collections.
9765
9766 Wed Aug 29 18:46:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
9767
9768         * sgen-gc.c: big objects are not copied to the gray area, but they
9769         need to be considered for scanning, too, if they are brought alive
9770         by an object ready for finalizations or a survived one.
9771
9772 Wed Aug 29 18:43:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
9773
9774         * sgen-gc.c: properly account the number of disappearing links when
9775         they are nullified.
9776
9777 Wed Aug 29 18:37:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
9778
9779         * sgen-gc.c: share the code to scan the registered roots between the
9780         different types of collections.
9781
9782 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
9783
9784         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunModuleConstructor): New icall.
9785
9786 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
9787
9788         * object.c (mono_class_proxy_vtable): Use max_interface_id instead of
9789         class->max_interface_id in a one place. Fixes transparentproxy.exe test on ia64.
9790
9791 2007-08-28  Mark Probst  <mark.probst@gmail.com>
9792
9793         * security-manager.c (mono_security_manager_get_methods):
9794         LinkDemandSecurityException now has 2 arguments instead of 3.
9795
9796 2007-08-27  Zoltan Varga  <vargaz@gmail.com>
9797
9798         * class.c (mono_class_layout_fields): Only do the struct alignment hack on
9799         platforms which need it.
9800
9801 Mon Aug 27 18:29:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
9802
9803         * sgen-gc.c: unregister thread data structures with a pthread_key_t
9804         dtor.
9805
9806 Mon Aug 27 18:27:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
9807
9808         * threads.c: free the thread static data on thread exit.
9809
9810 Mon Aug 27 10:55:54 CEST 2007 Paolo Molaro <lupus@ximian.com>
9811
9812         * class.c: walk the hierarchy to find the generic definition for
9813         a class (fixes runtime part of bug #82498).
9814
9815 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
9816
9817         * assembly.c (mono_assembly_close): Move the closing of the referenced assemblies to
9818         ...
9819
9820         * image.c (mono_image_close): Here. Hopefully fixes #82510.
9821
9822 2007-08-24  Mark Probst  <mark.probst@gmail.com>
9823
9824         * monodiet.c (handle_cattrs): Fixed a custom attr leak.
9825
9826 2007-08-24  Robert Jordan  <robertj@gmx.net>
9827
9828         * appdomain.c: don't perform the ':'->';' substitution on Win32.
9829
9830 2007-08-24  Jb Evain  <jbevain@novell.com>
9831
9832         * class.c (mono_type_get_name_recurse): fix AssemblyQualifiedName
9833         for byref types.
9834
9835 2007-08-24  Mark Probst  <mark.probst@gmail.com>
9836
9837         * threads.c: Make sure a thread gets cleaned up only once.  Fixes
9838         #82286.
9839
9840 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
9841
9842         * assembly.c: Fix a warning.
9843         
9844 2007-08-23  Marek Habersack  <mhabersack@novell.com>
9845
9846         * appdomain.c: parse the <runtime> section looking for the probing
9847         element with the 'privatePath' attribute, which sets additional
9848         directories in which the runtime should look for assemblies.
9849
9850 2007-08-23  Robert Jordan  <robertj@gmx.net>
9851
9852         * marshal.c (Marshal_ReAllocHGlobal) : Fix GlobalReAlloc's flags.
9853         Fixes #82499.
9854
9855 2007-08-23  Martin Baulig  <martin@ximian.com>
9856
9857         * mono-debug.[ch]: Rename mono_debug_init_corlib() into
9858         _mono_debug_init_corlib() and remove it from the header file.
9859
9860 2007-08-23  Martin Baulig  <martin@ximian.com>
9861
9862         * mono-debug-debugger.c
9863         (mono_debugger_unhandled_exception): Ignore `ThreadAbortException';
9864         don't notify the debugger about it.
9865
9866         * mono-debug-debugger.h
9867         (MonoDebuggerEvent): Removed `THREAD_ABORT'.
9868
9869 2007-08-23  Robert Jordan  <robertj@gmx.net>
9870
9871         * icall-def.h, process.*: implemented Get|SetPriorityClass icalls.
9872         Code is contributed under MIT/X11 license.
9873
9874 Wed Aug 22 18:35:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
9875
9876         * sgen-gc.h, sgen-gc.c: abstracted most of the OS-specific code.
9877
9878 2007-08-22  Martin Baulig  <martin@ximian.com>
9879
9880         * mono-debug.c: Store debugging info on a per-domain basis and
9881         free it on domain unload.  Add support for unloading symbol files.
9882
9883         * mono-debug.h
9884         (MonoDebugList): New typedef.
9885         (MonoSymbolTable):
9886         - add `data_tables and `type_table'.
9887         - replace 'symbol_files' and `num_symbol_files' with a
9888           `MonoDebugList *'.
9889         (mono_debug_data_table): Removed.
9890         (mono_debug_list_add): New public function.
9891         (mono_debug_list_remove): New public function.
9892         (mono_debug_init_1): Renamed into mono_debug_init_corlib().
9893         (mono_debug_init_2_memory): Renamed into
9894         mono_debug_open_image_from_memory().
9895         (mono_debug_close_image): New public function.
9896         (mono_debug_domain_create): Likewise.
9897         (mono_debug_domain_unload): Likewise.
9898         (MONO_DEBUGGER_VERSION): Bump to 60.
9899
9900         * mono-debug-debugger.h
9901         (MonoDebuggerEvent):
9902         - remove `RELOAD_SYMTABS' and `METHOD_COMPILED'.
9903         - rename `ADD_MODULE' into `LOAD_MODULE'; add `UNLOAD_MODULE'.
9904         - add `DOMAIN_CREATE' and `DOMAIN_UNLOAD'.
9905         - rename `THREAD_CREATED' and `THREAD_EXITED' into
9906           `GC_THREAD_CREATED' and `GC_THREAD_EXITED'.
9907         - re-add `THREAD_CREATED' and `THREAD_EXITED'; with different
9908           meaning.
9909         (mono_debugger_add_symbol_file): Removed.
9910         (mono_debugger_add_type): Removed.
9911         (mono_debugger_lookup_type): Removed.
9912         (mono_debugger_lookup_assembly): Removed.
9913
9914         * domain.c
9915         (mono_domain_create): Call mono_debug_domain_create().
9916         (mono_init_internal): Call mono_debug_init_corlib().
9917
9918         * assembly.c
9919         (mono_assembly_close): Call mono_debug_close_image().
9920
9921 Wed Aug 22 17:26:02 CEST 2007 Paolo Molaro <lupus@ximian.com>
9922
9923         * sgen-gc.c: use the mono-mmap facilitites instead of hard-coding the
9924         mmap call.
9925
9926 Wed Aug 22 17:17:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
9927
9928         * sgen-gc.c: ensure section->pin_queue_end is initialized
9929         correctly when non pinning objects in the section have been found.
9930
9931 2007-08-22  Marek Habersack  <mhabersack@novell.com>
9932
9933         * appdomain.c (set_domain_search_path): cope with PrivateBinPath
9934         containing a list of directories separated by ':'. MSDN docs say
9935         the directories should be separated with ';'. Part of a bugfix for
9936         bug #81446
9937
9938 2007-08-21  Rodrigo Kumpera  <rkumpera@novell.com>
9939
9940         * class.c (mono_type_retrieve_from_typespec) : fixed the return type
9941         it should MonoType and not MonoClass.
9942
9943 2007-08-21  Atsushi Enomoto  <atsushi@ximian.com>
9944
9945         * culture-info-table.h : regenerated.
9946
9947 2007-08-20  William Holmes  <billholmes54@gmail.com>
9948
9949         *file-io.c: Added ves_icall_System_IO_MonoIO_ReplaceFile
9950          to call ReplaceFile Kernel32 on windows or in io-layer.
9951         *file-io.h: Added deceleration for ves_icall_System_IO_MonoIO_ReplaceFile
9952         *icall-def.h: Register ves_icall_System_IO_MonoIO_ReplaceFile
9953          as an internal call.
9954
9955         Code is contributed under MIT/X11 license.
9956
9957 2007-08-20  Jb Evain  <jbevain@novell.com>
9958
9959         * class-internals: add definitions for MONO_EXCEPTION_METHOD_ACCESS
9960         and MONO_EXCEPTION_FIELD_ACCESS.
9961
9962         * debug-helpers.[c|h]: new mono_field_full_name function.
9963
9964 2007-08-20  Mark Probst  <mark.probst@gmail.com>
9965
9966         * class.c: Removed class_security_level() and moved it to
9967         security-core-clr.c.
9968
9969         * security-core-clr.c, security-core-clr.h: class_security_level()
9970         is now public and renamed to mono_security_core_clr_class_level().
9971         It also looks for security attributes in the classes a class is
9972         nested in.
9973
9974 2007-08-20  Mark Probst  <mark.probst@gmail.com>
9975
9976         * security-core-clr.c, security-core-clr.h: CoreCLR security
9977         utility functions.
9978
9979         * Makefile.am: Added security-core-clr.[ch].
9980
9981         * security-manager.c, security-manager.h: Functions and enum for
9982         setting and getting the security mode.
9983
9984         * class.c: CoreCLR security checks.
9985
9986 Mon Aug 20 12:38:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
9987
9988         * icall-def.h, process.c, process.h: implemented icall to get
9989         user/system processor times.
9990
9991 2007-08-17  Mark Probst  <mark.probst@gmail.com>
9992
9993         * domain.c, threads.c, class-internals.h, domain-internals.h: New
9994         reader-lock-free jit_info_table.
9995
9996 2007-08-17  Zoltan Varga  <vargaz@gmail.com>
9997
9998         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_CUSTOM.
9999
10000         * marshal.c (mono_marshal_type_size): Ditto. Fixes #82465 and #82466.   
10001
10002         * object-internals.h (MonoException): Add missing _data member.
10003
10004 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
10005
10006         * loader.c (find_method, find_method_in_class): Fixed bug #81466,
10007         checking that only methods with matching qname or fqname are picked
10008         from implemented interfaces.
10009
10010 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
10011
10012         * verify.c (do_newarr):added, do type verification of
10013         newarr ops, push the right value on the eval stack.
10014         * verify.c (mono_method_verify): use do_newarr
10015
10016
10017 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
10018
10019         * verify.c (do_ldobj_value, do_unbox_value and do_box_value):
10020         factored the common code into get_boxable_mono_type, which
10021         is now using mono_type_get_full, this fixed byref related tests.
10022
10023 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
10024
10025         * class.c: added mono_type_get_full, this function has the same
10026         behavior of mono_class_get_full but the returned MonoType has
10027         all metadata of the associated token in case of a typespec token.
10028         * class.c: added mono_type_retrieve_from_typespec, used by 
10029         mono_type_get_full to retrieve the token type.
10030         * class.c (mono_class_create_from_typespec): changed to use
10031         mono_type_retrieve_from_typespec.
10032         * class.c (mono_ldtoken): changed to use mono_type_get_full
10033         for MONO_TOKEN_TYPE_(DEF|REF|SPEC).
10034         * class-internals.h: exported mono_type_get_full for internal use.
10035
10036 2007-08-16  Jb Evain  <jbevain@novell.com>
10037
10038         * domain.c (supported_runtimes): add entry for
10039         the 'moonlight' runtime version.
10040
10041 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
10042
10043         * verify.c (mono_method_verify): small typo sliped in.  
10044
10045 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
10046
10047         * verify.c (do_unbox_value): added, do type verification of
10048         unboxing ops
10049         * verify.c (mono_method_verify): use do_unbox_value
10050
10051
10052 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
10053
10054         * verify.c (dump_stack_value): fixed typo, was printing string
10055         instead of object on stack.
10056         * verify.c (do_box_value): moved the byref check up as it leads
10057         to invalid code and should be done earlier.
10058         * verify.c: improved error messages for and ldobj
10059
10060 2007-08-15  William Holmes  <billholmes54@gmail.com>
10061
10062         * marshal.c (emit_marshal_custom): Omit the call to 
10063           marshal_native_to_managed when calling native to managed 
10064           and the argument is specified as an out argument.
10065
10066         Code is contributed under MIT/X11 license.
10067
10068 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
10069
10070         * verify.c: fixed the type checks for generics, function pointers and vectors.
10071         Added type verification for ldobj and ldtoken. The verifier
10072         would segfault if header or signature of a method contained references
10073         to non-existant types.
10074
10075 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
10076
10077         * marshal.c (cominterop_get_ccw): Patch from
10078         Bill Holmes to no walk up interface hierarchy. 
10079         All parent methods should be present in the interface for COM.
10080    
10081         Code is contributed under MIT/X11 license.
10082
10083 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
10084
10085         * marshal.c (emit_marshal_com_interface): Patch from
10086         Bill Holmes to handle COM Interfaces as return values
10087         for native->managed calls.
10088    
10089         Code is contributed under MIT/X11 license.
10090
10091 2007-08-14  Jonathan Chambers  <joncham@gmail.com>
10092
10093         * marshal.c (cominterop_get_idispatch_for_object): Implement
10094         for runtime callable wrappers.
10095    
10096         Code is contributed under MIT/X11 license.
10097
10098 2007-08-13  Rodrigo Kumpera  <rkumpera@novell.com>
10099
10100         * pedump.c (main): changed from mono_init to mono_init_from_assembly
10101         so 2.0 types are accessible
10102
10103
10104 2007-08-13  Miguel de Icaza  <miguel@novell.com>
10105
10106         * domain.c (mono_init_internal): Call mono_assembly_load_friends
10107         once we load mscorlib.   Due to the order in which we initialize,
10108         the mono_assembly_load_full routine that loads mscorlib did not
10109         load friends.   We now load it once we load the
10110         mono_defaults.internals_visible_class class. 
10111
10112         * assembly.c: Expose the mono_load_friend_assemblies method.
10113
10114 2007-08-11  Rodrigo Kumpera  <rkumpera@novell.com>
10115
10116         * verify.c: improved the handling of boxing, better
10117         type checking for unary ops and conversion. Fix bug
10118         regarding managed pointer compatibility checking
10119
10120 2007-08-11  Zoltan Varga  <vargaz@gmail.com>
10121
10122         * icall.c (ves_icall_System_Array_SetGenericValueImpl): New icall.
10123
10124         * threads.c threads-types.h: Export mono_thread_get_stack_bounds.
10125
10126 2007-08-09  Raja R Harinath  <rharinath@novell.com>
10127
10128         * reflection.c (dup_type): Remove.
10129         * class.c (dup_type): Remove.
10130         (mono_metadata_signature_deep_dup): Use 'mono_metadata_type_dup'
10131         instead of the dodgy 'dup_type'.
10132         (inflate_generic_type): Likewise.  Fix the VAR/MVAR cases to
10133         handle the case where 'dup_type' needed the second argument.
10134
10135 2007-08-08  Zoltan Varga  <vargaz@gmail.com>
10136
10137         * domain.c: Fix a warning.
10138
10139 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
10140
10141         * class.c (mono_class_setup_vtable_general): Fixed bug #77127,
10142         checking that methods with the same fqname are not overridden
10143         with a method from an ancestor.
10144
10145 2007-08-07  Zoltan Varga  <vargaz@gmail.com>
10146
10147         * threads.c (free_thread_static_data_helper): Avoid a crash if
10148         thread->static_data is not yet set.
10149
10150 2007-08-07  Jonathan Chambers  <joncham@gmail.com>
10151
10152         * marshal.c: Use correct image when emitting
10153         native wrapper for COM calls.
10154    
10155         Code is contributed under MIT/X11 license.
10156
10157 2007-08-07  Atsushi Enomoto  <atsushi@ximian.com>
10158
10159         * icall-def.h, security.c, security.h :
10160           added icall wrapper to ProtectedMemory.[Unprotect|Protect]Data().
10161
10162 2007-08-07  Martin Baulig  <martin@ximian.com>
10163
10164         * mono-debug-debugger.h
10165         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD'.
10166
10167         * domain.c (mono_domain_free): Call
10168         `mono_debugger_event (MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD)'.
10169
10170 2007-08-06  Rodrigo Kumpera  <rkumpera@novell.com>
10171
10172         * verify.c (check_underflow, check_overflow): error message now returns IL offset
10173         * verify.c (in_same_block): code should test if either offset is inside the clauses
10174         * verify.c (mono_method_verify): push the exception into the eval stack of exception
10175         and filter blocks
10176
10177 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
10178
10179         * image.c (mono_image_close): Fix a leak.
10180
10181         * object.c (mono_runtime_invoke_array): Avoid using alloca.
10182
10183         * icall.c (ves_icall_FieldInfo_SetValueInternal): Ditto.        
10184
10185 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
10186
10187         * domain.c, threads.c, threads-types.h: fix memory retention issue
10188         with thread static variables not being cleared on domain unload.
10189         Reuse thread static slots after domain unload.
10190
10191 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
10192
10193         * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
10194         nullable type.
10195
10196         * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
10197         now done in mono_runtime_invoke_array.
10198
10199         * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the 
10200         receiver is a nullable type.
10201
10202         * class.c (mono_class_is_assignable_from): Handle the case when klass is a 
10203         generic parameter.
10204
10205 2007-08-03  Jonathan Chambers  <joncham@gmail.com>
10206
10207         * marshal.c: Implement COM Objects as return type for 
10208         managed->unmanaged calls. Added Release calls for COM Object
10209         out/return values in managed->unmanaged calls.
10210
10211         Code is contributed under MIT/X11 license.
10212
10213 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
10214
10215         * threads.h, threads-type.h: move the hazard pointer declarations
10216         to the private header.
10217
10218 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
10219
10220         * file-io.c, appdomain.c: memory leak fixes.
10221
10222 2007-08-02  Dick Porter  <dick@ximian.com>
10223
10224         * socket-io.c
10225         (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
10226         SO_REUSEADDR setting into io-layer/sockets.c.
10227
10228 2007-08-01  Zoltan Varga  <vargaz@gmail.com>
10229
10230         * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
10231         from Object when called on a generic parameter. Fixes #82211.
10232
10233 2007-08-01  Dick Porter  <dick@ximian.com>
10234
10235         * file-io.c (convert_share): Test FileShare values bit-by-bit.
10236         Fixes bug 79250 yet again.
10237
10238 2007-07-30  Martin Baulig  <martin@ximian.com>
10239
10240         Merged the `debugger-dublin' branch.
10241
10242         * mono-debug.h
10243         (MonoDebugDataTable): New typedef.
10244         (MonoDebugMethodAddressList): New typedef.
10245         (MonoDebugWrapperData): Removed.
10246         (MonoDebugSymbolTable): Removed `current_data_table',
10247         `current_data_table_size', `current_data_table_offset'.
10248         (MonoDebugDataItemType): Moved into mono-debug.c.
10249         (MonoDebugMethodJitInfo): Remove `address'.
10250         (mono_debug_data_table): New global variable.
10251         (mono_debug_lookup_method_addresses): New public function.
10252         (mono_debug_find_method): Take a `MonoMethod *', not a
10253         `MonoDebugMethodInfo *'.
10254
10255         * mono-debug.c: Drop support for the old symbol tables.
10256
10257 2007-06-28  Martin Baulig  <martin@ximian.com>
10258
10259         * mono-debug.c (mono_debug_debugger_version): New public variable.
10260
10261 2007-07-31  William Holmes  <billholmes54@gmail.com>
10262
10263         * metadata.c Changed mono_type_create_from_typespec to not insert
10264           the type into the hash map until after
10265           do_mono_metadata_parse_type has completed.
10266         Fixes Bug #82194
10267         Code is contributed under MIT/X11 license.
10268
10269 2007-07-31  Zoltan Varga  <vargaz@gmail.com>
10270
10271         * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
10272         generic parameter. Fixes #82211.
10273
10274 2007-07-27  Jb Evain  <jbevain@novell.com>
10275
10276         * pedump.c (dump_metadata, dump_metadata_header): dump
10277         versions contained in the metadata header.
10278
10279 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
10280
10281         * threads.c: register small_id_table with the GC.
10282
10283 2007-07-27  Mark Probst  <mark.probst@gmail.com>
10284
10285         * threads.c, threads.h, class-internals.h, object-internals.h:
10286         Hazard pointers, to be used by lock-free parallel algorithms.
10287
10288 2007-07-26  Dick Porter  <dick@ximian.com>
10289
10290         * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
10291         routine on non-windows platforms, as I've not managed to think of
10292         a non-kludgy way of doing this.  Finishes off bug 78739.
10293
10294 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
10295
10296         * object.c: properly setup interface_bitmap in proxy vtables.
10297
10298 2007-07-25  Marek Habersack  <mhabersack@novell.com>
10299
10300         * appdomain.c (get_shadow_assembly_location): do not use TickCount
10301         to create unique shadow copy target directories, use the domain's
10302         serial number instead. Each domain gets a unique target directory
10303         that way.
10304
10305         * domain.c (mono_domain_create): added code to increment domain
10306         shadow copy serial number and cache the value in the current
10307         domain structure.
10308
10309         * domain-internals.h (struct _MonoDomain): added a new field -
10310         shadow_serial to hold the serial number used in generation of
10311         shadow-copy directories. This is to make sure that the directory
10312         name is unique for each and every domain created. We avoid a race
10313         condition with overriding assemblies already in use by other app
10314         domains.
10315
10316 2007-07-24  Rodrigo Kumpera  <rkumpera@novell.com>
10317
10318         * class.c (mono_bounded_array_class_get): fixed memory leak when 
10319         binding generic parameters.
10320
10321 2007-07-24  Raja R Harinath  <rharinath@novell.com>
10322
10323         * metadata.c (do_mono_metadata_parse_generic_class): Use
10324         mono_metadata_lookup_generic_class.  Don't g_assert on a metadata
10325         error.
10326
10327 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
10328
10329         * loader.c, class-internals.h, reflection.c: removed the per-method
10330         generics hashtable: we use the global one through the call of
10331         mono_class_inflate_generic_method ().
10332
10333 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
10334
10335         * class.c, metadata.c, class-internals.h: introduce yet another
10336         generics global cache for inflated methods (fixes 98% of the perf
10337         issue in bug #81806).
10338
10339 2007-07-23  Raja R Harinath  <rharinath@novell.com>
10340
10341         Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
10342         * metadata.c (mono_metadata_lookup_generic_inst): Kill.
10343         (mono_metadata_get_generic_inst): New.  Given a list of MonoType*,
10344         return a MonoGenericInst containing (a copy) of those types.
10345         (mono_metadata_inflate_generic_inst): Update to changes.
10346         (mono_metadata_parse_generic_inst): Likewise.
10347         (mono_get_shared_generic_inst): Likewise.
10348         * reflection.c (mono_class_bind_generic_parameters): Likewise.
10349         (mono_reflection_bind_generic_method_parameters): Likewise.
10350         * metadata-internals.h: Likewise.
10351         * icall.c (free_generic_context): Kill.
10352         (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
10353
10354         * reflection.c (reflection_methodbuilder_to_mono_method): Use
10355         mono_metadata_type_dup.
10356         * marshal.c (mono_mb_create_method): Likewise.
10357
10358         * metadata.c (mono_metadata_type_dup): Rename from
10359         mono_metadata_type_dup_mp.  Take an optional mempool instead of a
10360         MonoImage.  Handle a few more cases, esp. when no mempool is given.
10361         * marshal.c, metadata-internals.h: Update to changes.
10362
10363 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
10364
10365         * class.c: fixed a small leak for array classes and removed warning.
10366
10367 2007-07-22  Zoltan Varga  <vargaz@gmail.com>
10368
10369         * loader.c (mono_method_get_param_token): Make this work on generic methods.
10370         Return 0x8000000 for return parameters. Fixes #82161.
10371
10372 2007-07-21  Marek Habersack  <grendello@gmail.com>
10373
10374         * appdomain.c (get_shadow_assembly_location): append the current
10375         ticks value to the path. Avoids overwriting the same assemblies by
10376         several threads at the same time.
10377
10378 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
10379         and Raja R Harinath  <rharinath@novell.com>
10380
10381         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
10382         Simplify slightly.
10383         (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
10384         property for testing if a method is a generic method definition.
10385
10386 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
10387
10388         * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
10389
10390 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
10391
10392         * verify.c: used function from private branch, reverted to the one in class.h 
10393
10394 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
10395
10396         * verify.c: a typo slipped in and the code wont compile
10397
10398 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
10399
10400         * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
10401         disabled box instruction as it is doing the wrong thing
10402         improved stack dump messages, now it is easier to debug type related issues
10403
10404
10405 2007-07-19  Juraj Skripsky  <js@hotfeet.ch>
10406
10407         * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak. 
10408
10409 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
10410
10411         * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from 
10412         TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
10413         grouped with class and valuetype. This change will simply 
10414         the code as it should be handled just like unmanaged pointers.
10415
10416 2007-07-19  Mark Probst  <mark.probst@gmail.com>
10417
10418         * class.c (concat_two_strings_with_zero): Fixed a silly bug.
10419
10420 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
10421
10422         * verify.c: several stack merge issues fixed, reference comparisons now
10423         check the type size. strict type check now works correctly.
10424         added more uses of IS_MANAGED_POINTER macro.
10425         fixed issues pointed by running the test suite against .net.
10426         
10427
10428 2007-07-19  Mark Probst  <mark.probst@gmail.com>
10429
10430         * class.c, loader.c, class-internals.h: Removed the
10431         MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
10432         defines.
10433
10434         * icall.c: Better error checking in some internal reflection
10435         methods.
10436
10437 2007-07-18  William Holmes  <billholmes54@gmail.com>
10438
10439         * filewatcher.c : removed unused variable 'filename' in 
10440           ves_icall_System_IO_FSW_SupportsFSW
10441
10442 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
10443
10444         * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
10445         obsolete, removed.
10446
10447 2007-07-15  Zoltan Varga  <vargaz@gmail.com>
10448
10449         * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
10450         
10451         * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
10452
10453 2007-07-14  Zoltan Varga  <vargaz@gmail.com>
10454
10455         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
10456         Implement generics support.
10457         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
10458
10459         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
10460         type_args and method_args arguments.
10461         (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
10462         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
10463         (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
10464
10465 2007-07-13  Rodrigo Kumpera  <rkumpera@novell.com>
10466
10467         * reflection.c: patch from Thong Nguyen to fix atribute resolution.
10468           It adds a rootimage parameter to mono_reflection_get_type_internal,
10469           adds new function mono_reflection_get_type_with_rootimage and use
10470           the rootimage to resolve the types instead of the current image
10471
10472 2007-07-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
10473
10474         * culture-info-table.h: Forgot to update after r78304.
10475
10476 2007-07-13  Raja R Harinath  <rharinath@novell.com>
10477
10478         * class.c (mono_class_is_open_constructed_type)
10479         <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
10480
10481 2007-07-12  Rodrigo Kumpera  <rkumpera@novell.com>
10482
10483         * class.c (mono_bounded_array_class_get):  method fails if used with
10484         an incomplete TypeBuilder enum (no basetype field), fixed it by 
10485         avoiding calculating the size for such array as it cannot be instantiated.
10486         Fix bug #82015
10487
10488 2007-07-12  Raja R Harinath  <rharinath@novell.com>
10489
10490         * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
10491         field.
10492         * metadata.c, reflection.c: Update to changes.
10493
10494 2007-07-11  Rodrigo Kumpera  <rkumpera@novell.com>
10495
10496         * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
10497         mono_class_is_valid_enum, they are used to valide a enum when loading.
10498         * reflection.c: used new functions to throw TypeLoadException when and
10499         invalid enum is build with TypeBuilder. Fixes #82018
10500   
10501 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
10502
10503         * object.c: forgot commit of mono_class_setup_methods () to access
10504         iface->methods.
10505         * object-internals.h: added a few more handy fields to
10506         MonoIMTCheckItem.
10507
10508 2007-07-11  Zoltan Varga  <vargaz@gmail.com>
10509
10510         * object.c (build_imt): Call mono_class_setup_methods () before accessing 
10511         iface->methods.
10512
10513 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
10514
10515         * class-internals.h, object-internals.h, object.c: IMT-based
10516         interface invocation core from Massimiliano Mantione
10517         (massi@ximian.com) with a reworked arch-specific interface,
10518         bsearch implementation and a few bugfixes and memory savings by me.
10519
10520 2007-07-10  Rodrigo Kumpera  <rkumpera@novell.com>
10521
10522         * class.c (mono_class_create_from_typedef): mono would segfault if 
10523         an enum did not have a __value field. It now throws a TypeLoadException
10524         for such cases. Fix bug #82022
10525
10526 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
10527
10528         * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
10529
10530 2007-07-09  Mark Probst  <mark.probst@gmail.com>
10531
10532         * class.c (mono_class_init): If a class is already inited but has
10533         an exception_type set, return FALSE, not TRUE.  Fixes: 82050.
10534
10535 2007-07-09  Mark Probst  <mark.probst@gmail.com>
10536
10537         * class.c: Properly handle the case of an unimplemented interface
10538         method.  Fixes: 81673.
10539
10540 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
10541
10542         * class-internals.h, object.c: cleanup patch from massi: use
10543         MonoVTable->interface_bitmap since the vtable interfaces offset array
10544         is going away.
10545
10546 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
10547
10548         * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
10549         GetMDStreamVersion icall instead.
10550
10551 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
10552
10553         * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
10554         not use mono_dl_build_path() with a full library name: makes
10555         fallbacks to libgaim and libfam work.
10556
10557 2007-07-06  William Holmes  <billholmes54@gmail.com>
10558
10559         * assembly.c: Added a continue statement in probe_for_partial_name when
10560          parse_assembly_directory_name fails.  Fixes : 82002
10561
10562 2007-07-06  Rodrigo Kumpera  <rkumpera@novell.com>
10563
10564         * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
10565         and added a verification  for TYPEDBYREF.
10566         * verify.c (verify_stack_type_compatibility): fix handling of byref types,
10567         make native int interchangeable with int32 and some small cleanup and formating.
10568         * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
10569         handle byref of byref.
10570         * verify.c (push_local): handle byref of byref.
10571         * verify.c (do_binop): invalid mix of values is unverifiable
10572         * verify.c (do_invoke_method): fixed the handling of bad params on stack and
10573         added visibility checks
10574         * verify.c (field related method): added visibility checks
10575         * verify.c (do_push_field): cannot take the address of a temporary valuetype field
10576
10577 2007-07-06  Zoltan Varga  <vargaz@gmail.com>
10578
10579         * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
10580         string.
10581
10582 2007-07-05  Zoltan Varga  <vargaz@gmail.com>
10583
10584         * profiler.c (mono_profiler_load): Fix an off-by-one error.
10585
10586         * marshal.c (emit_marshal_string): When returning a string from managed code,
10587         allways make a copy even for unicode strings. Fixes #81990.
10588
10589 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
10590
10591         * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
10592         of byref generic inst types (bug #81997).
10593
10594 2007-07-03  Rodrigo Kumpera  <rkumpera@novell.com>
10595
10596         * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
10597         * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
10598
10599 2007-07-02  Zoltan Varga  <vargaz@gmail.com>
10600
10601         * marshal.c (emit_marshal_string): Add support for unicode strings in
10602         MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
10603
10604 2007-07-02 Rodrigo Kumpera  <rkumpera@novell.com>
10605
10606         * verify.c: field load/store are now verified, missing only access checks now
10607
10608 2007-06-28  Martin Baulig  <martin@ximian.com>
10609
10610         * mono-debug.c (mono_debug_debugger_version): New public variable.
10611
10612 2007-06-24  Gert Driesen  <drieseng@users.sourceforge.net>
10613
10614         * locales.c: When constructing DateTimeFormat or NumberFormat for
10615         MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
10616         MonoCultureInfo contructed from the current locale is always
10617         read-only and has UseUserOverride set to true. All MonoCultureInfo
10618         instances returned for GetCultures have both IsReadOnly and
10619         UseUserOverride set to true. Fixes part of bug #81930.
10620
10621 2007-06-22  Jonathan Chambers  <joncham@gmail.com>
10622
10623        * icall-def.h: Update System.__ComObject icalls
10624        * marshal.c: Avoid managed transition (and object creation)
10625        when looking up COM interface in RCW.
10626        * marshal.h: Ditto.
10627        
10628        Code is contributed under MIT/X11 license.
10629
10630 2007-06-22  Zoltan Varga  <vargaz@gmail.com>
10631
10632         * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
10633         to avoid crashes during assembly unloading.
10634
10635 2007-06-22  Raja R Harinath  <rharinath@novell.com>
10636
10637         Fix MethodInfo.IsGenericMethodDefinition
10638         * reflection.c (mono_reflection_bind_generic_method_parameters):
10639         Rearrange code to ensure we always uses a generic method definition.
10640         * class.c (mono_class_inflate_generic_method_full): Set
10641         'generic_container' field only for generic method definitions.
10642         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
10643         Use presense of 'generic_container' field as indication of being a
10644         generic method definition.
10645
10646 2007-06-21  Zoltan Varga  <vargaz@gmail.com>
10647
10648         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
10649
10650         * object-internals.h: Reflect changes in the layout of the managed Delegate
10651         class.
10652         
10653         * object-internals.h reflection.c icall-def.h: Applied patch from Robert
10654         Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
10655         runtime memory used by the dynamic method. Fixes #77146.
10656
10657 2007-06-21  Dick Porter  <dick@ximian.com>
10658
10659         * file-io.h: 
10660         * file-io.c (convert_share): Cope with FileShare.Delete.  Patch
10661         from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
10662         81767.
10663
10664 2007-06-21  Raja R Harinath  <rharinath@novell.com>
10665
10666         * reflection.c (method_encode_methodspec): Add a tripwire.
10667         * class.c (inflate_generic_type): The fully open generic type is
10668         not the same as the generic type definition.
10669
10670 2007-06-21  Martin Baulig  <martin@ximian.com>
10671
10672         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
10673
10674         * mono-debug-debugger.h
10675         (MonoDebuggerBreakpointInfo): Removed.
10676         (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
10677         (mono_debugger_remove_breakpoint): Likewise.
10678         (mono_debugger_breakpoint_callback): Likewise.
10679         (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
10680
10681 2007-06-21  Raja R Harinath  <rharinath@novell.com>
10682
10683         * metadata.c (mono_metadata_lookup_generic_class): The fully open
10684         generic type is not the same as the generic type definition.
10685         * class.c (mono_generic_class_get_class): Likewise.
10686
10687 2007-06-20  Geoff Norton  <gnorton@customerdna.com>
10688
10689         * icall.c: The second argument to 
10690         System.Reflection.MethodBase.GetMethodFromHandleInternalType
10691         is a MonoType not a MonoClass.
10692
10693 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
10694
10695         * verify.c: support for function pointers in the verifier
10696
10697 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
10698
10699         * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
10700
10701 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
10702
10703         * assembly.c: removed Mono.Data.SqliteClient from the list of
10704         forward-compatible assemblies as it breaks the ABI (bug #81899).
10705
10706 2007-06-19  Raja R Harinath  <rharinath@novell.com>
10707
10708         * metadata.c (mono_metadata_lookup_generic_class): Protect cache
10709         lookup/update with the loader lock.
10710         * reflection.c (mono_class_bind_generic_parameters): No need to
10711         protect mono_metadata_lookup_* with the loader lock.
10712         * class.c (inflate_generic_type): Likewise.
10713         
10714         * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
10715         on a generic instantiated type.
10716
10717 2007-06-18  Rodrigo Kumpera <kumpera@gmail.com>
10718
10719         *verify.c: produce meanfull error messages on verification error
10720         *verify.c: fixed some cases of verification errors reported as validation errors
10721         *pedump.c: fixed the error name array, now it shows validation errors properly
10722         *verify.h: fixed the contant that should be used for verification errors
10723
10724 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
10725
10726         * metadata.c, image.c, metadata-internals.h: part of the fixes needed
10727         for bug #77596, 81858 and 80743 (generics data structures on domain
10728         unload).
10729
10730 2007-06-15  Raja R Harinath  <rharinath@novell.com>
10731
10732         Avoid allocating 'MonoGenericContext' on the heap.
10733         * class-internals (_MonoMethodInflated::context): Make field
10734         inline, not a pointer.
10735         * loader.c (method_from_methodspec): Allocate 'new_context' on the
10736         stack.  Use the context embedded within the inflated method as the
10737         hash key, rather than 'new_context'.
10738         * class.c (inflate_generic_context): Simplify.  Return a struct
10739         rather than allocating on the heap.
10740         (mono_class_inflate_generic_method_full): Update to changes.  Now,
10741         doesn't salt away a copy of the context -- simplifying the
10742         lifetime rules of a 'MonoGenericContext *'.
10743         (mono_method_get_context): Return pointer to embedded context.
10744         (setup_generic_array_ifaces): Allocate temporary context on stack.
10745         * reflection.c (inflate_mono_method): Likewise.
10746         (mono_reflection_bind_generic_method_parameters): Likewise.
10747         Use the context embedded within the inflated method as the hash key.
10748
10749         Avoid a source of allocation of 'MonoGenericContext'.
10750         * class-internals.h (_MonoGenericClass::context): Combine 'inst'
10751         and 'cached_context' fields into embedded 'MonoGenericContext' field.
10752         * class.c: Update to changes.
10753         (mono_generic_class_get_context): Simplify drastically.  Now just
10754         returns a pointer to the field.
10755         * metadata-internals.h (mono_metadata_generic_context_hash): Mark
10756         argument as a const pointer.
10757         (mono_metadata_generic_context_equal): Likewise.
10758         * metadata.c, loader.c, icall.c, reflection.c, verify.c:
10759         Update to changes.
10760
10761 2007-06-14  Rodrigo Kumpera  <kumpera@gmail.com>
10762
10763         * verify.c improved the handling of brtrue/brfalse, factored out common code
10764
10765 2007-06-14  Raja R Harinath  <rharinath@novell.com>
10766
10767         Kill MonoGenericMethod.
10768         * class-internals.h (MonoGenericContext::method_inst): Rename from
10769         'gmethod' and convert to a MonoGenericInst.
10770         (MonoGenericMethod): Remove.
10771         * metadata.h (MonoGenericMethod): Note that the name is obsolete.
10772         * loader.c (method_from_methodspec): Update to changes.  Use a
10773         MonoGenericContext as the key to the hashtable.
10774         * metadata.c (mono_metadata_generic_context_equal): Rename from 
10775         'mono_metadata_generic_method_equal' and take MonoGenericContext.
10776         (mono_metadata_generic_context_hash): Likewise from
10777         'mono_metadata_generic_method_hash'.  Change hash function.
10778         (mono_metadata_load_generic_params): Update to changes.
10779         (mono_get_shared_generic_method): Remove.
10780         * metadata-internals.h (mono_get_shared_generic_method): Remove.
10781         * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
10782         (inflate_generic_context): Likewise.
10783         (mono_class_inflate_generic_method_full): Likewise.
10784         (setup_generic_array_ifaces): Likewise.
10785         (mono_class_create_from_typespec): Likewise.
10786         * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
10787         (method_encode_methodspec): Update callsite.
10788         (reflection_methodbuilder_to_mono_method): Update to changes.
10789         (mono_reflection_bind_generic_method_parameters): Likewise.  Use a
10790         MonoGenericContext as the key to the hashtable.
10791         (inflate_mono_method): Update to changes.
10792
10793         * class-internals.h (MonoGenericMethod::container): Remove.
10794         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
10795
10796 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
10797
10798         * profiler-private.h, profiler.c, profiler.h: added API to profile
10799         exception events.
10800
10801 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
10802
10803         * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments 
10804
10805 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
10806
10807         * verify.c: method invocation is now validated, now we verify parameter types on stack.
10808         Fixed overflow and underflow not aborting the verification process.
10809
10810 2007-06-13  Mark Probst  <mark.probst@gmail.com>
10811
10812         * class-internals.h (MonoStats): Added stats entries for dynamic
10813         code allocations.
10814
10815 2007-06-12  Zoltan Varga  <vargaz@gmail.com>
10816
10817         * loader.c (mono_free_method): Free header->locals and header->clauses.
10818
10819         * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
10820         dynamic case.
10821
10822         * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
10823
10824         * class.c (setup_interface_offsets): Allocate memory from the image mempool.
10825
10826 2007-06-12  Raja R Harinath  <rharinath@novell.com>
10827
10828         * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
10829         the tables.
10830
10831 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
10832
10833         *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
10834
10835 2007-06-11  Raja R Harinath  <harinath@gmail.com>
10836
10837         MonoGenericMethod on a diet
10838         * class-internals.h (_MonoMethodInflated::reflection_info): Move
10839         here ...
10840         (_MonoGenericMethod::reflection_info): ... from here.
10841         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
10842         Update to changes.
10843         * reflection.c (inflate_mono_method): Likewise.
10844         (mono_reflection_bind_generic_method_parameters): Likewise.
10845
10846 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
10847
10848         *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
10849         *verify.c: factored long ldarg forms to share code with short forms
10850
10851 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
10852
10853         *verify.c: fixed code formating factored some duplicate code
10854         into a new function
10855
10856         *verify.h: fixed binary incompatibility introduced earlier
10857
10858         *pedump.c: fixed formating
10859
10860 2007-06-11  Raja R Harinath  <harinath@gmail.com>
10861
10862         Fix assertion when disassembling Mono.C5.dll
10863         * loader.c (method_from_methodspec): Avoid inflating a method
10864         twice with the same context.  If the methodref is inflated, use
10865         the declaring method instead.
10866
10867         * class.c (mono_class_from_generic_parameter): Fix case similar to
10868         bug #81830 handled below, but for method containers.
10869
10870 2007-06-10  Raja R Harinath  <harinath@gmail.com>
10871
10872         * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
10873         get_shared_generic_class.  Directly inflate the instance.
10874         [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
10875         (inflate_generic_class): Delete.
10876         (get_shared_generic_class): Delete.  Move setting of
10877         'cached_class' and 'cached_context' ...
10878         * metadata.c (mono_metadata_lookup_generic_class): ... here.
10879
10880         * metadata.c (mono_metadata_lookup_generic_class): Change
10881         signature to take the components of a MonoGenericClass rather than
10882         an allocated MonoGenericClass.  Change semantics to be intern-like.
10883         * reflection.c (mono_class_bind_generic_parameters): Update to
10884         changes.  Make locking region tighter.
10885         * class.c (inflate_generic_class): Update to changes.
10886         (get_shared_generic_class): Likewise.
10887         * metadata-internals.h: Likewise.
10888
10889         * reflection.c (mono_class_bind_generic_parameters): Take and
10890         return a MonoClass*, not a MonoType*.  Add 'is_dynamic' parameter.
10891         (mono_reflection_bind_generic_parameters): Use
10892         'mono_class_bind_generic_parameters' rather than duplicate the code.
10893         * class.c (mono_bounded_array_class_get): Update to changes.
10894         * object-internals.h: Likewise.
10895
10896         * reflection.c (mono_class_bind_generic_parameters): Only support
10897         parameterizing generic type definitions.  Remove support for other
10898         open types.
10899
10900 2007-06-08  Zoltan Varga  <vargaz@gmail.com>
10901
10902         * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
10903
10904         * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
10905         in the dynamic case.
10906
10907 2007-06-08  Gert Driesen  <drieseng@users.sourceforge.net>
10908
10909         * threads.c: When cleaning up thread, reset the Background bit.
10910         Fixes bug #81720.
10911
10912 2007-06-08  Jonathan Chambers  <joncham@gmail.com>
10913
10914        * metadata.c: Move variable declarations to top of scope.
10915        * verify.c: Move variable declarations to top of scope.
10916
10917        Code is contributed under MIT/X11 license.
10918
10919 2007-06-08  Raja R Harinath  <rharinath@novell.com>
10920
10921         * reflection.c (mono_class_bind_generic_parameters): Replace
10922         open-coded loop with mono_metadata_inflate_generic_inst.
10923
10924         * class.c (get_shared_generic_class): Don't call
10925         mono_get_shared_generic_inst.  Use the container's own
10926         'class_inst'.
10927
10928         * metadata.c (mono_metadata_load_generic_params): Move
10929         initialization of 'context' field here from ...
10930         * class.c (mono_class_create_from_typedef): ... here, and ...
10931         * loader.c (mono_get_method_from_token): ... here.
10932
10933         * class.c (get_shared_generic_class): Rename from
10934         mono_get_shared_generic_class and make static.
10935         (mono_get_shared_generic_inst): Move to metadata.c.
10936         * loader.c (mono_get_shared_generic_method): Likewise.
10937         * class-internals.h, metadata-internals.h: Update to changes.
10938
10939         Fix #81830
10940         * class.c (mono_class_from_generic_parameter): Don't assume a
10941         generic container owner exists.  Generic containers from monodis
10942         don't have any.
10943
10944 2007-06-06  Rodrigo Kumpera  <kumpera@gmail.com>
10945
10946         * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
10947         * verify.h: new typedefs to returns the non-verifiable status
10948         * verify.c: initial implementation of generics, stack merging and object compatibility check
10949
10950 2007-06-06  Mark Probst  <mark.probst@gmail.com>
10951
10952         * class.c, image.c, class-internals.h (MonoImage): class_cache is
10953         a MonoInternalHashTable again (fixed bug in internal hash table
10954         code).
10955
10956 2007-06-06  Mark Probst  <mark.probst@gmail.com>
10957
10958         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
10959         MonoInternalHashTable again (fixed bug in internal hash table
10960         code).
10961
10962 2007-06-06  Mark Probst  <mark.probst@gmail.com>
10963
10964         * class.c, image.c, class-internals.h, domain.c,
10965         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
10966         changes.  Have to figure out what makes them break the SWF
10967         regression.
10968
10969 2007-06-04  Mark Probst  <mark.probst@gmail.com>
10970
10971         * class.c, image.c, class-internals.h (MonoImage): class_cache is
10972         a MonoInternalHashTable now.
10973
10974 2007-06-04  Mark Probst  <mark.probst@gmail.com>
10975
10976         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
10977         MonoInternalHashTable now.
10978
10979 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
10980
10981         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
10982         invoke_impl code.
10983
10984         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
10985
10986         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
10987         dependent trampoline.
10988
10989         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
10990
10991         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
10992
10993 2007-05-29  Robert Jordan  <robertj@gmx.net>
10994
10995         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
10996
10997 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
10998
10999         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
11000
11001 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
11002
11003        * marshal.c: Fix interface lookup loops for
11004        cominterop_get_com_slot_for_method and 
11005        cominterop_get_method_interface. Only need to lookup
11006        if type is a class, else use interface type method is on.
11007
11008        Code is contributed under MIT/X11 license.
11009
11010 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
11011
11012         * reflection.c: HasSecurity can be present even if no specially 
11013         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
11014         SecurityAttribute). Fix CAS regression tests on buildbot.
11015
11016 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
11017
11018        * appdomain.c: Add configure checks for header files.
11019        * image.c: Add configure checks for header files.
11020        * file-io.c: Add configure checks for header files.
11021        * debug-mono-symfile.c: Add configure checks for header files.
11022        * threadpool.c: Add configure checks for header files.
11023        * console-io.c: Add configure checks for header files.
11024        * profiler.c: Add configure checks for header files.
11025        * rawbuffer.c: Add configure checks for header files.
11026        * icall.c: Add configure checks for header files.
11027        * rand.c: Add configure checks for header files.
11028        * socket-io.c: Add configure checks for header files.
11029
11030        Code is contributed under MIT/X11 license.
11031
11032 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
11033
11034         * reflection.c (mono_custom_attrs_from_builders): Remove the 
11035         assertion as it breaks the build.
11036         
11037         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
11038
11039         * reflection.c (lookup_custom_attr): Make a copy here too.
11040
11041         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
11042         dynamic images.
11043
11044         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
11045         images.
11046
11047         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
11048         info.
11049
11050 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
11051
11052         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
11053         (load_cattr_value): Ditto.
11054
11055 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
11056
11057         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
11058
11059 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
11060
11061         * threads.c: In "start_wrapper", set apartment_state to MTA if
11062         apartment_state is Unknown and we're running on 2.0 profile or
11063         higher.
11064         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
11065         to main method, then set apartment_state to Unknown on 1.0 profile,
11066         and MTA on 2.0 profile.
11067
11068 2007-05-16  Jb Evain  <jb@nurv.fr>
11069
11070         * class-internals.h (MonoDefaults): Add an attribute_class and
11071           customattribute_data_class.
11072         * domain.c (mono_init_internal): Populate them.
11073         * reflection.c: Use them to remove duplicates. Make a vew
11074         MonoClass variables `static'.
11075
11076 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
11077
11078         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
11079         step in implementing IMT, so that all isinst checks now can go
11080         through the bitmap.
11081         This was needed because vtables for TransparentProxy need to look
11082         like the vtable of the "target" class, so they need to point to
11083         its interface bitmap directly.
11084
11085         * object.c: inside "mono_class_create_runtime_vtable" and
11086         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
11087
11088 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
11089
11090         * object-internals.h
11091           culture-info.h : added territory field in MonoCulture and
11092           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
11093         * locales.c : fill territory field above too.
11094         * culture-info-table.h : regenerated.
11095
11096 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
11097
11098         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
11099         Fixes #81599.
11100
11101 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
11102
11103         * object.c: Always initialize apartment, even if 
11104         there is no custom attributes on entry point.
11105         
11106         Code is contributed under MIT/X11 license.
11107
11108 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
11109
11110         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
11111         * metadata.c: If no encoding is set, check for unicode
11112         on class.
11113         
11114         Code is contributed under MIT/X11 license.
11115
11116 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
11117
11118         * threads.c: Handle if mono_thread_current returns NULL 
11119         
11120         Code is contributed under MIT/X11 license.
11121
11122 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
11123
11124         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
11125         in start_wrapper. Added mono_thread_init_apartment_state and
11126         mono_thread_cleanup_apartment_state.
11127         * object.c: Initialize thread apartment state on main thread
11128         by checking for STAThreadAttribute on entry point.
11129         * object-internals.h: Add apartment_state field to MonoThread.
11130         * threads-types.h: Add unmanaged definition of 
11131         System.Threading.ApartmentState, MonoThreadApartmentState.
11132         
11133         Code is contributed under MIT/X11 license.
11134         
11135 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
11136
11137         * class.c: Fix windows build.
11138         * class-internals.h: Fix windows build.
11139         
11140         Code is contributed under MIT/X11 license.
11141
11142 2007-05-08  Robert Jordan  <robertj@gmx.net>
11143
11144         * process.c (CreateProcess_internal):
11145         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
11146         .CreateNoWindow was specified. Fixes #81496.
11147
11148 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
11149
11150         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
11151         step in implementing IMT, replaced it with two compact arrays
11152         (interfaces_packed and interface_offsets_packed) and a bitmap that
11153         is used for isinst checks (interface_bitmap).
11154
11155         * class.c: (compare_interface_ids): compare function to pass to
11156         bsearch when looking for an interface with a given id.
11157         (mono_class_interface_offset): reimplemented using bsearch on
11158         interfaces_packed, getting the offset from interface_offsets_packed.
11159         (print_implemented_interfaces): utility debugging function.
11160         (setup_interface_offsets): reworked to initialize interfaces_packed,
11161         interface_offsets_packed and interface_bitmap.
11162
11163         * object.c: replaced all accesses to "MonoClass.interface_offsets"
11164         with uses of interfaces_packed and interface_offsets_packed.
11165
11166 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
11167
11168         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
11169         mono_class_interface_offset prototype to wrap all accesses to
11170         "MonoClass.interface_offsets".
11171
11172         * class.c: Implemented mono_class_interface_offset, and wrapped all
11173         accesses to "MonoClass.interface_offsets".
11174
11175         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
11176         "MonoClass.interface_offsets".
11177
11178 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
11179
11180         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
11181         GetMethodFromHandle overloads (bug #78637).
11182
11183 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
11184
11185         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
11186         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
11187
11188 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
11189
11190         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
11191         #81498.
11192
11193         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
11194         gracefully.
11195         (mono_custom_attrs_from_index): Ditto.
11196
11197         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
11198         Fixes #81501.
11199
11200 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
11201
11202         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
11203         is now allocated from a mempool.
11204
11205 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
11206
11207         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
11208         caller holds threads_lock, leading to deadlocks. Fixes #81476.
11209
11210 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
11211
11212         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
11213         mono_loader_clear_error () too late. Fixes #81463.
11214
11215 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
11216
11217         * culture-info-table.h : regenerated.
11218
11219 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
11220
11221         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
11222         is missing.
11223
11224 2007-04-25  Dick Porter  <dick@ximian.com>
11225
11226         * Makefile.am: Put the mingw enforced-optimisation back into the
11227         PLATFORM_WIN32 section.
11228
11229 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
11230
11231         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
11232         patch.
11233
11234         * image.c (mono_image_load_module): New API function to load a module reference.
11235
11236         * image.c (load_modules): Load modules lazily. Fixes #80812.
11237
11238         * class.c (mono_class_from_typeref): Use mono_image_load_module.
11239         
11240         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
11241
11242         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
11243         to mono_image_load_module_dynamic.
11244
11245 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
11246
11247         * marshal.c: Fix calling convention for CCW on non-windows
11248         platforms. STDCALL on windows, CDECL everywhere else to work 
11249         with XPCOM and MainWin COM.
11250         
11251         Code is contributed under MIT/X11 license.
11252
11253 2007-04-23  Martin Baulig  <martin@ximian.com>
11254
11255         Fix #80969.
11256
11257         * loader.c
11258         (method_from_memberref): Added `gboolean *used_context' argument.
11259         (mono_get_method_from_token): Likewise.
11260         (mono_get_method_full): Don't insert the method in the cache when
11261         `used_context' is true.
11262
11263 2007-04-23  Raja R Harinath  <rharinath@novell.com>
11264
11265         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
11266
11267         * reflection.c (mono_reflection_bind_generic_parameters): Don't
11268         create new MonoTypes for returned types.
11269         * class.c (mono_generic_class_get_class): Export mono-internal.
11270         * class-internals.h: Update to changes.
11271
11272 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
11273
11274         * threadpool.c, threadpool.h, icall-def.h: patch from
11275         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
11276
11277 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
11278
11279         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
11280         
11281         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
11282
11283         * threads.c (mono_thread_get_stack_bounds): New helper function.
11284
11285         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
11286         Correctly compute stack bounds when attaching. Fixes #81394.
11287
11288 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
11289
11290         * reflection.c: fix handling of doubles in custom attributes
11291         for the arm-fpa format (bug #81368).
11292
11293 2007-04-18  Raja R Harinath  <rharinath@novell.com>
11294
11295         * reflection.c (assembly_add_win32_resources): Mildly relax an
11296         bounds check to let the end pointer point just past the end of the
11297         allocated buffer.  (may fix #81384)
11298
11299 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
11300
11301         * culture-info-table.h : regenerated.
11302
11303 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
11304
11305         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
11306         the thread is aborted early.
11307
11308 2007-04-05  Dick Porter  <dick@ximian.com>
11309
11310         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
11311         FindFirstFile()/FindNextFile() to find entries.  This lets the
11312         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
11313         81038.
11314
11315         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
11316         the parameters of
11317         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
11318
11319 2007-04-04  Martin Baulig  <martin@ximian.com>
11320
11321         * debug-helpers.c
11322         (mono_method_desc_full_match): Add support for nested classes.
11323
11324 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
11325
11326         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
11327
11328 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
11329
11330         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
11331         waiting for too many threads.
11332
11333 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
11334
11335         * environment.c: Fix return value check on uname so we can get the 
11336         executing version on Solaris operating systems.
11337
11338 2007-03-28  Jb Evain  <jbevain@gmail.com>
11339
11340         * class.c (mono_type_get_name_recurse): Complete the
11341         fix for the creation of assembly qualified names for
11342         pointer types. Fixes #81208.
11343
11344 2007-03-27  Dick Porter  <dick@ximian.com>
11345
11346         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
11347         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
11348         changed.
11349
11350         * threads.c
11351         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
11352         the value of ReleaseMutex().
11353
11354 2007-03-27  Dick Porter  <dick@ximian.com>
11355
11356         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
11357         in little-endian order, not network endian, so must be converted
11358         to host endian here.  Fixes bug 80593.
11359
11360 2007-03-22  Jb Evain  <jbevain@gmail.com>
11361
11362         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
11363         qualified names for pointer types. Fixes #81208.
11364
11365 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
11366
11367         * marshal.c: Add support for PreserveSigAttribute. 
11368         
11369         Code is contributed under MIT/X11 license.
11370
11371 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
11372
11373         * process.c: Fix endianness issues. Fixes #81126.
11374
11375         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
11376         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
11377
11378         * image.c (mono_image_lookup_resource): Make this work on big-endian
11379         machines.Change API contract so the caller needs to free the return value.
11380         
11381         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
11382         API change.
11383         
11384 2007-03-14  Martin Baulig  <martin@ximian.com>
11385
11386         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
11387         mono_type_get_desc() as well.
11388
11389 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
11390
11391         * icall.c:  Fix environ access in VS.  
11392         
11393 2007-03-13  Alp Toker  <alp@atoker.com>
11394
11395         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
11396         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
11397         #63841.
11398
11399 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
11400
11401         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
11402         circular references among dynamic methods. Fixes #81091.
11403
11404         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
11405
11406 2007-03-09  Martin Baulig  <martin@ximian.com>
11407
11408         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
11409
11410 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
11411
11412         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
11413         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
11414         
11415         Code is contributed under MIT/X11 license.
11416         
11417 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
11418
11419         * loader.c: Reapply patch for bug #79424.
11420
11421 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
11422
11423         * metadata.c (mono_type_to_unmanaged): Only convert object to
11424         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
11425
11426 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
11427
11428         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
11429         (and incorrectly set) is_reference field from MonoGenericInst.
11430
11431 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
11432
11433         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
11434         a little earlier.
11435
11436         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
11437
11438         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
11439
11440 2007-03-05  Miguel de Icaza  <miguel@novell.com>
11441
11442         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
11443         FileOptions.1 value to mean "temporary", map that to
11444         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
11445
11446         Fixes 80688
11447
11448 2007-03-03  Marek Habersack  <mhabersack@novell.com>
11449
11450         * appdomain.c: implement MS .Net style shadow copying. Copies of
11451         the assemblies are made in a subdirectory of the dynamic base
11452         directory, the assembly names are preserved.
11453         Copy .mdb and .config files along with the assemblies being shadowed.
11454
11455 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
11456
11457         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
11458         (emit_marshal_handleref): Ditto.
11459
11460         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
11461         on Visual C++. Fixes #80671.
11462
11463 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
11464
11465         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
11466         for clone operations.
11467
11468 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
11469
11470         * marshal.c: Fix warnings.
11471
11472 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
11473
11474         * loader.c: allow case-insensitive matching of the dll name
11475         in dllmap handling when prefixed with "i:".
11476
11477 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
11478
11479         * threads.c: Fix #ifdef for dummy_apc function for VS.
11480
11481 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
11482
11483         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
11484
11485 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
11486         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
11487         giving precedence to the methods with a fully qualified name
11488         (InterfaceName.MethodName) when building the interface sections
11489         of the vtable.
11490
11491 2007-02-16  Dick Porter  <dick@ximian.com>
11492
11493         * threadpool.c (append_job): Fix fast-path array handling, so it's
11494         less likely the array will grow exponentially when the load is
11495         heavy.
11496
11497 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
11498
11499         * metadata-internals.h, loader.c: fix dllmap lookup order
11500         for non-function maps, too, and prepare for fallback code.
11501
11502 2007-02-12  Robert Jordan  <robertj@gmx.net>
11503
11504         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
11505         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
11506         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
11507         GlobalFree. Fixes a part of bug #77075.
11508
11509 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
11510
11511         * loader.c: implemented typedef parent in field memberref.
11512
11513 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
11514
11515         * marshal.c: Fix warnings and remember to call Release on
11516         IUnknown of RCW.
11517         
11518         Code is contributed under MIT/X11 license.
11519
11520 2007-02-10  Miguel de Icaza  <miguel@novell.com>
11521
11522         * class-internals.h: Add MonoHandleRef definition, and
11523         handleref_class to mono_defaults. 
11524
11525         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
11526         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
11527
11528         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
11529         (do nothing on this stage)
11530         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
11531         (emit_marshal_handleref): New method, used for argument handling
11532         of HandleRefs. 
11533
11534 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
11535
11536         * class.c (mono_class_setup_parent): Lazily init com types.
11537         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
11538         init com types.
11539         * object.c (mono_remote_class_vtable): Lazily init com types.
11540         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
11541         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
11542         * domain-internals.h: Expose mono_init_com_types.
11543         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
11544         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
11545         Add support for COM Callable Wrapper marshalling.
11546         * marshal.h: Add icall definitions.
11547         * gc.c: Handle freeing of CCWs in finalizer code.
11548         
11549         Code is contributed under MIT/X11 license.
11550
11551 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
11552
11553         * reflection.c: changed all the signature encoding code to use
11554         a variable-sized buffer.
11555
11556 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
11557
11558         * marshal.c: locking fixes: never take the loader lock
11559         or other runtime locks when holding the marshal lock
11560         (fixes bug#80664).
11561
11562 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
11563
11564         * marshal.c: make the delegate function pointer mapping
11565         work for the moving GC.
11566
11567 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
11568
11569         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
11570         for bug #80618.
11571
11572 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
11573
11574         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
11575         gmodule.
11576
11577 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
11578
11579         * threadpool.c: made the code moving-GC safe.
11580
11581 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
11582
11583         * assembly.c, boehm-gc.c, class-internals.h, class.c,
11584         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
11585         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
11586         warning cleanup.
11587         * reflection.c: warning cleanup, some threading and moving GC fixes.
11588
11589 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
11590
11591         * class.c, loader.c: create the needed Set/Get/Address array methods
11592         as well as the .ctors in mono_class_init (), fixes bug #80567.
11593
11594 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
11595
11596         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
11597         we doesn't decrease its alignment. Should fix the sparc build.
11598
11599 2007-01-24  Dick Porter  <dick@ximian.com>
11600
11601         * socket-io.c
11602         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
11603         Create the returned object if we need to ignore an unsupported
11604         socket option.  Fixes a segfault reported by Atsushi.
11605
11606 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
11607
11608         * class.c, object.c: restrict GC-tracked fields to
11609         UIntPtr fields used inside corlib, so we provide better
11610         type info to the GC and also allow broken packing as in
11611         bug #80580.
11612
11613 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
11614
11615         * sgen-gc.c: removed duplicated function.
11616
11617 2007-01-19  Miguel de Icaza  <miguel@novell.com>
11618
11619         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
11620         value that means that the value is not supported, but that we
11621         should not return a failure, but instead report this as a
11622         successful operation.
11623
11624 2007-01-19  Raja R Harinath  <rharinath@novell.com>
11625
11626         Fix tests/bug79956.2.il
11627         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
11628         (mono_generic_class_get_class): If the generic definition in an
11629         enum, copy over other fields related to it.
11630
11631 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
11632
11633         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
11634         genericinst enums (bug #79215).
11635
11636 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
11637         * class.c: Fix bug 80307.
11638
11639 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
11640
11641         * image.c: if the file table is not present, try to load
11642         all the modules, since we don't have info about them
11643         having or not metadata (bug #80517).
11644         * assembly.c: allow mono_assembly_load_references () to
11645         work for netmodules.
11646
11647 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
11648
11649         * image.c, metadata-internals.h, object.c: execute module
11650         cctors when running on the 2 runtime if present (bug #80487).
11651
11652 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
11653
11654         * icall.c: optimized InitializeArray() on bigendian.
11655
11656 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
11657
11658         * icall.c: fix for the broken ARM FPA double format.
11659
11660 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
11661
11662         * icall.c: handle endian issues for r4 and r8 types, too, in
11663         the InitializeArray() icall.
11664
11665 2007-01-15  Miguel de Icaza  <miguel@novell.com>
11666
11667         * loader.c (mono_loader_error_prepare_exception): Clear the error
11668         once we have extracted the information from it, do this before we
11669         call into the JIT's class loading mechanisms.
11670
11671         * object.c (mono_class_create_runtime_vtable): Do not clear the
11672         loader error before calling mono_class_get_exception_for_failure
11673         as the loader error is needed inside
11674         mono_class_get_exception_for_failure to throw the error (thinko).
11675
11676         Fixes #80521
11677         
11678 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
11679
11680         * reflection.c: align fields rva data so it's faster to load at
11681         runtime.
11682
11683 2007-01-12  Raja R Harinath  <rharinath@novell.com>
11684
11685         Prepare to simplify GenericMethod handling.
11686         * class-internals.h (mono_method_get_context): New accessor function.
11687         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
11688         rather than directly accessing '->context' field.
11689
11690         * class-internals.h (_MonoGenericParam.method): Move ...
11691         (_MonoGenericContainer): ... here.  Add into union with klass field.
11692         * class.c, icall.c, loader.c, metadata.c, reflection.c:
11693         Update to changes.
11694
11695 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
11696
11697         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
11698         the wrapper type enum and reduce relocations.
11699
11700 2007-01-12  Raja R Harinath  <rharinath@novell.com>
11701
11702         * reflection.c (inflate_mono_method): Reuse method instantiation
11703         from the generic method, if available.
11704
11705 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
11706
11707         * marshal.c (emit_marshal_variant): Fix conv_arg
11708         type in last commit, based on whether parameter is byref.
11709         
11710 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
11711
11712         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
11713         marshalling.
11714         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
11715         MONO_TYPE_OBJECT back for VARIANT support.
11716
11717 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
11718
11719         * marshal.c, marshal.h, icall-def.h: Implement 
11720         Marshal.ReAllocCoTaskMem.
11721
11722 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
11723
11724         * marshal.c: memory retention fixes: use the proper
11725         image cache for runtime_invoke method lookups.
11726
11727 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
11728
11729         * mempool.c: added code to help debug mempool allocations.
11730
11731 2007-01-11  Dick Porter  <dick@ximian.com>
11732
11733         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
11734         support (experimenting with faking it with IP_MTU_DISCOVER for
11735         systems that don't have IP_DONTFRAGMENT.)
11736         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
11737         icall.
11738
11739         * icall-def.h: new System.Net.Sockets.Disconnect icall.
11740
11741         * socket-io.h: Add new fields to MonoSocketAsyncResult
11742         corresponding to the new ones in Socket.cs.
11743
11744 2007-01-11  Raja R Harinath  <rharinath@novell.com>
11745
11746         Fix IronPython regression mentioned in #80249
11747         * metadata.c (do_mono_metadata_parse_generic_class): Clear
11748         'cached_context' field, since it may have been initialized as a
11749         side-effect of metadata parsing.
11750
11751         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
11752         (_MonoGenericClass.cached_class): Move here and rename from lone
11753         remaining field of ...
11754         (_MonoInflatedGenericClass): ... this.  Remove.
11755         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
11756         to changes.
11757
11758         Fix mcs/tests/test-128.cs regression.
11759         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
11760         2007-01-10 change below.
11761         [MONO_TYPE_OBJECT]: Recurse into array case.
11762
11763 2007-01-11  Raja R Harinath  <harinath@gmail.com>
11764
11765         * class-internals.h (mono_get_inflated_generic_class): Remove.
11766         * class.c (mono_get_inflated_generic_class): Remove.
11767         (mono_generic_class_get_class): Rename from
11768         mono_class_create_generic.
11769         (mono_class_from_mono_type) [GENERICINST]: Use it.
11770         * reflection.c, metadata.c: Update to changes.  Use
11771         'mono_class_from_mono_type'.
11772
11773 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
11774
11775         * reflection.c: use passed type when encoding an array element
11776         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
11777
11778 2007-01-09  Robert Jordan  <robertj@gmx.net>
11779
11780         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
11781         result arguments (someDelegate.EndInvoke (unrelatedAres)).
11782         Fixes bug #80392.
11783
11784 2007-01-09  Raja R Harinath  <rharinath@novell.com>
11785
11786         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
11787
11788         * object.c (set_value): Avoid aliasing between type->data.klass
11789         and type->data.generic_class.
11790
11791         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
11792
11793 2007-01-08  Raja R Harinath  <rharinath@novell.com>
11794
11795         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
11796         between type->data.klass and type->data.generic_class.
11797
11798 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
11799
11800         * marshal.c: In MS.NET, StringBuilder objects are not copied by
11801         value in out parameters.
11802
11803 2007-01-08  Raja R Harinath  <rharinath@novell.com>
11804
11805         Simplify invariant for MonoGenericClass::klass field.
11806         * class.c (mono_class_create_generic): Verify 'klass' is null.
11807         * metadata.c (do_mono_metadata_parse_generic_class): Don't
11808         initialize 'klass' field.
11809
11810 2007-01-05  Raja R Harinath  <rharinath@novell.com>
11811
11812         Ongoing work to avoid redundant data and simplify invariants.
11813         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
11814         'generic_class', and change type to a GenericInst.
11815         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
11816         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
11817
11818 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
11819
11820         * class.c : skip io-layer under PLATFORM_WIN32.
11821
11822 2007-01-03  Tor Lillqvist  <tml@novell.com>
11823
11824         Fix #80305: In a bundled executable, look in the bundled exe
11825         assembly to determine the runtime version. Add the possibility to
11826         bundle also the machine.config file.
11827         
11828         * assembly.c (mono_assembly_open_from_bundle): Make
11829         non-static. Allow being called even if we have no bundled
11830         assemblies, and return NULL right away in that case.
11831
11832         * domain-internals.h: Declare mono_assembly_open_from_bundle()
11833         here.
11834
11835         * domain.c (app_config_parse): Take an assembly exe file name as
11836         parameter instead of a config file name. Check for a bundled
11837         config file for that assembly by calling
11838         mono_config_string_for_assembly_file() (see below) before looking
11839         for one in the file system.
11840         (get_runtimes_from_exe): Corrsponding change to call of
11841         app_config_parse().
11842         (get_runtimes_from_exe): Check for bundled assembly exe file first
11843         by calling mono_assembly_open_from_bundle(). If no bundled
11844         assembly exe file is found, call mono_image_open() as before to
11845         look it up in the file system.
11846
11847         * mono-config.c: Add variable bundled_machinec_onfig.
11848         (mono_config_string_for_assembly_file): New function.
11849         (mono_config_for_assembly): Move code snippet that looks for a
11850         bundled assembly .config file into the above new function. Call
11851         it.
11852         (mono_register_machine_config, mono_get_machine_config): New
11853         functions to set and retrieve
11854
11855         * assembly.h: Declare mono_register_machine_config().
11856
11857         * mono-config.h: Declare mono_get_machine_config() and
11858         mono_config_string_for_assembly_file().
11859
11860         * icall.c: No declaration of environ necessary on Win32. It is
11861         declared (as a macro expanding to a function call) in stdlib.h.
11862         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
11863         New internal mono function. Returns the value of
11864         mono_get_machine_config() as a Mono string.
11865
11866         * icall-def.h: Add get_bundled_machine_config().
11867
11868 2007-01-04  Raja R Harinath  <rharinath@novell.com>
11869
11870         Remove redundant field
11871         * class-internals.h (_MonoGenericContext.container): Remove field.
11872         * loader.c (mono_method_get_signature_full): Don't parse a
11873         "container" for a signature parse when the signature is inflated
11874         immediately.
11875         (method_from_methodspec): Likewise, for a generic_inst.
11876         * class.c, metadata.c, reflection.c: Update to changes.
11877
11878 2006-01-04  Raja R Harinath  <rharinath@novell.com>
11879
11880         * class-internals.h (_MonoGenericClass): Rename 'context' field to
11881         'cached_context', and change semantics -- it starts off NULL, and
11882         is initialized on demand.
11883         * class.c (mono_generic_class_get_context): New accessor to
11884         replace 'context' field accesses.
11885         (mono_class_get_context): New helper.
11886         (*): Update to changes.
11887         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
11888
11889 2007-01-03  Miguel de Icaza  <miguel@novell.com>
11890
11891         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
11892         before the memcpy.   Fixes Marshal2 regression.
11893
11894 2007-01-02  Jb Evain  <jbevain@gmail.com>
11895
11896         * blob.h: add a MONO_TYPE_ENUM definition
11897         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
11898         fix the encoding of arrays of enums in custom attributes.
11899
11900         Fixes #79666.
11901
11902 2007-01-01  Miguel de Icaza  <miguel@novell.com>
11903
11904         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
11905         string is null terminated, but only cut the string short if it
11906         overflows the buffer.   
11907         
11908         (mono_string_to_byvalstr): Also fix this routine.   The code here
11909         was not properly terminating a string (it was only terminated
11910         because of the previous catch-all memset). 
11911
11912         I left the memset, because I do not know if applications expect
11913         the runtime to clear this region. 
11914
11915         Fixes #79944.
11916
11917         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
11918         Clear the error before returning to unmanaged code to prevent the
11919         runtime from being confused later on (fixes  80420).
11920         (ves_icall_type_from_name): Always call mono_loader_clear_error
11921         after parsing a type that could have failed.
11922         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
11923
11924         * loader.c (mono_loader_clear_error): Fix indentation.
11925
11926 2006-12-28  Martin Baulig  <martin@ximian.com>
11927
11928         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
11929
11930 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
11931
11932         * reflection.c: patch from Rolf Bjarne Kvinge to fix
11933         getting a token for an EnumBuilder.
11934
11935 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
11936
11937         * reflection.c: be more careful in case resource generation
11938         fails to create the data array.
11939
11940 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
11941
11942         * sgen-gc.c: write barrier for clone and fix unregister handles.
11943
11944 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
11945
11946         * reflection.c: some fixes needed in the generics code for the moving GC.
11947
11948 2006-12-22  Robert Jordan  <robertj@gmx.net>
11949
11950         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
11951         account. Fixes bug #80299.
11952
11953 2006-12-21  Raja R Harinath  <rharinath@novell.com>
11954
11955         Fix WaitHandle usage in delegates.
11956         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
11957         * object.c (mono_wait_handle_new): Use the property set method to
11958         initialize the handle.
11959         (mono_wait_handle_get_handle): New.
11960         * threadpool.c (mono_async_invoke): Use it.
11961         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
11962         Likewise.
11963         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
11964
11965 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
11966
11967         * marshal.c (emit_marshal): Call emit_marshal_variant and
11968         emit_marshal_com_interface when applicable.
11969         (emit_marshal_variant, emit_marshal_com_interface): Add
11970         methods for this case and remove if's from emit_marshal_object.
11971         
11972 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
11973
11974         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
11975
11976 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
11977
11978         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
11979         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
11980         and GlobalFree on Windows. Remove FIXME.
11981
11982 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
11983
11984         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
11985         implementation for managed objects.
11986
11987 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
11988
11989         * object.c: implemented code to be used for checking
11990         that no reference field overlaps with non-references.
11991
11992 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
11993
11994         * threadpool.c: fix queue code to be compatible with the
11995         moving GC.
11996
11997 2006-12-18  Miguel de Icaza  <miguel@novell.com>
11998
11999         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
12000         in structures by throwing ArgumentNullException.
12001
12002         (emit_marshal_safehandle): Also when they are null parameters.
12003
12004         (emit_marshal_safehandle): Add support for ref
12005         SafeHandles parameters
12006
12007 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
12008
12009         * profiler.c: updated to use the mono-dl API instead of
12010         gmodule.
12011
12012 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
12013
12014         * profiler.c: updated to use the mono-dl dynamic loading
12015         API instead of gmodule.
12016
12017 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
12018
12019         * profiler.c: use readlink, older versions of glib don't have
12020         g_file_read_link ().
12021
12022 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
12023
12024         * profiler.c: try to detect the path to mono if libc fails to provide
12025         a useful name (bug #80286).
12026
12027 2006-12-16  Raja R Harinath  <rharinath@novell.com>
12028
12029         Fix #80242
12030         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
12031         instance, use the generic type definition instead.
12032         (ves_icall_Type_GetNestedTypes): Likewise.
12033         * class.c (mono_class_create_generic): Always set the
12034         nested_classes of a generic instance to NULL, even if the generic
12035         type definition has nested types.
12036
12037 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
12038
12039         * marshal.c (mono_string_from_bstr): Revert previous Windows change
12040         and fix on Linux.
12041         
12042 2006-12-15  Miguel de Icaza  <miguel@novell.com>
12043
12044         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
12045         my arguments were in the wrong order.   I also fixed the Windows
12046         version which seems to have had the same issue.
12047
12048         (mono_free_bstr): On Unix, this is g_free.
12049         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
12050         conversions (for the tests in corlib to pass).
12051
12052 2006-12-14  Miguel de Icaza  <miguel@novell.com>
12053
12054         * marshal.c (emit_ptr_to_object_conv): For now, ignore
12055         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
12056         exception if a ref SafeHandle in a struct has changed).
12057         
12058         (emit_struct_conv): Do not perform layout checks for classes
12059         derived from SafeHandle, as those are specially handled. 
12060
12061         (emit_object_to_ptr_conv): Add support for
12062         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
12063
12064         (emit_marshal_safehandle): Implement conversion of return values
12065         of safehandles (MARSHAL_ACTION_CONV_RESULT).
12066         
12067         * threads.c: WaitHandle now is compiled with two different handles
12068         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
12069         for 2.0.
12070         
12071         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
12072         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
12073         these routines to cope with both kinds of fields.
12074
12075 2006-12-12  Miguel de Icaza  <miguel@novell.com>
12076
12077         * metadata.c (mono_type_to_unmanaged): Handle the case where
12078         type->data.klass is a SafeHandle, and in that case, return the
12079         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
12080         MONO_MARSHAL_CONV_SAFEHANDLE. 
12081
12082 2006-12-11  Miguel de Icaza  <miguel@novell.com>
12083
12084         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
12085         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
12086         calling emit_marshal_object.
12087
12088         (emit_marshal_safehandle): Implement marshalling of
12089         SafeHandle parameters (no ref support yet).
12090
12091         (MarshalAction): Document the defines as I implement
12092         them for SafeHandle.
12093
12094         (emit_marshal_object): indentation police.
12095
12096         * class-internals.h: Define MonoSafeHandle.
12097         Add safehandle_class to MonoDefaults type.
12098
12099         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
12100         list of classes to check for fields. 
12101
12102         * domain.c (mono_init_internal): Add SafeHandle to the list of
12103         mono_defaults loaded.
12104
12105 2006-12-15  Raja R Harinath  <rharinath@novell.com>
12106
12107         Fix #80253
12108         * reflection.c (mono_reflection_bind_generic_parameters): If the
12109         generic type definition is a type builder, ensure that it is fully
12110         initialized before instantiating it.  Kill some dead code.
12111
12112 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
12113
12114         * object.c: clear the loader_error () before loading
12115         more metadata stuff (bug #80258).
12116
12117 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
12118
12119         * icall.c, icall-defs.h: type modifiers icalls for
12120         parameters and properties.
12121
12122 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
12123
12124         * object.c, icall.c: fixed warnings.
12125
12126 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
12127
12128         * marshal.c: fixed a couple of leaks and coding style in a few places.
12129
12130 2006-12-08  Dick Porter  <dick@ximian.com>
12131
12132         * process.c: Cope with NULL ProcessStartInfo arguments on windows
12133         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
12134         80173.
12135
12136 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
12137
12138         * process.c: ProcessStartInfo may have only filename set and
12139         arguments can be NULL.
12140
12141 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
12142
12143         * icall.c: fix leak found by Robert Jordan.
12144
12145 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
12146
12147         * marshal.c, marshal.h: generate managed method to access an element
12148         of a multi-dimensional array.
12149
12150 2006-11-30  Paolo Molaro (lupus@ximian.com)
12151
12152         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
12153
12154 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
12155
12156         * icall.c: back out GetFields () fix until the serialization code is
12157         fixed to not depend on the incorrect behaviour.
12158
12159 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
12160
12161         * profiler.c: provide defaults if none are set.
12162
12163 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
12164
12165         * Makefile.am, attrdefs.h: new public header file with
12166         constants for attributes for use by embedders.
12167
12168 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
12169
12170         * icall.c: GetFields () fix for bug #80064.
12171
12172 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
12173
12174         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
12175         removed long unused icalls.
12176
12177 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
12178   
12179         * marshal.c: 
12180                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
12181                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
12182                 can be generated without a delegate class.
12183                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
12184         
12185         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
12186
12187 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12188
12189         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
12190         #80069.
12191
12192 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
12193
12194         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
12195         icall-def.h: added icalls needed by System.GC.
12196
12197 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
12198
12199         * loader.c: ensure the class in catch clauses is handled
12200         correctly for generics methods (fixes bug#79980).
12201
12202 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
12203
12204         * monitor.h, monitor.c: added mono_locks_dump () function
12205         to help debug deadlocks involving managed locks.
12206
12207 2006-11-13  Dick Porter  <dick@ximian.com>
12208
12209         * file-io.c (get_file_attributes): If the file is a symlink try
12210         and get the stat data for the target, but also add the
12211         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
12212         the specs for the windows symlink support, but will probably have
12213         to be reworked when I have test data from a vista machine.  Fixes
12214         bug 79887.
12215
12216 2006-11-13  Dick Porter  <dick@ximian.com>
12217
12218         * gc.c (mono_domain_finalize): 
12219         * marshal.c (mono_delegate_begin_invoke): 
12220         * threadpool.c (socket_io_init, mono_thread_pool_init)
12221         (mono_thread_pool_finish): 
12222         * monitor.c (mono_monitor_try_enter_internal): 
12223         * threads.c (mono_thread_resume, mono_thread_init)
12224         (mono_thread_suspend_all_other_threads)
12225         (mono_thread_execute_interruption): 
12226         * appdomain.c (mono_domain_unload): Check for NULL error returns
12227         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
12228         75733.
12229
12230 2006-11-11  Miguel de Icaza  <miguel@novell.com>
12231
12232         * process.c
12233         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
12234         Only close the handle if the value of the handle is not
12235         INVALID_HANDLE_VALUE.  This just makes the process a bit more
12236         robust.
12237
12238         Improvement for #75733, so that we do not run into this problem. 
12239
12240         
12241         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
12242         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
12243         internal variables.  Fixes #79462 
12244         
12245
12246 2006-11-09  Dick Porter  <dick@ximian.com>
12247
12248         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
12249         Use poll() not select().  Fixes bug 79397.
12250
12251 2006-11-09  Raja R Harinath  <rharinath@novell.com>
12252
12253         Fix #79872
12254         * assembly.c (mono_assembly_load_from_full): Check that the given
12255         image has an assembly manifest.
12256
12257 2006-11-09  Ankit Jain  <jankit@novell.com>
12258
12259         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
12260         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
12261         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
12262
12263 2006-11-07  Dick Porter  <dick@ximian.com>
12264
12265         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
12266         Put the old resolver behaviour back for pre-2.0 profiles.
12267
12268 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
12269
12270         * threadpool.c: precise GC and locking fixes.
12271
12272 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
12273
12274         * class.c: don't load types that have an explicit unaligned
12275         managed reference. Provide better info in the TypeLoad exception.
12276         Part of the fix for bug #79744.
12277         * object.c: use the correct check for class type load issues.
12278
12279 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
12280
12281         * class.c: enforce alignment of fields with managed references
12282         even when Pack=1 is forced by the user (bug #77788).
12283
12284 2006-11-03  Dick Porter  <dick@ximian.com>
12285
12286         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
12287         If the address reverse lookup fails, return it as the hostname
12288         anyway.  Fixes bug 79721.
12289
12290 2006-11-03  Dick Porter  <dick@ximian.com>
12291
12292         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
12293         Fix build on Windows.
12294
12295 2006-11-02  Dick Porter  <dick@ximian.com>
12296
12297         * icall-def.h: 
12298         * object-internals.h: 
12299         * exception.c (mono_get_exception_thread_interrupted): 
12300         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
12301         Fixes bug 74525.
12302
12303         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
12304         Check for pending Thread.Interrupt.
12305
12306 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
12307         * loader.c: Fixed bug 79684.
12308
12309 2006-10-27  Dick Porter  <dick@ximian.com>
12310
12311         * file-io.c (get_file_attributes): Force symlinks to directories
12312         to be returned as a regular file.  Fixes bug 79733.
12313 2006-10-26  Dick Porter  <dick@ximian.com>
12314
12315         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
12316         CreateFile to open a directory then we need to set the
12317         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
12318
12319 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
12320
12321         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
12322         friends.
12323
12324 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
12325
12326         * sgengc.c: small cleanup of timer code.
12327
12328 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
12329
12330         * sgen-gc.c: fix some warnings and start adding support for
12331         complete object removal on domain unload.
12332
12333 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
12334
12335         * assembly.c: build_assembly_name should not consider a version
12336         number without build or revision number invalid. Fixes bug #79715.
12337
12338 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
12339
12340         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
12341         call kernel32 function OutputDebugString directly.
12342         
12343         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
12344         
12345 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
12346
12347         * reflection.c: small cleanup, using a function to insert a MonoString
12348         in the string heap.
12349
12350 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
12351
12352         * reflection.c: moving GC fixes.
12353
12354 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
12355
12356         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
12357         all the objects with finalizers belonging to an unloading appdomain.
12358
12359 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
12360
12361         * sgen-gc.c: added ability to allocate even when the nursery is fully
12362         pinned and fixed a couple of bugs.
12363
12364 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
12365
12366         * threads.h: Revert the last change for now.
12367
12368         * threads.h (mono_thread_get_pending_exception): Rename this to
12369         mono_thread_get_undeniable_exception ().
12370
12371 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
12372
12373         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
12374         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
12375         when fname does not refer to valid assembly. This result in a more
12376         meaningful error message.
12377         * exception.c: added mono_get_exception_bad_image_format2 which 
12378         constructs a BadImageFormatException using the ctor taking a custom
12379         message and the file name. Passing in a NULL msg results in a default
12380         message.
12381         * exception.h: define mono_get_exception_bad_image_format2 function.
12382         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
12383         when file name pointed to an invalid IL image. Use 
12384         mono_get_exception_file_not_found2 to construct FileNotFoundException,
12385         as this results in a more meaningful error message.
12386
12387 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
12388
12389         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
12390         #79465.
12391
12392 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
12393
12394         * metadata.c (mono_type_size): Change the align parameter to guint32 for
12395         consistency with the other _size functions.
12396         (mono_type_stack_size): Ditto.
12397
12398         * class.c object.c icall.c: Fix warnings caused by the above change.
12399
12400         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
12401
12402         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
12403
12404         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
12405
12406 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
12407
12408         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
12409         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
12410         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
12411         threadpool.h, threads-types.h: mark more internal functions.
12412
12413 2006-10-11  Dick Porter  <dick@ximian.com>
12414
12415         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
12416         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
12417         reproduce the bug even before applying the fix.)
12418
12419 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
12420
12421         * reflection.c: allow retrieving attributes for arguments in generic
12422         methods (bug #79241).
12423
12424 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
12425
12426         * debug-mono-symfile.c: properly check fopen () result (found by
12427         coverity).
12428
12429 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
12430
12431         * reflection.c: make error message clearer and fixed two
12432         issuelets found by Coverity.
12433
12434 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
12435
12436         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
12437
12438 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
12439
12440         * object-internals.h, gc-internal.h, profiler-private.h:
12441         mark internal functions.
12442
12443 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
12444
12445         * reflection.c: put data in the text section.
12446         * icall.c: recognize more types in type_from_typename ().
12447         * process.c, marshal.c: added some GC FIXMEs.
12448
12449 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
12450
12451         * loader.c: check for NULL before initializing.
12452
12453 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
12454
12455         * gc.c (finalizer_thread): Use a non-alertable wait here.
12456
12457         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
12458         until the correct solution is found.
12459
12460 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
12461
12462         * reflection.c (mono_module_get_object): Avoid an assert when operating on
12463         modules with no metadata. Fixes #79596.
12464
12465         * image.c (load_metadata_ptrs): Put back the error message when
12466         the #- heap is encountered since the support is not complete yet.
12467
12468 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
12469
12470         * gc.c: do not allow the user to SuppressFinalize () a
12471         delegate because it would leak the trampoline if present.
12472
12473 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
12474
12475         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
12476         PropertyPtr table.
12477
12478 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
12479
12480         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
12481
12482         * metadata.c (mono_metadata_get_param_attrs): Ditto.
12483
12484         * row-indexes.h: Add definitions for *Ptr tables.
12485
12486         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
12487
12488         * metadata.c (mono_metadata_translate_token_index): New helper function to
12489         translate table indexes used in uncompressed metadata.
12490         (mono_metadata_decode_table_row): Ditto.
12491         (mono_metadata_decode_table_row_col): Ditto.
12492
12493         * metadata.c: Add table schema for *Ptr tables.
12494
12495         * class.c loader.c: Use the new helper function to access the affected metadata
12496         tables.
12497         
12498         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
12499         #38532.
12500         
12501 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
12502
12503         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
12504         sequences which can be unbounded in size. Fixes #79583.
12505
12506 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
12507
12508         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
12509         static initialization.
12510
12511         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
12512
12513         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
12514
12515         * domain.c (mono_domain_free): Free up type_init_exception_hash.
12516
12517         * object.c (mono_runtime_class_init): Implement correct semantics when a static
12518         ctor fails, i.e. throw the same exception on subsequent accesses.
12519         
12520 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
12521
12522         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
12523         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
12524         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
12525         Handle marshalling of interfaces and VARIANTs contained in structs.
12526         
12527         Code is contributed under MIT/X11 license.
12528         
12529 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
12530
12531         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
12532         
12533         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
12534         mempool.
12535
12536 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12537
12538         * console-io.c: ignore previous SIGINT handler.
12539
12540 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
12541
12542         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
12543         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
12544         #79460, #79461, #79485.
12545
12546         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
12547
12548         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
12549         #79217.
12550
12551 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
12552
12553         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
12554         could be generated from it.
12555
12556 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
12557
12558         * rand.c: fix read loop to correctly handle EINTR.
12559
12560 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
12561
12562         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
12563         internal calls are defined to keep methods closer to the declaring
12564         type and allow a significant reduction in runtime relocations and
12565         memory usage.
12566
12567 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
12568
12569         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
12570         exception message to have FileNotFoundException use the default
12571         assembly load error message. Fixes bug #79426.
12572         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
12573
12574 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12575
12576         * threadpool.c: (start_thread_or_queue) use the root domain when
12577         creating the thread instead of the async object one.
12578
12579 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
12580
12581         * class.c, object.c, class-internals.h, reflection.c:
12582         for arrays, store element_size inside MonoClass (speedup
12583         for array object creation).
12584
12585 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
12586
12587         * icall.c: fixed CodeBase to use the file name and not the module
12588         name (bug #79365).
12589
12590 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
12591
12592         * mono-debug.c, mono-debug.h: export find_method as
12593         mono_debug_find_method ().
12594
12595 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
12596
12597         * debug-helpers.c, class-internals.h: added a few functions useful
12598         when debugging under gdb.
12599
12600 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12601
12602         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
12603         characters that need special handling.
12604
12605 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
12606
12607         * mono-config.c: make the os/cpu specification more flexible,
12608         allowing lists and negation.
12609
12610 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
12611
12612         * marshal.c: COM Interop fixes. Handle case where method->klass.
12613         is interface. Handle BSTR/MonoString when null. Use CDECL as 
12614         calling convention on non-windows platforms. This is for
12615         compatibility with XPCOM and MainWin COM.
12616         
12617         Code is contributed under MIT/X11 license.
12618         
12619
12620 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
12621
12622         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
12623         correctly. Fixes #79217.
12624
12625         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
12626
12627 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
12628
12629         * mono-config.c: allow both an os and cpu attribute for dllmap
12630         and dllentry elemnets to enable a single config file to be used
12631         for multiple architectures.
12632
12633 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
12634
12635         * loader.c: MonoLoaderError was cleared too soon on load failure.
12636         Fixes bug #79424.
12637
12638 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
12639
12640         * icall.c: use the defining class vtable when accessing a
12641         static field, not a pobblibly derived class.
12642
12643 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
12644
12645         * icall.c string-icalls.c: Remove references to unicode.h.
12646
12647         * unicode.h unicode.c Makefile.am: Remove these unused source files.
12648
12649         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
12650
12651         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
12652         indicating the image where custom marshaller types should be looked up.
12653         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
12654         custom marshallers, instead of corlib. Fixes #79425.
12655
12656 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
12657
12658         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
12659
12660 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
12661
12662         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
12663         Implement Environment.ProcessorCount.
12664         
12665         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
12666         Implement Environment.ProcessorCount.
12667         
12668         * icall.c: 
12669         Add Environment.ProcessorCount icall.
12670         
12671         Patch by Jason McFall.
12672
12673 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12674
12675         * assembly.c: don't append .exe/.dll when the filename already contains
12676         one of those extensions.
12677
12678 2006-09-12  Martin Baulig  <martin@ximian.com>
12679
12680         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
12681         to array interfaces.
12682
12683 2006-09-11  Martin Baulig  <martin@ximian.com>
12684
12685         * reflection.c (mono_image_build_metadata): Create the
12686         MethodImpl's after emitting all types and methods, so we don't
12687         need another fixup pass for them.
12688
12689 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
12690
12691         * class.c (mono_class_from_name_case): Fix regression introduced by the last
12692         change.
12693
12694 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
12695
12696         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
12697         unload.
12698
12699 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
12700
12701         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
12702         args is not set. Fixes #78926.
12703
12704 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
12705
12706         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
12707
12708         * image.c (load_class_names): Move this to class.c, and rename it to 
12709         'mono_image_init_name_cache'.
12710         (load_modules): Fix a warning.
12711
12712         * class.c icall.c image.c: Initialize image->name_cache lazily.
12713
12714         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
12715         on its name using information in the AOT file.
12716
12717         * class.c (mono_class_from_name): Use the new hook function.
12718
12719 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
12720
12721         * reflection.c (mono_param_get_objects): Handle enum default parameter values
12722         correctly.
12723
12724         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
12725         Fixes #79289.
12726         
12727 2006-09-06  Martin Baulig  <martin@ximian.com>
12728
12729         * icall.c (mono_lookup_internal_call): Small fix.
12730
12731 2006-09-05  Raja R Harinath  <rharinath@novell.com>
12732
12733         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
12734         double g_free.
12735
12736 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
12737
12738         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
12739         when --debug is specified.
12740
12741 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
12742
12743         * class.c (setup_generic_array_ifaces): Fix a warning.
12744
12745 2006-09-04  Miguel de Icaza  <miguel@novell.com>
12746
12747         * Temporarily remove the patch to assemly.c that checks the
12748         assembly versions as it breaks our gacutil.
12749
12750 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
12751
12752         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
12753
12754         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
12755         a net 1.0 runtime.
12756
12757         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
12758         created using the default ctor. Fixes #79152.
12759         (mono_string_builder_to_utf16): Ditto.
12760
12761 2006-09-01  Martin Baulig  <martin@ximian.com>
12762
12763         Fix handling of the generic array interfaces.
12764
12765         * class-internals.h
12766         (MonoDefaults): Removed `generic_array_class' and added
12767         `generic_ilist' class.
12768
12769         * class.c
12770         (mono_bounded_array_class_get): Add the new generic array interfaces.
12771         (setup_generic_array_ifaces): New static method; create vtable
12772         entries for each method in the generic array interfaces.
12773
12774         * metadata.c
12775         (select_container): Allow "parent-less" generic methods.
12776
12777         * marshal.c
12778         (mono_marshal_get_generic_array_helper): New public method.
12779
12780         * icall.c
12781         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
12782         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
12783         moved the interncall into System.Array.
12784
12785 2006-09-01  Raja R Harinath  <rharinath@novell.com>
12786
12787         A few more cases of avoiding work on types with ->byref set.
12788         Has the real fix for #79238
12789         * icall.c (is_generic_parameter): New helper.
12790         (ves_icall_Type_GetGenericParameterPosition): Use it.
12791         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
12792         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
12793         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
12794         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
12795         reference types.
12796         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
12797         reference types.
12798         (ves_icall_Type_get_IsGenericInstance): Likewise.
12799         (ves_icall_Type_get_IsGenericType): Likewise.
12800
12801 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
12802
12803         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
12804         class if possible.
12805
12806         * mempool.h (mono_mempool_get_allocated): New helper function.
12807
12808         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
12809         change.
12810
12811         * mempool.c: Fix warnings and the calculation of stats.
12812
12813         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
12814
12815         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
12816
12817         * loader.c (mono_get_method_from_token): Update method_count stat.
12818
12819         * class-internals.h (MonoStats): Add some stats.
12820
12821 2006-08-31 Robert Jordan  <robertj@gmx.net>
12822
12823         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
12824         with managed variants.
12825         All code is contributed under the MIT/X11 license.
12826         
12827 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
12828
12829         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
12830         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
12831
12832         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
12833
12834         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
12835         with cycles in classes.
12836
12837         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
12838
12839         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
12840         missing a [MarshalAs] directive. Fixes #79203.
12841
12842         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
12843         klass->marshal_info. Fixes #79217.
12844
12845 2006-08-30  Martin Baulig  <martin@ximian.com>
12846
12847         Committing a patch from Joachim Ante <joe@otee.dk>:
12848         Add support for binary data symbol stores.
12849
12850         * debug-mono-symfile.c
12851         (mono_debug_open_mono_symbol_file): Renamed into
12852         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
12853         arguments.
12854
12855         * mono-debug.c
12856         (mono_debug_open_image): Added `raw_contents' and `size' args.
12857         (mono_debug_init_2_memory): New public function.
12858
12859 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
12860
12861         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
12862
12863 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12864
12865         * appdomain.c: implement support for ShadowCopyFiles.
12866
12867 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
12868
12869         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
12870         when value is NULL (and should remove CID #51).
12871
12872 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12873
12874         * image.c: moved 2 functions to ../utils.
12875
12876 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
12877
12878         * gc.c: cope with the target object of a GC handle being NULL
12879         (bug #78877).
12880
12881 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
12882
12883         * class.c: recursively check parent's explicit implementations
12884         of interface methods (fixes bug #79125).
12885
12886 2006-08-19  Miguel de Icaza  <miguel@novell.com>
12887
12888         * filewatcher.c: Avoid warnings when building, do not redefine
12889         constants that are defined.
12890
12891         Remove warnings.
12892
12893 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12894
12895         * image.c: don't fail when the link points to an absolute path.
12896
12897 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
12898
12899         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
12900         Fix CID #3.
12901
12902 2006-08-17  Miguel de Icaza  <miguel@novell.com>
12903
12904         * image.c (full_path): A new method used to obtain the actual path
12905         of an assembly even in the presence of symbolic links.  
12906
12907         This is necessary for the case where we are running a binary that
12908         has been GACed, but we are using the "published" path name
12909         ($prefix/mono/1.0/blah.exe) which happens to point to the real
12910         file in the GAC.
12911
12912         This was the source of the failure for the `xsp' command with the
12913         recent AppDomain changes, as far as the runtime was concerned,
12914         there were two different assemblies: $prefix/mono/1.0/blah.exe and
12915         $prefix/mono/gac/blah/version/blah.exe.
12916
12917         (do_mono_image_open): use full path
12918
12919 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
12920
12921         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
12922
12923 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
12924
12925         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
12926         domain_id is supplied. Fix CID #241 and corlib's unit tests.
12927
12928 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
12929
12930         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
12931         small structures. Fixes #78990.
12932
12933 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
12934
12935         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
12936
12937         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
12938
12939 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12940
12941         * appdomain.c:
12942         * marshal.c: don't load all the assemblies from a domain into newly
12943         created ones. The new domains might have different rules and load
12944         assemblies from different locations. Fixes bug #76757.
12945
12946         Patch by Lluis. Conflicts resolved by Brian Crowell.
12947
12948 2006-08-16  Alp Toker  <alp@atoker.com>
12949
12950         * socket-io.c: First half of the fix for #79084.
12951         Set sa_size to the length of the content, not that of the struct.
12952         Don't add NULL suffix to the content, this should be done in
12953         managed code if needed.
12954
12955 2006-08-14  Raja R Harinath  <rharinath@novell.com>
12956
12957         Fix part of #79012
12958         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
12959         mono_metadata_parse_type returns NULL.
12960
12961 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
12962
12963         * normalization-tables.h : new file for string normalization data.
12964         * locales.c, locales.h, icall.c :
12965           added load_normalization_resource() for string normalization,
12966           and icall as well.
12967         * Makefile.am : added normalization-tables.h to the sources.
12968
12969 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
12970
12971         * marshal.c: Add more helper functions to reduce code duplication and use them
12972         everywhere.
12973
12974 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
12975
12976         * marshal.c: Fix non-x86 stdcall warnings.
12977         
12978         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
12979         them everywhere.
12980
12981 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
12982
12983         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
12984         type check on multi-dimensional arrays. Fixes #79000.
12985
12986 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
12987
12988         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
12989         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
12990         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
12991         * class-internals.h: add is_com_object to class structure.
12992         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
12993         null checks to COM object marshalling. Fix .ctor call on RCW.
12994         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
12995         
12996         All code is contributed under the MIT/X11 license.
12997
12998 2006-08-09  Dick Porter  <dick@ximian.com>
12999
13000         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
13001         racing mono_monitor_allocator_lock() somewhere, so don't delete
13002         the critical section for now.  Found by running and exiting
13003         monodevelop.
13004
13005 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
13006
13007         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
13008         (ves_icall_System_ComObject_FindInterface): Ditto.
13009         (ves_icall_System_ComObject_CacheInterface): Ditto.
13010
13011         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
13012         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
13013
13014 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13015
13016         * threadpool.c: treat pipes from process asynchronous reads as sockets
13017         when reading from them, so we get select/poll or epoll to wait for
13018         data.
13019
13020 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
13021
13022         * loader.c: Fix a typo (CID #233) in the null check.
13023
13024 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
13025
13026         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
13027         Hopefully fixes #78949.
13028         
13029         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
13030         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
13031         bytes. Fixes #78972.
13032
13033 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13034
13035         * filewatcher.c: we need to set errno here.
13036
13037 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13038
13039         * filewatcher.c: let Win32Exception get the error value.
13040
13041 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13042
13043         * filewatcher.c: translate errno into win32 errors for Win32Exception
13044         to know what happened.
13045
13046 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
13047
13048         * threadpool.c: Fix more warnings.
13049
13050         * assembly.c (search_loaded): Fix warnings.
13051
13052         * threadpool.c (mono_thread_pool_finish): Fix warnings.
13053         (mono_async_invoke): Ditto.
13054
13055 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
13056
13057         * object.c (mono_remote_class_vtable): Need to create proxy vtable
13058         entries for __ComObject type in addition to ComImport types.
13059         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
13060         about hash table.
13061         
13062         All code is contributed under the MIT/X11 license.
13063
13064 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
13065
13066         * image.c: avoid tentative loading of modulerefs that contain
13067         no metadata (P/Invoke library names).
13068
13069 2006-07-28  Dick Porter  <dick@ximian.com>
13070
13071         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
13072         mono_loader_lock() somewhere, so don't delete the critical section
13073         for now.  Found by running and exiting monodevelop.
13074
13075 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13076
13077         * filewatcher.c: define the inotify syscalls when we're building on
13078         linux and have sys/syscall.h. The build system might not have support
13079         for inotify but the target system might have it.
13080
13081 2006-07-26  Miguel de Icaza  <miguel@novell.com>
13082
13083         * domain.c: Documentation updates.
13084
13085         * loader.c (mono_free_method): Do not release the method
13086         information if we are being profiled, as profilers will use this
13087         information at shut down to present some data to the user.
13088
13089         This is needed so that the profiler does not crash, as the
13090         profiler tends to keep MonoMethods around, and they might become
13091         invalid if we free these.
13092
13093         (mono_get_method_constrained): Return the original CIL stream
13094         method as well, so verification can be performed against it.
13095
13096 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13097
13098         * filewatcher.[ch]: support for inotify file system watcher.
13099         * icall.c: add new internal calls for the inotify file system watcher.
13100
13101 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13102
13103         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
13104         #78888.
13105
13106 2006-07-20  Dick Porter  <dick@ximian.com>
13107
13108         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
13109         warning.
13110
13111 2006-07-20  Dick Porter  <dick@ximian.com>
13112
13113         * threads.c (start_wrapper): Do the thread cleanup while we still
13114         hold a reference to its object.  Fixes bug 78123.
13115
13116 2006-07-18  KornĂ©l PĂ¡l  <kornelpal@gmail.com>
13117
13118         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
13119         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
13120           "managed-to-managed".
13121         * icall.c: Redirect string constructors that take sbyte* to
13122           ves_icall_System_String_ctor_RedirectToCreateString.
13123         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
13124           to CreateString () methods with matching signature.
13125         * reflection.c: Use original security informations for
13126           MONO_WRAPPER_MANAGED_TO_MANAGED.
13127         * security-manager.c: Use original security informations for
13128           MONO_WRAPPER_MANAGED_TO_MANAGED.
13129         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
13130           that is a placeholder and only its address should be used.
13131         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
13132           that is a placeholder and only its address should be used.
13133
13134 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
13135
13136         Begin implementing COM Interop.
13137         * appdomain.c: Increment corlib version.
13138         * class.c: Set ComImport classes' parent to __ComObject.
13139         * loader.c: Mark cominterop methods as such.
13140         * domain.c: Add __ComObject class to MonoDefaults structure.
13141         * image.c: Add 2 hashtables to the image for COM Interop related methods
13142         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
13143         using the mempool allocator
13144         
13145         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
13146         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
13147         declaration for mono_metadata_type_dup_mp.
13148         
13149         * debug-helpers.c: Added strings for two additional wrapper types
13150         * object.c: Create proxy objects for ComImport classes
13151         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
13152         and added __ComObject class to MonoDefaults structure.
13153         
13154         * object-internals.h: Finish MonoRealProxy definition, and add definition of
13155         MonoComInteropProxy and MonoComObject.
13156         
13157         * marshal.c: Added support for COM Interop
13158         (signature_cominterop): Converts managed signature to corresponding
13159         unmanaged COM signature.
13160         (cominterop_get_function_pointer): gets unmanaged function pointer via
13161         COM object vtable
13162         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
13163         (cominterop_get_method_interface): returns interface type that method is defined on
13164         (mono_mb_emit_cominterop_call): emits native call to function pointer
13165         gotten from vtable
13166         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
13167         that matches signature of unmanaged function.
13168         (cominterop_get_native_wrapper): wrapper around adjusted method call.
13169         (cominterop_get_invoke): forwards call from proxy to __ComObject
13170         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
13171         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
13172         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
13173         
13174         * marshal.h: Added Marshal icall declarations.
13175         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
13176         so we can access them in finalizer
13177         
13178 2006-07-14  Dick Porter  <dick@ximian.com>
13179
13180         * object.c (mono_type_initialization_cleanup): Fix a race
13181         condition by temporarily commenting out the critical section
13182         deletion.
13183
13184 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
13185
13186         * reflection.c (create_custom_attr): Fix some warnings.
13187         (create_custom_attr_data): Ditto.
13188         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
13189         types. Fixes #78855.
13190
13191 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
13192
13193         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
13194
13195         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
13196
13197 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
13198
13199         * reflection.c (resolve_object): Add support for DynamicMethod.
13200
13201         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
13202         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
13203
13204 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
13205
13206         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
13207         don't leak GPtrArray's pdata has we have no use (nor free) for it.
13208
13209 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
13210
13211         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
13212         Fixes #77888.
13213
13214 2006-06-30  Raja R Harinath  <rharinath@novell.com>
13215
13216         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
13217         slightly: remove a shadow local variable.
13218
13219 2006-06-29  Raja R Harinath  <rharinath@novell.com>
13220
13221         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
13222         definition that introduces the virtual function slot.
13223         Also fix Coverity #105.
13224
13225 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
13226
13227         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
13228         for dynamic assemblies. Fixes #78724.
13229
13230 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
13231
13232         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
13233         Fixes #78722.
13234
13235 2006-06-21  Martin Baulig  <martin@ximian.com>
13236
13237         * reflection.c
13238         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
13239         fixes #76484.
13240
13241 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
13242
13243         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
13244
13245 2006-06-20  Raja R Harinath  <rharinath@novell.com>
13246
13247         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
13248         nor TYPEREFs.
13249         * class.c (mono_class_create_from_typespec): Add 'context' argument.
13250         Inflate result if necessary.
13251         (mono_class_get_full): Remove old version.  Rename from
13252         'mono_class_get' and add 'context' argument.  Pass it to
13253         ..._create_from_typespec.
13254         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
13255         (mono_ldtoken): Revert change below.
13256
13257 2006-06-20  Martin Baulig  <martin@ximian.com>
13258
13259         * class.c (mono_ldtoken): Don't pass the generic context to
13260         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
13261
13262 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
13263
13264         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
13265         and later freeing it. Fixes #78638.
13266
13267 2006-06-15  Miguel de Icaza  <miguel@novell.com>
13268
13269         * icall.c (mono_class_get_throw): Revert over-zealous error
13270         throwing, the caller for mono_class_get_throw will cope with
13271         errors when classes are not properly initialized already.
13272
13273         The code still copes with loader exceptions though.
13274
13275         Fixes the regression in reftype1 and reftype3 from the CAS tests.
13276         
13277 2006-06-14  Miguel de Icaza  <miguel@novell.com>
13278
13279         Fixes the `make run1' version of RuntimeAbort (to be commited,
13280         source is in Bugzilla).
13281         
13282         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
13283         FALSE on class loading failure instead of returning true.
13284
13285         * class.c (mono_class_create_from_typedef): It is possible for
13286         mono_metadata_interfaces_from_typedef_full to fail if a class is
13287         not found, cope with this.
13288         
13289
13290 2006-06-14  Dick Porter  <dick@ximian.com>
13291
13292         * socket-io.c: 
13293         * process.c: Fix a bunch of signed/unsigned warnings from gcc
13294         4.1.1
13295
13296 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
13297
13298         * culture-info-table.h : oops, forgot to make it nsync with r61548.
13299
13300 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
13301
13302         * icall.c: Another fix for building mono in Visual Studio.
13303
13304 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
13305
13306         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
13307         
13308 2006-06-09  Martin Baulig  <martin@ximian.com>
13309
13310         * debug-mono-symfile.c: Put this back and really fix it this
13311         time. Sorry for all the trouble.
13312
13313 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
13314
13315         * icall.c (mono_class_get_throw): Fix a warning.
13316         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
13317         ReflectionTypeLoadException if needed. Fixes #78606.
13318
13319         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
13320         (mono_class_init): Ditto.
13321
13322         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
13323         ref_only exceptions.
13324         (mono_loader_clear_error): Make this work even if there is no error.
13325
13326 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
13327
13328         * object-internals.h marshal.c marshal.h icall.c: Implement method 
13329         Marshal.GetComSlotForMethodInfo using internal call.
13330
13331 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
13332
13333         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
13334         a function for signalling it.
13335
13336         * class.c (mono_class_from_typeref): Use the new kind of loader error when
13337         a referenced assembly is not found.
13338
13339         * loader.c (mono_loader_error_prepare_exception): Add support for 
13340         LOADER_ERROR_ASSEMBLY. Fix formatting.
13341
13342 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
13343
13344         * domain.c appdomain.c class-internals.h marshal.c: Add support 
13345         for VARIANT marshalling on windows and increment corlib version
13346         since Variant struct was added.
13347
13348 2006-06-03  Miguel de Icaza  <miguel@novell.com>
13349
13350         * debug-mono-symfile.c: Revert Martin's previous patch which broke
13351         stack trace line information:
13352
13353         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
13354         (Martin) when looking up B which is between A and C, return A not C.
13355
13356         Bug is #78573.
13357
13358         Thanks to Alexander Olk for tracking this down.
13359
13360 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
13361
13362         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
13363         
13364         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
13365         avoid clobbering its value.
13366         (mono_string_to_lpstr): Fix a warning on windows.
13367
13368 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
13369
13370         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
13371
13372         * reflection.c loader.c: Removed references to 'dummy' flag.
13373
13374         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
13375
13376         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
13377         it gets GC tracking.
13378
13379         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
13380         GC tracking.
13381         
13382         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
13383
13384         * marshal.c threadpool.c: Update callers of mono_async_result_new.
13385
13386         * appdomain.c: Bump corlib version.
13387
13388 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
13389
13390         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
13391         CEE_STIND_REF when working with object references.
13392
13393 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
13394
13395         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
13396         Fixes #78539.
13397
13398 2006-05-30  Miguel de Icaza  <miguel@novell.com>
13399
13400         * loader.c (method_from_memberref): Fix argument value for
13401         mono_loader_set_error_method_load (I was passing the MonoClass
13402         instead of the class name char *).
13403
13404 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
13405
13406         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
13407         CEE_STIND_REF when working with object references.
13408
13409 2006-05-30  Martin Baulig  <martin@ximian.com>
13410
13411         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
13412         mono_method_full_name() change and replace the ':' with a '.'
13413         here.
13414
13415 2006-05-30  Martin Baulig  <martin@ximian.com>
13416
13417         * debug-mono-symfile.c
13418         (mono_debug_symfile_lookup_location): Fix the algorithm:
13419         when looking up B which is between A and C, return A not C.
13420
13421 2006-05-29  Martin Baulig  <martin@ximian.com>
13422
13423         * mono-debug.h
13424         (MonoDebugMethodInfo): Make the typedef public.
13425         (MonoDebugSourceLocation): New public struct.
13426
13427         * mono-debug.c
13428         (mono_debug_source_location_from_address): Removed.
13429         (mono_debug_source_location_from_il_offset): Removed.
13430         (mono_debug_il_offset_from_address): Removed.
13431         (mono_debug_address_from_il_offset): Removed.
13432         (mono_debug_lookup_method): New public function.
13433         (mono_debug_lookup_source_location): New public function; replaces
13434         the old mono_debug_source_location_from_*() functions; see the
13435         inline documentation.
13436         (mono_debug_free_source_location): New public function.
13437         (mono_debug_print_stack_frame): New public function; see the
13438         inline documentation.
13439
13440         * debug-mono-symfile.c
13441         (mono_debug_find_source_location): Renamed into
13442         mono_debug_symfile_lookup_location(); only take a
13443         `MonoDebugMethodInfo *' and an `offset' argument; added inline
13444         documentation.
13445         (mono_debug_find_method): Renamed into
13446         mono_debug_symfile_lookup_method().
13447
13448 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
13449
13450         * assembly.c (mono_assembly_open_full): Dont overwrite the status
13451         returned by mono_image_open_full ().
13452
13453         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
13454         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
13455         #78517.
13456
13457         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
13458         #78518.
13459
13460 2006-05-27  Miguel de Icaza  <miguel@novell.com>
13461
13462         * class.c (mono_class_from_typeref): handle missing images
13463         earlier, deals with bug #78418.   Refactor code; 
13464
13465         Fix a warning introduced in my previous commit (some stale code
13466         from before I revisited my patch).
13467
13468         * class.c (mono_class_create_from_typedef): On failure, remove the
13469         class from the MonoImage->class_cache as the class is not
13470         initialized;   Fixes the leak pointed out by Paolo.
13471
13472 2006-05-25  Dick Porter  <dick@ximian.com>
13473
13474         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
13475         DeleteCriticalSections until I figure out which one may still be
13476         sometimes locked when mono_thread_cleanup is called.
13477
13478 2006-05-24  Dick Porter  <dick@ximian.com>
13479
13480         * threads.c (mono_thread_cleanup): Move the threading cleanup out
13481         of mono_thread_manage and back into its own function, so it can be
13482         called after the finalizer thread has finished.
13483
13484         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
13485
13486 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
13487
13488         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
13489         Fixes #78495.
13490
13491         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
13492         with non-blittable elements.
13493         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
13494
13495 2006-05-24  Martin Baulig  <martin@ximian.com>
13496
13497         * mono-debug-debugger.h (MonoDebuggerEvent): Added
13498         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
13499
13500         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
13501         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
13502         `mono_debugger_event_handler' to NULL.
13503
13504 2006-05-24  Martin Baulig  <martin@ximian.com>
13505
13506         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
13507
13508 2006-05-24  Martin Baulig  <martin@ximian.com>
13509
13510         * mono-debug-debugger.h
13511         (mono_debugger_create_notification_function): Added
13512         `MonoCodeManager *' argument.
13513
13514 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
13515
13516         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
13517
13518 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
13519
13520         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
13521         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
13522         implementation.
13523
13524 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
13525
13526         * icall.c: precise GC support: objects can't be stored in unmanaged
13527         memory anymore, even if they are kept alive by other references: since
13528         they can move the GC needs to be able to always find them.
13529
13530 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
13531
13532         * object.c: precise GC support for static fields. Support
13533         for moving GCs: write barriers and pinned allocation for interned
13534         strings.
13535
13536 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
13537
13538         * domain.c, domain-internals.h: precise GC support for the MonoDomain
13539         structure.
13540
13541 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
13542
13543         * class.c, gc.c: sgen and precise GC updates.
13544
13545 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
13546
13547         * marshal.h, marshal.c: added write barrier wrapper and precise type
13548         fixes.
13549
13550 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
13551
13552         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
13553         support.
13554
13555 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
13556
13557         * reflection.c: precise and sgen GC updates.
13558
13559 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
13560
13561         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
13562
13563 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
13564
13565         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
13566
13567 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
13568
13569         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
13570         MONO_TYPE_OBJECT. Fixes #78462.
13571
13572 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
13573
13574         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
13575         and blittable types.
13576
13577 2006-05-17  Miguel de Icaza  <miguel@novell.com>
13578
13579         * class.c (mono_class_get_exception_for_failure): Implement parts
13580         of a TODO: if the loader error is set (instead of the class
13581         error), we return a Loader exception that can be properly thrown
13582         elsewhere.
13583
13584         This was exposed by some Winforms 2.0 code that I tried to run
13585         (Atsushi pointed me to it).
13586
13587 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
13588
13589         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
13590         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
13591         
13592         * marshal.c (emit_marshal_vtype): Add limited support for 
13593         UnmanagedType.LPStruct. Fixes #78427.
13594
13595         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
13596         Applied a patch from kangaroo to fix #77523.
13597
13598 2006-05-17  Martin Baulig  <martin@ximian.com>
13599
13600         * threads.c
13601         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
13602         (debugger_thread_created): Removed.
13603         (debugger_thread_exited): Removed.
13604
13605 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
13606
13607         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
13608
13609         * object-internals.h (MonoReflectionResource): Sync with managed version.
13610
13611 2006-05-12  Wade Berrier <wberrier@novell.com>
13612
13613         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
13614
13615 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
13616
13617         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
13618         functions try to allocate from the image mempool.
13619
13620 2006-05-12  Dick Porter  <dick@ximian.com>
13621
13622         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
13623
13624 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
13625
13626         * object.c: The FieldGetter and FieldSetter methods require the full
13627         name of the class, not only the name. Fixes bug #78277.
13628
13629 2006-05-11  Miguel de Icaza  <miguel@novell.com>
13630
13631         * loader.c (method_from_memberref): Do not pass the NULL klass to
13632         mono_loader_set_error_() methods.  Pass the non-NULL value
13633         (class). 
13634
13635 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
13636
13637         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
13638         (mono_assembly_close): Null out assembly->image->references after freeing it.
13639
13640         * image.c (mono_image_close): Free image->references.
13641         
13642         * reflection.c (mono_image_basic_init): Fix a small memory leak.
13643
13644 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
13645
13646         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
13647         before checking if it's NULL (g_assert).
13648
13649 2006-05-10  Martin Baulig  <martin@ximian.com>
13650
13651         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
13652         I thought I already killed that two months ago, but now it somehow reappeared.
13653
13654 2006-05-10  Martin Baulig  <martin@ximian.com>
13655
13656         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
13657
13658 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
13659
13660         * reflection.c: Allocate memory for dynamically created methods in the image
13661         mempools.
13662
13663 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
13664
13665         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
13666         don't use the ad pointer before checking if it's NULL (g_assert).
13667
13668 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
13669
13670         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
13671         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
13672
13673         * marshal.c: Allocate all signatures from mempools.
13674
13675         * marshal.c: Allocate some more signatures from mempools.
13676
13677 2006-05-09  Miguel de Icaza  <miguel@novell.com>
13678
13679         * object.c (mono_load_remote_field): The code used to provide a
13680         temporary variable for returning results if the user did not
13681         provide a result pointer.  But our temporary variable was allocted
13682         on the satck.
13683
13684         Fix calling code to always pass a result area.   Coverity ID 103.
13685
13686 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
13687
13688         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
13689         value, not the old. Fixes #78312.
13690         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
13691
13692         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
13693         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
13694         per-image cache.
13695
13696         * assembly.c (mono_assembly_close): Free image->references.
13697
13698         * assembly.c (mono_assembly_names_equal): Fix a warning.
13699         (mono_assemblies_cleanup): Cleanup more global data.
13700
13701         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
13702
13703         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
13704         ptr_cache and image->modules.
13705
13706         * image.c (mono_image_init): Allocate array_cache lazily.
13707         
13708 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13709
13710         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
13711         behavior was changed recently and has bad side effects.
13712
13713 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
13714
13715         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
13716         
13717         * assembly.c (mono_assembly_close): Remove a debug printf.
13718
13719         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
13720
13721         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
13722         to also allow for temporary references between mono_image_open ()/close ().
13723
13724         * domain.c (get_runtimes_from_exe): Add a FIXME.        
13725
13726 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
13727
13728         * marshal.c: Fix support for dynamic methods.
13729
13730         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
13731
13732         * marshal.c (mono_marshal_cleanup): New cleanup function.
13733
13734         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
13735         image mempools.
13736
13737         * class.c (mono_class_init): Fix leaking class->nested_classes.
13738
13739         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
13740
13741         * image.c (mono_image_init): Initialize the new cashes.
13742
13743         * image.c (mono_image_close): Destroy the new cashes.
13744
13745         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
13746
13747         * mempool.c (mono_mempool_strdup): New helper function.
13748
13749         * class-internals.h: Add prototype for mono_loader_unlock ().
13750
13751         * domain.c (mono_jit_info_table_find): Fix a warning.
13752         (mono_debugger_check_runtime_version): Ditto.
13753
13754         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
13755         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
13756         functions to these modules.
13757
13758         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
13759         metadata modules.
13760         
13761         * marshal.c (mono_free_bstr): Fix a warning.
13762
13763         * assembly.c (mono_assembly_open_full): Fix another small leak.
13764
13765         * object.c: Fix some unload leaks in the remoting code.
13766
13767         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
13768         function.
13769
13770         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
13771
13772         * reflection.c: Fix some unload leaks in dynamic assemblies.
13773
13774 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
13775
13776         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
13777         * marshal.h: Add BSTR support on Win32
13778         * icall.c: Add BSTR icalls
13779         * metadata.h: Add BSTR enums
13780
13781 2006-04-28  Miguel de Icaza  <miguel@novell.com>
13782
13783         Work to catch the crash from #76795 and turn it into an
13784         exception.   As I stubbed out pieces of the VisualBasic support,
13785         I found a number of places where the code was failing and I added
13786         checks to those places. 
13787         
13788         * metadata.c (do_mono_metadata_parse_generic_class): Make this
13789         function return a status code.  If we fail to parse the signature
13790         from mono_metadata_parse_generic_inst, return FALSE.
13791
13792         * loader.c (mono_get_method_from_token): If we fail to load the
13793         method (mono_class_get) return NULL.   
13794
13795         * (method_from_memberref): Return NULL if we are unable to parse
13796         the method signature
13797
13798         (mono_loader_error_prepare_exception): Since we now use the
13799         loader_error flag internally to stop processing, and obtaining
13800         exceptions that might be thrown will walk this code path the
13801         proper way of going from a MonoLoaderError into a
13802         MonoException was convoluted.   This new routine encapsulates the
13803         process of turning the error into an exception and *clearing* the
13804         error afterwards.
13805         
13806 2006-04-27  Miguel de Icaza  <miguel@novell.com>
13807
13808         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
13809         with missing assemblies), and to cope with:
13810
13811                 * Missing fieldref from a non-existing assembly.
13812                 * Missing methodref from a non-existing assembly.
13813
13814         The first batch of work to address *some* of the issues from 76661.
13815         
13816         * object.c (mono_class_create_runtime_vtable): If we fail to
13817         initialize the class raise the exception here. 
13818
13819         * metadata.c (mono_class_get_overrides_full): If any methods fail
13820         to load return the failure to the caller.
13821
13822         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
13823         flagging assemblies that failed to load.   
13824
13825         Do not crash if we are unable to load the assembly.
13826
13827         (mono_assembly_close): Do nothing with REFERENCE_MISSING
13828         assemblies. 
13829
13830         * loader.c (mono_loader_set_error_type_load): Change the
13831         convention to always pass unallocated strings, so we make our own
13832         copies (I know our own code had duplicated strings before, but
13833         this keeps the normal conventions).
13834         (method_from_memberref): Call mono_loader_set_error_method_load
13835         for all possible failures of loading the class. 
13836         Remove assert, turn into a loader error.
13837
13838         (mono_loader_error_to_exception): Move this routine from mini
13839         (mini_loader_error_to_exception) there was no need to have that in
13840         mini. 
13841
13842         * class.c (mono_class_from_typeref): If we were not able to load
13843         the assembly with mono_assembly_load_reference, call the
13844         mono_loader_set_error_type_load to register the problem.
13845
13846         (mono_class_setup_fields): If we fail to load the type from
13847         mono_metadata_parse_type_full, call mono_class_set_failure and
13848         break from the loop.
13849
13850         If class->exception_type is set, we do not layout the fields as
13851         that might crash the runtime, and instead return (from breaking
13852         from the previous loop).
13853
13854         (mono_class_setup_vtable): This now returns a boolean indicating
13855         whether the table was properly setup.   The decision is driven by
13856         mono_class_get_overrides_full which might run into non-existing
13857         methods. 
13858         
13859         (mono_class_init): Returns TRUE on success or FALSE if there was a
13860         problem in loading the type (incorrect assemblies, missing
13861         assemblies, methods, etc).
13862
13863         When we call mono_class_setup_fields we also check for a potential
13864         error inside this call (either a class exception or a general
13865         loader exception).
13866
13867         (mono_class_create_from_typedef): If the parent fails to load
13868         (calling mono_class_get_full) return NULL.
13869         
13870         ** Important **
13871
13872         calls to mono_metadata_parse_type_full should be checked
13873         everywhere and set the mono_class_set_failure
13874         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
13875
13876         The current patch checks the places where my manually constructed
13877         tests show the errors are showing up, but we should do it
13878         everywhere. 
13879
13880         ** Important2 **
13881
13882         mono_class_init return values should be tested everywhere, like
13883         the previous case this is something that we should audit
13884         everywhere and not only on the cases exposed by the tests I
13885         created. 
13886
13887 2006-04-26  Miguel de Icaza  <miguel@novell.com>
13888
13889         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
13890         boolean parameter and instead pass the information on `options'
13891         parameter (FileOptions).
13892
13893         * icall.c: Register the new signature for MonoIO.Open.
13894
13895         * debug-helpers.c (dis_one): Trying to understand how coverity
13896         works.  Fix Run 5, item 78.
13897
13898 2006-04-26  Dick Porter  <dick@ximian.com>
13899
13900         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
13901         dereference.
13902
13903 2006-04-25  Martin Baulig  <martin@ximian.com>
13904
13905         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
13906
13907         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
13908         debugger_thread_created().
13909         (debugger_gc_push_all_stacks): Don't handle the main thread in any
13910         special way.
13911         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
13912         (mono_debugger_finalize_threads): New function; undo the effects
13913         of mono_debugger_init_threads().
13914         (mono_debugger_create_all_threads): Removed.
13915
13916 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
13917
13918         * image.c (mono_image_close): Tidy up trace messages.
13919
13920         * assembly.c (mono_assembly_close): Ditto.
13921
13922         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
13923         no longer references an already freed assembly. Fixes #78168.
13924
13925 2006-04-21  Dick Porter  <dick@ximian.com>
13926
13927         * threads.c (mono_thread_detach): Fix reference counting when
13928         detaching threads.
13929
13930 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
13931
13932         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
13933         #78155.
13934
13935 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
13936
13937         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
13938         (mono_type_to_stind): Ditto.
13939
13940         * marshal.c: Use the new helper functions to simplify code.
13941
13942         * image.c (mono_image_close): Add some code for help debug assembly unloading
13943         problems.
13944
13945         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
13946         image mempool.
13947
13948         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
13949         assembly was already loaded in another appdomain. Fixes #78083.
13950
13951 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
13952
13953         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
13954         referenced assemblies.
13955         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
13956
13957         * domain.c (mono_domain_free): Add a trace message.
13958
13959         * appdomain.c (add_assemblies_to_domain): Ditto.        
13960
13961         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
13962         field.  
13963
13964 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
13965
13966         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
13967
13968 2006-04-12  Martin Baulig  <martin@ximian.com>
13969
13970         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
13971         `USE_INCLUDED_LIBGC'.   
13972
13973 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
13974
13975         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
13976         the patch contains ../ and a small directory name later. Hopefully fixes
13977         #78035.
13978
13979 2006-04-10  Martin Baulig  <martin@ximian.com>
13980
13981         Clean up the debugger's thread-handling code.
13982
13983         The debugger's thread-handling code has been moved from
13984         ../mini/debug-debugger.c to threads.c.  We now iterate directly
13985         over the `threads' hash, keep track of exiting threads and also
13986         use proper locking.
13987
13988         We can now debug XSP and XSP based applications with the debugger.
13989
13990         * object-internals.h (MonoThread): Added `gpointer end_stack'.
13991
13992         * threads.h
13993         (MonoThreadCallbacks): Removed; this was only used by the debugger.
13994         (mono_install_thread_callbacks): Likewise.      
13995
13996         * threads.c (mono_thread_callbacks): Removed.
13997         (debugger_thread_created, debugger_thread_exited): New static functions.
13998         (start_wrapper): Call debugger_thread_created().
13999         (thread_cleanup): Call debugger_thread_exited().
14000         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
14001         (mono_debugger_init_threads): New public function.
14002         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
14003         iterate directly over the `threads' hash and also use proper locking.
14004
14005         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
14006
14007         * mono-debug-debugger.h
14008         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
14009
14010 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
14011
14012         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
14013         argument type=array. Fixes #78057.
14014
14015 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
14016
14017         * culture-info-table.h : regenerated. Fixed bug #69652.
14018
14019 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
14020
14021         * loader.c metadata.c: Reapply a variant r59116.
14022         
14023         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
14024
14025         * class.c (mono_class_setup_interface_offsets): New internal function.
14026
14027         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
14028         interfaces too. Fixes #77398.
14029
14030         * reflection.c (encode_cattr_value): Add support for 
14031         parameter type=object, argument type=array.
14032         (load_cattr_value): Ditto. Fixes #77916.
14033
14034         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
14035         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
14036
14037         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
14038         a byval char array and CharSet is Ansi.
14039
14040         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
14041
14042 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
14043
14044         * metadata.c: Add some locking comments.
14045         
14046         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
14047         mempool.
14048         (mono_metadata_free_method_signature): Don't free the signature itself.
14049
14050         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
14051
14052         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
14053         reference the same MonoImage.
14054         (mono_assembly_load_from_full): Add an assert.
14055
14056 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
14057
14058         * image.c (mono_image_close): Don't put the image we are about to free into the
14059         loaded_images_guid_hash.
14060
14061         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
14062         to reduce code duplication.
14063
14064         * marshal.c: Register the native functions called by this module as icalls, to
14065         somewhat centralize the creation of MonoMethodSignature's.
14066
14067         * loader.c (mono_method_signature): Add a cache for method signatures.
14068
14069         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
14070         the parameter attributes of a method.
14071         (mono_metadata_parse_method_signature_full): Refactored the computation of
14072         parameter attributes into a separate function. Also avoid one allocation in
14073         most cases.
14074
14075         * assembly.c (mono_assembly_close): Ditto.
14076
14077         * image.c (mono_image_close): Log trace messages with INFO level.
14078
14079         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
14080
14081         * image.c reflection.c: Correct reference counting of image modules.
14082         
14083         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
14084         of this function from the image mempool.
14085         
14086         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
14087         to allow more cached types to be used.
14088
14089         * mono-debug.c (mono_debug_add_method): Appled patch from
14090         David S. Miller  <davem@sunset.davemloft.net>: Access 
14091         minfo->lexical_blocks[] entry elements using read32().
14092
14093 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
14094
14095         * loader.c (mono_free_method): No longer free the method header for non-dynamic
14096         methods as it is allocated from the mempool.
14097
14098         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
14099         image mempool.
14100
14101         * metadata-internals.h: Add comments describing the reference counting scheme
14102         used for MonoImage and MonoAssembly.
14103
14104         * image.c assembly.c reflection.c: Rework reference counting of images and 
14105         assemblies so they are freed when the runtime is shut down. Free some 
14106         additional memory structures when an image is unloaded.
14107         
14108 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
14109
14110         * class.c loader.c reflection.c: Allocate more data structures in
14111         the image mempool.
14112
14113 2006-03-31  Miguel de Icaza  <miguel@novell.com>
14114
14115         * icall.c
14116         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
14117         build on pre glib 2.4 systems.
14118
14119 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
14120
14121         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
14122
14123         * icall.c: Fix some warnings.
14124
14125 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
14126
14127         * culture-info-table.h : regenerated.
14128
14129 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
14130
14131         * threads.c, object-internals.h, verify.c: changed the culture caching
14132         code to use a normal MonoArray for storage so the GC can keep track of
14133         them easily. Fixed bits of the cache logic, too and simplified the
14134         code.
14135
14136 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
14137
14138         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
14139         thread for non-Boehm GCs.
14140
14141 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
14142
14143         * domain.c, object.c, domain-internals.h: reduce the amount of memory
14144         needed to keep track of the data for static fields.
14145
14146 2006-03-29  Raja R Harinath  <rharinath@novell.com>
14147
14148         Fix #75172
14149         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
14150         for interface classes.  Use 'num_methods' instead.
14151         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
14152         before using '->vtable_size' field.
14153
14154 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
14155
14156         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
14157         doesn't contain managed pointers, so use a normal hashtable.
14158
14159 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
14160
14161         * reflection.c, class-internals.h, domain.c: fixed handling of types
14162         used as values for objects in custom attributes (bug #77915):
14163
14164 2006-03-24  Martin Baulig  <martin@ximian.com>
14165
14166         * class.c (mono_class_setup_fields): Added support for generic
14167         instances; fixes #77580.
14168
14169 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14170
14171         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
14172
14173 2006-03-24  Dick Porter  <dick@ximian.com>
14174
14175         * file-io.c (get_file_attributes): More stat macro breakage.
14176         Fixes bug 77759.
14177
14178 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
14179
14180         * profiler.c: added the file=filename option in the default profiler
14181         to output the profile data to filename.
14182
14183 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14184
14185         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
14186         bug #77877.
14187
14188 2006-03-22  Martin Baulig  <martin@ximian.com>
14189
14190         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
14191         allocated `MonoClassField *' in `fb->handle'.
14192
14193 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
14194
14195         * class.c, image.c, metadata-internals.h: implemented new mechanism to
14196         allocate interface ID to save memory and allow better ID reuse on
14197         appdomain unload. setup_generic_vtable () removal from Martin.
14198
14199 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
14200
14201         * object.h, appdomain.c, domain.c, exception.c, icall.c,
14202         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
14203         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
14204         write barriers for reference stores with managed objects accessed with
14205         C structures in the runtime and in embedding programs.
14206
14207 2006-03-20  Raja R Harinath  <rharinath@novell.com>
14208
14209         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
14210         'interface_id' and 'max_interface_id' fields of MonoClasses
14211         representing open generic types.
14212
14213 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
14214
14215         * object.h, object.c, icall.c: added functions to deal with
14216         storing valuetypes that contain references in managed objects.
14217         * reflection.c, string-icalls.c, threads.c, marshal.c: small
14218         fixes and comments around uses of mono_array_addr ().
14219
14220 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
14221
14222         * object.h, icall.c, monitor.c: object.GetHashCode ()
14223         implementation that supports the moving garbage collector.
14224
14225 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
14226
14227         * icall.c, threads-types.h, threads.c: implemented finalizer for
14228         LocalDataStoreSlot.
14229
14230 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
14231
14232         * metadata.c (mono_type_size): Add a fixme.
14233         (mono_type_stack_size): Ditto.
14234
14235         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
14236         'type_forwarders' field.
14237
14238         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
14239         attribute from net 2.0.
14240
14241         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
14242         from class.c.
14243
14244         * class.c (mono_class_setup_fields): Fix a warning.
14245         
14246         * class.c (mono_class_from_name): Add support for assemblyref entries
14247         in the EXPORTEDTYPE table.
14248
14249         * reflection.c: Add support for handling type forwarders under net 2.0.
14250
14251         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
14252         
14253 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
14254
14255         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
14256         overwriting entries in ModuleBuild->types, also clean up the code
14257         a little. Fixes #77774.
14258
14259 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
14260
14261         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
14262         load friend assembly info when present.
14263
14264 2006-03-14  Raja R Harinath  <rharinath@novell.com>
14265
14266         Fix crasher on gtest-158.cs.
14267         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
14268         the return value if the MonoClass we want is yet in an
14269         inconsistent state.
14270         * class.c (mono_class_create_from_typedef): Add an comment
14271         explaining an order dependency between mono_class_setup_parent and
14272         mono_class_setup_mono_type.
14273
14274 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
14275
14276         * class.c: documentation updates and events bug fix.
14277
14278 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
14279
14280         * class.c: some cleanup, locking fixes.
14281
14282 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
14283
14284         * class.c: fix the generics code to setup nested
14285         type info to the instantiated type (bug #77770).
14286
14287 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
14288
14289         * marshal.c: fixed a few type correctness issues.
14290
14291 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
14292
14293         * loader.c: the Set/Get/Addrtess array methods should be public.
14294
14295 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
14296
14297         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
14298         
14299         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
14300         info->wrapper.
14301
14302 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
14303
14304         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
14305
14306         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
14307
14308         * mempool.c (mono_mempool_alloc): Speed this up a bit.
14309         (mono_mempool_alloc0): Ditto.
14310
14311 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14312
14313         * socket-io.c:
14314         (create_object_from_sockaddr): it was allocating 4 extra bytes
14315         for the AF_UNIX data. Fixes bug #77747.
14316
14317 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
14318
14319         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
14320
14321 2006-03-09  Dick Porter  <dick@ximian.com>
14322
14323         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
14324         Fixes bug 76966 again.
14325
14326 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
14327
14328         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
14329         names from r57532
14330         * appdomain.c: Bumped corlib version to 48 (due to r57532)
14331
14332 2006-03-07  Martin Baulig  <martin@ximian.com>
14333
14334         * object.c
14335         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
14336
14337 2006-03-07  Martin Baulig  <martin@ximian.com>
14338
14339         * class.c
14340         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
14341         regression introduced in r56970; see gtest-252.cs.
14342
14343         * loader.c (mono_get_method_constrained): Correctly handle generic
14344         methods; see gtest-253.cs.
14345
14346 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
14347
14348         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
14349
14350 2006-03-04  Martin Baulig  <martin@ximian.com>
14351
14352         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
14353         compute the parent type at runtime, just like we're already doing
14354         it for interfaces.
14355
14356         * reflection.c
14357         (mono_reflection_bind_generic_parameters): Don't compute the
14358         parent type anymore.
14359
14360         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
14361
14362 2006-03-04  Martin Baulig  <martin@ximian.com>
14363
14364         * mono-debug-debugger.h
14365         (mono_debugger_create_notification_function): Allocate memory at
14366         runtime and return a pointer to it.
14367
14368 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
14369
14370         * assembly.c: Fix windows build.
14371         
14372         * assembly.c: Fix build.
14373
14374         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
14375
14376         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
14377         
14378 2006-03-03  Dick Porter  <dick@ximian.com>
14379
14380         * process.c
14381         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
14382         Check parameters before dereferencing them.  Fixes Aaron's part of
14383         bug 77393.
14384
14385 2006-03-03  Raja R Harinath  <rharinath@novell.com>
14386
14387         Fix performance regression.
14388         * loader.c (find_method_in_class): Add 'from_class' argument.
14389         Rename 'klass' argument to 'in_class'.  The signature is compared
14390         against the method in 'in_class', and the corresponding method is
14391         returned from 'from_class'.
14392         (find_method): Walk both 'in_class' and 'from_class' in parallel.
14393         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
14394         type definition and generic instantiation in parallel.
14395         (mono_get_method_constrained): Update to changes.
14396
14397 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
14398
14399         * threads.c: make sure the domain is correct, too when doing
14400         mono_thread_attach ().
14401
14402 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
14403
14404         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
14405         windows. Fixes #77683.
14406
14407 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
14408
14409         * object.h, *: introduced specific way to set elements of an array
14410         of references to be used as write barrier. Still need to audit the
14411         uses of mono_array_addr.
14412
14413 2006-03-01  Miguel de Icaza  <miguel@novell.com>
14414
14415         * object-internals.h: New field to cache the assmebly name, patch
14416         from Tambet Ingo (tambet@ximian.com)
14417
14418 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
14419
14420         * decimal.h, class-internals.h, metadata-internals.h,
14421         file-io.h: mark a few function declarations as internal, to
14422         reduce the number of PLT entries.
14423
14424 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14425
14426         * file-io.c: fix typo in warning message.
14427
14428 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
14429
14430         * loader.c: on unix, lookup the "*A" version of a function
14431         if charset is auto as a second option before failing.
14432
14433 2006-02-28  Raja R Harinath  <rharinath@novell.com>
14434
14435         * class.h (mono_class_inflate_generic_method): Revert to two
14436         argument version.
14437         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
14438         (mono_class_inflate_generic_method_full): Add.
14439         * class.c (mono_class_inflate_generic_method_full): Rename from
14440         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
14441         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
14442         * loader.c, reflection.c: Update to changes.
14443
14444 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
14445
14446         * icall.c: const fixes and small improvements.
14447
14448 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14449
14450         * threadpool.c: for asynchronous connect(), enable the same workaround
14451         for BSD 6 as for the Mac. Fixes bug #77637.
14452
14453 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
14454
14455         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
14456         formatted classes. Fixes #77524.
14457
14458 2006-02-24  Raja R Harinath  <rharinath@novell.com>
14459
14460         * class.c (inflate_generic_type): Add a couple more
14461         micro-optimizations.
14462         (inflate_generic_context): Don't use the 'gmethod' from
14463         'inflate_with'.
14464         (mono_class_inflate_generic_method): If the method has generic
14465         parameters, but the passed-in context doesn't have a 'gmethod',
14466         create one.  Use the possibly simplified generic instantiation
14467         from the declaring class instead of the one passed in.
14468
14469 2006-02-24  Raja R Harinath  <harinath@gmail.com>
14470
14471         Make generic method signature and method header handling lazy.
14472         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
14473         (inflate_generic_header): Likewise.
14474         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
14475         parameter to avoid inflating types.
14476         (mono_get_inflated_method): Empty out.
14477         * class.h (mono_class_inflate_generic_method): Update to changes.
14478         * loader.c (mono_get_method_from_token): Don't parse signature for
14479         generic methods, nor methods of generic classes.
14480         (mono_method_signature): Rename from 'mono_method_signature'.
14481         Inflate signature on demand.
14482         (mono_method_get_header): Inflate method header on demand.
14483         * reflection.c: Update to changes.
14484
14485 2006-02-23  Raja R Harinath  <rharinath@novell.com>
14486
14487         * metadata.c (mono_metadata_inflate_generic_inst): If the
14488         instantiation is closed, don't bother expanding it in the new
14489         context.
14490         * class.c (inflate_generic_class): If the generic instantiation
14491         doesn't change after inflation, return the argument itself.
14492         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
14493         Add bounds checks.
14494         (inflate_generic_context): If neither the generic class nor the
14495         generic method instantiations change, return the original context.
14496         * reflection.c (mono_method_get_object): Do
14497         'mono_get_inflated_method' before accessing the ->klass field.
14498         (inflate_mono_method): Don't create a MonoGenericMethod unless
14499         necessary.
14500         (inflate_method): Don't pass a constructed type as the declaring
14501         type of a methodbuilder.
14502
14503 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
14504
14505         * object.c: fix memory overwrite.
14506
14507 2006-02-22  Dick Porter  <dick@ximian.com>
14508
14509         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
14510         it doesn't work any more.
14511         (mono_threads_request_thread_dump): Fix unused variable warnings.
14512
14513 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
14514
14515         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
14516         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
14517         the public header file.
14518
14519 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
14520
14521         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
14522
14523 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
14524
14525         * class-internals.h, object.c: reduce the size of MonoVTable
14526         and store the interface_offsets array at negative offsets.
14527
14528 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
14529
14530         * metadata.c: tweak table descriptors data structures to reduce
14531         size and runtime relocations.
14532
14533 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
14534
14535         * marshal.c: fix some types and opcodes to be type-safe
14536         in marshaling wrappers.
14537
14538 2006-02-21  Ankit Jain  <jankit@novell.com>
14539
14540         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
14541
14542 2006-02-21  Raja R Harinath  <rharinath@novell.com>
14543
14544         * metadata.c (get_constraints): Relax debugging checks for monodis.
14545
14546 2006-02-21  Ankit Jain  <jankit@novell.com>
14547
14548         * metadata.c (mono_metadata_load_generic_params): Move the code
14549         checking for ambiguous generic params from here to mono/dis/get.c
14550         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
14551
14552 2006-02-21  Raja R Harinath  <harinath@gmail.com>
14553
14554         Fix assertion triggered when compiling nemerle.
14555         * class.c (mono_get_shared_generic_inst): Rename from
14556         get_shared_inst and make non-static.
14557         * loader.c (mono_get_shared_generic_method): New.  Used to create
14558         the MonoGenericContext-equivalent of a MonoGenericContainer.
14559         (mono_get_method_from_token): Initialize the 'context' field of
14560         the created MonoGenericContainer.
14561         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
14562         * metadata.c (get_constraints): Add sanity check.
14563         * class-internals.h: Add new internal methods.
14564
14565         * reflection.c (verify_safe_for_managed_space): New sanity check.
14566         Currently checks that owner-less generic parameters aren't allowed
14567         in managed space.
14568         (mono_type_get_object): Use it.
14569         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
14570         that are now in mono_type_get_object.
14571         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
14572
14573 2006-02-19  Raja R Harinath  <harinath@gmail.com>
14574
14575         * metadata.c (mono_type_create_from_typespec): Rename from
14576         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
14577         argument and caching of types in the generic container.
14578         (unwrap_arrays, find_generic_param): Remove.
14579         * metadata-internals.h: Update.
14580         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
14581
14582 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
14583
14584         * class.c (mono_class_get_exception_for_failure): Fix a warning.
14585
14586         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
14587         return values. Fixes #77581.
14588
14589         * class.c (mono_fnptr_class_get): Switch name and name_space.
14590
14591         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
14592         classes and add support for [In, Out] attributes.
14593         (mono_marshal_free_asany): Ditto. Fixes #77524.
14594
14595 2006-02-18  Raja R Harinath  <harinath@gmail.com>
14596
14597         * class.c (mono_class_from_generic_parameter): Make more robust to
14598         incomplete MonoGenericContainers from monodis.
14599
14600 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
14601
14602         * class-internals.h: added some more exception types.
14603         * class.c, metadata.c: added a few checks to handle missing
14604         types.
14605
14606 2006-02-17  Raja R Harinath  <rharinath@novell.com>
14607
14608         Use owner-less generic-params some more.
14609         * class.c (my_mono_class_from_generic_parameter): Remove.
14610         (mono_class_from_generic_parameter): Handle null image,
14611         param->name and param->owner.
14612         (mono_class_from_mono_type): Update.
14613         (mono_class_create_from_typespec): Remove 'container' parameter.
14614         If that parameter is non-null, the result is always inflated by
14615         'mono_class_get_full' anyway.
14616         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
14617         parameter.
14618         (mono_class_get_full): Update.
14619
14620         * class.c (inflate_generic_type) [GENERICINST]: If the generic
14621         instance is not open, don't bother inflating.
14622         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
14623         parse metadata for inflated classes.
14624         (_mono_class_get): Change GenericContext* parameter to
14625         GenericContainer*.
14626         (mono_class_create_from_typespec): Likewise.  Simplify, and
14627         implement trivially.  All the cases are handled in
14628         mono_class_from_mono_type.  Don't inflate returned class.
14629         (mono_class_get_full): Delegate GENERICINST optimization to
14630         inflate_generic_type.
14631         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
14632
14633 2006-02-16  Dick Porter  <dick@ximian.com>
14634
14635         * socket-io.c (create_object_from_sockaddr): Fix typo.
14636         (create_sockaddr_from_object): Check array lengths before
14637         potentially accessing items off the end.
14638         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
14639         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
14640         (ves_icall_System_Net_Sockets_Socket_Send_internal)
14641         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
14642         length checks to avoid wraparound overflows.
14643         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
14644         contents of the array of sockets
14645         (hostent_to_IPHostEntry2)
14646         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
14647         Check return value of inet_ntop ().
14648         (addrinfo_to_IPHostEntry): Fix typo
14649
14650 2006-02-16  Raja R Harinath  <rharinath@novell.com>
14651
14652         Type metadata parsing doesn't use generic-instantiation information.
14653         * metadata.c (mono_metadata_parse_array_full): Change
14654         MonoGenericContext* parameter to MonoGenericContainer*.
14655         (mono_metadata_parse_type_full): Likewise.
14656         (mono_type_create_from_typespec_full): Likewise.
14657         (mono_metadata_parse_mh_full): Likewise.
14658         (mono_metadata_parse_generic_inst): Likewise.
14659         (do_mono_metadata_parse_generic_class): Likewise.
14660         (do_mono_metadata_parse_type): Likewise.
14661         * metadata-internals.h: Update to changes.
14662         * class.c (mono_class_find_enum_basetype): Likewise.
14663         (mono_class_setup_fields): Likewise.
14664         (mono_class_create_from_typespec): Likewise.
14665         * loader.c (method_from_methodspec): Likewise.
14666         (mono_get_method_from_token): Likewise.
14667         (mono_method_get_header): Likewise.
14668
14669 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
14670
14671         * marshal.c: handle additional GENERICINST case (patch from
14672         Thong Nguyen <tum@veridicus.com>).
14673         Fix a few cases where LDIND_I/STIND_I was used for references.
14674
14675 2006-02-16  Raja R Harinath  <rharinath@novell.com>
14676
14677         * reflection.c (mono_reflection_get_token): Remove unused variable.
14678
14679 2006-02-16  Martin Baulig  <martin@ximian.com>
14680
14681         * reflection.c (mono_reflection_get_token): Add support for fields
14682         in instantiated generic types.
14683
14684         * icall.c
14685         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
14686
14687 2006-02-15  Martin Baulig  <martin@ximian.com>
14688
14689         * icall.c
14690         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
14691         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
14692         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
14693         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
14694
14695 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
14696
14697         * class.c, metadata.c, metadata.h, object.c, icall.c,
14698         marshal.c: changed mono_type_get_underlying_type () to do
14699         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
14700         Fixed handling of instantiated generic valuetypes (bug #75479).
14701
14702 2006-02-15  Raja R Harinath  <rharinath@novell.com>
14703
14704         * metadata.c (mono_metadata_decode_signed_value): Simplify.
14705         Delegate to mono_metadata_decode_value, and work on the returned value.
14706
14707         * icall.c (ves_icall_MonoType_GetGenericArguments):
14708         Add consistency check here too.
14709         
14710 2006-02-15  Ankit Jain  <jankit@novell.com>
14711
14712         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
14713         char/short etc.
14714
14715 2006-02-15  Ankit Jain  <jankit@novell.com>
14716
14717         * metadata.c (mono_metadata_decode_signed_value): New function to decode
14718         signed values, used only for representing lower bounds of arrays.
14719         (mono_metadata_parse_array_full): Use new
14720         mono_metadata_decode_signed_value to decode lower bounds.
14721
14722 2006-02-14  Martin Baulig  <martin@ximian.com>
14723
14724         * reflection.c
14725         (mono_reflection_get_token): Support "MonoGenericMethod" and
14726         "MonoGenericCMethod" and allow generic instances / methods.
14727
14728 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
14729
14730         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
14731         to obtain the terminal size using an ioctl.
14732
14733         * object.c (mono_nullable_init): Revert this as nullable reference
14734         types are not valid.
14735         (mono_nullable_box): Ditto.
14736
14737 2006-02-09  Dick Porter  <dick@ximian.com>
14738
14739         * threads.c (mono_thread_detach): Drop a reference to the thread
14740         we're detaching.
14741
14742 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
14743
14744         * object.c (mono_nullable_init): Handle nullable reference types.
14745         (mono_nullable_box): Ditto. Fixes #77446.
14746
14747 2006-02-07  Martin Baulig  <martin@ximian.com>
14748
14749         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
14750
14751 2006-02-07  Ankit Jain  <jankit@novell.com>
14752
14753         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
14754         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
14755         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
14756         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
14757         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
14758         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
14759
14760 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
14761
14762         * class.c (mono_class_create_generic): Set type_token as well.
14763
14764         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
14765         compatible with MS.
14766
14767 2006-02-02  Martin Baulig  <martin@ximian.com>
14768
14769         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
14770         has never been used so far.
14771
14772 2006-02-02  Martin Baulig  <martin@ximian.com>
14773
14774         * mono-debug-debugger.h: Changed comment at the top of this file;
14775         the header is not installed, but it's safe to #include it from
14776         within the JIT.
14777
14778         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
14779         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
14780
14781 2006-02-02  Martin Baulig  <martin@ximian.com>
14782
14783         * mono-debug.h
14784         (MonoSymbolTable): Removed the `metadata_info' field.
14785
14786         * mono-debug.c
14787         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
14788
14789         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
14790         (mono_debugger_add_builtin_types): Removed.
14791         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
14792         (mono_debugger_create_notification_function): We now operate on a
14793         pre-allocated area; take a `gpointer' and return `void'.
14794
14795         * mono-debug-debugger.c
14796         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
14797         (mono_debugger_add_builtin_types): Removed.
14798
14799 2006-02-02  Martin Baulig  <martin@ximian.com>
14800
14801         * threads.c (mono_debugger_create_all_threads): New public method.
14802
14803 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
14804
14805         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
14806         breaks on several platforms.
14807
14808 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
14809
14810         * assembly.c: the VS.NET build doesn't supply default values for
14811         MONO_ASSEMBLIES and MONO_CFG_DIR.
14812
14813 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
14814
14815         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
14816         helper function.
14817
14818         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
14819
14820         * loader.c (method_from_memberref): Fix a warning.
14821
14822         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
14823
14824         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
14825         with explicit layout. Fixes #77433.
14826
14827 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
14828
14829         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
14830         max_interface_id is initialized before using it. Fixes #77398.
14831         (ves_icall_Type_GetInterfaces): Ditto.
14832
14833 2006-01-30  Raja R Harinath  <rharinath@novell.com>
14834
14835         * metadata.c (mono_metadata_parse_method_signature_full): Don't
14836         allocate memory for parameter attributes when parsing memberref
14837         signatures.
14838         * loader.c (mono_loader_set_error_method_load): Don't warn.
14839         (method_from_memberref): Ensure MissingMethodException gets thrown
14840         if method is not found.  Make warning more informative.
14841
14842 2006-01-29  Raja R Harinath  <harinath@gmail.com>
14843
14844         Fix #77397
14845         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
14846         return true if is byref.
14847         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
14848         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
14849         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
14850
14851 2006-01-27  Raja R Harinath  <rharinath@novell.com>
14852
14853         Fix tests/find-method.2.il
14854         * loader.c (find_method, find_method_in_class): Remove is_inflated
14855         argument.  Revert 2006-01-18 change.
14856         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
14857         is generic, search for method in its generic definition.
14858         * class.c (mono_class_setup_vtable_general): Print generic
14859         arguments of generic types in debugging printf.
14860
14861 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
14862
14863         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
14864
14865         * threads.c (mono_threads_request_thread_dump): New helper function.
14866
14867 2006-01-25  Raja R Harinath  <rharinath@novell.com>
14868
14869         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
14870
14871 2006-01-25  Ankit Jain  <jankit@novell.com>
14872
14873         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
14874         move definition to ..
14875         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
14876         
14877 2006-01-25  Ankit Jain  <jankit@novell.com>
14878             Raja R Harinath  <rharinath@novell.com>
14879
14880         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
14881         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
14882         as necessary.
14883
14884 2006-01-25  Martin Baulig  <martin@ximian.com>
14885
14886         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
14887         `MonoDebuggerThread' into debug-debugger.c.
14888
14889 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
14890
14891         * profiler.c: fix printing of data.
14892
14893 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
14894
14895         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
14896           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
14897
14898 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
14899
14900         * object.c: fix deadlock related to string interning.
14901
14902 2006-01-23  Martin Baulig  <martin@ximian.com>
14903
14904         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
14905
14906         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
14907
14908 2006-01-23  Martin Baulig  <martin@ximian.com>
14909
14910         * mono-debug.h: Moved the prototypes of some functions which are
14911         used by the JIT here from mono-debug-debugger.h.
14912
14913 2006-01-21  Martin Baulig  <martin@ximian.com>
14914
14915         * Makefile.am: Don't install mono-debug-debugger.h.
14916
14917 2006-01-21  Martin Baulig  <martin@ximian.com>
14918
14919         * mono-debug-debugger.h: Enforce the private status of this header
14920         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
14921         Moved some stuff from mono-debugger-jit-wrapper.h here.
14922
14923 2006-01-20  Raja R Harinath  <rharinath@novell.com>
14924
14925         * class.c (mono_class_from_typeref): Add a sanity test to help
14926         catch lack of assembly load/search hooks.
14927
14928 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
14929
14930         * marshal.c (emit_struct_conv): Relax the fields with same offset
14931         check even more. Fixes #77230.
14932
14933 2006-01-18  Martin Baulig  <martin@ximian.com>
14934
14935         * loader.c (find_method_in_class): Added `gboolean is_inflated'
14936         argument; if false, we compare the uninstantiated signatures.
14937         (method_from_memberref): Compare the uninstantiated signatures;
14938         fixes #76417.
14939
14940 2006-01-18  Robert Jordan  <robertj@gmx.net>
14941
14942         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
14943         Clear the weak link. Fixes bug #77170.
14944
14945         * gc.c (mono_gchandle_free):
14946         Reflect *-gc.c changes (tiny optimization).
14947
14948 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
14949
14950         * metadata.c (mono_metadata_signature_dup): Applied patch from
14951         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
14952         Fixes #77288.
14953
14954 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
14955
14956         * marshal.c (emit_struct_conv): Allow fields with the same offset when
14957         marshalling from native to managed code. Fixes #77230.
14958
14959 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14960
14961         * threadpool.c: fix problem (Mac only) when more than one asynchronous
14962         connect. Fixes bug #77020.
14963
14964 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
14965
14966         * class.c: fixed id assignement for nested interfaces (bug #77275).
14967         Added also better info for --print-vtable debugging.
14968
14969 2006-01-12  Martin Baulig  <martin@ximian.com>
14970
14971         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
14972         interfaces on-the-fly; fixes #76625.
14973
14974         * class-internals.h
14975         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
14976         don't need that anymore.
14977
14978 2006-01-12  Miguel de Icaza  <miguel@novell.com>
14979
14980         * socket-io.c
14981         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
14982         To avoid initing the nested_classes when not needed I turned the
14983         PeerCredData as a toplevel internal class, as it has to be shared
14984         anyways. 
14985
14986         Fixes the CASA issue.
14987
14988 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
14989
14990         * domain.c: Accessors for MonoJitInfo
14991
14992         * profiler-private.h: Add jitinfo to the end jit hook
14993
14994         * profiler.[ch]: Define new hooks, called after jitting which give
14995         the MonoJitInfo that was compiled
14996
14997 2006-01-10  Martin Baulig  <martin@ximian.com>
14998
14999         * class.c (mono_class_setup_events): Add support for generic
15000         classes; fixes #76440.
15001
15002 2006-01-06  Raja R Harinath  <rharinath@novell.com>
15003
15004         Fix #77160.
15005         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
15006         on passed-in method.
15007
15008 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
15009
15010         * object.c (mono_runtime_invoke_array): Add Nullable support.
15011
15012         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
15013
15014 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
15015
15016         * file-io.c: Don't consider sockets as directory and avoid an endless
15017         loop. Fix bug #76966.
15018
15019 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
15020
15021         * object.c (mono_nullable_init): New helper function.
15022         (mono_nullable_box): Ditto.
15023
15024         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
15025
15026         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
15027
15028         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
15029         
15030 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
15031
15032         * class.c (mono_class_is_assignable_from): Make T assignable to 
15033         Nullable<T>.
15034
15035 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
15036
15037         * appdomain.c: Bump corlib version to 46.
15038         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
15039         serialization purpose) and changed ves_icall_System_Reflection_
15040         Assembly_get_code_base signature to accept a boolean (to escape, or 
15041         not, the assembly code base).
15042
15043 2005-12-23  Dick Porter  <dick@ximian.com>
15044
15045         * icall.c: 
15046         * threads-types.h: 
15047         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
15048         CreateEvent icall now returns "created" boolean parameter.
15049
15050 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
15051
15052         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
15053         #76967.
15054
15055         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
15056         when attr_klass is an interface. Fixes #77045.
15057
15058 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
15059
15060         * marshal.c (emit_struct_conv): Fix previous patch.
15061         
15062         * marshal.c (emit_struct_conv): Add a check for fields with the same
15063         offset.
15064
15065 2005-12-20  Raja R Harinath  <rharinath@novell.com>
15066
15067         Fix regression in Mono.C5.
15068         * class.c (mono_class_create_generic): If 'klass' is an interface
15069         set up the interface offsets.
15070         (mono_class_is_assignable_from): Don't throw away generic arguments.
15071
15072 2005-12-19  Raja R Harinath  <rharinath@novell.com>
15073
15074         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
15075         type parameters.
15076
15077 2005-12-15  Raja R Harinath  <rharinath@novell.com>
15078
15079         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
15080         dead store.
15081         (do_mono_metadata_parse_generic_class): Don't pass the current
15082         generic context when parsing the type being instantiated: it
15083         cannot use it, anyway.
15084
15085         * loader.c (method_from_memberref): Don't inflate a signature if
15086         it doesn't contain any type parameters.
15087
15088 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
15089
15090         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
15091
15092 2005-12-14  Martin Baulig  <martin@ximian.com>
15093
15094         * class.c
15095         (mono_type_get_name_recurse): Don't return null for type
15096         parameters and open generic classes.
15097         (mono_class_setup_methods): Don't exclude generic instances.
15098         (mono_get_unique_iid): Use different IDs for different
15099         instantiations of the same generic type.
15100         (mono_class_setup_vtable): Only use setup_generic_vtable() for
15101         open generic instances; create a normal vtable for closed generic
15102         instances.
15103         (mono_class_setup_vtable_general): We're now also called for
15104         closed generic instances.
15105
15106         * reflection.c
15107         (mono_reflection_bind_generic_parameters): Correctly use
15108         mono_metadata_lookup_generic_inst() everywhere.
15109
15110 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
15111
15112         * object.c (mono_class_create_runtime_vtable): Call 
15113         mono_class_setup_vtable ().
15114
15115         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
15116         function.
15117         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
15118         #76959.
15119
15120         * loader.c (mono_loader_set_error_type_load): Print the type load
15121         warnings to the console so they are more visible to the user.
15122         (mono_loader_set_error_method_load): Ditto.
15123
15124         * reflection.c (ensure_runtime_vtable): Revert the last change as it
15125         is still broken.
15126         
15127         * reflection.c (ensure_runtime_vtable): Fix build.
15128
15129         * reflection.c (ensure_runtime_vtable): Disable an optimization which
15130         doesn't work in all cases.
15131
15132 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
15133
15134         * object.c (mono_array_new_full): Treat a single dimensional array
15135         with 0 lower bounds as an szarray. Fixes #76973.
15136
15137         * reflection.c (custom_attr_visible): Really fix this.
15138
15139 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
15140
15141         * reflection.c (custom_attr_visible): Allow nested public attributes
15142         as well.
15143
15144         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
15145         interface check.
15146
15147 2005-12-12  Raja R Harinath  <harinath@gmail.com>
15148
15149         * class.c (set_generic_param_owner): Delete.
15150         (mono_class_create_from_typedef): Don't set ->owner field of
15151         generic parameters to "param containers" of enclosing classes.
15152         * reflection.c (mono_reflection_initialize_generic_parameter):
15153         Likewise.
15154
15155 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
15156
15157         * reflection.c (custom_attr_visible): Fix build.
15158
15159 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
15160
15161         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
15162         private attributes.
15163         
15164         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
15165         handling of null parameter defaults.
15166
15167 2005-12-09  Raja R Harinath  <rharinath@novell.com>
15168
15169         * class.c (mono_class_from_generic_parameter): Don't set
15170         klass->generic_container.
15171         (my_mono_class_from_generic_parameter): Likewise.
15172
15173 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
15174
15175         * reflection.c (load_public_key): Fix a warning.
15176         (method_encode_code): Fix unaligned accesses.
15177
15178 2005-12-07  Martin Baulig  <martin@ximian.com>
15179
15180         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
15181
15182         * reflection.c
15183         (write_generic_param_entry): Encode our custom attrs.
15184
15185         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
15186
15187 2005-12-07  Martin Baulig  <martin@ximian.com>
15188
15189         * reflection.c (encode_new_constraint): Removed; we don't use the
15190         `NewConstraintAttribute' anymore.
15191
15192 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
15193
15194         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
15195         not fire a TypeResolve event when Assembly.GetType () is called.
15196
15197 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
15198
15199         Beginning of support for nullable types in the runtime. Parts of
15200         this patch are from Martin.
15201
15202         * appdomain.c (MONO_CORLIB_VERSION): Bump
15203
15204         * domain.c (mono_init_internal): get the nullable type
15205
15206         * class.c (mono_class_is_nullable): New method
15207         (mono_class_get_nullable_param): New mehod
15208         (mono_class_create_generic): In types T? set cast_class to T
15209
15210         * class-internals.h (MonoDefaults): new nullable default class
15211         (mono_class_get_nullable_param, mono_class_get_nullable_param):
15212         new methods.
15213
15214 2005-12-05  Raja R Harinath  <rharinath@novell.com>
15215
15216         * metadata.c (select_container): New.  Refactor code to select the
15217         appropriate GenericContainer given the type of generic parameter
15218         we are looking for.
15219         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
15220         not a MonoGenericContext.  Use select_container.  Update parameters.
15221         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
15222         and MONO_TYPE_MVAR.
15223         (unwrap_arrays): Remove duplicate tests.
15224         (find_generic_param): Rename from 'has_same_context'.  Now walks a
15225         generic instantiated class to find any arguments that are generic
15226         parameters.
15227         (mono_type_create_from_typespec_full): Use find_generic_param to
15228         avoid evicting some generic instantiations from the typespec
15229         cache.
15230
15231 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
15232
15233         * reflection.c: fixed writing of doubles on ARM FPA.
15234
15235 2005-12-02  Robert Jordan  <robertj@gmx.net>
15236
15237         * icall.c: Fixed EventInfo.ReflectedType (#76829).
15238
15239 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15240
15241         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
15242         least on SUSE 10 they are not the same (on debian, they are just the
15243         same thing).
15244
15245 2005-12-01  Raja R Harinath  <rharinath@novell.com>
15246
15247         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
15248         DeclaringType for VARs and MVARs.
15249         * class.c (set_generic_param_owner): Fix initialization of owner
15250         fields.
15251
15252 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
15253
15254         * icall.c: fixed Enum.ToObject() to correctly convert the values.
15255
15256 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15257
15258         * threadpool.c: workaround for a bug that shows up on the Mac:
15259         select()+connect() on a blocking socket is not like it should
15260         be, so we proceed to connect() in that case, wasting the I/O
15261         threadpool thread until connect succeedes. Fixes bug #75436.
15262
15263 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15264
15265         * threadpool.c: fix typo when setting file descriptor states.
15266
15267 2005-11-28  Raja R Harinath  <rharinath@novell.com>
15268
15269         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
15270         * metadata.c (mono_metadata_parse_method_signature_full): Don't
15271         create a temporary signature container.
15272         (mono_metadata_parse_generic_param): Update to changes.
15273         (mono_type_create_from_typespec_full): Update to changes.
15274         * loader.c (method_from_memberref): Don't use a
15275         MonoGenericContainer while parsing a memberref signature.
15276         (method_from_methodspec): Remove dead-store of the 'container'
15277         variable.  It's overwritten before use.
15278
15279         * metadata.c (mono_type_create_from_typespec_full): Make debugging
15280         checks tighter.
15281         (mono_metadata_parse_generic_param): Likewise.
15282         * loader.c (find_method_in_class): Does not need a
15283         MonoGenericContainer.  Use 'mono_method_signature' rather than
15284         'mono_method_signature_full'.
15285         (find_method, mono_get_method_constrained, method_from_memberref):
15286         Update to changes.
15287
15288         * metadata.c (mono_type_create_from_typespec_full): Ensure that
15289         owner-less generic-parameters are never evicted from the typespec
15290         cache.
15291
15292         * loader.c (method_from_memberref): Don't use the current context
15293         when parsing signatures.
15294         (method_from_methodspec, mono_get_method_from_token): Update to changes.
15295
15296         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
15297         side-effects in g_assert.
15298         * loader.c (mono_get_method_from_token): Resolve klass earlier so
15299         that we don't potentially lose information.
15300
15301 2005-11-26  Dick Porter  <dick@ximian.com>
15302
15303         * icall.c:
15304         * threads.c: icalls to implement basic (ie, not named)
15305         System.Threading.Semaphore.
15306
15307 2005-11-24  Dick Porter  <dick@ximian.com>
15308
15309         * process.c
15310         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
15311         Use GetProcessId() if it's available.
15312
15313 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
15314
15315         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
15316
15317 2005-11-23  Raja R Harinath  <rharinath@novell.com>
15318             Ankit Jain  <jankit@novell.com>
15319
15320         * loader.c (mono_get_method_from_token): Initialize 'method' field
15321         of all generic parameters before parsing the signature.  Remove
15322         code that "fixed"-up MVAR references.
15323
15324 2005-11-23  Ankit Jain  <jankit@novell.com>
15325
15326         * metadata.c (mono_metadata_has_generic_params):
15327         (mono_metadata_load_generic_param_constraints):
15328         (mono_metadata_load_generic_params): Move duplicate code ...
15329         (mono_metadata_get_generic_param_row): ... here. Returns the
15330         first row-id in GenericParam table for a given owner (token).
15331         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
15332         prototype.
15333
15334 2005-11-23  Raja R Harinath  <rharinath@novell.com>
15335             Ankit Jain  <jankit@novell.com>
15336
15337         * metadata.c (mono_metadata_class_equal): Pass signature_only when
15338         comparing VARs too.
15339         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
15340         type->data.generic_param only if the type is an MVAR.
15341         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
15342         leak owner-less VARs and MVARs into managed space.
15343
15344 2005-11-21  Martin Baulig  <martin@ximian.com>
15345
15346         * class-internals.h
15347         (MonoMethod): Moved the `generic_container' here from
15348         `MonoMethodNormal' since we now also need it for
15349         `MonoMethodPInvoke';
15350         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
15351         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
15352         an union containing both `MonoMethodNormal' and
15353         `MonoMethodPInvoke'.
15354
15355         * loader.c
15356         (mono_get_method_from_token): Allow implementing generic methods
15357         as interncalls.
15358
15359         * threads.c
15360         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
15361         icall.
15362
15363 2005-11-17  Dick Porter  <dick@ximian.com>
15364
15365         * icall.c: 
15366         * process.h: 
15367         * process.c: Split the Process Start_internal icall into
15368         ShellExecuteEx_internal and CreateProcess_internal, which are
15369         called depending on whether UseShellExecute is true.  Fixes bug
15370         76670.
15371
15372         * appdomain.c (MONO_CORLIB_VERSION): Incremented
15373
15374 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
15375
15376         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
15377         'msize' parameters, use the information in 'mspec' instead.
15378         (emit_object_to_ptr_conv): Ditto.
15379
15380         * marshal.c (emit_struct_conv): Handle explicit layout structs with
15381         fields out of order. Fixes #76733.
15382
15383 2005-11-17  Ankit Jain  <jankit@novell.com>
15384
15385         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
15386
15387 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
15388
15389         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
15390           bug #76575.
15391
15392 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
15393
15394         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
15395         for types with non-auto layout. Fixes #76717.
15396
15397 2005-11-16  Ankit Jain  <jankit@novell.com>
15398
15399         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
15400         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
15401         if generic_context is null.
15402           (mono_metadata_generic_param_equal): param->owner can be null.
15403           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
15404         null.
15405
15406 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
15407
15408         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
15409         the correct value.
15410
15411 2005-11-15  Martin Baulig  <martin@ximian.com>
15412
15413         * object.c (set_value): Use mono_class_from_mono_type() instead of
15414         the hack for generic instances; fixes #76136.
15415
15416 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
15417
15418         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
15419         fields.
15420
15421         * image.c (load_metadata_ptrs): Initialize the new fields.
15422
15423         * reflection.c (create_dynamic_mono_image): Ditto.
15424
15425         * reflection.c (build_compressed_metadata): Use the new fields.
15426
15427         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
15428         icall.
15429
15430         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
15431         icall.
15432         
15433 2005-11-15  Ankit Jain  <jankit@novell.com>
15434             Raja R Harinath  <harinath@gmail.com>
15435
15436         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
15437         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
15438         new per-generic_container cache if the cached MonoType's context matches
15439         the current context.
15440           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
15441         to the expected context.
15442           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
15443
15444 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
15445
15446         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
15447         we changed the signature of an icall.
15448         * icall.c: Modify to mono_double_ParseImpl return true/false 
15449         depending on the success, instead of throwing the exception. This will
15450         help us in Double.TryParse methods.
15451         
15452 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
15453
15454         * marshal.c (emit_marshal_object): Throw an exception when
15455         marshalling 'object' instead of crashing. Fixes #76696.
15456
15457 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
15458
15459         * class-internals.h: Add prototype for mono_type_get_full_name ().
15460
15461 2005-11-11  Dick Porter  <dick@ximian.com>
15462
15463         * threads.c (mono_thread_manage): Make sure the main thread has
15464         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
15465
15466 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
15467
15468         * loader.c (mono_loader_set_error_type_load): Log a warning to the
15469         console about the missing type.
15470         (mono_loader_set_error_method_load): Ditto.
15471
15472 2005-11-09  Miguel de Icaza  <miguel@novell.com>
15473
15474         * mono-config.c (mono_get_config_dir): Set the system defaults if
15475         none is specified.
15476
15477         * assembly.c (mono_set_dirs): New API entry point to set the
15478         assembly and the config directory in one call
15479
15480 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
15481
15482         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
15483         the ftnptr was created from a delegate in a domain other than the
15484         current domain. Fixes #75377.
15485
15486         * exception.h exception.c: Add mono_get_exception_not_supported ().
15487
15488 2005-11-08  Martin Baulig  <martin@ximian.com>
15489
15490         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
15491
15492 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
15493
15494         * security-manager.h: Added definitions to deal with strongname key 
15495         pairs bigger (and smaller) than 1024 bits.
15496         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
15497         adjust wrt the public key length being used.
15498
15499 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
15500
15501         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
15502           Windows build (r51396-51397).
15503
15504 2005-11-03  Martin Baulig  <martin@ximian.com>
15505
15506         * class.c (mono_class_setup_vtable_general): Also add generic
15507         methods to the vtable; fixes #76581.
15508
15509 2005-11-01  Miguel de Icaza  <miguel@novell.com>
15510
15511         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
15512         sure that we lookup GetString method from the System.Text.Encoding
15513         class, not the derived class or we get an empty method.
15514
15515         Fixed class #76612.
15516
15517 2005-10-25  Miguel de Icaza  <miguel@novell.com>
15518
15519         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
15520         if it has been previously set (embedders). 
15521
15522         Make mono_set_rootdir available also on Unix.
15523
15524 005-10-24  Robert Jordan  <robertj@gmx.net>
15525
15526         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
15527
15528 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
15529
15530         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
15531         only calls which are made to native code use this flag.
15532
15533         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
15534
15535 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
15536
15537         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
15538         Add support for FieldBuilders.
15539
15540 2005-10-29  Martin Baulig  <martin@ximian.com>
15541
15542         * mono-debug.c
15543         (mono_debug_using_mono_debugger): New public method; returns
15544         whether we're running inside the debugger.
15545
15546 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
15547
15548         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
15549         for Method/Constructor/FieldBuilders.
15550
15551 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
15552
15553         * reflection.c (module_add_cattrs): Save custom attributes for global methods
15554         and fields as well.
15555
15556 2005-10-26  Martin Baulig  <martin@ximian.com>
15557
15558         * mono-debug-debugger.c
15559         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
15560
15561 2005-10-24  Raja R Harinath  <harinath@gmail.com>
15562
15563         * icall.c (base64_to_byte_array): Don't pass an out-of-range
15564         integer to isspace.
15565
15566 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
15567
15568         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
15569         when passing valuetypes byref. Fixes #76502.
15570
15571 2005-10-19  Jackson Harper  <jackson@ximian.com>
15572
15573         * profiler.c: Don't put a . in front of types that are not in a
15574         namespace.
15575
15576 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
15577
15578         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
15579
15580 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
15581
15582         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
15583         #76436.
15584         (mono_marshal_get_ldflda_wrapper): Fix a warning.
15585
15586 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
15587
15588         * assembly.c metadata-internals.h icall.c: Define an additional
15589         parameter for mono_assembly_name_parse_full, so we can avoid creating
15590         S.R.AssemblyName.Version when no version info wasn't passed.
15591         
15592 2005-10-09  Miguel de Icaza  <miguel@novell.com>
15593
15594         * class.c (mono_type_get_full_name): Reimplement method that was
15595         removed. 
15596
15597         * image.c: Some docs
15598
15599 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
15600
15601         * profiler.c (output_newobj_profile): Fix printing of Total memory
15602         on x86.
15603
15604 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
15605
15606         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
15607
15608 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
15609
15610         * threads.c: remove debug output.
15611
15612 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
15613
15614         * threads.c (mono_thread_manage): Fix crashes if more than 64
15615         threads need to be aborted. Hopefully fixes #75899.
15616
15617         * assembly.c (mono_stringify_assembly_name): New helper function.
15618
15619         * class.c: Use mono_stringify_assembly_name instead of the similar
15620         static function.
15621
15622         * assembly.h assembly.c: Add support for calling a postload search 
15623         hook if an assembly cannot be loaded.
15624
15625         * appdomain.c: Register new search hooks which call the AssemblyResolve
15626         events in AppDomain. Fixes #75231
15627
15628 2005-10-07  Martin Baulig  <martin@ximian.com>
15629
15630         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
15631         methods without debug info.
15632
15633 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
15634
15635         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
15636         wrappers.
15637
15638 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15639
15640         * file-io.c: now that we return symlinks, use lstat and, when the file
15641         is a symbolic link, stat, to get the file attributes. Also avoid the
15642         conversion to/from utf16/external.
15643
15644 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
15645
15646         * class.c (mono_class_layout_fields): Compute klass->has_references
15647         correctly if an embedded valuetype is not yet initialized. Fixes
15648         #76331.
15649
15650 2005-10-04  Martin Baulig  <martin@ximian.com>
15651
15652         * metadata.c
15653         (mono_metadata_load_generic_param_constraints): New public
15654         function; splitted the constraints loading out from
15655         mono_metadata_load_generic_params().
15656
15657         * class.c (mono_class_create_from_typedef): Call
15658         mono_metadata_load_generic_param_constraints() after setting up
15659         the type and creating our parent; fixes #75329.
15660
15661 2005-10-04  Martin Baulig  <martin@ximian.com>
15662
15663         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
15664         non-dynamic parent classes.
15665
15666 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
15667
15668         * file-io.c : win32 build fix (ETXTBSY seems not found).
15669
15670 2005-10-04  Martin Baulig  <martin@ximian.com>
15671
15672         * reflection.c
15673         (mono_image_get_methodspec_token): Make the cache actually work;
15674         fixes #75974.
15675
15676 2005-10-04  Martin Baulig  <martin@ximian.com>
15677
15678         * class.c (mono_class_name_from_token): Removed the unneccessary
15679         `MonoGenericContext *' argument.
15680
15681 2005-10-04  Martin Baulig  <martin@ximian.com>
15682
15683         * loader.c
15684         (method_from_methodspec): Make the caching work again; fixes the
15685         performance regression from #76262.
15686
15687 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15688
15689         * file-io.c:
15690         * file-io.h:
15691         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
15692         GetFileSystemEntries that performs the same work but without going
15693         into io-layer, locking, etc.
15694
15695 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
15696
15697         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
15698         ThreadState_Stopped as well. Fixes #76047.
15699
15700 2005-09-29  Martin Baulig  <martin@ximian.com>
15701
15702         * class.c
15703         (inflate_generic_context): If the new context has a `gmethod', set
15704         its `container' that that gmethod's `container'.
15705
15706         * metadata.c
15707         (mono_metadata_parse_generic_param): Simplify things;
15708         `generic_container = generic_context->container;' is just fine.
15709
15710         * loader.c (method_from_methodspec): Code cleanups.
15711
15712 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
15713
15714         * decimal.c: fix warning (and let gcc generate correct
15715         code on ARM with optimizations).
15716
15717 2005-09-28  Martin Baulig  <martin@ximian.com>
15718
15719         * loader.c
15720         (method_from_memberref): Added `MonoGenericContext *class_context'
15721         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
15722         (method_from_methodspec): If we're a memberref, use the enclosing
15723         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
15724
15725 2005-09-28  Martin Baulig  <martin@ximian.com>
15726
15727         * object.c (mono_runtime_invoke_array): Added support for
15728         MONO_TYPE_GENERICINST; fixes #75917.
15729
15730 2005-09-27  Martin Baulig  <martin@ximian.com>
15731
15732         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
15733         `k->byval_arg.type' to determine the actual type.
15734
15735         * loader.c (method_from_methodspec): Removed some hacks.
15736
15737 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
15738
15739         * class-internals.h (mono_field_is_deleted): Do the test for
15740         rtspecialname before we check the actual name of the field. This
15741         prevents us from dereferencing a pointer into the string table,
15742         saving us from accessing a few pages
15743
15744         * *.c: Replace the use of {Enter,Leave}CriticalSection with
15745         macros. This will allow a deadlock debugger to easily be plugged
15746         in.
15747
15748 2005-09-27  Martin Baulig  <martin@ximian.com>
15749
15750         * loader.c (method_from_methodspec): Create a "signature"
15751         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
15752
15753 2005-09-27  Martin Baulig  <martin@ximian.com>
15754
15755         * class.c
15756         (inflate_generic_class): Correctly set the new context's
15757         container.
15758
15759         * loader.c
15760         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
15761         instead of a `MonoGenericContext *'.
15762         (mono_method_signature_full): Take a `MonoGenericContainer *'
15763         instead of a `MonoGenericContext *'.
15764
15765         * metadata.c
15766         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
15767         instead of a `MonoGenericContext *'.
15768         (mono_metadata_parse_method_signature_full): Likewise.
15769
15770 2005-09-26  Martin Baulig  <martin@ximian.com>
15771
15772         * class.c
15773         (mono_class_from_generic_parameter): Set `klass->generic_container'
15774         (mono_class_from_generic_parameter): Likewise.
15775         (mono_bounded_array_class_get): We inherit the generic container
15776         from the element class.
15777
15778         * loader.c
15779         (find_method, find_method_in_class): Take a `MonoGenericContext *'
15780         argument rather than computing it here.
15781         (method_from_memberref): Correctly set the generic context before
15782         parsing the signature.  Fixes #75681.
15783
15784 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
15785
15786         * object.c (mono_class_has_special_static_fields): Fix warnings.
15787
15788 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
15789
15790         * assembly.c: Add parse_public_key function, to
15791         par the public keys. Also added mono_assembly_name_parse_full,
15792         to define it the parsed key should be freed or not.
15793         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
15794         to parse a long format assembly name.
15795         * metadata-internals.h: Keep mono_assembly_name_parse_full as
15796         private, since calling it to preserve the key requires
15797         freeing it manually.
15798         
15799 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
15800
15801         * locales.c : removed HAVE_ICU part.
15802
15803 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
15804
15805         * object.c (mono_class_create_runtime_vtable): Avoid calling 
15806         field_is_special_static if the klass has no special static fields.
15807
15808         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
15809         (MonoCachedClassInfo): Likewise.
15810
15811         * object.c (mono_class_has_special_static_fields): New helper function.
15812
15813 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
15814
15815         * class.c (mono_class_create_from_typedef): Don't call 
15816         interfaces_from_typedef_full for enums.
15817         (mono_class_create_from_typedef): Compute the base types of enums directly
15818         without calling mono_class_setup_fields ().
15819         (mono_class_find_enum_basetype): New helper function.
15820
15821         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
15822         one place inside the string heap.
15823         
15824 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
15825
15826         * class.c: locking fixes, code cleanups, some docs added.
15827         Allocate some data structures in the image mempool.
15828
15829 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
15830
15831         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
15832         the example code.
15833         
15834 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
15835
15836         * class-internals.h, class.c, reflection.c: reduce memory taken by
15837         MonoClass.
15838
15839 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
15840
15841         * metadata.c, metadata.h, loader.h: documentation updates, code and
15842         API cleanups.
15843
15844 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
15845
15846         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
15847         the example code.
15848
15849         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
15850         page faults caused by the runtime while reading metadata.
15851
15852 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15853
15854         * socket-io.c: the field names were changed 3 months ago and no one
15855         realized until bug #76077 got filed!
15856
15857 2005-09-20  Martin Baulig  <martin@ximian.com>
15858
15859         * icall.c (assembly_icalls): Removed some unused debugger icalls.
15860
15861 2005-09-20  Martin Baulig  <martin@ximian.com>
15862
15863         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
15864         write the rank into the class entry.
15865
15866 2005-09-20  Martin Baulig  <martin@ximian.com>
15867
15868         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
15869
15870 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
15871
15872         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
15873
15874         * icall.c (custom_attrs_defined_internal): New icall.
15875
15876         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
15877         function.
15878         (mono_custom_attrs_construct_by_type): New helper function.
15879
15880 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
15881
15882         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
15883         terminate the resulting string. Fixes #76123.
15884
15885 2005-09-16  Martin Baulig  <martin@ximian.com>
15886
15887         * mono-debug.c
15888         (mono_debug_add_method): Ignore inflated methods for the moment.
15889
15890 2005-09-14  Martin Baulig  <martin@ximian.com>
15891
15892         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
15893
15894 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
15895
15896         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
15897         return a success/failure indication.
15898         (mono_metadata_interfaces_from_typedef_full): Ditto.
15899         (get_constraints): Ditto.
15900
15901 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
15902
15903         * marshal.c (emit_marshal_array): Fix handling of null arrays.
15904         
15905         * marshal.c (emit_marshal_array): Add support for returning string
15906         arrays from delegates. Fixes #76063.
15907
15908         * marshal.c: Use the emit_ldloc/stloc macros where possible.
15909
15910 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
15911
15912         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
15913         icall.
15914
15915 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
15916
15917         * reflection.c icall.c: Fix after mono_get_exception_type_load
15918         signature change.
15919
15920         * assembly.c (mono_assembly_get_assemblyref): New helper function.
15921         (mono_assembly_load_reference): Use the new helper.
15922
15923         * class-internals.h (MonoLoaderError): New structure containing 
15924         information about type loading errors.
15925
15926         * class-internals.h loader.c: Add APIs to store per-thread loader
15927         error information.
15928
15929         * loader.c class.c: Set the loader error if needed.
15930
15931         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
15932
15933 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
15934
15935         * decimal.c: fixed to handle the broken ARM fp format.
15936
15937 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
15938
15939         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
15940         broken.
15941
15942 2005-09-06  Martin Baulig  <martin@ximian.com>
15943
15944         * domain.c (supported_runtimes): Added v2.0.50727.
15945
15946 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
15947
15948         * culture-info.h: reduce the size of some structures.
15949
15950 2005-09-05  Martin Baulig  <martin@ximian.com>
15951
15952         Reflect latest API changes in the August CTP.
15953
15954         * icall.c
15955         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
15956         ("MonoType.HasGenericArguments"): Removed.
15957         ("MonoMethod.BindGenericParameters"): Renamed to
15958         "MakeGenericMethod".
15959         ("MethodBuilder.BindGenericParameters"): Renamed to
15960         "MakeGenericMethod".    
15961
15962 2005-09-05  Martin Baulig  <martin@ximian.com>
15963
15964         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
15965
15966 2005-09-05  Martin Baulig  <martin@ximian.com>
15967
15968         Applying a patch from Michal Moskal <malekith@nemerle.org>.
15969
15970         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
15971         generic_container is non-NULL.
15972
15973 2005-09-05  Martin Baulig  <martin@ximian.com>
15974
15975         Applying a patch from Michal Moskal <malekith@nemerle.org>.
15976
15977         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
15978
15979 2005-08-29  Michal Moskal  <malekith@nemerle.org>
15980
15981         * reflection.c (encode_locals,
15982         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
15983         for large generic types.
15984
15985 2005-09-05  Martin Baulig  <martin@ximian.com>
15986
15987         Applying a patch from Michal Moskal <malekith@nemerle.org>.
15988
15989         * class.c (mono_dup_array_type): New public method.
15990         (mono_metadata_signature_deep_dup): New public method.
15991         (dup_type): Correctly duplicate array and function types.
15992
15993 2005-09-05  Martin Baulig  <martin@ximian.com>
15994
15995         Applying a patch from Michal Moskal <malekith@nemerle.org>.
15996
15997         * reflection.c (get_default_param_value_blobs): Handle generic types
15998         and generic methods.
15999
16000 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
16001
16002         * class.c: Fixed error reporting (method/class were inversed) for 
16003         inheritance demands.
16004         * security-manager.c|h: Added the AppDomain when calling the managed
16005         System.Security.SecurityManager.InheritanceDemand method.
16006
16007 2005-09-01  Raja R Harinath  <rharinath@novell.com>
16008
16009         * reflection.c (encode_marshal_blob): 'marshaltype' and
16010         'marshaltyperef' are alternate sources for the custom marshaler
16011         name.
16012
16013 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
16014
16015         * class.c: fix creation of array classes with rank == 1
16016         (patch by Ankit Jain <jankit@novell.com>).
16017
16018 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
16019
16020         * object.c: fix check for creating the bound data for arrays vs
16021         szarrays.
16022
16023 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16024
16025         * object.c: configuration file name is now based on the executable name,
16026         not the image name. Fixes bug #75931.
16027
16028 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
16029
16030         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
16031         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
16032
16033 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
16034
16035         * rand.c: Use wincrypt.h instead of WinCrypt.h.
16036
16037 2005-08-24  Ankit Jain  <jankit@novell.com>
16038             Raja R Harinath  <rharinath@novell.com>
16039
16040         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
16041           called by it recursively.
16042           (mono_class_init): Remove special case in pending_init handling, since it's
16043           superseded by the fix to mono_class_from_typeref.
16044
16045 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
16046
16047         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
16048         BROKEN_THREAD_START stuff.
16049
16050 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
16051
16052         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
16053         trampoline.
16054
16055         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
16056         
16057         * object.c (mono_delegate_ctor): Replace the original function address with
16058         a delegate trampoline.
16059
16060 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
16061
16062         * icall.c: add boolean argument to base64_to_byte_array and 
16063         InternalFromBase64String to control whether a whitespace-only string
16064         is allowed (or should casue a FormatException to be thrown). We need
16065         this as the behavior has changed between MS.NET 1.x and 2.0, and we
16066         to match the MS behaviour in both profiles.
16067         * appdomain.c: Bump corlib version.
16068
16069 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
16070
16071         This patch implements a big portion of publisher policy
16072         support, used to bind assembly versions and redirect
16073         one assembly from version A to version B.
16074
16075         * assembly.c:
16076         New GSList loaded_assembly_bindings, for storing the cached
16077         assembly bindings.
16078         (assembly_binding_maps_name): New static function for checking if a 
16079         assembly binding information maps an assembly name.
16080         (mono_assembly_binding_info_free): New function for freeing
16081         assembly binding information resources.
16082         (get_publisher_policy_info): New static function for retrieving 
16083         assembly binding information from a MonoImage.
16084         (compare_versions): New static function for comparing an assembly
16085         binding information data and the version of an assembly name.
16086         (check_policy_versions): New static function for checking if an
16087         assembly binding info mapping an assembly name is valid for it.
16088         (mono_assembly_load_publisher_policy): New static function for
16089         loading the 'policy.major.minor.MyAssembly' image for an assembly
16090         with an assembly name 'aname'.
16091         (mono_assembly_bind_version): New static function for updating
16092         assembly redirection.
16093         (mono_assembly_apply_binding): New static function for applying
16094         assembly binding.
16095         (search_binding_loaded): New static function for searching 
16096         loaded assembly binding infos in the cache domain.
16097         (mono_assembly_load_full): Don't apply assembly binding for
16098         reflection only assemblies.
16099
16100         * metadata-internals.h: Add MonoAssemblyBindingInfo,
16101         which contains information about assembly binding. Also
16102         declare signature for mono_config_parse_publisher_policy ()
16103         function, used to retrieve pub policy info.
16104         
16105         * mono-config.c:
16106         (publisher_policy_start): New static function used to parse publisher 
16107         policy config files.
16108         (publisher_policy_parser): New static MonoParseHandler containing 
16109         the functions used when parsing config files.
16110         (mono_config_parse_publisher_policy): New function for parsing
16111         publisher policy files.
16112         
16113 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
16114
16115         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
16116
16117         * marshal.c (mono_delegate_free_ftnptr): Ditto.
16118
16119         * object.c (mono_get_addr_from_ftnptr): New helper function.
16120
16121         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
16122
16123         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
16124
16125 2005-08-19  Dick Porter  <dick@ximian.com>
16126
16127         * threads.c, threads.h, appdomain.c, appdomain.h,
16128         profiler-private.h, monitor.c, object.c, object-internals.h,
16129         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
16130         store the thread ID, so it can hold a 64 bit value if needed.
16131
16132 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
16133
16134         * reflection.c (mono_reflection_create_dynamic_method): Store the
16135         handle class into the method references as well so ldtoken works in
16136         dynamic methods.
16137
16138         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
16139         types.
16140
16141 2005-08-19  Ankit Jain <jankit@novell.com>
16142
16143         Fix #75847.
16144         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
16145           here rather than using the method signature of a arbitrary function
16146           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
16147           two arguments.
16148           Hack done with Harinath.
16149
16150 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16151
16152         * threadpool.c: disable printing stack traces when we get a exception
16153         in a threadpool thread. I need to do more testing to figure out which
16154         cases actually print this. Fixes bug #75828.
16155
16156 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16157
16158         * icall.c: there might be ignored whitespace after the last '='. This
16159         fixes length computation and bug #75840.
16160
16161 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
16162
16163         * assembly.c (mono_assembly_load_full): Consider .exe extension as
16164         well. Fixes #75809.
16165
16166         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
16167         #75784.
16168         
16169         * reflection.c (create_custom_attr_data): Ditto.
16170
16171 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
16172
16173         * locales.c, culture-info.h : removed RegionLCIDMap.
16174         * culture-info-tables.h : regenerated.
16175
16176 2005-08-16  Martin Baulig  <martin@ximian.com>
16177
16178         * class.c (mono_type_get_name_recurse): Small fix.
16179
16180 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
16181
16182         * locales.c : indentation fixie.
16183
16184 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
16185
16186         * object-internals.h,
16187           locales.h,
16188           locales.c,
16189           culture-info.h,
16190           icall.c : added RegionInfo table support.
16191         * culture-info-table.h : regenerated for region support.
16192
16193 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
16194
16195         * reflection.c (resolve_object): handle all kinds of MonoMethod
16196         including generic ones
16197
16198 2005-08-12  Ankit Jain <jankit@novell.com>
16199
16200         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
16201           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
16202
16203 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
16204
16205         * process.c: Don't close a thread handle when it's NULL. This is a
16206         workaround for bug #75733.
16207
16208 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
16209
16210         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
16211
16212 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
16213
16214         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
16215
16216 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16217
16218         * threadpool.c: if a work item in the thread pool has a callback that
16219         catches a exception, don't propagate it after invoking the callback.
16220         Fixes bug #75336.
16221
16222 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
16223
16224         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
16225
16226         * class-internals.h (MonoCachedClassInfo): Add some new fields.
16227
16228         * class.c (mono_class_init): Load field info lazily in the AOT case.    
16229
16230         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
16231
16232 2005-08-03  Ankit Jain  <jankit@novell.com>
16233
16234         Fix #75683.
16235         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
16236           PInvoke calling convention is 0.
16237
16238 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
16239
16240         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
16241         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
16242
16243 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
16244
16245         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
16246         to handle threads not started by the GC (patch by Michael Meeks
16247         <michael.meeks@novell.com>).
16248
16249 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
16250
16251         * reflection.c: Make buffer used in emitting types larger for some
16252         big generic types (patch by Michal Moskal).
16253
16254 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
16255
16256         * mono-debug.c: Fix some (not all) alignment problems.
16257
16258 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
16259
16260         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
16261         Invoke mono_image_load_from_data_full passing the refonly
16262         parameter.
16263
16264         * assembly.c
16265         (mono_assembly_open_from_bundle): Add the refonly argument, 
16266         in order to pass it to other methods it calls to.
16267         (do_mono_assembly_open): Add the refonly argument, in order 
16268         to pass it to other methods it calls to.
16269         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
16270         the refonly parameter to it.
16271
16272         * image.c: Add loaded_images_refonly_hash and
16273         loaded_images_refonly_guid_hash to cache the reflection
16274         only loaded images.
16275         (mono_images_init): Initialize the hash tables used for
16276         caching the reflection only images.
16277         (load_modules): Invoke mono_image_open_full passing the refonly
16278         parameter to load the modules the correct way.
16279         (build_guid_table): Add the refonly argument, to re-build the 
16280         correct hash table.
16281         (do_mono_image_open): Added the refonly argument, in order to
16282         define it for the loaded image.
16283         (mono_image_loaded_full): New function, which receives an
16284         additional parameter to look for the image in the refonly or
16285         non-refonly section.
16286         (mono_image_loaded): Updated, using mono_image_loaded_full.
16287         (mono_image_loaded_by_guid_full): The same case that happens
16288         with mono_image_loaded_full.
16289         (mono_image_loaded_by_guid): Likewise.
16290         (register_image): Use the ref_only variable inside MonoImage
16291         to decide in which hash table store the current image.
16292         (mono_image_open_from_data_full): Rename
16293         mono_image_open_from_data to mono_image_open_from_data_full,
16294         adding the refonly argument, to define the ref_only variable 
16295         inside MonoImage.
16296         (mono_image_open_from_data): Return 
16297         mono_image_open_from_data_full.
16298         (mono_image_open_full): Rename mono_image_open to
16299         mono_image_open_full, receiving the new refonly argument,
16300         to pass it to inner methods.
16301         (mono_pe_file_open): Update this function, to open
16302         a MonoImage as a non-refonly image.
16303         (mono_image_close): Use the refonly variable inside
16304         MonoImage to remove the image from the correct caches.
16305
16306         * image.h: Add the signatures of mono_image_open_full,
16307         mono_image_open_from_data_full, mono_image_loaded_full,
16308         mono_image_loaded_by_guid_full.
16309
16310         * metadata-internals.h: Add the ref_only field to 
16311         MonoImage.
16312         
16313 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
16314
16315         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
16316         Fix the last behavior, which used to load the assemblies and
16317         extract MonoReflectionAssemblyName information, instead of
16318         extract it from the metadata tables. Needed for Reflection
16319         Only assemblies.
16320         
16321 2005-07-29  Martin Baulig  <martin@ximian.com>
16322
16323         * mono-debug-debugger.c
16324         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
16325         not initialized.
16326
16327         * mono-debug.c
16328         (mono_debug_address_from_il_offset): Check whether we have
16329         debugging support before attempting to take the lock.
16330         (mono_debug_source_location_from_address): Likewise.
16331         (mono_debug_source_location_from_il_offset): Likewise.
16332         (mono_debug_il_offset_from_address): Likewise.
16333         (mono_debug_address_from_il_offset): Likewise.
16334
16335 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
16336
16337         * class.c (mono_class_from_name_case): Add support for dynamic images.
16338         Fixes #75650.
16339
16340         * object.c (mono_class_compute_gc_descriptor): Add a workaround
16341         for #75479.
16342
16343 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
16344         
16345         * reflection.c (mono_method_get_object): Fix warning.
16346
16347 2005-07-28  Martin Baulig  <martin@ximian.com>
16348
16349         * mono-debug.c
16350         (mono_debug_add_wrapper): Also write the wrapper type.
16351
16352 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
16353
16354         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
16355         
16356         * class.c (mono_class_init): Avoid reading nested classes if the AOT
16357         data indicates the class has none.
16358
16359 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
16360
16361         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
16362         loader lock with the debugger lock. Prevents deadlocks for beagle.
16363
16364         Beagle can now run on an smp box for a weekend without any
16365         issues. Woohoo!
16366
16367 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
16368
16369         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
16370         in a module. Fixes #75629.
16371
16372 2005-07-26  Martin Baulig  <martin@ximian.com>
16373
16374         * mono-debug.c (mono_debug_add_wrapper): New static method.
16375         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
16376         interncall or a wrapper.
16377
16378         * mono-debug.h (MonoDebugWrapperData): New public typedef.
16379         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
16380         (MONO_DEBUGGER_VERSION): Bump to 51.
16381
16382         * mono-debug-debugger.c
16383         (mono_debugger_add_type): Removed this empty function.
16384         (mono_debugger_add_method): Likewise.
16385
16386 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
16387
16388         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
16389         before accessing method->slot.
16390
16391 2005-07-21  Jb Evain  <jbevain@gmail.com>
16392
16393         * reflection.c (method_encode_clauses/class): Handle filters clauses.
16394         Fixes #75010.
16395
16396 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
16397
16398         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
16399         #75587.
16400
16401 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
16402
16403         * image.h image.c: Add mono_image_get_guid () API function.
16404
16405 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
16406
16407         There were issues when multiple threads tried to load
16408         assemblies. A deadlock was created between assemblies_mutex and
16409         mono_domain_assemblies_lock. This fixes the issue by making the
16410         assembly ref counting be lock free. See bug 75586.
16411         
16412         * image.c (mono_image_close): The add ref function here was using
16413         Interlocked operations while the unref was using a mutex and a
16414         --. I don't think this was ever a bug that would be exposed in a
16415         non-pendantic way (ie, by an embedder doing a ref on one thread
16416         and an unref on another), but for the sake of correctness, this is
16417         now Interlocked.
16418
16419         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
16420         (mono_assembly_load_reference): Call mono_assembly_addref rather
16421         than touching the refcount ourselves.
16422         (mono_assembly_close): Use InterlockedDecrement to unref the
16423         assembly. Don't acquire the lock unless it is actually needed.
16424
16425 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
16426
16427         * class.c (mono_class_layout_fields): Fix calculation of has_references
16428         for generic types.
16429
16430 2005-07-12  Martin Baulig  <martin@ximian.com>
16431
16432         Applying a patch from Michal Moskal <malekith@nemerle.org>.
16433
16434         * metadata.c
16435         (mono_type_hash): Provide better hashing for generic instances.
16436         (mono_generic_inst_hash): Improve hashing.
16437         (mono_generic_class_hash): Likewise.
16438
16439         * reflection.c (mymono_metadata_type_hash): Improve hashing for
16440         generic instances.
16441
16442 2005-07-12  Martin Baulig  <martin@ximian.com>
16443
16444         * reflection.c (mono_reflection_create_runtime_class): Remove the
16445         hack for generic type definitions and non-`Run' assemblies.
16446         (mono_reflection_bind_generic_parameters): Also use
16447         `klass->wastypebuilder' to check for TypeBuilders.
16448
16449 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
16450
16451         * class.c (mono_class_layout_fields): Fix calculation of has_references
16452         for generic types.
16453
16454         * class.c (inflate_generic_class): Fix a leak.
16455         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
16456         for generic types.
16457
16458 2005-07-11  Martin Baulig  <martin@ximian.com>
16459
16460         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
16461         on error.
16462
16463 2005-07-11  Martin Baulig  <martin@ximian.com>
16464
16465         * loader.c (find_method): Also lookup in
16466         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
16467
16468 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
16469
16470         * appdomain.c (mono_domain_unload): Don't free the error message
16471         before passing it to mono_get_exception_...
16472
16473         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
16474         
16475 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
16476
16477         * threads.c: try to better guess an available RT signal (bug #75387).
16478
16479 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
16480
16481         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
16482         and CACHE_OBJECT.
16483
16484 2005-07-07  Martin Baulig  <martin@ximian.com>
16485
16486         * class.c (mono_type_get_name_full): Return NULL for
16487         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
16488         fixes #75408.
16489
16490 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
16491
16492         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
16493         exit the appdomain as well being aborted.
16494
16495         * threadpool.c: Create all threadpool threads inside the root appdomain, and
16496         change back to the root domain after calling managed code. This enables
16497         appdomains using threadpools to be unloaded.
16498
16499 2005-07-07  Martin Baulig  <martin@ximian.com>
16500
16501         * class-internals.h
16502         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
16503         into `MonoDynamicGenericClass' since we only need it for dynamic
16504         types.
16505
16506         * reflection.c (mono_class_bind_generic_parameters): We don't need
16507         to compute the `parent' here.
16508
16509 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
16510
16511         * culture-info-table.h : regenerated.
16512
16513 2005-07-06  Martin Baulig  <martin@ximian.com>
16514
16515         * icall.c
16516         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
16517
16518         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
16519
16520 2005-07-06  Martin Baulig  <martin@ximian.com>
16521
16522         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
16523         we're doing a signature-only comparision; fixes #74945.
16524
16525 2005-07-06  Martin Baulig  <martin@ximian.com>
16526
16527         * class-internals.h (MonoGenericClass): Moved some things out into
16528         a new `MonoInflatedGenericClass' type.  
16529         (MonoInflatedGenericClass): New type; the `klass' of a
16530         `MonoGenericClass' is now computed lazyly in
16531         mono_get_inflated_generic_class().      
16532
16533         * class.c (mono_get_inflated_generic_class): New public function.
16534         (mono_class_inflate_generic_method): Removed the unused
16535         `MonoClass *' argument.
16536         (setup_generic_vtable): Don't call mono_get_inflated_method() on
16537         all the methods.
16538         (mono_class_create_generic): Make this static and merge it with
16539         mono_class_create_generic_2(); we're now called automatically from
16540         mono_get_inflated_generic_class().
16541
16542         * loader.c (mono_method_signature): Call
16543         mono_get_inflated_method() here.
16544
16545 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
16546
16547         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
16548         type of fields with RVA.
16549
16550         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
16551         for this pseudo class.
16552         (my_mono_class_from_generic_parameter): Likewise.
16553         (mono_class_init): Allow interfaces to have cctors.
16554
16555 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
16556
16557         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
16558         lazily for AOT methods.
16559
16560 2005-07-05  Martin Baulig  <martin@ximian.com>
16561
16562         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
16563         returns FALSE for a successful match, not TRUE.
16564
16565 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
16566
16567         * loader.c (mono_method_get_index): Optimize this a bit.
16568
16569 2005-07-04  Martin Baulig  <martin@ximian.com>
16570
16571         * class.c
16572         (class_compute_field_layout): Move the check for generic type
16573         definitions into mono_class_layout_fields().  Fixes #74684.
16574         (mono_class_from_generic_parameter): Correctly compute
16575         `klass->parent'; fixes #75457.
16576
16577         * reflection.c (register_assembly, register_module): Make sure
16578         `domain->rejobject_hash' is already created.
16579
16580 2005-07-02  Martin Baulig  <martin@ximian.com>
16581
16582         * class-internals.h
16583         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
16584         `MonoDynamicGenericClass'.      
16585
16586 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
16587
16588         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
16589         returned by a field getter is null, since null is a valid value.
16590
16591 2005-07-01  Martin Baulig  <martin@ximian.com>
16592
16593         * reflection.c (mono_reflection_generic_class_initialize): Update
16594         the `dgclass->fields [i].parent' to the correct class.
16595         (mono_image_get_fieldref_token): Use the declaring type, not the
16596         reflected type.
16597
16598 2005-07-01  Martin Baulig  <martin@ximian.com>
16599
16600         * loader.c (find_method): Also look in the interfaces; fixes #75429.
16601
16602 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
16603
16604         * threads.c (thread_cleanup): assert that thread != NULL
16605         (wait_for_tids_or_state_change): We were using the wrong variable
16606         when accessing wait->threads. `i' was always out of the bounds of
16607         the array.
16608
16609 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16610
16611         * loader.c: map user32 and kernel32 to libMonoSupportW
16612
16613 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
16614
16615         * appdomain.c (unload_thread_main): Mark this as WINAPI.
16616
16617 2005-06-28  Martin Baulig  <martin@ximian.com>
16618
16619         * loader.c (method_from_methodspec): Fix #75334.
16620
16621 2005-06-28  Martin Baulig  <martin@ximian.com>
16622
16623         Fix #74953 - Arrays now implement the generic IList<T> interface
16624         on the 2.0 platform.
16625
16626         * class-internals.h (MonoDefaults): Added `generic_array_class'.
16627
16628         * reflection.c (mono_class_bind_generic_parameters): New public
16629         function; similar to mono_reflection_bind_generic_parameters(),
16630         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
16631
16632         * domain.c (mono_init_internal): Try to initialize.
16633         `mono_defaults.generic_array_class' here; this'll only succeed if
16634         we're using the 2.0 corlib.
16635
16636         * icall.c
16637         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
16638         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
16639         (mono_lookup_internal_call): Added support for nested classes.
16640
16641         * loader.c
16642         (mono_get_method_from_token): Set `result->signature->pinvoke' if
16643         we're an interncall and have generic arguments.
16644
16645         * class.c
16646         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
16647         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
16648         instance of System.Array.InternalArray<T> for arrays, so they
16649         implement the generic IList<T> interface.
16650
16651 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
16652
16653         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
16654         (chastamar@yahoo.com). Fixes #75374.    
16655
16656 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
16657
16658         * culture-info-table.h: regenerated.
16659
16660 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16661
16662         * icall.c: handle spaces correctly for base64 strings.
16663
16664 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
16665
16666         * *.c: Kill some warnings.
16667
16668 2005-06-23  Duncan Mak  <duncan@novell.com>
16669
16670         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
16671         that this builds on Solaris 10 (x86).
16672
16673 2005-06-23  Martin Baulig  <martin@ximian.com>
16674
16675         * class.c
16676         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
16677         generic type definitions.
16678
16679 2005-06-23  Martin Baulig  <martin@ximian.com>
16680
16681         Fix #75331.
16682
16683         * metadata.c (mono_class_get_overrides): Renamed to
16684         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
16685         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
16686         pass it to mono_get_method_full().
16687
16688 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
16689
16690         * reflection.c (mono_reflection_create_runtime_class): take the
16691         mono_domain_lock in this method. Prevents deadlocks
16692
16693 2005-06-22  Martin Baulig  <martin@ximian.com>
16694
16695         * loader.c (method_from_methodspec): Fix #75330.
16696
16697 2005-06-22  Martin Baulig  <martin@ximian.com>
16698
16699         * reflection.c (type_get_qualified_name): Use
16700         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
16701         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
16702         argument; use it if we don't have an assembly name.
16703
16704 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
16705
16706         * object.c: In mono_message_init, set "copy out" flag for in
16707         parameters with the [Out] flag.
16708
16709 2005-06-21  Martin Baulig  <martin@ximian.com>
16710
16711         * class.c
16712         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
16713         and MONO_TYPE_PTR.
16714
16715 2005-06-21  Martin Baulig  <martin@ximian.com>
16716
16717         * class.c (mono_class_init): Don't initialize `class->fields' for
16718         generic instances since they're initialized again in
16719         compute_field_layout(). 
16720         (compute_field_layout): Set the field's `generic_info' here; fix
16721         #75320. 
16722
16723 2005-06-21  Martin Baulig  <martin@ximian.com>
16724
16725         * class-internals.h
16726         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
16727
16728         * metadata.c (mono_metadata_generic_method_equal): Also
16729         distinguish the `generic_class'; fixes #75334.
16730
16731 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16732
16733         * domain.c:
16734         * appdomain.c:
16735         * domain-internals.h:
16736         * reflection.c: 'domain_assemblies' field is now protected by its own
16737         lock. Don't call into managed code to run the AssemblyLoad event if we
16738         now there are no registered delegates for it.
16739
16740 2005-06-20  Martin Baulig  <martin@ximian.com>
16741
16742         * class.c (mono_class_is_assignable_from): Use a custom version of
16743         mono_class_has_parent() to make things work for generic instances;
16744         fix #75300.
16745
16746 2005-06-20  Martin Baulig  <martin@ximian.com>
16747
16748         * loader.c (method_from_methodspec): Apply a patch from
16749         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
16750
16751 2005-06-20  Martin Baulig  <martin@ximian.com>
16752
16753         * class.c (mono_class_init): Reverted Zoltan's last change; it
16754         breaks generics.
16755
16756 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
16757
16758         * threads.c (wait_for_tids_or_state_change): Add missing locking.
16759
16760 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16761
16762         * socket-io.c: fix the index in the socket array for writable/error
16763         sockets. Fixes bug #75306.
16764
16765 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
16766
16767         * class.c (mono_class_init): Allow interfaces to have static ctors.
16768
16769 2005-06-17  Martin Baulig  <martin@ximian.com>
16770
16771         * loader.c (method_from_methodspec): Use `context->container' when
16772         parsing the `gmethod->inst'.
16773
16774 2005-06-17  Martin Baulig  <martin@ximian.com>
16775
16776         * class.c (mono_type_get_name_recurse): Don't add the assembly
16777         name for type arguments.
16778
16779 2005-06-15  Martin Baulig  <martin@ximian.com>
16780
16781         * reflection.c (mono_image_get_inflated_method_token): Encode
16782         correct klass; fixes #75260.
16783
16784 2005-06-13 Michal Moskal <malekith@nemerle.org>
16785
16786         * icall.c: Make GetCorrespondingMethod/Constructor take
16787         MonoReflectionMethod method not MonoMethod. Removed
16788         MonoType.GetCorrespondingField, and make
16789         MonoGenericType.GetCorrespondingField take name not
16790         MonoClassField.
16791
16792 2005-06-13  Michal Moskal <malekith@nemerle.org>
16793
16794         * reflection.c (field_encode_signature, encode_locals):
16795          Make sizes of buffers for types larger (for big generic types).
16796          (create_generic_typespec,
16797          mono_reflection_sighelper_get_signature_local,
16798          mono_reflection_sighelper_get_signature_field):
16799          Add asserts for too small buffers.
16800
16801 2005-06-15  Martin Baulig  <martin@ximian.com>
16802
16803         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
16804         if our parent is not a dynamic type.
16805
16806 2005-06-15  Martin Baulig  <martin@ximian.com>
16807
16808         * class-internals.h (MonoTypeNameFormat): New enum.
16809
16810         * class.c
16811         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
16812         (mono_type_get_full_name): Removed.
16813         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
16814         argument instead of the boolean's.
16815
16816         * icall.c (ves_icall_System_MonoType_getFullName):
16817         Added `gboolean assembly_qualified'.    
16818
16819         * reflection.h
16820         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
16821
16822         * reflection.c (mono_reflection_parse_type): Parse the new type
16823         name format.
16824
16825 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16826
16827         * icall.c: no need to convert from utf16 to utf8 and then back again
16828         after the call to GetLogicalDrives.
16829
16830 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16831
16832         * icall.c: frombase64. Fix problems exposed by new tests.
16833
16834 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16835
16836         * icall.c: added internal calls for converting char [] and strings in
16837         base64 into byte [].
16838
16839 2005-06-10  Martin Baulig  <martin@ximian.com>
16840
16841         * class.c (mono_class_create_generic_2): Read the nested classes
16842         from the metadata rather than from `gklass->nested_classes' since
16843         `gklass' might not be initialized yet.
16844
16845 2005-06-09  Duncan Mak  <duncan@novell.com>
16846
16847         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
16848         all public headers. Fixes #74919.
16849
16850 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
16851
16852         * domain.c: The key for proxy_vtable_hash is now a pointer
16853         array. Added new GHashFunc and GCompareFunc functions for this.
16854
16855         * class.h: The list of interfaces in MonoRemoteClass is known in
16856         advance and can't grow (we create a new MonoRemoteClass if needed),
16857         so now the interface array can be allocated together with
16858         MonoRemoteClass.
16859         
16860         * object.c: Added a new method create_remote_class_key.
16861         Fixed mono_remote_class so it does not depend on
16862         mono_upgrade_remote_class.
16863         Removed extend_interface_array.
16864         Added new method clone_remote_class(), which makes a copy of a remote
16865         class and adds a new interface or class to it.
16866         mono_upgrade_remote_class() now creates a new remote class (or gets
16867         it from the cache) if an vtable upgrade is needed. In this way
16868         we make sure that other objects sharing the same remote class
16869         don't get the new vtable with unwanted interfaces.
16870         
16871         * object-internals.h:
16872         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
16873         
16874         * marshal.c: Track changes in mono_upgrade_remote_class().
16875
16876 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
16877         * icall.c: Add runtime methods for obtaining members of inflated
16878         class, which were created from supplied non-inflated members. It
16879         is used in internal Get{Method,Constructor,Field} methods in
16880         System.Type
16881
16882 2005-06-09  Martin Baulig  <martin@ximian.com>
16883
16884         * reflection.c
16885         (mono_reflection_bind_generic_method_parameters): Fix #75169.
16886
16887 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
16888         * reflection.c (mono_image_basic_init): Define
16889         Version in MonoDynamicAssembly. 
16890         
16891 2005-06-08  Martin Baulig  <martin@ximian.com>
16892
16893         Fix #75136.
16894
16895         * loader.c
16896         (mono_method_signature_full): New public method; takes a
16897         `MonoGenericContext *'.
16898         (find_method): Use mono_method_signature_full() and pass the
16899         klass'es context to it.
16900
16901         * class.c (mono_class_is_inflated_method): Use
16902         mono_method_signature_full() and pass the context to it.
16903
16904 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
16905
16906         * object.c: add proper locking in mono_remote_class_vtable(),
16907         fixes possible memory corruption.
16908
16909 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
16910
16911         * marshal.c (mono_remoting_marshal_init): set
16912         initialized after initialization.
16913
16914 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
16915
16916         * locales.c : hush.
16917
16918 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
16919
16920         * object.c (extend_interface_array): fix really silly
16921         memory corrupting / comparison bug.
16922
16923 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
16924
16925         * reflection.c: Functions added to support the creation
16926         of CustomAttributeData, which includes Attribute data
16927         used by ReflectionOnly methods.
16928
16929         * reflection.h:  mono_reflection_get_custom_attrs_data and
16930          mono_custom_attrs_data_construct added (functions exposed).
16931
16932          * icall.c: Added mono_reflection_get_custom_attrs_data
16933          as icall.
16934         
16935 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
16936
16937         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
16938         lupus's request.
16939
16940 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
16941
16942         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
16943
16944         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
16945         dynamic DllImportAttribute.
16946
16947         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
16948         dynamic DllImportAttribute.
16949
16950         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
16951         Fixes #75162.
16952
16953 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16954
16955         * threads.c: avoid segfault when an unstarted thread is aborted.
16956
16957 2005-06-05  KornĂ©l PĂ¡l <kornelpal@hotmail.com>
16958
16959         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
16960         Returns the name and version of the runtime for reporting.
16961
16962 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16963
16964         * appdomain.c: bump corlib version.
16965         * object-internals.h: new field in MonoReflectionAssembly.
16966
16967 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16968
16969         * object-internals.h: Carlos forgot to add this field.
16970
16971 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
16972
16973         * icall.c: Added create_version to create instances
16974         of Version of MonoReflectionAssemblyName. This change helps
16975         the AssemblyName tests to keep running fine.
16976         
16977 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
16978   
16979         * object.c (mono_method_return_message_restore): A somehow less
16980         intrusive fix for #75138.
16981
16982 2005-06-03  Raja R Harinath  <rharinath@novell.com>
16983
16984         * object.c (mono_method_return_message_restore): Fix computation
16985         of expected number of out args.
16986
16987 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
16988
16989         * reflection.c (mono_image_get_method_info): Fix the case when the
16990         charset is empty.
16991
16992 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
16993
16994         * object.c: Added missing null check in
16995           mono_method_return_message_restore.
16996
16997 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
16998
16999         * reflection.c (mono_image_get_method_info): Handle the case when
17000         dllentry is empty.
17001
17002 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
17003
17004         * object.c: When creating the vtable for a proxy, take into account
17005         all inherited interfaces, not only the ones registered in
17006         iclass->interfaces. This fixs bug #74996.
17007         Also, in mono_method_return_message_restore, verify that the array
17008         of out args has the expected lengh.
17009
17010 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17011
17012         * socket-io.c: update the timeout in Poll when the call is interrupte.
17013
17014 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17015
17016         * socket-io.c: support abort/suspend in Select_internal after last
17017         change.
17018
17019 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17020
17021         * threadpool.c: remove warning.
17022
17023 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17024
17025         * icall.c:
17026         * socket-io.[ch]: Select_internal uses poll() now when available, thus
17027         removing the 1024 limit from select(). Runtime part of the fix for
17028         bug #71203.
17029
17030 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17031
17032         * socket-io.c: when resolving the addresses for the same
17033         host returned by gethostname(), get the local IPs from the interface
17034         list. Loopback addresses are discarded if the are interfaces up with
17035         non-loopback ones. Fixes bug #63265.
17036
17037 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
17038
17039         * appdomain.c, verify.c, object-internals.h, reflection.c:
17040         bumped corlib number to 36, and added new extra_flags field
17041         to ReflectionMethodBuilder and friends.  Fixes #75060.
17042
17043 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
17044
17045         * gc.c: register a new weak link only if the object is non-null
17046         (fixes bug#75047).
17047
17048 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
17049
17050         * culture-info.h : short time pattern too.
17051
17052 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
17053
17054         * culture-info.h : expand long time pattern string length.
17055
17056 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
17057
17058         * culture-info-table.h : update (more French date format; #72788).
17059
17060 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
17061
17062         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
17063         the method is static. Fixes #75029.
17064
17065 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
17066
17067         * reflection.c: Update the table_idx field of method builders after
17068         saving the module, since it can change. This is a workaround for
17069         bug #74914. 
17070
17071 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
17072
17073         * culture-info-table.h : update (additional French date format).
17074
17075 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
17076
17077         * icall.c (ves_icall_type_Equals): Revert last change.
17078         
17079         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
17080
17081         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
17082
17083 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
17084
17085         * class-internals.h: Added executioncontext_class field to 
17086         MonoDefaults structure.
17087         * domain.c: Cache System.Threading.ExecutionContext class in 
17088         mono_defaults.
17089         * object.c: Capture the ExecutionContext for asynchroneous calls in
17090          mono_async_result_new.
17091         * object-internals.h: Added execution_context and original_context 
17092         fields to MonoAsyncResult. Added execution_context to MonoThread.
17093         * security-manager.c|.h: Added mono_get_context_capture_method to 
17094         return the capture method (if required by the security manager or by
17095         the framework version used).
17096         * threadpool.c: Apply capture (if present) ExecutionContext in 
17097         mono_async_invoke and revert to original context after it completes.
17098
17099 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
17100
17101         * culture-info-table.h : updated (real hacky solution for zh-CHT).
17102
17103 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
17104
17105         * culture-info-table.h : zh-CHT related workaround.
17106
17107 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
17108
17109         * marshal.c (emit_marshal_custom): Add some error checking and call the
17110         methods in the ICustomMarshaler interface. Fixes #74875.
17111         
17112         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
17113         native->managed wrappers.
17114
17115 2005-05-12  Martin Baulig  <martin@ximian.com>
17116
17117         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
17118         here and use the loader lock.
17119
17120         * mono-debug.c: Properly lock when the debugger is not attached.
17121         (mono_debug_init): Release the initial lock if we're not running
17122         in the debugger.
17123
17124 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
17125
17126         * marshal.c (emit_marshal_custom): Pass through NULL values without
17127         calling the custom marshalling routines.
17128
17129         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
17130         conversion in structures. Fixes #74882.
17131
17132 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
17133
17134         * culture-info-table.h : zh-* cultures were missing.
17135
17136 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
17137
17138         * threads.c: Added a new event background_change_event which is signaled
17139         when a thread changes its background mode.
17140         Moved here several checks previously done in managed code. The checks
17141         require the thread lock, and using the thread lock in managed code
17142         can result in deadlocks.
17143         Merged Start_internal and Thread_internal into a single method. Now 
17144         Thread_internal does all work of creating and starting a thread.
17145         Added icalls for setting and getting the state of the object. Moved from
17146         managed code to avoid locking there.
17147         Added wait_for_tids_or_state_change() which is called instad of
17148         wait_for_tids when waiting for non-backround threads to end. This method
17149         will return if one of the threads ends or the background_change_event
17150         is signaled.
17151         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
17152         the background mode. This method signals the background_change_event
17153         event.
17154         * icall.c:
17155         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
17156         removed Start_internal.
17157         
17158 2005-05-11  Martin Baulig  <martin@ximian.com>
17159
17160         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
17161         to order of some fields to get proper alignment on 64-bit machines.
17162
17163 2005-05-11  Martin Baulig  <martin@ximian.com>
17164
17165         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
17166         changes as they're broken and completely fuck up the debugger.
17167
17168         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
17169
17170 2005-05-10  Martin Baulig  <martin@ximian.com>
17171
17172         * reflection.c (mono_reflection_generic_class_initialize): Don't
17173         call mono_class_setup_parent() here.
17174
17175 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17176
17177         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
17178         send/receive timeout use an integer in milliseconds. We were using a
17179         struct timeval.
17180
17181 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17182
17183         * locales.c:
17184         (internal_get_cultures): reserve the first slot of the array for the
17185         InvariantCulture, which will be filled in managed code.
17186
17187 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
17188
17189         * reflection.c (mono_image_fill_module_table): Initialize the
17190         GENERATION field as well.
17191
17192 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17193
17194         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
17195         Monitor.Enter on the object.
17196
17197 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
17198
17199         * threads.c: Enable the wait for running threads when exiting.
17200         * icall.c: Suspend all threads before exiting.
17201
17202 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
17203
17204         * assembly.c (mono_assembly_load_reference): Fix warning.
17205
17206 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17207
17208         * threadpool.c: changed the default number of threads per cpu. From now
17209         on, the default will be 20 + (5 * number of cpus) instead of 50.
17210
17211 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
17212
17213         * loader.c (mono_method_get_signature_full): Add locking here.
17214
17215 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
17216
17217         * appdomain.c: Moved methods for parsing and freeing assembly
17218         names to assembly.c.
17219         * assembly.c, domain-internals.h: Created public methods for parsing
17220         assembly names. Fixed mono_assembly_load_with_partial_name:
17221         it now finds the best match, taking into account the version,
17222         token and culture specified in the partial name. Also return
17223         the latest version if no version information is specified.
17224
17225 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
17226
17227         * threadpool.c: replace check for SocketAsyncCall class.
17228
17229 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17230
17231         * threadpool-internals.h:
17232         * Makefile.am: added threadpool-internals.h
17233
17234         * threadpool.c: call mono_unhandled_exception on exceptions not handled
17235         that happen in threadpool threads (tested on MS).
17236         (mono_thread_pool_remove_socket): new function that dispatch any pending
17237         AIO call on a socket that is closing. By now only epoll really needs it,
17238         as select/poll wake up when the socket closes.
17239
17240
17241         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
17242
17243 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
17244
17245         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
17246
17247 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
17248
17249         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
17250
17251 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
17252
17253         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
17254         has an abort request, convert it into a suspend request.
17255
17256 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
17257
17258         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
17259         warning for the usage of `UnmanagedFunctionPointerAttribute' which
17260         is not supported yet.
17261
17262 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17263
17264         * image.c: register assemblies loaded from data (bundles) in the loaded
17265         assemblies hash. Fixes bug #74772.
17266
17267 2005-04-29  Martin Baulig  <martin@ximian.com>
17268
17269         * class.c (mono_type_get_name_recurse): Update to the new naming
17270         schema from the latest .NET 2.x beta2.
17271         (mono_class_setup_vtable_general): If we're a generic instance,
17272         copy the vtable from our generic type definition and inflate all
17273         the methods in it.
17274
17275         * loader.c (find_method): Update to the new naming schema from the
17276         latest .NET 2.x beta2.
17277
17278 2005-04-29  Raja R Harinath  <harinath@gmail.com>
17279
17280         * class.c (mono_class_init): Add a mono_loader_unlock to the
17281         #74734 fix.
17282
17283 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
17284
17285         * icall.c (ves_icall_System_Environment_Exit): Remove the 
17286         suspend_all_other_threads () call for the time being, since it can hang.
17287
17288         * threads.c (mono_thread_manage): Similarly, disable the waiting for
17289         the background threads to exit, since it can also hang.
17290
17291         * class.c (mono_class_init): Applied patch from Ankit Jain 
17292         (radical@gmail.com). Avoid pending init errors when a field refers
17293         to a nested class using a typeref. Fixes #74734.
17294
17295         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
17296         this for dynamic modules.
17297
17298 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17299
17300         * threads.c: don't wait for threads that are in the process of aborting
17301         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
17302         and waiting for background threads to finish. This makes xsp and
17303         mod-mono-server exit without random length delays and/or hangs.
17304
17305 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17306
17307         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
17308
17309 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
17310
17311         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
17312         dynamic types to prevent infinite loops. Fixes #74727.
17313
17314         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
17315         ..._is_assignable_to.
17316
17317 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
17318
17319         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
17320
17321 2005-04-25  Martin Baulig  <martin@ximian.com>
17322
17323         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
17324
17325         * domain.c
17326         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
17327
17328         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
17329
17330         * reflection.c (build_compressed_metadata): Set metadata header
17331         version to 2.0.
17332
17333 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
17334
17335         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
17336         number into an integral and a decimal part. Fixes #70473.
17337
17338         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
17339
17340 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
17341
17342         * culture-info-table.h : reflected the latest locale-builder output.
17343
17344 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17345
17346         * threadpool.c: check for SuspendRequested too when deciding if
17347         mono_thread_interruption_checkpoint should be called.
17348
17349 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17350
17351         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
17352         * threads.c: remove interruption_mutex and use Interlocked instead. When
17353         suspending all the threads, wait for all the suspended events at once.
17354         If we're shutting down and get an APC that is going to be queued,
17355         call mono_thread_execute_interruption immediately, as the thread might
17356         be sleeping on a pthread condition or mutex.
17357
17358         * icall.c: call mono_runtime_set_shutting_down before suspending the
17359         threads.
17360
17361         Fixes bug #74693. And now xsp is happier when exiting.
17362
17363 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
17364
17365         * loader.c (mono_stack_walk): Fix #74690.
17366
17367 2005-04-22  Martin Baulig  <martin@ximian.com>
17368
17369         * mono-debug.h (MonoDebugMethodJitInfo): Added
17370         `MonoDebugMethodJitInfo *jit'.
17371
17372         * mono-debug.c (mono_debug_read_method): Cache the
17373         MonoDebugMethodJitInfo in `address->jit'.
17374         (mono_debug_free_method_jit_info): New public method.
17375
17376 2005-04-22  Martin Baulig  <martin@ximian.com>
17377
17378         * class.c (mono_class_is_assignable_from): Disallow
17379         type parameter -> interface.
17380
17381 2005-04-21  Dick Porter  <dick@ximian.com>
17382
17383         * threads.c (mono_thread_create): Turn an assertion into an error.
17384
17385 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
17386
17387         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
17388         
17389         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
17390         Fix some gcc 4.0 warnings.
17391
17392 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
17393
17394         * file-io.c: fix alt dir separator char on unix systems
17395         and cleanup (fixes bug #71214).
17396
17397 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
17398
17399         * marshal.c: Use CALLVIRT instead of CALL when dispatching
17400         a call to a remote domain, since the method may be an
17401         interface method in the client domain. This fixes bug #74192.
17402
17403 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17404
17405         * threadpool.c: recv/send are now performed before going back to managed
17406         code to save one transition.
17407
17408 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17409
17410         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
17411
17412         * metadata/threadpool.c: removed hack to workaround the bug above.
17413
17414         Fixes bug #74618.
17415
17416 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
17417
17418         * reflection.c reflection.h: Fix handling of parameter defaults in
17419         dynamic methods. Also fixes handling of parameter attributes.
17420         Fixes #74609.
17421
17422         * mono-debug.c (mono_debug_close_image): Fix warning.
17423
17424 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17425
17426         * socket-io.h: replaced old unused field with new 'blocking'.
17427         * threadpool.c: restore socket blocking state on windows(tm).
17428
17429 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
17430
17431         * icall.c: don't return the codebase in the AssemblyName[] returned by
17432         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
17433         * object-internals.h: Removed FIXME (fields were presents) and fixed
17434         versioncompat declaration.
17435
17436 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17437
17438         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
17439         not closed, so don't cleanup when it happens.
17440
17441 2005-04-13  Chris Toshok  <toshok@ximian.com>
17442
17443         * mono-debug-debugger.h: change prototype for
17444         mono_debugger_lookup_type.
17445
17446         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
17447         this function, although it should probably be named
17448         mono_debugger_init_type.
17449
17450 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17451
17452         * threadpool.c: fix non-AIO case.
17453
17454 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
17455
17456         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
17457         the built-in profiler to measure just JIT compilation times.
17458
17459 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17460
17461         * threadpool.c: the epollfd might be closed by another thread at
17462         any time, so ignore EBADF at treat it as a "we're closing" sign.
17463
17464 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17465
17466         * threadpool.c: release the semaphores with a count equals to the number
17467         of working threads in both IO and regular pools. Fixed typo that messed
17468         up the count of IO pool threads. Don't initialize the pipe handles if
17469         we're using epoll.
17470
17471 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17472
17473         * threadpool.c: some systems don't like a NULL when deleting the socket
17474         from epoll.
17475
17476 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17477
17478         * threadpool.c: fix semaphore allocation.
17479
17480 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17481
17482         * threadpool.c: added epoll() based implementation for asynchronous IO
17483         that is used instead of the default poll() when available.
17484         It can be disabled by setting MONO_DISABLE_AIO.
17485
17486 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17487
17488         * threadpool.c: windows needs 'closesocket' and instead of returning
17489         0 when the stream is closed while in select, it returns -1. Fixes bug
17490         #74573.
17491
17492 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
17493
17494         * class.c (class_compute_field_layout): Fix the regression caused by
17495         the previous try.
17496
17497 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17498
17499         * threadpool.c: separate pool for socket async. IO.
17500         * threadpool.h: mono_max_worker_threads is not a global any more.
17501
17502 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
17503
17504         * class.c (class_compute_field_layout): Fix #74549.
17505
17506 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17507
17508         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
17509         use 2 connected sockets instead.
17510
17511 2005-04-08  Miguel de Icaza  <miguel@novell.com>
17512
17513         * mono-config.c: Add new entry point for mkbundle
17514         mono_config_parse_memory. 
17515
17516 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17517
17518         * threadpool.c: removed another unused function.
17519
17520 2005-04-08  Ankit Jain  <radical@corewars.org>
17521
17522         * reflection.c (get_default_param_value_blobs): Add 'types'
17523         parameter to get the types encoded in the constant table.
17524         (mono_param_get_objects): Use the type from the constant table,
17525         not the type of the parameter, when creating default values.
17526         Handle null default values correctly.
17527
17528 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17529
17530         * file-io.c:
17531         * file-io.h:
17532         * threadpool.c:
17533         * threadpool.h:
17534         * icall.c:
17535         * socket-io.c: removed dead code for async IO.
17536
17537 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17538
17539         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
17540
17541         * threadpool.c: intercept socket async. calls and pass them to a thread
17542         that is polling and dispatching the job items to the threadpool as
17543         socket become ready. Fixes bugs #71217, #71933.
17544
17545         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
17546         between char and short/ushort arrays.
17547
17548         * socket-io.c: remove dead code.
17549
17550 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
17551
17552         * locales.c,
17553           icall.c : removed InternalToUpper_Comp() and
17554           InternalToLower_Comp().
17555
17556 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
17557
17558         * char-conversions.h : The tables were incorrectly generated. Should
17559           be generated against invariant culture.
17560
17561 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
17562
17563         * object.c (mono_runtime_invoke_array): Fix return value when 
17564         passing pre-created valuetype objects to ctors.
17565
17566         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
17567         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
17568         Fixes #74338.
17569
17570 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
17571
17572         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
17573         only used with --security and hides the wrong corlib version error.
17574
17575 2005-03-30  Joshua Tauberer  <tauberer@for.net>
17576
17577         * class.c: Changed mono_class_name_from_token so that types
17578         outside of a namespace don't have an initial period.  Improved
17579         the g_warning message used in _mono_class_get when loading
17580         fails.
17581         * assembly.c: In mono_assembly_load_reference, when an assembly
17582         can't be found, "No such file or directory" is misleading and
17583         unhelpful because a few paths were checked for the presence of
17584         the assembly.  When that happens (ENOENT), display a nicer
17585         message indicating the directories that were searched.  In all
17586         cases, the warning is made easier to read for non-hackers.
17587
17588 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
17589
17590         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
17591         project/solution.
17592         * appdomain.h|domain.c: Removed inline from functions.
17593         * appdomain.c: Reduced warnings when compiling on windows.
17594         * icall.c: Fixed output_debug declaration to gunichar2*.
17595         * mono-config.c: Reduced warnings when compiling on windows.
17596         * rand.c: Added missing "windows.h". Added missing return value.
17597         * rawbuffer.c: Added missing winsock2.h for windows.
17598         * sysmath.h: Added mono-compiler.h header to allow/ease 
17599         compilation with non-GCC compilers.
17600         * threads.c: Fixed declarations to compile with VS.NET C compiler.
17601         Removed cast warnings.
17602
17603         Adapted from the work of J Lothian (for VC6).
17604
17605 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
17606
17607         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
17608         from default_path.
17609
17610 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
17611
17612         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
17613         the 2.0 profile.
17614
17615 2005-03-27  Raja R Harinath  <harinath@gmail.com>
17616
17617         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
17618         has to be in $(exec_prefix).  $(prefix) is for arch-independent
17619         stuff, and it would probably use $(prefix)/share rather than
17620         $(prefix)/lib.
17621
17622 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17623
17624         * console-io.c: added 2 includes that might be missing.
17625
17626 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
17627
17628         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
17629         profile.
17630
17631         * reflection.c (create_custom_attr): Allocate the params array using
17632         alloca so it gets GC tracking.
17633
17634 2005-03-23  Chris Toshok  <toshok@ximian.com>
17635
17636         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
17637         out some spew.
17638
17639 2005-03-24  Raja R Harinath  <rharinath@novell.com>
17640
17641         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
17642         changes to pick up any changes in prefix, etc.
17643
17644 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
17645
17646         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
17647         
17648         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
17649         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
17650
17651 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
17652
17653         * class-internals.h object-internals.h class.c reflection.c: Extend the
17654         mono_lookup_dynamic_token () function to return the class of the
17655         token as well. 
17656
17657         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
17658         well. Fixes #73848.
17659
17660 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
17661
17662         * security-manager.c: Skip inheritance checks for intra-corlib
17663         class inheritance and method overrides. This skips a lot of checks
17664         and (anyway) permissions cannot work until corlib is loaded.
17665
17666 2005-03-23  Martin Baulig  <martin@ximian.com>
17667
17668         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
17669         MONO_TYPE_GENERICINST.  
17670
17671 2005-03-23  Martin Baulig  <martin@ximian.com>
17672
17673         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
17674
17675 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
17676
17677         * class.c: added locking comments to some functions.
17678         Cache the interface offsets arrays (saves about 20 KB
17679         of runtime memory in a typical app).
17680         Reduce the time overhead in mono_class_setup_supertypes ().
17681
17682 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
17683
17684         * icall.c: speedup and fix leaks in GetMethodsByName and
17685         GetPropertiesByName.
17686
17687 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
17688
17689         * reflection.c: some locking fixes.
17690
17691 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
17692
17693         * metadata.c: added missing break in case statement.
17694
17695 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
17696
17697         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
17698         typedbyref return values. Fixes #73941.
17699
17700 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
17701
17702         * security-manager.c|h: Added demandunmanaged method and 
17703         suppressunmanagedcodesecurity class to MonoSecurityManager.
17704         Renamed aptc class to allowpartiallytrustedcallers.
17705
17706 2005-03-17  Martin Baulig  <martin@ximian.com>
17707
17708         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
17709
17710 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17711
17712         * file-io.c: disabled file async. IO using aio_*. It uses the
17713         threadpool now. Workaround for bug #73718.
17714
17715 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
17716
17717         * assembly.h, mono-config.c: added code to deal with bundled configs
17718         for bundled assemblies.
17719
17720 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
17721
17722         * *.c, private.h: cleanup, removing old private.h header file.
17723
17724 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
17725
17726         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
17727         and throw_on_unmappable_char attributes.
17728
17729 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
17730
17731         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
17732         _ProcessName_internal.
17733
17734 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
17735
17736         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
17737         #73631.
17738
17739         * icall.c threads.c threads-types.h: Remove slothash icalls as they
17740         are no longer used.
17741
17742 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
17743
17744         * object.c (compute_class_bitmap): Add support for generics. Fixes
17745         #73527.
17746
17747 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
17748
17749         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
17750
17751 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17752
17753         * filewatcher.c: commented out the code for windows watcher, as we don't
17754         use it (we use the managed implementation instead).
17755
17756 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
17757
17758         * object-internals.h (MonoThread): Remove 'unused1' field.
17759
17760         * appdomain.c: Bump corlib version.
17761
17762         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
17763
17764         * reflection.c (mono_reflection_create_runtime_class): Remove the
17765         AssemblyBuilder.Save optimization since it causes too many problems.
17766
17767 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
17768
17769         * exception.c|h: Added mono_get_exception_reflection_type_load to
17770         create a ReflectionTypeLoadException object.
17771         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
17772         to return NULL is a InheritanceDemand fails during reflection. Updated
17773         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
17774         ReflectionTypeLoadException if an InheritanceDemand fails during 
17775         reflection. Added icall mapping for GetLinkDemandSecurity.
17776         * security-manager.c|h: Added ves_icall_System_Security_
17777         SecurityManager_GetLinkDemandSecurity internal call to return the
17778         class and methods permissions set for a LinkDemand. Removed unused
17779         fields in MonoSecurityManager.
17780
17781 2005-03-10  Martin Baulig  <martin@ximian.com>
17782
17783         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
17784         it's a generic instance.
17785
17786 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
17787
17788         * reflection.c (mono_get_object_from_blob): Applied patch from
17789         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
17790
17791         * class.c (mono_class_is_assignable_from): Another try at fixing 
17792         #73469 without breaking anything.
17793
17794 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
17795
17796         * class.c: (mono_class_is_assignable_from): Revert the last changes
17797         since they don't work with generics.
17798         
17799         * class.c (mono_class_is_assignable_from): Fix build bustage.
17800
17801         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
17802         the managed IsAssignableFrom method. Fixes #73469.
17803
17804         * reflection.c (mono_reflection_call_is_assignable_from): New helper
17805         function.
17806
17807 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
17808
17809         * object.c (mono_load_remote_field_new): Fix returning uninitialized
17810         memory when the remoting callback does not sets the out arguments.
17811         Fixes #73007.
17812
17813         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
17814         by mistake.
17815
17816         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
17817
17818         * object-internals.h (MonoStackFrame): Sync with managed object layout.
17819
17820         * appdomain.c: Bump corlib version.
17821
17822 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
17823
17824         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
17825         function.
17826
17827         * threads.c (mono_thread_attach): Detect threads which are not started
17828         by the GC pthread wrappers.
17829
17830 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
17831
17832         * icall.c: Added new icall for RNG.
17833         * rand.c|h: Added new icall to open the RNG. This allows to share a 
17834         single handle on Linux to access /dev/urandom and fix #73183.
17835
17836 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
17837
17838         * object.c: setting the new vtable in a transparent proxy object must
17839         not change the GC descriptor.
17840
17841 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
17842
17843         * object.c: fixed compilation without GCJ support.
17844         * reflection.c: for runtime-created types ensure klass->has_references
17845         is correct (bug #73215).
17846
17847 2005-03-02  Martin Baulig  <martin@ximian.com>
17848
17849         * class.c (mono_class_is_assignable_from): Make this work if
17850         `oklass' is a generic instance; fixes #72831.
17851
17852 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
17853
17854         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
17855         with hasthis set.
17856         
17857         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
17858
17859         * marshal.c: Reorganize native->managed marshalling code to also use
17860         the emit_marshal_... functions.
17861
17862 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
17863
17864         * object.c: typed allocs have issues with bitmap sizes > 30,
17865         so check for max_set >= 30.
17866
17867 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
17868
17869         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
17870         managed code. Fixes #73012.
17871
17872         * metadata.h (MonoMarshalSpec): Add elem_mult field.
17873
17874         * metadata.c reflection.c: Load/Emit elem_mult as well.
17875         
17876         * metadata.h (MonoMarshalSpec): Add comment.
17877
17878         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
17879
17880         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
17881         num_elem to -1 if not given.
17882
17883         * object-internals.h (MonoReflectionMarshal): Add has_size field.
17884
17885         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
17886         given values.
17887
17888 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
17889
17890         * null-gc.c (mono_gc_free_fixed): Was not compilable.
17891
17892 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
17893
17894         * reflection.c (encode_marshal_blob): Encode param_num field as well.
17895
17896         * object-internals.h (MonoReflectionMarshal): Add param_num field.
17897
17898 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
17899
17900         * object.c: generalized the reference bitmap creation
17901         and added hooks for the new GC.
17902         * class-internals.c: removed the gc_bitmap field from MonoClass.
17903
17904 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
17905
17906         * domain.c: help the compiler to produce better code
17907         in mono_jit_info_table_find ().
17908
17909 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
17910
17911         * object.c: make all allocations look typed.
17912
17913 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
17914
17915         * socket-io.c: load Mono.Posix if it's not loaded already
17916         (fixes bug#73033).
17917
17918 2005-02-24  Martin Baulig  <martin@ximian.com>
17919
17920         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
17921         * reflection.c (dup_type): Likewise.
17922
17923 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
17924
17925         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
17926         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
17927
17928 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
17929
17930         * domain.c, threads.c, object-internals.h: make the critical thread
17931         local vars use the fast access mode (even when we're compiled in
17932         a lib). Provide accessors to be used by the jit during codegen.
17933
17934 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
17935
17936         * appdomain.c: Changed hook functios behavior to include
17937         support for the reflection only assemblies. Some icalls were changed
17938         to support the mentioned assemblies too. Signatures of static methods
17939         try_assembly_resolve and real_load now have an additional parameter:
17940         refonly.
17941
17942         * assembly.c: General changes to mono_assembly_ methods to support
17943         reflection only api. Functions mono_assembly_open, mono_assembly_load,
17944         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
17945         suffix, to support an additional gbool parameter to specify whether
17946         the assembli is reflection only or not. Created some new hook functions 
17947         to add support for reflection only assemblies. Signatures of static 
17948         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
17949         have now an additional parameter: refonly.
17950
17951         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
17952         indicating whether the assembly is reflection only or not.
17953
17954         * exception.c: Add mono_get_exception_invalid_operation.
17955
17956         * icall.c: Throw an InvalidOperationException when trying to invoke
17957         a property/method/event, or trying to set/get the value of a field.
17958         Also add an icall to retrieve the ref_only flag to the
17959         MonoReflectionAssembly.
17960
17961 2005-02-23  Chris Toshok  <toshok@ximian.com>
17962
17963         Part of fix for #72827.
17964         * mono-debug.c (mono_debug_add_method): add lexical block data to
17965         the info we write.  Kind of a hack at the moment - we copy the
17966         lexical block info from the MonoDebugMethodInfo to the
17967         MonoDebugMethodJitInfo here, before writing it.
17968         (mono_debug_read_method): read the lexical block info.
17969
17970         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
17971
17972         * debug-mono-symfile.h: add lexical block support.
17973
17974         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
17975         support.
17976
17977 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
17978
17979         * loader.c (mono_lookup_pinvoke_call): Fix warning.
17980
17981         * object.c (mono_runtime_free_method): Call mono_free_method () and
17982         put the TODOs there.
17983
17984         * loader.c (mono_free_method): Free up most memory allocated for 
17985         dynamic methods.
17986
17987 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
17988
17989         * reflection.c: properly flag a Type argument to a
17990         named custom attr value (bug #72248).
17991
17992 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
17993
17994         * reflection.c: reduce code duplication in named custom
17995         attribute encoding.
17996
17997 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
17998
17999         * reflection.c: properly encode custom attrs of type object
18000         (bug #72649).
18001
18002 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
18003
18004         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
18005
18006 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
18007
18008         * socket-io.c: load System.dll if it's not loaded already
18009         (bug #72850 and #70477).
18010
18011 2005-02-21  Martin Baulig  <martin@ximian.com>
18012
18013         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
18014         generic instances.
18015
18016 2005-02-21  Martin Baulig  <martin@ximian.com>
18017
18018         * reflection.c (mono_image_build_metadata): We also need to
18019         "fixup" the MethodImpl table after we computed the final method
18020         indices.  Call fixup_methodimpl() to do that.
18021         (fixup_methodimpl): New private method.
18022
18023 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
18024
18025         * assembly.c: special case mscorlib.dll (bug#72536),
18026         patch from Carlos Alberto Cortez.
18027
18028 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
18029
18030         * threads-types.h threads.c: Fix build bustage.
18031
18032         * threads.c: Use a union for long<->double conversions.
18033
18034         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
18035         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
18036
18037         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
18038         containing the checkpoint call with NOT_TAKEN.
18039         
18040         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
18041         checkpoint before pushing the arguments, so they won't have to be
18042         spilled to stack.
18043
18044 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
18045
18046         * domain.c, assembly.c, domain-internals.h: make some data
18047         const and relocation-free.
18048
18049 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
18050
18051         * object.c, appdomain.c, class-internals.h: introduce the
18052         MonoClassRuntimeInfo structure to hold the info needed to
18053         use a class at runtime. Made mono_class_vtable() lock-free
18054         for all the appdomains.
18055
18056 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
18057
18058         * metadata-internals.h, image.c: introduce a per-image mempool to
18059         be used for memory that has the same lifetime as the image.
18060
18061 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
18062
18063         * domain.c: In mono_init_internal(), instead of selecting the first
18064         runtime version supported by an executable, get a list of all
18065         supported versions and select the one for which an mscorlib exists
18066         (since even if the runtime supports a given version, it doesn't mean
18067         that the framework for that version is installed).
18068         Modified get_runtimes_from_exe to support this behavior.
18069         In supported_runtimes, added information about additional system
18070         assembly versions.
18071         
18072         * assembly.c: Added support for more than one system assembly version
18073         per runtime version. Updated the assembly list.
18074         In mono_assembly_remap_version, removed the initial version check,
18075         since we don't know to which version we need to compare until we
18076         get the version set on which the assembly is based.
18077         Moved the code for loading corlib into the new method
18078         mono_assembly_load_corlib(), so it can be used by the initialization
18079         code.
18080         
18081         * domain-internals.h: Updated data structures and added declaration
18082         for mono_assembly_load_corlib.
18083
18084 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
18085
18086         * reflection.c (resolve_object): Fix the creation of the signature in 
18087         the SignatureHelper case.
18088
18089         * assembly.c (mono_assembly_remap_version): Fix binary search.
18090         
18091 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
18092  
18093         * class.c: Added inheritance check when a method is overloaded (from a
18094         virtual method or when implementing an interface) and when a class is
18095         inherited. Added functions to set a failure for a class and to 
18096         retreive the exception from a failure.
18097         * class-internals.h: Added fields to MonoClass to keep the exception
18098         information status for inheritance (or other exceptions) to be thrown
18099         later (i.e. not at load time).
18100         * object.c: Throw the inheritance SecurityException when a type is to 
18101         be created with either class or method inheritance violations.
18102         * reflection.c|h: Fix when getting declsec from a class. Removed 
18103         unrequired code for class. Improved sanity in parameter naming.
18104         * security-manager.c|h: Added functions to check for class and method
18105         inheritance.
18106
18107 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
18108
18109         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
18110         and has_finalize in dynamic types as well.
18111
18112 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
18113
18114         * culture-info-table.h : fixed currency format for en-GB (and so on).
18115
18116 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
18117
18118         * gc.c: ensure the GC handles never have 0 as a value.
18119
18120 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
18121
18122         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
18123         a pointer to a struct to unmanaged code. Fixes #72625.
18124
18125 2005-02-16  Martin Baulig  <martin@ximian.com>
18126
18127         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
18128
18129 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
18130
18131         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
18132
18133 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
18134
18135         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
18136
18137         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
18138         UnmanagedFunctionPointerAttribute, use it for determining calling convention
18139         etc. Fixes #71471.
18140
18141         * reflection.c (mono_custom_attrs_get_attr): New helper function.
18142
18143         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
18144
18145 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
18146
18147         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
18148         changes to make the current context a field in MonoThread.
18149
18150 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
18151
18152         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
18153         the last change.
18154         
18155         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
18156         extracted from mono_marshal_get_native_wrapper.
18157
18158         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
18159         to create wrappers around native functions.
18160
18161         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
18162         delegates for arbitrary function pointers. Fixes #71472.
18163
18164 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
18165
18166         * threads.c: cleaned up the code a little.
18167
18168 2005-02-15  Martin Baulig  <martin@ximian.com>
18169
18170         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
18171         the data table.
18172
18173         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
18174         allocate larger chunks if needed.
18175
18176 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
18177
18178         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
18179         in by mistake.
18180
18181 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
18182
18183         * domain.c: keep the domains in an array and ensure the domain ids
18184         are kept small, so they can be used as indexes to domain-specific data
18185         with a small memory overhead.
18186
18187 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
18188
18189         * icall.c: Handle byref types in Type icalls. Fixes #72544.
18190
18191 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
18192
18193         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
18194
18195 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
18196
18197         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
18198
18199         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
18200         values.
18201
18202         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
18203         
18204 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
18205
18206         * domain-internals.h: add the hashtable here.
18207
18208         * class-internals.h: Remove `info' from MonoMethod
18209
18210         * domain.c: Add a new hashtable, jit_trampoline_hash
18211
18212 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
18213
18214         * object.c: don't set the value of static fields
18215         (fixes bug#72494).
18216
18217 2005-02-11  Martin Baulig  <martin@ximian.com>
18218
18219         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
18220         (mono_debug_add_method): Silently ignore the method if it's too big.
18221         (mono_debug_add_type): Likewise.
18222
18223 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
18224
18225         * threads.c, appdomain.c: remove #ifdefs from the code.
18226
18227 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
18228
18229         * metadata-internals.h: Added flags to MonoAssembly to cache the most
18230         common security informations. This allows us to stay in unmanaged code
18231         when doing LinkDemand and it's special cases (except for the first 
18232         time for initialization). The flags a very much used with --security.
18233         * reflection.c|h: Added code to get declarative security attributes 
18234         for LinkDemand and InheritanceDemand. This required to refactor the
18235         existing code for Demand.
18236         * security-manager.c|h: Added new method fields for the special cases
18237         of LinkDemand.
18238
18239 2005-02-10  Martin Baulig  <martin@ximian.com>
18240
18241         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
18242         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
18243
18244 2005-02-10  Martin Baulig  <martin@ximian.com>
18245
18246         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
18247         debugging code; this is almost a complete rewrite.
18248
18249         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
18250
18251 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
18252
18253         * domain.c, object.h: expose mono_string_equal () and 
18254         mono_string_hash ().
18255         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
18256         it's implemented in managed code.
18257
18258 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
18259
18260         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
18261         lo leak objects between appdomains.
18262
18263 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
18264
18265         * assembly.c: old compilers compilation fix from 
18266         robertj@gmx.net (Robert Jordan).
18267
18268 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
18269
18270         * class-internals.h: Little reminder for the future.
18271
18272         * debug-helpers.c: Fix up wrapper_type_names
18273
18274 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
18275
18276         * image.c, metadata-internals.h: when loading an image from a file,
18277         mmap all of it and use the same codepaths as when using a
18278         in-memory image: the code is simpler and we use less memory
18279         (both writable and readonly).
18280
18281 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
18282
18283         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
18284         API to alloc runtime data structures that need to be tracked by the
18285         GC and contain pointers.
18286         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
18287         make the code more readable and eventually use a different GC.
18288
18289 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
18290
18291         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
18292         for out arguments.
18293         
18294 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
18295
18296         * object.c: In release_type_locks(), don't release the cctor lock
18297         if it has already been released. This fixes a crash in the
18298         thread5 test.
18299
18300 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
18301
18302         * gc.c, marshal.c, icall.c: register a delegate for finalization
18303         only when the native function pointer has been allocated for it.
18304
18305 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
18306
18307         * object.c: cleaned up some code, allocate objects that are
18308         pointer free with the atomic malloc variant. Allocate memory
18309         for static data from the mempool if it's pointer-free.
18310         Allocate the bounds array at the end of the array data, when needed.
18311         * object-internals.h, object.h: move a private function in a private
18312         header.
18313         * class.c: handle missing case in tracking references in fields.
18314
18315 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
18316
18317         * class.c, class-internals.h: keep track if a type has
18318         reference fields in either the instance or static fields.
18319
18320 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
18321
18322         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
18323         and renamed to MonoRuntimeInfo. Added fields to store the expected
18324         framework assembly version. Changed mono_get_framework_version and
18325         mono_get_runtime_version for a single mono_get_runtime_info method.
18326         
18327         * assembly.c: Added method to remap system assembly versions to the
18328         current executing runtime version. Removed old mapping code.
18329         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
18330         
18331         * icall.c, reflection.c: Track api changes.
18332
18333 2005-02-06  Miguel de Icaza  <miguel@novell.com>
18334
18335         * loader.c (method_from_memberref): Improve error reporting,
18336         produce the class name instead of the typeref/typedef index. 
18337
18338 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
18339
18340         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
18341
18342 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
18343
18344         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
18345         stdcall and charset name mangling.  Reorganize the code and add
18346         some tracing stuff.
18347
18348 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
18349
18350         * monodiet.c: More iters!
18351
18352         * marshal.c: Iter usage.
18353
18354         * icall.c: Iter usage.
18355
18356         * object.c: Use iters.
18357
18358         * debug-helpers.c: More iters
18359
18360 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
18361
18362         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
18363         under win32.
18364
18365 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
18366
18367         * mono-debug-debugger.c: use iters
18368
18369         * class.c, class-internals.h: mono_class_setup_events is static
18370         now
18371
18372         * All callers: use iters
18373
18374 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
18375
18376         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
18377         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
18378
18379 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
18380
18381         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
18382
18383         * marshal.h: Add prototypes for ldfld/stfld_remote.
18384
18385         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
18386         this is called during startup.
18387         
18388 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
18389
18390         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
18391         MonoThreadsSync struct private in monitor.c. Changed the way
18392         MonoThreadsSync is allocated so it's faster and there is no
18393         need to keep track of it with a finalizer and it uses less memory.
18394         This also finally allows us to allocate mono objects as ptrfree when
18395         there are no reference fields.
18396
18397 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
18398
18399         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
18400         disappearing link to the GC interface and use them to simplify
18401         the gchandles code.
18402
18403 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
18404
18405         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
18406         stfld_remote which call mono_load/store_field_new. This allows methods
18407         calling ldfld/stfld wrappers to be AOTed.
18408
18409         * console-io.c: Include sys/filio.h under solaris.
18410         
18411         * console-io.c: Include curses.h if needed correctly.
18412
18413 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
18414         
18415         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
18416         method->klass as well.
18417
18418         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
18419
18420         * class.c (mono_class_init): Switch on lazy initialization of 
18421         methods.
18422
18423         * class.c (mono_class_get_finalizer): Handle the case when the 
18424         finalizer is inherited.
18425
18426 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18427
18428         * console-io.c: <curses.h> is needed by term.h on solaris.
18429
18430 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
18431
18432         * icall.c, class-internals.h, monodiet.c, class.c: Remove
18433         mono_class_setup_properties where possible. Remove this ftn from
18434         the header file, and make it static.
18435
18436 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
18437
18438         * loader.c: Add missing setup_... call.
18439
18440         * class.c: Add missing setup_... calls.
18441
18442         * class.c (mono_class_init): Switch on lazy initialization of 
18443         the generic vtable.
18444         
18445         * class.c (mono_class_init): Fix generics broken by the recent changes.
18446
18447         * monodiet.c (handle_type): Add missing setup_... calls.
18448
18449         * class.c: Back out garbage in previous patch.
18450         
18451         * class.c: Add missing setup_... calls.
18452
18453         * class.c (mono_class_get_method_from_name_flags): Avoid calling
18454         mono_class_setup_methods () if possible.
18455
18456         * class-internals.h (MonoClass): Add 'has_cctor' flag.
18457
18458         * class-internals.h (MonoCachedClassInfo): New structure.
18459
18460         * class.c: Initialize properties and events fields of MonoClass lazily.
18461
18462         * class.c: Add infrastructure for lazily initializing the methods and
18463         vtable fields of MonoClass. Not yet used.
18464
18465         * class.c (mono_class_get_finalizer): New helper function.
18466
18467         * class.c: Add infrastructure for loading some class related data from
18468         an AOT file.
18469
18470         * object.c: Add infrastructure for initializing the vtable from data
18471         in the AOT file.
18472
18473         * gc.c (run_finalize): Use mono_class_get_finalizer ().
18474
18475         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
18476         appropriate initialization function before accessing parts of the
18477         MonoClass structure.
18478
18479         * marshal.c: Fix warnings.
18480         
18481         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
18482
18483         * mono-debug-debugger.c (get_exception_message): Use 
18484         mono_class_get_method_from_name_flags ().
18485
18486 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
18487
18488         * reflection.c, appdomain.c: Replace a few manual searches that
18489         Zoltan missed. (Paolo approved this part of my initial patch).
18490
18491 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
18492
18493         * profiler.c: disable recording statistical events at report time.
18494
18495 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
18496
18497         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
18498         to byteswap arrays of enum values, too (bug #72080).
18499
18500 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
18501
18502         * appdomain.c (set_domain_search_path): Allow this to be called if
18503         domain->setup is not yet set.
18504
18505         * loader.c (mono_method_get_index): New helper function.
18506
18507         * loader.c reflection.c: Use mono_method_get_index ().
18508
18509         * class.c (mono_class_get_method_from_name_flags): New helper method.
18510
18511         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
18512         this.
18513
18514         * class.c (mono_class_get_cctor): New helper method.
18515
18516         * string-icalls.c object.c class.c marshal.c reflection.c: Use
18517         mono_class_get_method () to look up methods.
18518
18519 2005-02-01  Miguel de Icaza  <miguel@novell.com>
18520
18521         * console-io.c: Fix the build, this should work on Windows.
18522
18523 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
18524
18525         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
18526         be set to null to keep things valid
18527
18528 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18529
18530         * icall.c: added Console 2.0 icalls.
18531         * Makefile.am: added console-io.[ch]
18532         * console-io.[ch]: internal calls for Console 2.0 API.
18533
18534 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
18535
18536         * class.c: make sure we consider all the interfaces
18537         when calculating max_interface_id (bug found by
18538         Jeroen Frijters running ikvm).
18539
18540 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
18541
18542         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
18543         valuetype fields to null.
18544
18545         * object.c (set_value): Ditto. Fixes #71669.    
18546
18547 2005-01-31  Martin Baulig  <martin@ximian.com>
18548
18549         * metadata.c (mono_metadata_has_generic_params): New public
18550         function; checks whether something is a generic method.
18551
18552 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
18553
18554         * appdomain.c: fix infinite recursion when adding assemblies.
18555
18556 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
18557
18558         * object.c: Fix small typo to return all items for Environment.
18559         GetCommandLineArgs.
18560
18561 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
18562
18563         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
18564         reflection.c: more domain and assembly-unload related fixes
18565         and memory leaks plugs.
18566
18567 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
18568
18569         * 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.
18570
18571 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
18572
18573         * loader.c (mono_method_signature): Make this method lazy
18574         (mono_get_method_from_token): Don't computate the signature here.
18575
18576         Doing this saves quite a bit of memory. I got 90 kb on starting up
18577         monodoc. It should also save some disk reads on startup.
18578
18579         * *: MonoMethod->signature might be NULL now. You *MUST* use
18580         mono_method_signature.
18581
18582 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
18583
18584         * object.c (mono_runtime_get_main_args): Return an array from the
18585         current domain here. Fixes #71938.
18586
18587 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
18588
18589         * monitor.c: formatting changes to comply with the
18590         mono coding style and remove #ifdefs from the code.
18591
18592 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
18593
18594         * metadata.c, private.h: remove some unneeded data
18595         and use a more compact representation for table schemas.
18596
18597 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
18598
18599         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
18600         to get a better distribution in hash tables.
18601         * *.c: use mono_aligned_addr_hash() where appropriate.
18602         * assembly.c: make var static.
18603
18604 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
18605
18606         * domain-internals.h: Put MonoJitInfo on a diet.
18607
18608         * domain.c: Fix a warning.
18609
18610 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
18611
18612         * gc.c: rework the gc handles code to reuse handles
18613         when freed.
18614
18615 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
18616
18617         * domain.c: fixed long standing bug in mono_string_equal() which
18618         was brought to light with the ldstr changes.
18619
18620 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
18621
18622         * reflection.c: Remove warning by adding missing include for marshal.h
18623
18624 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
18625
18626         * domain.c, object.c: change the ldstr_table to hold
18627         MonoString* as keys: makes the runtime isinterned lookup
18628         faster and simplifies memory management.
18629
18630 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
18631  
18632         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
18633         possible to add imperative security checks before calling the icall.
18634         * reflection.c: Return security attributes on the original MonoMethod
18635         (and not the wrapped one). This fix permissions on icalls.
18636
18637 2005-01-25  Dick Porter  <dick@ximian.com>
18638
18639         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
18640         the check for mktime() support actually test the mktime() return
18641         value.  "Fixes" bug 71682, though the output is still different to
18642         MS.
18643
18644 2005-01-25  Martin Baulig  <martin@ximian.com>
18645
18646         * class.c (mono_class_is_assignable_from): Make this work for
18647         generic instances.
18648
18649 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
18650
18651         * marshal.c (mono_string_utf8_to_builder)
18652         (mono_string_builder_to_utf16): We might not have ownership of the
18653         string. In thise case, we need to create a new buffer.
18654
18655         * object-internals.h (mono_stringbuilder_capacity): sb->str might
18656         be null, in which case, use the default capacity.
18657
18658 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
18659
18660         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
18661         GC events to the profiler.
18662
18663 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
18664
18665         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
18666         if you don't want the GC to run.
18667
18668 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
18669
18670         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
18671         start providing a GC API and keeping different implementations in
18672         their own file.
18673         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
18674
18675 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
18676
18677         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
18678         mmap rather than allocating a huge buffer.
18679         (mono_debug_close_mono_symbol_file): Free the buffer allocated
18680         above.
18681
18682 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
18683
18684         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
18685         and CheckExecutionRights.
18686         * reflection.c|h: Keep the index of the declarative security to be 
18687         used, instead of the pointer, when AOT compiler is used. Also add 
18688         class initialization when requesting demands.
18689         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
18690         CheckExecutionRights. Both properties are now FALSE by default, and
18691         unmodifiable, unless the --security option is used.
18692
18693 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
18694
18695         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
18696         reflection.c: properly refcount images and assemblies, many leaks fixed.
18697
18698 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18699
18700         * threadpool.c: increase the timeout for threads in the thread pool to
18701         10s.  Fixes bug #67159.
18702
18703 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
18704
18705         * class-internals.h: Sun's compiler insists on explicit
18706         signed on bit fields to handle then correctly.
18707
18708 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
18709
18710         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
18711         Make the size of the array fit only the number of invalid path
18712         chars that we have.
18713
18714         * class.c (_mono_class_get): Improve the error reporting when a
18715         class referenced is not found, to assist debugging. 
18716
18717 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
18718
18719         * threads.c: fix off-by-one error.
18720         * domain.c: free data allocated in the domain.
18721
18722 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
18723
18724         * reflection.c (mono_method_body_get_object): Fill out exception info
18725         as well.
18726
18727         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
18728         structure.
18729         
18730 2005-01-19  Martin Baulig  <martin@ximian.com>
18731
18732         * loader.c (mono_get_method_constrained): Make this work again.
18733
18734 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
18735
18736         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
18737         guint16 to match the managed side.
18738
18739         * reflection.c (mono_reflection_body_get_object): Fill out local
18740         variables array.
18741
18742         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
18743         as well.
18744
18745         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
18746         'local_var_sig_token'.
18747
18748 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
18749
18750         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
18751         System.Drawing.
18752
18753         * reflection.c (mono_method_body_get_object): Handle abstract and
18754         runtime methods.
18755
18756 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
18757
18758         * marshal.c, loader.c, class-internals.h, reflection.c:
18759         store the emthod data for a wrapper in an array instead of a list.
18760
18761 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
18762
18763         * marshal.c: change the code to allocate memory more
18764         conservatively for method wrappers.
18765
18766 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
18767
18768         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
18769         fields from MonoClass to the marshal info structure where they belong.
18770
18771 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
18772
18773         * class.c, object.c, class-internals.h, marshal.c: rearrange
18774         some fields and tweak some types to lower memory usage.
18775
18776 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
18777
18778         * threads.c (signal_thread_state_change): Handle the case when the
18779         target thread is the current thread.
18780
18781         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
18782
18783         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
18784         emit_ptr_to_object_conv. 
18785
18786         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
18787         marshalling. Fixes #71352.
18788
18789 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
18790
18791         * metadata.h, blob.h: move table enum to blob.h so it can be included
18792         in any header.
18793         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
18794         cut the size of MonoImage/MonoDynamicImage.
18795
18796 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
18797
18798         * profiler.c (mono_profiler_install_simple): Fix default arguments.
18799
18800 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
18801
18802         * reflection.c, reflection.h, icall.c: add a function to check
18803         if an attribute type is defined for a metadata object.
18804
18805 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
18806
18807         * object-internals.h: Added some needed fields from StringBuilder class.
18808         * marshal.c: Set the maxCapacity when creating a StringBuilder.
18809
18810 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
18811
18812         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
18813         threads before shutting down the runtime.
18814
18815         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
18816
18817 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
18818
18819         * object-internal.h, threads.c: implement stacksize and 
18820         parameterized thread start functionality (requires
18821         matching corlib). Marked broken code for later removal.
18822
18823 2005-01-12  Martin Baulig  <martin@ximian.com>
18824
18825         * class-internals.h (MonoGenericClass): Moved the `initialized'
18826         flag to MonoDynamicGenericClass, removed `init_pending'.
18827         (MonoGenericInst): Added `is_reference' flag.
18828
18829 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
18830
18831         * reflection.c (mono_image_create_pefile): Only set the pe_offset
18832         inside the MSDOS header. Fixes #71201.
18833
18834         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
18835         gc thread.
18836         (mono_domain_finalize): Ditto.
18837
18838 2005-01-12  Martin Baulig  <martin@ximian.com>
18839
18840         * class.c (mono_get_shared_generic_class): Use the cache for
18841         non-dynamic generic classes.
18842
18843         * class-internals.h (mono_class_create_generic_2): Removed
18844         function prototype, this function is now static inside class.c.
18845
18846         * class.c (mono_class_create_generic_2): Made this static, only
18847         call it from mono_class_init() and mono_class_setup_parent().
18848         (collect_implemented_interfaces_aux): Call mono_class_init() on
18849         the interfaces we collect.
18850         (mono_class_setup_vtable): Call mono_class_init (class->parent).
18851
18852 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
18853
18854         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
18855         it a real thread handle.
18856
18857         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
18858         MonoJitExceptionInfo, since each catch clause needs its own variable.
18859         
18860 2005-01-11  Dick Porter  <dick@ximian.com>
18861
18862         * image.c (mono_pe_file_open): New variant on mono_image_open()
18863         that does not set up the CLI metadata; used for FileVersionInfo so
18864         it can get the data for windows binaries too.
18865         
18866         * process.c (process_read_string_block): Don't read off the end of
18867         the StringTable block.
18868
18869         These both fix bug 70766.
18870
18871 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
18872
18873         * gc.c: set some fields to NULL at GC cleanup time.
18874         * threads.c: if we quit the main thread, call exit ().
18875
18876 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
18877
18878         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
18879
18880 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
18881
18882         * threads.h, threads.c, object.c: added accessor and settor for
18883         main_thread. Handle it specially when exiting from it: wait
18884         for other foreground threads to exit.
18885
18886 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
18887
18888         * process.c, verify.c: remove some bloat.
18889
18890 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
18891
18892         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
18893         the calling convention to cdecl under win32.
18894
18895 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
18896
18897         * object.c (mono_object_get_size): New function to get the size of
18898         an object instance.
18899
18900         * profiler.c (simple_allocation): Use above.
18901
18902 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
18903
18904         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
18905         ves_icall_System_AppDomain_getRootDomain (as it's not required to
18906         get an appdomain by it's id and we can't assume the root's id is 0).
18907         * domain-internals.h: Change the function prototype to match.
18908         * icall.c: Change the icall table for AppDomain.
18909
18910 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
18911
18912         * locales.c (string_invariant_compare_char): Only compute
18913         GUnicodeTypes in the case where we need them.  Test for ordinality
18914         first and return if so.
18915
18916         From the commit:
18917
18918                 /*
18919                  * FIXME: here we must use the information from c1type and c2type
18920                  * to find out the proper collation, even on the InvariantCulture, the
18921                  * sorting is not done by computing the unicode values, but their
18922                  * actual sort order.
18923                  */
18924
18925 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
18926
18927         * loader.c: for P/Invoke methods, allow the "Internal" shared
18928         library name to refer to the calling process symbol namespace.
18929
18930 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
18931
18932         * Makefile.am: Add the security manager to the build.
18933         * security-manager.c|h: New. Initialization of the security manager.
18934
18935 2005-01-07  Dick Porter  <dick@ximian.com>
18936
18937         * threads.c: 
18938         * monitor.c: Update thread state during Monitor and WaitHandle
18939         waits.  Fixes bug 71031.
18940
18941 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
18942
18943         * reflection.c (property_encode_signature): Correctly handle when the
18944         property has no methods.
18945
18946 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
18947
18948         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
18949         
18950         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
18951         fields from mb, not rmb. Fixes #71017.
18952
18953         * marshal.c (emit_ptr_to_str_conv): Add support for 
18954         ByValTStr -> string conversion. Fixes #71015.
18955
18956         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
18957
18958         * mempool.c (mono_mempool_contains_addr): New helper function.
18959
18960 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
18961
18962         * metadata.c (mono_metadata_compute_size): Fix size calculation of
18963         HasSematics encoded fields.
18964         
18965         * metadata.c (mono_type_to_unmanaged): Improve error message for 
18966         invalid string marshalling.
18967
18968         * metadata.c: Fix warnings.
18969         
18970 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
18971
18972         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
18973         profiler support.
18974
18975 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
18976
18977         * domain.c object.c domain-internals.h: Revert part of r38077 since the
18978         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
18979         tests.
18980
18981 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
18982
18983         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
18984         so methods containing these can be AOTed.
18985
18986 2005-01-03  Martin Baulig  <martin@ximian.com>
18987
18988         * loader.c (find_method): Removed the hack for generic instances.
18989         (method_from_memberref): If our parent is a generic instance, pass
18990         its generic type definition to find_method() and then inflate the
18991         method.
18992         (mono_get_method_constrained): Pass the generic type definition to
18993         find_method() and inflate the method later.
18994
18995         * class-internals.h (MonoStats): Added `generic_class_count'.
18996
18997         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
18998         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
18999
19000         * reflection.c (mono_custom_attrs_from_params): Don't ignore
19001         generic type definitions.
19002
19003 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
19004
19005         * loader.c icall.c: Fix warnings.
19006
19007 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
19008
19009         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
19010         blittable types. Fixes #70864.
19011
19012 2004-12-29  Martin Baulig  <martin@ximian.com>
19013
19014         * icall.c
19015         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
19016
19017         * reflection.c (mono_method_get_object): Create a
19018         "System.Reflection.MonoGenericMethod" for inflated methods; don't
19019         call mono_get_inflated_method().
19020
19021         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
19022
19023 2004-12-27  Martin Baulig  <martin@ximian.com>
19024
19025         * class-internals.h (MonoMethod): Added `is_inflated' flag.
19026         (MonoMethodInflated): Added `inflated' field.
19027
19028         * class.c (mono_class_inflate_generic_method): Don't really
19029         inflate the method here; just set the `is_inflated' flag in the
19030         MonoMethod.
19031         (mono_class_get_inflated_method): Actually inflate the method here
19032         if it's not already inflated; we use the MonoMethodInflated's new
19033         `inflated' field as a cache.
19034
19035 2004-12-26  Martin Baulig  <martin@ximian.com>
19036
19037         * class.c
19038         (inflate_generic_class): Moved some code out of inflate_generic_type().
19039         (mono_class_inflate_generic_method): If we're already inflated,
19040         inflate the context and use the declaring method; ie. make sure
19041         the declaring method of an inflated method is always the generic
19042         method definition.
19043         (mono_class_create_from_typedef): Create
19044         `class->generic_container->context->gclass'.
19045
19046 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
19047
19048         * metadata-internals.h, marshal.c, reflection.c: More
19049         MonoGHashTable->GHashTable.
19050
19051         * domain-internals.h, class.c: Change MonoGHashTable's into
19052         GHashTables for some cases where no gc stuff is used
19053
19054         All users: update apis
19055
19056 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
19057
19058         * metadata.c (builtin_types): Make this `const'. Makes this get
19059         put into the shareable section.
19060         (mono_metadata_init): Casts to make gcc happy.
19061
19062 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
19063
19064         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
19065
19066 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
19067
19068         * icall.c: Added an internal call to retrieve the position and length
19069         of assembly-level declarative security attributes (RequestMinimum, 
19070         RequestOptional and RequestRefuse). This is used by the Assembly class
19071         to re-create the corresponding permission sets.
19072
19073 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
19074
19075         * marshal.c: fix the stelemref wrapper to be type correct
19076         (and faster).
19077
19078 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
19079
19080         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
19081         to do key & 0x7fffffff. Hashtable already does this. It just
19082         results in longer code.
19083
19084 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
19085
19086         * appdomain.c: Bump corlib version.
19087         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
19088         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
19089         * reflection.c|h: Add functions to get declarative security infos
19090         (blob position and length) for assemblies, classes and methods.
19091
19092 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
19093
19094         * reflection.c: sort the constant table (bug #70693).
19095
19096 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
19097
19098         * object-internals.h, threads.c, domain.c: add accessors for
19099         the MonoThread and MonoDomain tls keys.
19100
19101 2004-12-18  Martin Baulig  <martin@ximian.com>
19102
19103         * class.c (inflate_generic_type): If we're inflating a generic
19104         instance, set `ngclass->context->container = context->container';
19105         ie. the container we inflated into.
19106
19107         * metadata.c (mono_metadata_parse_generic_param): Reflect above
19108         inflate_generic_type() changes.
19109
19110 2004-12-17  Martin Baulig  <martin@ximian.com>
19111
19112         * class-internals.h
19113         (MonoGenericClass): Replaced `MonoType *generic_type' with
19114         `MonoClass *generic_class'.  Removed `dynamic_info'; if
19115         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
19116         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
19117
19118 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
19119
19120         * exception.c (mono_exception_from_token): New helper function.
19121
19122 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
19123
19124         * assembly.c (mono_assembly_load_with_partial_name): Call 
19125         mono_assembly_loaded before invoking the preload hooks. Fixes
19126         #70564.
19127
19128         * object-internals.h (MonoThread): Change culture_info and 
19129         ui_culture_info into an array.
19130
19131         * threads.c: Cache culture info objects from more than one appdomain.
19132
19133         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
19134         current UI culture.
19135
19136 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
19137
19138         * threads.h threads.c appdomain.c: Clear the culture_info field of
19139         all threads during unloading if they point to an object in the dying
19140         appdomain.
19141
19142 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
19143
19144         * culture-info.h (TextInfoEntry): New struct
19145         * object-internals.h: sync with managed
19146         * locales.c: fill the `text_info_data' field
19147         * culture-info-tables.h: update
19148
19149 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
19150
19151         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
19152         collector.
19153
19154 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
19155
19156         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
19157         (ves_icall_ModuleBuilder_getMethodToken): Ditto
19158
19159 2004-12-12  Martin Baulig  <martin@ximian.com>
19160
19161         * mono-debug-debugger.c (write_type): If we're an enum and the
19162         builtin types have already been initialized, call mono_class_init().
19163
19164 2004-12-11  Martin Baulig  <martin@ximian.com>
19165
19166         * metadata.c (mono_metadata_load_generic_params): Added
19167         `MonoGenericContainer *parent_container' argument; automatically
19168         compute `container->is_method'; pass the correct owner to
19169         get_constraints().      
19170
19171         * reflection.c (compare_genericparam): Sort the GenericParam table
19172         according to increasing owners. 
19173
19174 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
19175
19176         * profiler.c: allow disabling the default profiler.
19177
19178 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
19179
19180         * decimal.c, icall.c: allow disabling System.Decimal support.
19181
19182 2004-12-09  Marek Safar <marek.safar@seznam.cz>
19183
19184         * reflection.c: Add support for null attribute arguments.
19185
19186 2004-12-09  Martin Baulig  <martin@ximian.com>
19187
19188         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
19189         names to get rid of compiler warnings.
19190
19191 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
19192
19193         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
19194         mono_marshal_load_type_info (). Fixes #69625.
19195         (mono_marshal_get_ptr_to_struct): Likewise.
19196
19197 2004-12-08  Martin Baulig  <martin@ximian.com>
19198
19199         * mono-debug.h: Bumped version number to 47.
19200
19201         * mono-debug-debugger.c
19202         (mono_debugger_event_handler, mono_debugger_event): Take two
19203         guint64 arguments insteed of a gpointer and a guint32.  
19204
19205 2004-12-08  Martin Baulig  <martin@ximian.com>
19206
19207         * debug-mono-symfile.h
19208         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
19209         `address' to `native_offset'.
19210
19211 2004-12-08  Martin Baulig  <martin@ximian.com>
19212
19213         * class.c (mono_class_create_from_typespec): Only inflate if we
19214         either have `context->gclass' or `context->gmethod'.
19215
19216 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
19217
19218         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
19219
19220         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
19221
19222         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
19223
19224         * reflection.c (mono_assembly_get_object): Remove the workaround put
19225         in for the release.
19226         
19227         * appdomain.c: Use the corlib_internal field from MonoAssembly.
19228
19229         * appdomain.c: Bump corlib version.
19230
19231         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
19232         be visible in other appdomains.
19233
19234 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
19235
19236         * threads.c: Interlocked inc and dec for longs were messed up,
19237         use a KISS based impl for this. Fixes 70234
19238
19239 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
19240
19241         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
19242
19243 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
19244
19245         * icall.c: fix to follow policy not to allow struct
19246         arguments in icalls.
19247
19248 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19249
19250         * process.c: make the patch that handles spaces in file paths work
19251         on mono/windows too.
19252
19253 2004-12-06  Martin Baulig  <martin@ximian.com>
19254
19255         * class.c (mono_class_create_generic): Call
19256         mono_class_setup_supertypes() if we're dynamic.
19257         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
19258
19259 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
19260
19261         * object-internals.h: Add new fields to MonoThread.
19262
19263         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
19264
19265         * icall.c threads-types.h threads.c: Add new icalls.
19266
19267         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
19268
19269         * object-internals.h (MonoReflectionAssembly): Sync object layout with
19270         managed side.
19271
19272         * appdomain.c: Bump corlib version.
19273
19274         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
19275         internal assemblies. Fixes #69181.
19276
19277 2004-12-05  Martin Baulig  <martin@ximian.com>
19278
19279         * class.c (mono_class_inflate_generic_signature): Make this a
19280         no-op if `context' is NULL or we don't have any type parameters;
19281         also copy `sentinelpos'.        
19282
19283 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
19284
19285         * image.c: Add unbox_wrapper_cache.
19286
19287         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
19288
19289         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
19290         function generator.
19291         
19292         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
19293         Fixes #70173.
19294
19295         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
19296         
19297 2004-12-04  Martin Baulig  <martin@ximian.com>
19298
19299         * loader.c (mono_method_get_signature_full): New public function;
19300         like mono_method_get_signature(), but with an additional
19301         `MonoGenericContext *' argument.
19302
19303         * class.c (mono_class_inflate_generic_signature): Formerly known
19304         as inflate_generic_signature(); make this public.
19305
19306 2004-12-04  Martin Baulig  <martin@ximian.com>
19307
19308         * metadata.c
19309         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
19310         instead of a `MonoGenericContainer *'.  
19311         (mono_metadata_parse_array_full): Likewise.
19312         (mono_metadata_parse_signature_full): Likewise.
19313         (mono_metadata_parse_method_signature_full): Likewise.
19314         (mono_metadata_parse_generic_inst): Likewise.
19315         (mono_metadata_parse_generic_param): Likewise.
19316         (mono_metadata_parse_mh_full): Likewise.
19317         (mono_type_create_from_typespec_full): Likewise.
19318
19319 2004-12-03  Martin Baulig  <martin@ximian.com>
19320
19321         * class-internals.h (MonoGenericContainer): Replaced the
19322         `MonoGenericContext * pointer with a `MonoGenericContext'
19323         structure and made it the first element.
19324
19325 2004-12-03  Martin Baulig  <martin@ximian.com>
19326
19327         * class.c
19328         (inflate_generic_type): Set the `context->container' when creating
19329         a new MonoGenericContext.
19330         (mono_class_inflate_generic_method): Likewise.
19331         (mono_class_create_from_typespec): Just use `context->container'
19332         to get the container.
19333
19334         * loader.c (method_from_methodspec): Set `context->parent' from
19335         `context->container' - and if that's a method container, use its
19336         parent.  Also set the `context->container' when creating a new
19337         MonoGenericContext.
19338         (mono_get_method_from_token): Use just `context->container' to get
19339         the container.
19340
19341         * metadata.c (do_mono_metadata_parse_generic_class): Also set
19342         `gclass->context->container'.
19343
19344         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
19345         the `context->container' when creating a new MonoGenericContext.
19346
19347 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
19348
19349         * reflection.c (compare_genericparam): Sort params with identical
19350         owner by their number. Fixes gen-111 on sparc.
19351
19352 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
19353
19354         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
19355         around the domain changes.
19356
19357         * appdomain.c (mono_domain_unload): Handle the case when the thread
19358         calling Unload is itself being aborted during unloading. Fixes #70022.
19359
19360         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
19361
19362         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
19363         checkpoint_func as an icall so it gets a wrapper.
19364         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
19365         in the cross-appdomain wrappers too.
19366
19367         * threads.c (mono_thread_has_appdomain_ref): Make this public.
19368
19369         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
19370
19371         * reflection.c: Fix some memory leaks.
19372         
19373 2004-12-02  Martin Baulig  <martin@ximian.com>
19374
19375         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
19376
19377         * metadata.c (generic_class_cache): New static hashtable.
19378         (mono_metadata_lookup_generic_class): New public method.
19379
19380 2004-12-02  Martin Baulig  <martin@ximian.com>
19381
19382         * class.c (mono_class_create_from_typedef): Call
19383         mono_class_setup_parent() and mono_class_create_mono_type() before
19384         parsing the interfaces.
19385
19386 2004-12-02  Martin Baulig  <martin@ximian.com>
19387
19388         * metadata.c (generic_inst_cache): New static hashtable.
19389         (mono_metadata_lookup_generic_inst): New public function.
19390         (mono_metadata_inflate_generic_inst): New public function.
19391         (mono_metadata_parse_generic_inst): New public function.
19392         (do_mono_metadata_parse_generic_class): Use the new
19393         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
19394         since this'll also use the cache.
19395
19396         * reflection.c (mono_reflection_bind_generic_method_parameters):
19397         Use mono_metadata_lookup_generic_inst() to use the new cache.
19398
19399         * class.c (inflate_mono_type): Use
19400         mono_metadata_inflate_generic_inst() to inflate a generic
19401         instance; this'll also use the new cache.
19402
19403         * loader.c (method_from_methodspec): Use
19404         mono_metadata_parse_generic_inst() and
19405         mono_metadata_inflate_generic_inst() rather than parsing it
19406         manually, so we can use the new cache.
19407
19408 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
19409
19410         * threads.c (wait_for_tids): Do not incorrectly free threads when 
19411         the wait times out.
19412
19413 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
19414
19415         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
19416         iter->args based on whether parameters are passed in registers (i.e.
19417         MONO_ARCH_REGPARMS is defined)
19418
19419 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
19420
19421         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
19422         the exception message. Fixes #70070.
19423         (method_from_methodspec): Fix warnings.
19424
19425 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19426
19427         * process.c: (complete_path) return the path quoted
19428
19429 2004-12-01  Martin Baulig  <martin@ximian.com>
19430
19431         * class-internals.h (MonoGenericInst): New structure.
19432         (MonoGenericClass): Replaced `type_argc', `type_argv' and
19433         `is_open' with `MonoGenericInst *inst'.
19434         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
19435         `is_open' with `MonoGenericInst *inst'.
19436
19437 2004-11-30  Martin Baulig  <martin@ximian.com>
19438
19439         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
19440
19441         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
19442         to `generic_class_cache'.
19443
19444         * metadata.c
19445         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
19446         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
19447         (mono_generic_inst_is_valuetype): Renamed to
19448         mono_generic_class_is_valuetype().
19449
19450         * class-internals.h
19451         (MonoGenericInst): Renamed to MonoGenericClass.
19452         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
19453         (MonoClass): Renamed `generic_inst' to `generic_class'.
19454         (MonoGenericContext): Renamed `ginst' to `gclass'.
19455
19456         * object-internals.h
19457         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
19458
19459         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
19460         mono_reflection_generic_class_initialize().
19461
19462         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
19463         now known as "System.Reflection.MonoGenericClass".
19464         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
19465
19466 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
19467
19468         * class-internals.h: Added a flag field to MonoClass to cache the
19469         declarative security attributes actions associated with the class.
19470         * domain-internals.h: Added booleans to MonoJitInfo to cache the
19471         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
19472         applicable to the JITted method.
19473         * reflection.c|h: Added functions to extract (as flags) which security
19474         actions are available (declaratively) for a method, class or assembly.
19475         * metadata.c|h: Added functions to search the declarative security
19476         table in the metadata.
19477         
19478 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
19479
19480         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
19481         EXPORTEDTYPES are already in the class name cache, so there is no
19482         need to add extra code here to look at them. Just removes a bit of
19483         cruft.
19484
19485         (ves_icall_System_Environment_get_TickCount): No need for #if
19486         WINDOWS. We already have the code in io-layer.
19487
19488 2004-11-28  Martin Baulig  <martin@ximian.com>
19489
19490         * loader.c
19491         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
19492         Fixes gen-112.cs.
19493
19494 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
19495
19496         * assembly.c (do_mono_assembly_open): Instead of having a
19497         conditional WITH_BUNDLE, incorporate support for bundles here, by
19498         having a global `bundles' variable holding a pointer to the actual
19499         bundles. 
19500
19501         (mono_register_bundled_assemblies): New API call used by the
19502         bundle code. 
19503
19504         See mkbundle.1 for details.
19505         
19506 2004-11-27  Martin Baulig  <martin@ximian.com>
19507
19508         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
19509         the vtable for generic methods.
19510
19511 2004-11-26  Martin Baulig  <martin@ximian.com>
19512
19513         * metadata.c
19514         (mono_metadata_generic_method_hash): New public function.
19515         (mono_metadata_generic_method_equal): Likewise.
19516
19517         * class-internals.h
19518         (MonoGenericContainer): Added `GHashTable *method_hash'.
19519
19520         * reflection.c (ReflectionMethodBuilder): Added
19521         `MonoGenericContainer *generic_container'.
19522         (reflection_methodbuilder_to_mono_method): Don't create a new
19523         MonoGenericContainer each time we're called.
19524         (mono_reflection_bind_generic_method_parameters): Use
19525         `container->method_hash' to cache the results so we don't create a
19526         different method if we're called several times with the same
19527         arguments.
19528
19529         * loader.c (method_from_methodspec): Use the new
19530         `container->method_hash' here, too.
19531
19532 2004-11-26  Martin Baulig  <martin@ximian.com>
19533
19534         * class.c (inflate_generic_signature): Correctly compute
19535         `res->has_type_parameters'.
19536         (mono_class_vtable): Use the `has_type_parameters' flag to
19537         determine whether we're a generic method.
19538
19539         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
19540
19541 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
19542
19543         * object.c (mono_runtime_run_main): Fix a small memory leak.
19544
19545 2004-11-25  Martin Baulig  <martin@ximian.com>
19546
19547         * class.c (set_generic_param_owner): Fixed the loop.
19548
19549 2004-11-25  Martin Baulig  <martin@ximian.com>
19550
19551         * object.c (mono_class_vtable): Don't create any JIT wrappers for
19552         generic methods.
19553
19554 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
19555
19556         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
19557         names. Fixes #69787.
19558
19559 2004-11-24  Martin Baulig  <martin@ximian.com>
19560
19561         * class.c (mono_class_create_generic_2): If we don't have a
19562         `ginst->parent', inflate `gklass->parent' to get our parent.
19563
19564 2004-11-24  Martin Baulig  <martin@ximian.com>
19565
19566         * reflection.c (compare_genericparam): Correctly sort the
19567         GenericParam table; fixes #69779.
19568
19569 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
19570
19571         * reflection.c: When writing a PE file, don't create a huge
19572         buffer in memory. Just write the arrays we have to the file.
19573         This reduces memory usage.
19574
19575         * metadata-internals.h: MonoDynamicStream pefile is no longer used
19576         globally.
19577
19578 2004-11-17  Martin Baulig  <martin@ximian.com>
19579
19580         * class.c (mono_class_init): Don't setup `class->parent' for
19581         dynamic instances; moved this to mono_class_generic_2().
19582         (mono_class_create_generic): Also set `klass->inited' for dynamic
19583         generic instances.
19584         (mono_class_create_generic_2): Don't do anything for dynamic
19585         generic instances.  Set `klass->parent' here and also call
19586         mono_class_setup_parent() here. 
19587
19588         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
19589         `MonoType *parent' argument; set `ginst->parent' before calling
19590         mono_class_create_generic_2(), so we set the correct parent.
19591
19592 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
19593
19594         * reflection.c: allow getting attributes from ModuleBuilder
19595         (used by ikvm).
19596
19597 2004-11-17  Martin Baulig  <martin@ximian.com>
19598
19599         * class.c (mono_class_create_from_typedef): If a type parameter is
19600         inherited from an outer class, set its owner to that class.
19601
19602 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
19603
19604         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
19605           for (int*) written size. This fixes bug #69592.
19606
19607 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
19608
19609         * icall.c: Added IsAuthenticodePresnet internal call.
19610         * image.c|h: New function that check a MonoImage for an Authenticode
19611         signature in the certificate PE data directory.
19612         * security.c|h: New internal call to ask the runtime if an 
19613         Authenticode signature seems referenced in the PE header.
19614
19615 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
19616
19617         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
19618
19619         * reflection.c (mono_image_create_pefile): Free the assembly streams
19620         after writing out the assembly file.
19621
19622         * object.c (mono_runtime_run_main): Fix small memory leak.
19623
19624         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
19625         property access modifiers. Fixes #69389.
19626
19627 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
19628
19629         * domain.c, object.c, object-internals.h, domain-internals.h,
19630         object.h, marshal.c: keep dynamic code info per domain.
19631
19632 2004-11-15  Martin Baulig  <martin@ximian.com>
19633
19634         * class.c (mono_type_get_name_recurse): Put type arguments in
19635         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
19636         see bug #68387.
19637
19638 2004-11-15  Martin Baulig  <martin@ximian.com>
19639
19640         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
19641         (mono_class_setup_vtable): When computing `the_cname' for a
19642         generic instance, don't include the namespace since we'd otherwise
19643         add it twice.
19644
19645 2004-11-15  Martin Baulig  <martin@ximian.com>
19646
19647         * class.c (mono_class_create_generic): Changed return type to void.
19648         (mono_class_create_generic_2): New public function; setup
19649         `class->method', `class->field' and `class->interfaces' here
19650         instead of in mono_class_init().
19651
19652         * class.h (mono_class_create_generic): Moved to class-internals.h.
19653
19654 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
19655
19656         * reflection.c (mono_image_create_pefile): take a file HANDLE.
19657         rather than writing to memory, write to this file. Right now,
19658         we are just writting into a buffer, and copying that. However
19659         we can avoid the buffer later.
19660
19661         (mono_dynamic_stream_reset): new function
19662
19663         * icall.c, object-internals.h: update for the above.
19664
19665 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
19666
19667         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
19668         have been using gc'd memory. First it is slower, unlikely
19669         the comment in the source code said, secondly, it increases
19670         our footprint to do it in the gc.
19671
19672         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
19673         the method so that it does not have to copy to managed code.
19674
19675 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
19676
19677         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
19678
19679 2004-11-12  Martin Baulig  <martin@localhost>
19680
19681         * reflection.c (mono_image_create_token): Allow generic method
19682         definitions here, since they may appear in an `.override'; see
19683         gen-98/gen-99 for an example.
19684
19685 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
19686
19687         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
19688         #69365.
19689
19690         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
19691         descriptive.
19692
19693 2004-11-11  Martin Baulig  <martin@ximian.com>
19694
19695         * class.c (mono_class_setup_vtable): In an explicit interface
19696         implementation, the method name now includes the arity.
19697
19698 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
19699
19700         * object.c (mono_array_full_copy): Fix warning.
19701
19702 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
19703
19704         * appdomain.c: Removed look_for_method_by_name(). Use the new method
19705         mono_class_get_method_from_name() instead.
19706         
19707         * class-internals.h: Added two new types of wrappers. 
19708         Added MonoRemotingTarget enum. Added new trampoline function type, which
19709         takes an additional MonoRemotingTarget value as parameter, so it is
19710         possible to request a trampoline for a specific target.
19711         
19712         * class.c: Added new mono_class_get_method_from_name() method.
19713         
19714         * class.h: In MonoRemoteClass, we can have now to vtables, one for
19715         general remoting sinks and one specific for cross domain calls.
19716         
19717         * debug-helpers.c: Added new wrapper names.
19718         
19719         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
19720         of a remote class.
19721         
19722         * image.c: Porperly delete value objects form the remoting invoke hashtable.
19723         
19724         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
19725         with several other methods (mono_marshal_get_xappdomain_dispatch,
19726         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
19727         and others) can generate a fast remoting wrapper for cross domain calls.
19728         More information can be found in docs/remoting.
19729         Other changes: Removed mono_find_method_by_name, and used
19730         mono_class_get_method_from_name instead.
19731         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
19732         is stored in the remoting invoke hashtable.
19733         
19734         * marshal.h: published the new method for getting the xdomain wrapper,
19735         and also added a method for getting the adequate wrapper for a given
19736         method and target.
19737         
19738         * object-internals.h, object.c: Added a couple of methods for capying and
19739         cloning arrays.
19740         Modified mono_install_remoting_trampoline, which takes the new remoting
19741         trampoline that has a remoting target as parameter.
19742         mono_class_proxy_vtable now also takes a remoting target as parameter, and
19743         will return the most suitable vtable for the target.
19744         Added mono_remote_class_vtable, which returns the vtable of a remote class
19745         (which can be the normal remoting vtable or the xdomain vtable).
19746         
19747         * threads.c: the xdomain invoke and dispatch wrappers must also be
19748         protected against interruptions.
19749
19750 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19751
19752         * icall.c: use memmove in BlockCopyInternal when the source and
19753         destination arrays are the same.
19754
19755 2004-11-09  Martin Baulig  <martin@ximian.com>
19756
19757         * class-internals.h (MonoGenericContainer): Removed `method' and
19758         `signature', replaced them with `is_method' and `is_signature'
19759         flags.  Added `context'.
19760
19761         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
19762         instead of a `MonoGenericContainer *'.
19763
19764         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
19765         for dynamic type parameters.
19766         (mono_metadata_load_generic_params): Setup `container->context'.
19767
19768         * reflection.c (mono_reflection_setup_generic_class): Setup
19769         `tb->generic_container->context'.
19770         (do_mono_reflection_bind_generic_parameters): Use
19771         mono_class_inflate_generic_type() to correctly inflate types,
19772         rather than using our own hack just for MONO_TYPE_VAR.
19773
19774 2004-11-09  Martin Baulig  <martin@ximian.com>
19775
19776         * class.c (mono_class_inflate_generic_method): Small fix; don't
19777         crash here.
19778
19779         * icall.c
19780         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
19781         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
19782         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
19783         (ves_icall_Type_BindGenericParameters): Likewise.
19784         (ves_icall_Type_get_IsGenericInstance): Likewise.
19785         (ves_icall_Type_GetGenericParameterPosition): Likewise.
19786         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
19787         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
19788         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
19789
19790 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
19791
19792         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
19793         assembly versions and public key tokens. Fixes #69113.
19794
19795 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
19796
19797         * metadata.c: fix bug introduced with the type cache changes
19798         on 2004-11-06.
19799
19800 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
19801
19802         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
19803         the MonoClass pointer instead of the token in exception clauses.
19804         * reflection.c: updates for the above and make the code not depend
19805         on the structure of MonoExceptionClause.
19806
19807 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
19808
19809         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
19810         Add support for dynamic assemblies. Fixes #69114.
19811
19812         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
19813
19814 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
19815
19816         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
19817         since most only those methods use it. the code member of
19818         MonoMethodPInvoke was dead, so that can be removed too. Also,
19819         remove inline_count (again, not used), and move slot so that it
19820         can share bits with some other flags. This saves 8 bytes in the
19821         structure and gives us about 50 kb back for mcs helloworld.cs
19822
19823         * *.[ch]: Do naming changes for the above.
19824
19825         * loader.c (mono_method_get_header): Lazily init the header
19826         on first access.
19827         (mono_get_method_from_token): don't init the header here
19828         (mono_free_method): the header may never be allocated
19829
19830         Overall, this saves 150 kb of unmanaged allocations
19831         for mcs helloworld.cs. That accounts for 10% of the unmanaged
19832         memory at runtime.
19833         
19834         * loader.c, loader.h (mono_method_get_header): new accessor.
19835
19836         * *.[ch]: use the above method. Prepares us to lazily load
19837         the header.
19838
19839         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
19840         three warnings, which are actual bugs (see 69206).
19841
19842         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
19843         unused. Saves a cool 4 bytes / method.
19844
19845 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
19846
19847         * metadata.c (builtin_types): Add types for System.Object here.
19848         (mono_metadata_parse_type_full): Cache MonoType*'s that are
19849         for a class or valuetype from klass->this_arg or klass->byval_arg.
19850
19851         On mcs for a hello world, this gets us down from 21836 MonoType's
19852         to 14560.
19853
19854         (mono_metadata_free_type): Account for the above change.
19855
19856 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
19857
19858         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
19859         exception instead of asserting if name is null.
19860         (ves_icall_System_AppDomain_GetData): Ditto.
19861
19862 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
19863
19864         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
19865         EnumBuilder.
19866
19867         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
19868         Return NULL when the domain does not have entry_assembly set.
19869
19870         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
19871         Add a 'resource_modules' argument.
19872         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
19873
19874         * reflection.c (mono_reflection_create_runtime_class): Move setting
19875         of wastypebuilder here, so mono_get_type_object () returns a MonoType
19876         for enums too.
19877
19878         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
19879         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
19880         Throw an ArgumentNullException if 'ptr' is null.
19881
19882         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
19883         assemblies here. Fixes #69020.
19884
19885 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
19886
19887         * reflection.c (build_compressed_metadata): Fix the previous patch for
19888         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
19889         the stack.
19890
19891 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
19892
19893         * assembly.c (mono_assembly_names_equal): Allow a match if one of
19894         the cultures is false. Fixes #69090.
19895
19896         * reflection.c (build_compressed_metadata): Fix invalid memory read 
19897         detected by valgrind.
19898         
19899         * reflection.c (mono_reflection_get_type): Avoid triggering a 
19900         TypeResolve multiple times for the same type. Fixes #65577.
19901
19902 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
19903
19904         * marshal.c: Avoid using ldftn to call managed functions. It is
19905         much slower than just a call.
19906
19907         * reflection.c (mono_module_get_object): free the basename we
19908         allocate here from glib.
19909         
19910         * reflection.c (ensure_runtime_vtable): make sure to free
19911         overrides.  Also, we were allocating an array of MonoMethod not an
19912         array of MonoMethod*.
19913
19914         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
19915
19916         * image.c (mono_image_close): free image->guid here.
19917
19918 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
19919
19920         * reflection.c: Fix some spec conformance issues with the PE file
19921         structures so mcs compiled apps run on the Net 2.0 beta.
19922
19923 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
19924
19925         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
19926         Implement this. Fixes #67264.
19927
19928         * debug-helpers.h debug-helpers.c marshal.c: Move 
19929         mono_find_method_by_name to debug-helpers.c.
19930
19931 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
19932
19933         * object.c (mono_release_type_locks): type_initialization_hash is
19934         a GHashTable.
19935
19936         * reflection.c object.c object-internals.h: Fix warnings.
19937
19938         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
19939         without accessors. Fixes #61561.
19940
19941         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
19942         application base from the root domain if not set. Fixes #65641.
19943         (mono_runtime_init): Fix warning.
19944
19945 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19946
19947         * appdomain.c: call mono_thread_pool_init.
19948         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
19949         of worker threads based on the number of CPUs and the environment
19950         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
19951         for non-windows (windows) systems.
19952
19953 2004-10-27  Chris Toshok  <toshok@ximian.com>
19954
19955         * mono-debug-debugger.c (write_class): don't call mono_class_init
19956         here, as even with the check for (!klass->init_pending), we get
19957         into a situation where we're hitting cycles in class
19958         initialization.  Fixes #68816.
19959
19960 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
19961
19962         * image.c: Avoid overwriting values in the loaded_images_hash when an
19963         assembly is loaded multiple times. Fixes #61152.
19964
19965         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
19966         so multiple satellite assemblies for the same name can be loaded.
19967         Fixes #68259.
19968
19969         * mono_domain_assembly_preload: Actually return the loaded assembly, 
19970         not NULL.
19971
19972         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
19973         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
19974
19975         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
19976         pending finalizers are not invoked after the appdomain has been 
19977         unloaded. Fixes #67862.
19978
19979 2004-10-22  Martin Baulig  <martin@ximian.com>
19980
19981         * mono-debug-debugger.c
19982         (mono_debugger_runtime_invoke): Don't box valuetypes.
19983
19984 2004-10-22  Chris Toshok  <toshok@ximian.com>
19985
19986         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
19987         don't hide private methods.
19988
19989 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
19990
19991         * icall.c: Allows the runtime to "share" (when known) the public key
19992         token of an assembly. This avoid the need to recalculate the token 
19993         (from the public key) in managed code.
19994
19995 2004-10-21  Chris Toshok  <toshok@ximian.com>
19996
19997         * debug-helpers.c (append_class_name): argh, revert last patch.
19998         
19999 2004-10-21  Chris Toshok  <toshok@ximian.com>
20000
20001         * debug-helpers.c (append_class_name): use '+' as the delimiter,
20002         not '/', so that it matches what the debugger uses to look up
20003         methods.
20004
20005 2004-10-21  Martin Baulig  <martin@ximian.com>
20006
20007         * mono-debug-debugger.c (mono_debugger_throw_exception): New
20008         public method; this is called each time an exception is thrown and
20009         allows the debugger to use exception catch points.
20010
20011 2004-10-21  Martin Baulig  <martin@ximian.com>
20012
20013         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
20014         the stack pointer and the exception object in some struct and pass
20015         that to the debugger.
20016
20017 2004-10-21  Chris Toshok  <toshok@ximian.com>
20018
20019         * mono-debug-debugger.c (do_write_class): add instance/static
20020         event support.  We don't expose "raise" or "other" yet.
20021         (event_is_static): new method.
20022
20023 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
20024
20025         * mono-debug-debugger.c
20026         (mono_debugger_handle_exception): Remove
20027         bogus return value for fussy compilers.
20028
20029 2004-10-20  Martin Baulig  <martin@ximian.com>
20030
20031         * mono-debug-debugger.c
20032         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
20033         (mono_debugger_handled_exception): Likewise.
20034
20035 2004-10-20  Martin Baulig  <martin@ximian.com>
20036
20037         * mono-debug-debugger.h (MonoDebuggerEvent): Added
20038         MONO_DEBUGGER_EVENT_EXCEPTION.
20039
20040         * mono-debug-debugger.c (mono_debugger_handle_exception): New
20041         public function to send the debugger a notification for an
20042         exception and inform it about a catch/finally clause.
20043
20044 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
20045
20046         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
20047         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
20048         fix 2.95 build. 
20049
20050         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
20051
20052 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
20053
20054         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
20055         marshalled as [In,Out]. Fixes #58325.
20056
20057 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
20058
20059         * reflection.c (mono_method_body_get_object): Implement some fields.
20060
20061 2004-10-12  Martin Baulig  <martin@ximian.com>
20062
20063         * reflection.c (mono_reflection_bind_generic_parameters): Small
20064         fix, correctly retrieve our parent from a generic instance.
20065
20066 2004-10-12  Martin Baulig  <martin@ximian.com>
20067
20068         * metadata.c (mono_metadata_generic_param_equal): We always have
20069         an owner.
20070
20071         * class.c
20072         (mono_class_from_generic_parameter): We need to have an owner.
20073         (my_mono_class_from_generic_parameter): Likewise.
20074
20075         * reflection.c (mono_reflection_setup_generic_class): Renamed to
20076         mono_reflection_create_generic_class() and added a new
20077         mono_reflection_setup_generic_class().  
20078         (mono_reflection_initialize_generic_param): If we're a nested
20079         generic type and inherited from the containing class, set our
20080         owner to the outer class.
20081
20082 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
20083
20084         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
20085
20086         * reflection.c (mono_method_body_get_object): New function to create
20087         a MethodBody object.
20088
20089         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
20090
20091 2004-10-11  Martin Baulig  <martin@ximian.com>
20092
20093         * metadata.c (_mono_metadata_type_equal): Renamed to
20094         do_mono_metadata_type_equal() and made static.
20095
20096 2004-10-11  Martin Baulig  <martin@ximian.com>
20097
20098         * appdomain.c: Bump corlib version number to 28.
20099
20100 2004-10-10  Martin Baulig  <martin@ximian.com>
20101
20102         * class-internals.h
20103         (MonoGenericInst): Added `MonoGenericContainer *container'.
20104         (MonoGenericMethod): Likewise.
20105         (MonoGenericContext): Likewise.
20106         (MonoGenericParam): Added `MonoGenericContainer *owner'.
20107
20108         * metadata.c
20109         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
20110         (do_mono_metadata_parse_generic_inst): Likewise.
20111         (mono_metadata_parse_type_full): New public method.  This is the actual
20112         mono_metadata_parse_type() implementation - with an additional
20113         `MonoGenericContainer *' argument.
20114         (mono_metadata_parse_array_full): Likewise.
20115         (mono_metadata_parse_signature_full): Likewise.
20116         (mono_metadata_parse_method_signature_full): Likewise.
20117         (mono_metadata_parse_mh_full): Likewise.
20118         (mono_type_create_from_typespec): Likewise.
20119         (mono_metadata_interfaces_from_typedef_full): New public method;
20120         this is similar to the other _full() methods, but we take a
20121         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
20122         (mono_metadata_parse_generic_param): Take an additional
20123         `MonoGenericContainer *' argument and lookup the MonoGenericParam
20124         from that container.
20125         (mono_metadata_generic_param_equal): New static method to compare
20126         two type parameters.
20127         (_mono_metadata_type_equal): New static method; takes an
20128         additional `gboolean signature_only' argument - if true, we don't
20129         compare the owners of generic parameters.
20130         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
20131         with a TRUE argument - do a signature-only comparision.
20132
20133         * loader.c: Use the new _full() methods and pass the
20134         MonoGenericContainer to them.
20135
20136         * object-internals.h (MonoReflectionTypeBuilder): Added
20137         `MonoGenericContainer *generic_container' field.
20138         (MonoReflectionMethodBuilder): Likewise.
20139
20140 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
20141
20142         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
20143         case initial images of dynamic assemblies.
20144
20145         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
20146
20147         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
20148
20149         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
20150         length of event->other array.
20151         (typebuilder_setup_events): Ditto.
20152
20153         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
20154         'assembly_by_name' and add an 'assemblies' list.
20155
20156         * assembly.h assembly.c: Add a new search hook for determining whenever
20157         an assembly is already loaded. Use this instead of searching in the
20158         loaded_assemblies list.
20159
20160         * domain.c appdomain.c: Implement the new search hook so loaded 
20161         assemblies are now scoped by appdomain. Fixes #67727.
20162
20163 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
20164
20165         * threads.c (mono_thread_attach): Initialize synch_lock field so
20166         mono_thread_detach works again.
20167
20168         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
20169         'lib' too. Fixes #63130.
20170
20171 2004-10-06  Jackson Harper  <jackson@ximian.com>
20172
20173         * culture-info-tables.h: regenerated.
20174
20175 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
20176
20177         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
20178         implemented by other interfaces in the result. Fixes #65764.
20179         
20180         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
20181         Handle unloadable modules without crashing.
20182
20183         * image.c (load_modules): Revert the previous patch since modules must
20184         have a fixed index inside the array.
20185         
20186         * image.c (load_modules): Don't include native modules in the modules
20187         array.
20188
20189 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
20190
20191         * reflection.h: Add param_defaults field.
20192
20193         * reflection.c: Add support for parameter defaults in dynamic methods.
20194         Fixes #64595.
20195
20196         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
20197         an empty string when a type has no namespace. Fixes #64230.
20198
20199 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
20200
20201         * tabledefs.h: Added "internal" security actions to support non-CAS
20202         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
20203         Note: they do not seems to be used anymore in 2.0 (new metadata format)
20204
20205 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
20206
20207         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
20208         constructor of abstract class. Fixes #61689.
20209
20210 2004-10-04  Martin Baulig  <martin@ximian.com>
20211
20212         * class-internals.h (MonoGenericContainer): New type.
20213         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
20214         `MonoGenericContainer *generic_container'.
20215         (MonoClass): Replaced `gen_params' and `num_gen_params' with
20216         `MonoGenericContainer *generic_container'.
20217
20218         * metadata.c (mono_metadata_load_generic_params): Return a
20219         `MonoGenericContainer *' instead of a `MonoGenericParam *';
20220         removed the `num' argument.
20221
20222 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
20223
20224         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
20225         for dynamic images.
20226
20227         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
20228         machine fields.
20229
20230         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
20231
20232         * reflection.c: Save pe_kind and machine values into the generated
20233         image file.
20234
20235         * appdomain.c: Bump corlib version number.
20236
20237         * object-internals.h: Reorganize layout of LocalBuilder.
20238
20239         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
20240         New helper function.
20241
20242         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
20243         created MonoType for dynamic types. Fixes #66180.
20244
20245 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
20246
20247         * threadpool.c: the ares hashtable needs a critical section around it.
20248         this prevents some nasty segfaults
20249
20250 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
20251
20252         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
20253         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
20254         bug 67324).
20255         
20256 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
20257
20258         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
20259         
20260 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
20261
20262         * image.c: Always canonicalize image file names, to avoid loading
20263         the same assembly twice when referenced using a relative path.
20264
20265 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
20266
20267         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
20268
20269         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
20270
20271         * marshal.c: Fix warnings.
20272
20273 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
20274
20275         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
20276         attempting to marshal the delegate_trampoline as the method_addr.
20277         This patch has a static hashtable of marshalled delegates so that 
20278         we can map delegate_trampoline addresses back to delegates.  This
20279         allows a delegate passed to managed code to be passed back into native
20280         code.  Fixes #67039
20281
20282 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
20283
20284         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
20285
20286         * reflection.c (method_encode_code): Align method headers properly.
20287         Fixes #66025.
20288
20289 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
20290
20291         * marshal.c: In the runtime invoke wrapper, reset the abort
20292         exception if it is cached. This avoids the automatic rethrowal of 
20293         the exception after the catch of the wrapper. Also check for pending
20294         interruptions before calling the managed method. This is done using
20295         the new method emit_thread_force_interrupt_checkpoint, since the
20296         normal checkpoint method is ignored when running the invoke wrapper.
20297         * object.c: If the abort exception is rethrown, set the abort_exc
20298         field of the thread, so it will be rethrown aftere every catch.
20299         * threadpool.c: Only run an interruption checkpoint if what has been
20300         requested is a stop of the thread (aborts will be ignored).
20301         * threads.c: By default, a thread will now never be interrumped while
20302         running the runtime invoke wrapper (this ensures that runtime_invoke
20303         will always return to the caller if an exception pointer is provided).
20304         There is a new special method mono_thread_force_interruption_checkpoint()
20305         to force an interruption checkpoint even if running a protected
20306         wrapper, which is used by the same runtime invoke wrapper to do a check
20307         at a safe point.
20308
20309 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
20310
20311         * object.c, object-internals.h: Implemented mono_release_type_locks,
20312         which releases the cctor locks held by a thread.
20313         * threads.c, threads.h: In thread_cleanup, release cctor locks held
20314         by a thread. Added mono_thread_exit() method to be used to safely stop
20315         a thread.
20316
20317 2004-09-28  Raja R Harinath  <rharinath@novell.com>
20318
20319         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
20320         Move null check before dereference.  Avoid indexing beyond the end
20321         of the 'modules' array.
20322
20323 2004-09-28  Raja R Harinath  <rharinath@novell.com>
20324
20325         * metadata-internals.h (MonoImage): Add module_count field.
20326         * image.c (load_modules): Set image->module_count.
20327         (mono_image_load_file_for_image): Use image->module_count.
20328         * reflection.c (mono_image_load_module): Append to image->modules array 
20329         of dynamic assembly.
20330         (mono_module_get_object): Fix loop to actually increment index.
20331         Use image->module_count.
20332         * assembly.c (mono_assembly_load_references): Use image->module_count.
20333         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
20334         Likewise.
20335
20336 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
20337
20338         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
20339         Avoid assert on generic types.
20340
20341 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
20342
20343         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
20344
20345         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
20346
20347         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
20348         function to convert a MarshalSpec structure to its managed counterpart.
20349
20350         * reflection.c: Fix warnings.
20351         
20352         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
20353         field.
20354
20355         * icall.c (mono_create_icall_signature): Fix build.
20356
20357 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
20358
20359         * icall.c: Add MakePointType icall.
20360
20361         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
20362         warnings.
20363
20364 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20365
20366         * threadpool.c: reuse allocated slots in the queue.
20367
20368 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
20369
20370         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
20371
20372         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
20373
20374         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
20375         previous change.
20376
20377         * tabledefs.h: Add constants for pinvoke attributes BestFit and
20378         ThrowOnUnmappableChar.
20379
20380         * icall.c (ves_icall_Type_GetPacking): New icall.
20381
20382 2004-09-24  Martin Baulig  <martin@ximian.com>
20383
20384         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
20385
20386 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20387
20388         * appdomain.c:
20389         (mono_domain_set): allow setting a domain that is being unloaded.
20390         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
20391         being unloaded.
20392
20393 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
20394
20395         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
20396         the GetCustomAttributes icall.
20397
20398 2004-09-23  Martin Baulig  <martin@ximian.com>
20399
20400         * object-internals.h (MonoReflectionGenericParam): Replaced
20401         'has_ctor_constraint', `has_reference_type' and `has_value_type'
20402         with `guint32 attrs'.
20403
20404 2004-09-23  Martin Baulig  <martin@ximian.com>
20405
20406         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
20407
20408 2004-09-23  Martin Baulig  <martin@ximian.com>
20409
20410         * object-internals.h (GenericParameterAttributes): New enum.
20411
20412 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
20413
20414         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
20415         
20416         * class.c (init_events): Fill out event->other field.
20417
20418         * class.c: Fix warnings.
20419
20420         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
20421
20422 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
20423
20424         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
20425         walk which doesn't supply the IL offset.
20426
20427 2004-09-22  Martin Baulig  <martin@ximian.com>
20428
20429         * reflection.c (mono_reflection_setup_internal_class): If we're
20430         System.ValueType, System.Object or System.Enum, set
20431         `klass->instance_size' and create the vtable.
20432         (mono_reflection_create_internal_class): If we're an enum type,
20433         get the base class from our current corlib.
20434
20435 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
20436
20437         * reflection.h (MonoResolveTokenError): New type.
20438
20439         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
20440         icall.
20441
20442         * icall.c: Add an 'error' argument to the ResolveToken icalls.
20443
20444 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
20445
20446         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
20447         Support also calling constructors, but only for already allocated objects.
20448
20449 2004-09-17  Geoff Norton <gnorton@customerdna.com>
20450
20451         * reflection.c (type_get_qualified_name): If the klass is null
20452         return the typename to avoid a NullRefEx.
20453         (encode_cattr_value): Get the qualified name of the boxed type,
20454         not the underlying enumtype.  Fixes #62984.
20455
20456 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
20457
20458         * marshal.c: Fix problems with previous checkin.
20459
20460 2004-09-21    <vargaz@freemail.hu>
20461
20462         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
20463         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
20464
20465         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
20466
20467 2004-09-21  Geoff Norton <gnorton@customerdna.com>
20468
20469         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
20470         should only return a type for pointers, arrays, and passbyref types.
20471         Fixes bug #63841.
20472
20473 2004-09-21  Martin Baulig  <martin@ximian.com>
20474
20475         * domain.c (mono_debugger_check_runtime_version): New public
20476         function.
20477
20478         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
20479
20480 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
20481
20482         * reflection.c: Added missing sort to the declarative security 
20483         attributes table. MS implementation stops seeing the attributes if the
20484         token number regress in the table (as shown by ildasm and permview).
20485
20486 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
20487
20488         * object-internals.h (MonoReflectionModule): Add 'token' field.
20489         
20490         * reflection.c (mono_reflection_get_token): Add support for Module
20491         and Assembly.
20492         (mono_module_get_object): Set 'token' field.
20493         (mono_module_file_get_object): Set 'token' field.
20494
20495         * icall.c: Add new Assembly and Module icalls.
20496
20497         * appdomain.c: Bump corlib version.
20498
20499 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
20500
20501         * loader.h loader.c class.h class.c: Add helper functions for obtaining
20502         tokens of metadata objects.
20503
20504         * reflection.h reflection.c (mono_reflection_get_token): New function
20505         to obtain the token of a metadata object.
20506
20507         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
20508
20509 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
20510
20511         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
20512         
20513         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
20514
20515 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
20516
20517         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
20518         * object-internals.h: Added 3 MonoArray* members to MonoReflection
20519         AssemblyBuilder to access the permissions set in the class lib.
20520         * reflection.c: Added security attributes encoding step in 
20521         mono_image_build_metadata.
20522         * tabledefs.h: Added new security actions defined in 2.0:
20523         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
20524
20525 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
20526
20527         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
20528         macro parameter.
20529
20530 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
20531  
20532         * locales.c: nullify the ICU_collator member of CompareInfo when it is
20533           finalized. There where random SIGSEVs at program termination, when
20534           an object being finalized was trying to do a string comparison and
20535           the current culture was already finalized.
20536  
20537 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20538
20539         * threads.c: call thread_cleanup before finishing the thread if we get
20540         there.
20541
20542 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
20543
20544         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
20545         assemblies from the parent. Fixes #65665.
20546
20547 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
20548
20549         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
20550         modifiers.
20551
20552 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
20553
20554         * reflection.h: add prototype for mono_get_dbnull_object
20555         * reflection.c: add prototypes for get_default_param_value_blobs 
20556         and mono_get_object_from_blob for fussier compilers
20557
20558 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
20559  
20560         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
20561         false deadlock checks in class initialization.
20562  
20563 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
20564
20565         * image.c (mono_image_addref): Fix comment.
20566
20567         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
20568         possible.
20569
20570 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
20571
20572         * reflection.c (mono_param_get_objects): Modified to return
20573         ParameterInfo.DefaultValue object.
20574
20575         (get_default_param_value_blobs):
20576         (mono_get_object_from_blob):
20577         (mono_get_dbnull_object): New helper routines. 
20578
20579         * object.c (mono_get_constant_value_from_blob): New helper routine
20580         carved out from get_default_field_value ()
20581
20582         * object-internals.h (mono_get_constant_value_from_blob): Added
20583         function declaration.
20584
20585 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
20586
20587         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
20588         referenced assemblies. Fixes #62135.
20589
20590         * exception.h exception.c (mono_get_exception_file_not_found2): New
20591         helper function.
20592
20593 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
20594
20595         * class.h class.c: Add mono_type_get_underlying_type ().
20596
20597 2004-09-09  Geoff Norton <gnorton@customerndna.com>
20598
20599         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
20600         Fix GetTypes() to support dynamically created assemblies.
20601
20602 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
20603
20604         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
20605         
20606         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
20607         previous patch.
20608
20609         * reflection.h reflection.c loader.c: Allow dynamic construction of
20610         pinvoke methods. Fixes #65571.
20611         
20612         * reflection.c (mono_reflection_get_type): Revert previous change since
20613         it causes regressions.
20614
20615 2004-09-08  Martin Baulig  <martin@ximian.com>
20616
20617         * class.c (class_compute_field_layout): Don't call
20618         mono_class_layout_fields() for open generic instances.
20619
20620 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
20621         * threads.c appdomain.c: fix typo in GC macro
20622
20623 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20624
20625         * threads.c: don't call mono_thread_detach() in start_wrapper(),
20626         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
20627
20628 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
20629
20630         * image.c (mono_image_close): Applied patch from 
20631         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
20632         assembly is loaded multiple times from data.
20633         
20634         * image.c (mono_image_open): Fix warning.
20635
20636 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
20637
20638         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
20639         once. Fixes #58334.
20640         
20641         * reflection.c (mono_reflection_create_runtime_class): Initialize
20642         klass->nested_classes. Fixes #61224.
20643
20644 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
20645
20646         * threads.c: sched_yield() on exit, to allow threads to quit.
20647
20648 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
20649
20650         * object.c (mono_unhandled_exception): Remove leftover debug code.
20651
20652 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
20653
20654         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
20655
20656 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
20657
20658         * marshal.c (emit_marshal_array): Really null terminate string arrays.
20659         
20660         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
20661
20662 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
20663
20664         * marshal.c (emit_marshal_array): Null terminate string arrays.
20665         
20666         * marshal.c (raise_auto_layout_exception): Fix warning.
20667
20668         * reflection.c (mono_param_get_objects): Initialize the default value
20669         with DBNull.Value, not null. Fixes #62123.
20670
20671 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
20672
20673         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
20674         throw an exception with a cute explanation.
20675
20676 2004-09-06  Dick Porter  <dick@ximian.com>
20677
20678         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
20679         Close the new process's thread handle, as we don't use it.  The
20680         handle stays around forever otherwise.
20681
20682 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
20683
20684         * object.c (arith_overflow): Fix warning.
20685
20686         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
20687         calling conventions in method refs. Fixes #65352.
20688
20689         * reflection.c: Fix warnings.
20690
20691 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
20692
20693         * icall.c: Add a new icall for Array.Clear
20694
20695 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
20696
20697         * object.c: When allocating an array, we have to throw
20698         an overflow exception if any of the lengths are < 0.
20699
20700 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
20701
20702         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
20703         properly. Also move implementation of string array marshalling to 
20704         managed code. Fixes #42316.
20705
20706 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20707
20708         * assembly.c: provide more information when loading an assembly fails.
20709
20710 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20711
20712         * filewatcher.c: don't expect the development fam package to be
20713         installed.
20714
20715 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
20716
20717         * marshal.c: Make a copy of the signature cookie since it will be
20718         freed by the caller.
20719         
20720         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
20721
20722         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
20723
20724         * metadata.c (mono_metadata_free_marshal_spec): New function to free
20725         marshal specs.
20726
20727         * marshal.c: More refactoring.
20728         
20729         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
20730         smaller functions.
20731
20732 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
20733
20734         * object.c: In mono_message_invoke, fill the output parameter array after
20735           calling the managed method (it was done before the call). This fixes
20736           bug #59299.
20737
20738 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
20739
20740         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
20741         as well.
20742
20743 2004-09-02  Martin Baulig  <martin@ximian.com>
20744
20745         * class.c (mono_class_instance_size): Don't allow generic type
20746         definitions or open generic instances.
20747         (mono_class_array_element_size): If we're a value type, call
20748         mono_class_instance_size() on the original class.
20749
20750         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
20751         handle generic instances.
20752
20753         * mono-debug-debugger.c (write_type): Handle generic instances
20754         like classes.
20755
20756 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
20757
20758         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
20759         the allocation request fails. Fixes #65089.
20760
20761         * object.c (mono_runtime_free_method): Do not call mono_free_method.
20762         
20763         * object.c (mono_runtime_free_method): New function to free a dynamic
20764         method.
20765
20766         * marshal.c (mono_delegate_free_ftnptr): New function to free the
20767         delegate trampoline.
20768
20769         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
20770         with hasthis as dynamic,
20771
20772         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
20773
20774         * domain.c (mono_jit_info_table_remove): New function to remove an
20775         entry from the jit info table.
20776
20777         * class-internals.h (MonoMethod): Add 'dynamic' field.
20778
20779         * loader.c: Fix warnings.
20780
20781 2004-09-01  Martin Baulig  <martin@ximian.com>
20782
20783         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
20784         instead of mono_debugger_lock() because the latter one is a no-op
20785         unless running in the debugger.
20786
20787 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
20788
20789         * class.c (class_compute_field_layout): Classes with auto-layout or
20790         reference fields are not blittable.
20791         
20792 2004-09-01  Dick Porter  <dick@ximian.com>
20793
20794         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
20795         mono_image_get_filename() to get the assembly location.
20796
20797         * icall.c:
20798         * metadata.h: Fix compile warnings
20799
20800 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
20801
20802         * class.c (class_compute_field_layout): System.Object is blittable.
20803
20804         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
20805         as in/out. Fixes #59909.
20806
20807 2004-09-01  Martin Baulig  <martin@ximian.com>
20808
20809         * metadata.h (MONO_TYPE_ISREFERENCE): Call
20810         mono_metadata_generic_inst_is_valuetype() if we're a generic
20811         instance to check whether our underlying type is a reference type.
20812
20813 2004-09-01  Martin Baulig  <martin@ximian.com>
20814
20815         * metadata.c (mono_type_size): If we're a generic instance, call
20816         mono_class_value_size() for value types.
20817
20818 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
20819
20820         * marshal.c: Implement more custom marshalling functionality. Fixes
20821         #64915.
20822
20823 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
20824
20825         * mono-debug.c, debug-mono-symfile.c: add some locking love.
20826
20827 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
20828
20829         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
20830
20831         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
20832
20833         * icall.c: Fix some warnings.
20834
20835         * threads.c (abort_appdomain_thread): Fix unref errors.
20836         (mono_thread_current): Fix THREAD_DEBUG define.
20837
20838 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
20839
20840         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
20841
20842         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
20843
20844 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
20845
20846         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
20847         string arrays.
20848
20849 2004-08-28  Martin Baulig  <martin@ximian.com>
20850
20851         * metadata.c
20852         (mono_metadata_generic_inst_is_valuetype): New public function.
20853
20854         * metadata.h (MONO_TYPE_ISSTRUCT): Call
20855         mono_metadata_generic_inst_is_valuetype() if we're a generic
20856         instance to check whether our underlying type is a valuetype.
20857
20858 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
20859
20860         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
20861         #63768.
20862
20863 2004-08-25  Martin Baulig  <martin@ximian.com>
20864
20865         * loader.c (mono_get_method_from_token): Abstract methods can also
20866         be generic and thus have type parameters.
20867
20868         * metadata-internals.h
20869         (MonoDynamicImage): Added `GPtrArray *gen_params'.
20870
20871         * reflection.c (mono_image_get_generic_param_info): Don't create a
20872         metadata row, just add an entry to the `gen_params' array.
20873         (build_compressed_metadata): Sort the `gen_params' array and then
20874         actually create the metadata.
20875
20876 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20877
20878         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
20879
20880 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
20881
20882         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
20883
20884 2004-08-24  Martin Baulig  <martin@ximian.com>
20885
20886         * class.cs (mono_class_is_subclass_of): Like an interface, a
20887         generic instance also derives from System.Object.
20888
20889 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
20890
20891         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
20892         custom modifiers to be in any order. Fixes #61990.
20893
20894 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
20895
20896         * object.c: Register mono_object_new_fast icall.
20897         
20898         * object.c (mono_class_get_allocation_ftn): Return to calling
20899         mono_object_new_fast, since it seems faster to compute the object 
20900         size in unmanaged code than passing it as a parameter.
20901
20902         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
20903
20904         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
20905         this function with Boehm as the oom handler, so we don't have to check
20906         the result of GC_malloc.
20907
20908         * object.c: Remove checks for oom.
20909
20910         * object.h object.c (mono_class_get_allocation_ftn): New function to
20911         return the icall which can be used to allocate an instance of a given
20912         class. 
20913
20914         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
20915
20916         * class-internals.h: Add 'enabled' field.
20917
20918 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
20919
20920         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
20921
20922 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
20923         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
20924         value 0x0010.
20925
20926 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
20927
20928         * appdomain.c: use the Tls function for appdomain too,
20929         at Zoltan's request. Actually return in mono_context_get
20930
20931         * appdomain.c, profiler.c, threads.c: use __thread
20932
20933 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
20934
20935         * appdomain.c threads.c: Call GC_CreateThread on windows.
20936
20937         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
20938         multiple libraries since this don't work on windows.
20939
20940 2004-08-18  Martin Baulig  <martin@ximian.com>
20941
20942         * class-internals.h
20943         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
20944         MonoMethodHeader.
20945
20946         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
20947         MonoMethodNormal since we also need it for abstract and interface
20948         methods.
20949
20950         * reflection.c
20951         (build_compressed_metadata): Sort the GenericParam table.
20952         (mono_image_create_token): Added `gboolean create_methodspec'
20953         argument; this is false when generating a MethodImpl token.
20954         (reflection_methodbuilder_to_mono_method): Abstract and interface
20955         methods may also have generic parameters.
20956
20957 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
20958
20959         * appdomain.c: thread local alloc
20960
20961 2004-08-17  Martin Baulig  <martin@ximian.com>
20962
20963         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
20964
20965         * icall.c
20966         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
20967         argument.
20968
20969         * class.c (mono_type_get_full_name): New public function.
20970         (mono_type_get_name): Don't include the type arguments.
20971
20972 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
20973
20974         * Makefile.am: Build static versions of libmetadata and libmonoruntime
20975         for inclusion into the mono executable.
20976
20977 2004-08-16  Martin Baulig  <martin@ximian.com>
20978
20979         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
20980         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
20981
20982 2004-08-14  Martin Baulig  <martin@ximian.com>
20983
20984         * class.c (dup_type): Also copy the `byref' field.
20985
20986 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
20987
20988         * reflection.c (create_dynamic_mono_image): Revert the last change 
20989         since it breaks bootstrap.
20990
20991 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
20992
20993         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
20994
20995         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
20996         not free them with g_free.
20997
20998 2004-08-11  Martin Baulig  <martin@ximian.com>
20999
21000         * reflection.c (mono_reflection_setup_internal_class): Also call
21001         mono_class_setup_mono_type() if we already have a `tb->type.type'.
21002
21003 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
21004
21005         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
21006         called during default (first) AppDomain creation. Keep track of
21007         Evidence when loading assemblies.
21008
21009 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
21010
21011         * opcodes.c, opcodes.h: reduce runtime relocations.
21012
21013 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
21014
21015         * culture-info.h, locales.c: fixes and chages to sue the new
21016         optimized format of the locale data.
21017         * culture-info-tables.h: regenerated.
21018
21019 2004-08-06  Geoff Norton <gnorton@customerdna.com>
21020         
21021         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
21022
21023 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
21024
21025         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
21026         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
21027         * domain-internals.h: icall declaration.
21028         * icall.c: icall registration.
21029         * object-internals.h: New fields in MonoAssembly for CAS.
21030
21031 2004-08-05  Duncan Mak  <duncan@ximian.com>
21032
21033         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
21034         CEE_LDELEM_ANY.
21035
21036 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
21037
21038         * reflection.c: fix to deal with object[] arrays in custom ctors
21039         (bug #62550).
21040
21041 2004-08-05  Martin Baulig  <martin@ximian.com>
21042
21043         * class.c (mono_class_array_element_size): Added support for
21044         generic instances and correctly handle "recursive" types.
21045
21046 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
21047
21048         * assembly.c: Fix warnings.
21049
21050 2004-08-04  Martin Baulig  <martin@ximian.com>
21051
21052         * class.c
21053         (mono_type_get_name_recurse): Added `gboolean include_arity'
21054         argument specifying whether or not we should include the generic
21055         arity in the type name.
21056         (_mono_type_get_name): New static function.
21057         (mono_class_setup_vtable): If we're a generic instance, don't
21058         include the generic arity in the names of explicit method
21059         implementations.        
21060
21061 2004-08-03  Martin Baulig  <martin@ximian.com>
21062
21063         * class.c (mono_type_get_name_recurse): Enclose the generic type
21064         arguments in `<', '>'.
21065
21066 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
21067
21068         * gc.c: make GC warning messages use the trace API, they are just
21069         noise to most of the users.
21070
21071 2004-08-03  Martin Baulig  <martin@ximian.com>
21072
21073         * debug-mono-symfile.c (read_string): Correctly read the string.
21074
21075 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
21076
21077         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
21078         
21079         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
21080         icalls.
21081         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
21082
21083 2004-07-30  Martin Baulig  <martin@ximian.com>
21084
21085         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
21086         Reflect latest symbol writer changes.   
21087
21088 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
21089
21090         * object.c: always create an object if null is passed
21091         to Invoke() where a valuetype is expected.
21092
21093 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
21094
21095         * marshal.c (mono_marshal_init): make managed
21096         signatures match native ones better for 64bits.
21097
21098 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21099
21100         * appdomain.c: hack to build correctly the private bin path on windows.
21101         Fixes bug #61991.
21102
21103 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
21104
21105         * assembly.c: Load mscorlib from the correct framework directory
21106           (mono/<version>/mscorlib.dll).
21107         * appdomain.h: Added prototypes for new functions.
21108         * internals.h: Added some prototypes.
21109         * domain.c: When initializing the runtime, get from the executable and
21110           the configuration files the runtime version that the app supports.
21111           Added support methods for reading app.exe.config. Added list of versions
21112           supported by the JIT. Added two new methods: mono_init_from_assembly,
21113           which initializes the runtime and determines the required version from
21114           the provided exe file, and mono_init_version, which initializes
21115           the runtime using the provided version.
21116         * icall.c: Get machine.config from version-specific directory.
21117         * reflection.c: When generating an image, embed the version number
21118           of the current runtime.
21119
21120 2004-07-28  Dick Porter  <dick@ximian.com>
21121
21122         * socket-io.c
21123         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
21124         returned sockaddr size before creating the remote address object.
21125         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
21126         61608.
21127
21128 2004-07-28  Dick Porter  <dick@ximian.com>
21129
21130         * locales.c (string_invariant_compare_char): Fix invariant char
21131         compares between upper and lower cases.  Fixes bug 61458.
21132
21133 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
21134         
21135         * marshal.c: actually cache stelem.ref wrappers.
21136         
21137 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
21138
21139         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
21140         sections and remove the mono_cli_rva_map () function.
21141
21142 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
21143
21144         * debug-mono-symfile.c: fix one more endianess issue, from a patch
21145         by Geoff Norton (<gnorton@customerdna.com>).
21146
21147 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
21148
21149         * class.c: fix class loads for pointer types (typeof(int) !=
21150         typeof(int*)).
21151
21152 2004-07-27  Martin Baulig  <martin@ximian.com>
21153
21154         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
21155         reading the debugging information from an external ".mdb" file.
21156
21157 2004-07-24  Martin Baulig  <martin@ximian.com>
21158
21159         * reflection.c (mono_image_get_type_info): Only write a class
21160         layout entry if we actually have a size or a packing size.
21161
21162 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
21163
21164         * reflection.c (type_get_fully_qualified_name): 
21165         insert cast to get type checking of ?: with non-gcc compilers
21166
21167 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
21168
21169         * rand.c: use g_getenv for both lookups of
21170         MONO_EGD_SOCKET
21171
21172 2004-07-17  Martin Baulig  <martin@ximian.com>
21173
21174         * reflection.c (mono_reflection_bind_generic_method_parameters):
21175         Set `gmethod->reflection_info'.
21176
21177 2004-07-17  Martin Baulig  <martin@ximian.com>
21178
21179         * class.c (mono_class_create_from_typedef): Insert the newly
21180         created class into the hash table before computing the interfaces
21181         since we could be called recursively.
21182
21183 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
21184
21185         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
21186         function to implement stelem.ref in managed code
21187         * class-internals.h, debug-helpers.c: a new wrapper type
21188         for the above.
21189
21190 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
21191
21192         * gc.c: allow GC handles to work even when no GC is compiled in.
21193         Fix part of bug #61134 (GetAddrOfPinnedObject).
21194
21195 2004-07-13  Peter Williams  <peter@newton.cx>
21196  
21197         * process.c (complete_path): Make sure we don't attempt to execute
21198         directories.
21199  
21200 2004-07-12  Geoff Norton <gnorton@customerdna.com>
21201
21202         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
21203           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
21204           and will add/subtract the hour if needed
21205
21206 2004-07-12  Martin Baulig  <martin@ximian.com>
21207
21208         * reflection.c (mono_field_get_object): If we have
21209         `field->generic_info', take the attributes from
21210         `field->generic_info->generic_type'.    
21211
21212 2004-07-12  Martin Baulig  <martin@ximian.com>
21213
21214         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
21215         This function must be called before initializing the runtime.
21216         (mono_debug_init_1): New function; call this after initializing
21217         the runtime, but before loading the assembly.  It tells the
21218         debugger to load corlib and the builtin types.
21219
21220         * mono-debug-debugger.c: Did some larger changes in the debugging
21221         code; support recursive class declarations, make sure we actually
21222         add all classes.
21223
21224 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21225
21226         * debug-helpers.c: undo my previous patch and fixed the real issue in
21227         ../mini/exceptions-x86.c
21228
21229 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21230
21231         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
21232         when no HOME env. variable was set and a NullRef was thrown in a .cctor
21233         called from other .cctors.
21234
21235 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
21236
21237         * loader.c: Removed the mono_loader_wine_init hack now that we are
21238         doing a managed version of Windows.Forms.
21239
21240 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
21241
21242         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
21243         threadpool.c, threads.c: remove static data from rootset.
21244
21245 2004-07-09  Dick Porter  <dick@ximian.com>
21246
21247         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
21248         Don't do any more processing if the matched length was 0.  It was
21249         increasing the size of the string before.  Fixes bug 61167.
21250
21251 2004-07-09  Dick Porter  <dick@ximian.com>
21252
21253         * socket-io.h:
21254         * socket-io.c
21255         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
21256         Add support for SO_PEERCRED if its available.
21257
21258 2004-07-09  Peter Bartok <pbartok@novell.com>
21259         * loader.c: winelib.exe.so error message is now only displayed if
21260         MONO_DEBUG is set. To help us avoid questions when people are trying
21261         out the new Managed.Windows.Forms.
21262
21263 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
21264
21265         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
21266         for isinst and castclass wrappers.
21267
21268         * class-internals.h icall.c: Move registration and lookup of JIT icalls
21269         to libmetadata from the JIT, so they could be used by the marshalling
21270         code and the interpreter.
21271
21272         * marshal.c: Register marshalling related JIT icalls here instead of
21273         in mini.c. Use CEE_MONO_ICALL instead of the family of 
21274         CEE_MONO_PROC<x> opcodes to call marshalling functions.
21275
21276         * metadata.h: Remove unneeded marshalling conversions.
21277
21278         * opcodes.c: Update for new opcodes.
21279         
21280 2004-07-08  Martin Baulig  <martin@ximian.com>
21281
21282         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
21283         (mono_debug_get_domain_data): Make this function static.
21284
21285 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
21286
21287         * gc.c, object.h: add nice GC handle API for embedders.
21288
21289 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
21290
21291         * reflection.c: more changes for the new api
21292
21293         * object.c: When we reflect on a field w/ a constant value, it
21294         will not have a memory location, so we must access metadata. Also,
21295         allow easier reading of strings so that we can read them from
21296         the constant data.
21297
21298         * class.c (mono_class_layout_fields): no need for literal fields here.
21299
21300         * class-internals.h: api changes for const fields
21301
21302         * icall.c (ves_icall_get_enum_info): use new apis for const fields
21303
21304 2004-07-06  Martin Baulig  <martin@ximian.com>
21305
21306         * mono-debug.h: Increment version number to 44.
21307
21308         * mono-debug.c (mono_debug_add_wrapper): The second argument is
21309         now a gpointer, rewrote this whole method.
21310
21311         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
21312         function.  Add information about the wrapper in a new "misc table".
21313
21314         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
21315         for the new misc table.
21316
21317 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
21318
21319         * metadata-internals.h image.c: Add a cache for helper signatures.
21320
21321         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
21322
21323 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
21324
21325         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
21326         delegates from a delegate. Fixes #61033.
21327         
21328         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
21329         marshalling of stringbuilder arrays. Fixes #59900.
21330
21331 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
21332
21333         * icall.c: Add EnumBuilder:setup_enum_type icall.
21334
21335 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
21336
21337         * icall.c: Added a new icall for the property version of
21338         OffsetOfStringData.
21339
21340 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
21341
21342         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
21343         it has a constant size across platforms.
21344
21345         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
21346         stack trace.
21347
21348 2004-06-29  Martin Baulig  <martin@ximian.com>
21349
21350         * mono-debug.c (mono_debug_add_method): Protect the whole function
21351         in mono_debugger_lock(), not just parts of it.
21352
21353 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
21354
21355         * reflection.c: make sure padding bytes in heaps are zeroed.
21356
21357 2004-06-24  David Waite  <mass@akuma.org>
21358
21359         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
21360         image.c, loader.c, locales.c, marshal.c, metadata.c,
21361         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
21362         string-icalls.c, threads.c: change to C90-style comments from C99 /
21363         C++ -style
21364
21365 2004-06-24  Dick Porter  <dick@ximian.com>
21366
21367         * threads.c
21368         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
21369         return createdNew.  Fixes bug 60412.
21370
21371         * threads-types.h: 
21372         * icall.c: Add createdNew parameter to CreateMutex icall
21373
21374 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
21375
21376         * reflection.c, object-internals.h: save default value in params.
21377
21378 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21379
21380         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
21381         no need to build a new path combining that with the application base.
21382         Fixes bug #60442.
21383
21384 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
21385
21386         * reflection.c: fixed minor standard compliance issues.
21387
21388 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
21389
21390         * reflection.c: fixed issue with encoding some custom attributes
21391         (arrays in properties and fields, bug #60411).
21392
21393 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21394
21395         * reflection.c: fix start address when copying the public key token.
21396
21397 2004-06-23  Martin Baulig  <martin@ximian.com>
21398
21399         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
21400         the `exc' object in a static object to put it into the GC's root set.
21401
21402 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
21403
21404         * reflection.c: make mono_reflection_setup_internal_class ()
21405         callable a second time to setup a new parent class.
21406
21407 2004-06-23  Dick Porter  <dick@ximian.com>
21408
21409         * threads.c: Check for WAIT_IO_COMPLETION return values.
21410
21411 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
21412
21413         * appdomain.c: Removed the g_free on the public key token. Now copy 
21414         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
21415         * assembly.c: Added public key token string value when loading 
21416         assemblies. Fix bug #60439.
21417         * icall.c: Added missing informations (like public key) in 
21418         GetReferencedAssemblies. Fix #60519.
21419         * image.h: Changed definition for public key token from const char*
21420         public_tok_value to guchar public_key_token [17];
21421         * reflection.c: Updated for changes to public key token.
21422
21423 2004-06-22  Lluis Sanchez Gual
21424
21425         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
21426         for the field in base classes.
21427
21428 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
21429
21430         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
21431         mark headers as not supported, they are installed only for use by the
21432         debugger.
21433
21434 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
21435
21436         * *.c, *.h: avoid namespace pollution in public headers.
21437
21438 2004-06-21  Martin Baulig  <martin@ximian.com>
21439
21440         * exception.c (mono_get_exception_security): It's in
21441         "System.Security", not in "System".
21442
21443         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
21444         the exception classes.
21445
21446 2004-06-21  Martin Baulig  <martin@ximian.com>
21447
21448         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
21449         Protect the exception object from being finalized.
21450
21451 2004-06-21  Martin Baulig  <martin@ximian.com>
21452
21453         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
21454         public function.
21455
21456 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
21457
21458         * reflection.c: Load the assembly in mono_reflection_type_from_name,
21459         if it was not loaded before. Fix parts of #60439.
21460
21461 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
21462
21463         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
21464         code that was broken since Ben's change: wrappers are now
21465         dependent on the method signature only again.
21466
21467 2004-06-21  Martin Baulig  <martin@ximian.com>
21468
21469         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
21470         added interface support.
21471
21472 2004-06-21  Martin Baulig  <martin@ximian.com>
21473
21474         * class.c (mono_vtable_get_static_field_data): New public method.
21475
21476 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
21477
21478         * filewatcher.c : Windows build fix to be compliant with API changes.
21479
21480 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
21481
21482         * class.h, class.c: more accessors.
21483         * metadata.h, metadata.c: prepare for hiding MonoType and
21484         MonoMethodSignature: people should use the accessors from now on
21485         outside of the tree.
21486
21487 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
21488
21489         * *.c, *.h: more API cleanups.
21490
21491 2004-06-18  Jackson Harper  <jackson@ximian.com>
21492
21493         * assembly.c: Trace loading assemblies.
21494         * loader.c: Trace loading native libraries.
21495         * mono-config.c: Trace loading config files.
21496         
21497 2004-06-18  Dick Porter  <dick@ximian.com>
21498
21499         * locales.c: Tell ICU the lengths of strings, it can cope with
21500         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
21501
21502 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
21503
21504         * image.c: swapped name/filename;
21505
21506 2004-06-18  Martin Baulig  <martin@ximian.com>
21507
21508         * mono-debug-debugger.c (write_class): Write the parent class at
21509         the end of the header.
21510
21511 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
21512
21513         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
21514
21515 2004-06-17  Raja R Harinath  <rharinath@novell.com>
21516
21517         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
21518         (bundle_obj): New conditional define.
21519         (BUILT_SOURCES): Remove.
21520         ($(bundle_srcs)): Make parallel-make safe.
21521         (libmonoruntime_la_LIBADD): Make unconditional.
21522         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
21523         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
21524
21525 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
21526
21527         * culture-info-tables.h: It was inconsistent with the latest
21528           supp info files.
21529
21530 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
21531
21532         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
21533         be loaded.
21534
21535         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
21536         with gcc 2.95.
21537
21538 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
21539
21540         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
21541         cleaned up public header threads.h.
21542
21543 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
21544
21545         * Makefile.am, *.c, *.h: more API cleanups.
21546
21547 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
21548
21549         * Makefile.am: removed monosn from compilation.
21550         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
21551         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
21552         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
21553         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
21554         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
21555         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
21556
21557 2004-06-15  Jackson Harper  <jackson@ximian.com>
21558
21559         * assembly.c: Make locales lower case when searching the GAC for
21560         assemblies. gacutil will always make locales lowercase when
21561         installing so this effectively makes them case insensitive.
21562         
21563 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
21564
21565         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
21566         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
21567           parameter which allows to choose whether the wait can be interrupted or 
21568           not. Also added the method mono_monitor_enter(), which locks the monitor
21569           using an infinite wait and without allowing interruption.
21570           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
21571           interrupted.
21572         * object.h: Added new fields in MonoThread. suspend_event holds the event
21573           used to susped/resume the thread. synch_lock is the lock object to use for
21574           modifying the thread state.
21575         * threads.c: Use the new synch_lock object for locking, instead of "this",
21576           which can generate deadlocks.
21577           Moved thread state change in Thread.Sleep and Thread.Join from managed
21578           to unmanaged code. This avoids a deadlock when the thread was suspended
21579           just after acquiring the thread lock.
21580           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
21581           Implemented Thread.Suspend using an event instead of ThreadSuspend,
21582           which is not fully implemented in the io-layer.
21583         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
21584
21585 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
21586
21587         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
21588         threads-types.h: more API cleanups.
21589
21590 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
21591
21592         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
21593         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
21594         threadpool.c, threads.c: first pass at the exported API cleanup.
21595
21596 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
21597
21598         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
21599
21600 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21601
21602         * icall.c: added internalGetHome.
21603
21604 2004-06-14  Dick Porter  <dick@ximian.com>
21605
21606         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
21607         possible to return successfully when '.' or '..' were the only
21608         entries in a directory, but were skipped.  The MonoIOStat was not
21609         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
21610         Fixes bug 59574.
21611
21612 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
21613
21614         * reflection.c: make binaries run on .Net 1.1 by default.
21615
21616 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
21617
21618         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
21619
21620 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
21621
21622         * marshal.c: keep track of struct size with explicit layout
21623         (bug #59979).
21624
21625 2004-06-12  Martin Baulig  <martin@ximian.com>
21626
21627         * mono-debug-debugger.c: Comment out a debugging g_message().
21628
21629 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
21630
21631         * reflection.c, reflection.h: do not free custom attrs that are cached.
21632         * icall.c: use braces to make code clearer.
21633
21634 2004-06-11  Martin Baulig  <martin@ximian.com>
21635
21636         * class.h (MonoInflatedField): New type.
21637         (MonoClassField): Replaced `MonoType *generic_type' with
21638         `MonoInflatedField *generic_info'.
21639
21640         * icall.c
21641         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
21642
21643 2004-06-11  Martin Baulig  <martin@ximian.com>
21644
21645         * reflection.c (mono_image_create_method_token): Correctly encode
21646         varargs methods.
21647
21648 2004-06-11  Martin Baulig  <martin@ximian.com>
21649
21650         * metadata.c (mono_metadata_parse_method_signature): When parsing
21651         a MethodDef which has VarArgs, also set sentinelpos if we don't
21652         have any parameters.
21653
21654 2004-06-11  Martin Baulig  <martin@ximian.com>
21655
21656         * verify.c (mono_method_verify): In CEE_CALL, use
21657         mono_method_get_signature() to get the method's signature, unless
21658         we're a PInvoke method.
21659
21660 2004-06-10  Jackson Harper  <jackson@ximian.com>
21661
21662         * assembly.c: Use <path>/lib/mono/gac for the extra paths
21663         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
21664         logical name as the supplied path is just a prefix to the gac not
21665         the direct path to it.
21666         
21667 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
21668
21669         * reflection.c: make the token for a created method match
21670         the token of the MethodBuilder it was created from
21671         (IKVM requires this behaviour now).
21672
21673 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
21674
21675         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
21676         reflection.c, socket-io.c: leak fixes.
21677
21678 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
21679
21680         * icall.c: handle sentinel pos in vararg methods in position different
21681         from 0.
21682
21683 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21684
21685         * culture-info-tables.h: freshly generated.
21686
21687 2004-06-09  Martin Baulig  <martin@ximian.com>
21688
21689         * loader.c (mono_get_method_constrained): Call `mono_class_init
21690         (constrained_class)'.   
21691
21692 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
21693
21694         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
21695         any methods. Fixes #59629.
21696
21697 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
21698
21699         * culture-info-tables.h: reflecting locale-builder updates.
21700
21701 2004-06-08  Dick Porter  <dick@ximian.com>
21702
21703         * object.h:
21704         * locales.c: Fixed compile warnings, including a real bug in
21705         CompareInfo_internal_compare.
21706         
21707 2004-06-08  Dick Porter  <dick@ximian.com>
21708
21709         * locales.c
21710         (ves_icall_System_Globalization_CompareInfo_internal_index):
21711         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
21712         Double-check the resuls of usearches, because ICU currently
21713         ignores most of the collator settings here.  Fixes bug 59720.
21714         
21715 2004-06-08  Dick Porter  <dick@ximian.com>
21716
21717         * locales.c
21718         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
21719         Fix memory leak and segfault-causing typo.  No idea how this one
21720         lasted so long without being noticed.
21721
21722 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
21723
21724         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
21725         any methods. Fixes #59629.
21726
21727 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21728
21729         * assembly.c:
21730         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
21731         own the critical section before). Removed dead code (that's done
21732         in the preload hook).
21733
21734         (mono_assembly_load_with_partial_name): call the preload hook.
21735
21736 2004-06-08  Martin Baulig  <martin@ximian.com>
21737
21738         * metadata.c (mono_metadata_signature_alloc): Default
21739         `sentinelpos' to -1.
21740
21741         * reflection.c (mono_image_get_array_token): Likewise.
21742
21743 2004-06-08  Martin Baulig  <martin@ximian.com>
21744
21745         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
21746
21747         * metadata.c (mono_metadata_parse_method_signature): When parsing
21748         a MethodDef which has VarArgs, set sentinelpos.
21749
21750         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
21751         `gint16' since we're using -1 for non-varargs methods.
21752
21753         * reflection.c
21754         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
21755         (method_encode_signature): Added varargs support.
21756         (method_builder_encode_signature): Likewise.
21757         (mono_image_get_varargs_method_token): New static method.
21758         (mono_image_create_method_token): New public method; this is
21759         called via an icall instead of mono_image_create_token() when
21760         calling a varargs method.       
21761
21762 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
21763
21764         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
21765
21766 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
21767
21768         * culture-info-tables.h : Reflecting the latest locale-builder that
21769           fixed empty array representation ({} to {0}).
21770
21771 2004-06-07  Jackson Harper  <jackson@ximian.com>
21772
21773         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
21774         looking up extra gac paths. This allows MONO_GAC_PATH to act
21775         exactly like a prefix.
21776         
21777 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
21778
21779         * reflection.c (mono_reflection_type_from_name): Make a copy of the
21780         type name before modifying it. Fixes #59405.
21781
21782 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
21783
21784         * culture-info.h: added fields for "all datetime patterns".
21785         * locales.c: (  ves_icall_System_Globalization_CultureInfo
21786           _construct_datetime_format ()): fill xxx_patterns fields.
21787         * object.h: added fields for "all datetime patterns" to
21788           MonoDateTimeFormatInfo.
21789         * culture-info-tables.h: reflecting locale-builder updates.
21790
21791 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
21792
21793         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
21794         the event has no add and remove methods. Fixes #59629.
21795
21796 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
21797
21798         * object.c: Fixed possible integer overflow when allocating large
21799         strings.
21800
21801 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
21802
21803         * culture-info-tables.h: reflecting locale-builder updates.
21804
21805 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
21806
21807         * culture-info-tables.h: reflecting locale-builder updates.
21808
21809 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
21810
21811         * culture-info-tables.h: reflecting locale-builder updates.
21812
21813 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
21814
21815         * threads.c: Made Thread.Sleep abortable.
21816
21817 2004-06-02  Martin Baulig  <martin@ximian.com>
21818
21819         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
21820
21821         * debug-mono-symfile.h: Bumped symbol file version number to 37.
21822
21823 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
21824
21825         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
21826
21827 2004-05-30  Jackson Harper  <jackson@ximian.com>
21828
21829         * reflection.c: Do not hardcode assembly versions or public key
21830         tokens anymore. All of this except the corlib section was dead
21831         code anyways.
21832         
21833 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
21834
21835         * object.c (mono_runtime_invoke_array): Automatically create boxed
21836         objects for byref valuetypes if needed. Fixes #59300.
21837         
21838         * object.c (mono_method_return_message_restore): Handle 
21839         MONO_TYPE_OBJECT as well.
21840
21841 2004-05-28  Jackson Harper  <jackson@ximian.com>
21842
21843         * reflection.c: The modified type encoding was causing build
21844         problems. Reverted for now.
21845         
21846 2004-05-28  Jackson Harper  <jackson@ximian.com>
21847
21848         * reflection.c/h: Take an assembly ref so that we dont create
21849         fully qualified names when encoding types in the same assembly as
21850         the custom attribute being emitted.
21851         * appdomain.c: Increment version number.
21852         
21853 2004-05-26  Duncan Mak  <duncan@ximian.com>
21854
21855         * icall.c
21856         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
21857         Set the full version number (major, minor, build, revision).
21858
21859 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
21860
21861         * marshal.c (emit_struct_conv): increment src/dst after blit
21862         (mono_marshal_get_managed_wrapper,
21863         mono_marshal_get_native_wrapper): make sure we have marshalling
21864         info before marshalling params (info computation affects
21865         blittable)
21866
21867         * class.c (class_compute_field_layout): correctly deal with
21868         blittable
21869         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
21870         value types (as per what windows dows by default)
21871         (mono_class_setup_mono_type): System.ValueType is blittable
21872         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
21873         blittable
21874
21875         * marshal.c (mono_marshal_load_type_info): flag types  as
21876         non-blittable if the native layout doesn't match the managed
21877         layout
21878
21879 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21880
21881         * appdomain.c: don't add stuff in the private search path that is
21882         above the application base. If application base is not set, there's
21883         no private search path.
21884
21885 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
21886
21887         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
21888         byref struct arguments in native->managed marshalling.
21889
21890 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
21891
21892         * marshal.c (mono_marshal_get_runtime_invoke): correctly
21893         cache methods using signature (special case for methods
21894         that are value type or string class)
21895         
21896         * image.c (mono_image_close): clean up allocated GSList's
21897         in runtime_invoke_cache.
21898
21899 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21900
21901         * mono-config.c: set the correct path for mono_cfg_dir on windows when
21902         there's no MONO_CFG_DIR environment variable defined.
21903
21904 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21905
21906         * threads.c: windows version must be >= 0x0500 to include OpenThread.
21907
21908 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
21909
21910         * threadpool.c: Really wait for 500ms after the async call, even if the wait
21911           is interrumped.
21912         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
21913           before waiting for it, and call CloseHandle after the wait to unref it.
21914           This will make sure that handles are not disposed too early.
21915
21916 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21917
21918         * appdomain.c:
21919         * appdomain.h:
21920         * icall.c: removed
21921         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
21922         needed now.
21923
21924         * object.c: se the application_base only for the domain that runs
21925         Main. Fixes bug #59216,
21926
21927 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21928
21929         * appdomain.c:
21930         * object.c: only the domain in which Main is run have
21931         SetupInformation.ConfigurationFile set, so moved a few lines from
21932         appdomain.c to object.c.
21933
21934 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21935
21936         * appdomain.c: we tried to load [name].(dll|exe), but according
21937         to bug #57710, we must also try [culture]/[name].(dll|exe) and
21938         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
21939         There's a test case attached to bug #58922.
21940
21941 2004-05-27  Dick Porter  <dick@ximian.com>
21942
21943         * icall.c:
21944         * file-io.c: Implemented icalls for locking and unlocking regions
21945         in a file.
21946         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
21947         FALSE on error (fixes both compiler warning and real bug.)
21948
21949 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
21950
21951         * culture-info-tables.h: reflecting locale-builder updates.
21952
21953           (Added missing ChangeLog entry for 05/26)
21954
21955 2004-05-27  Jackson Harper  <jackson@ximian.com>
21956
21957         * locales.c: Fix some cut and paste errors.
21958         
21959 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21960
21961         * mono-config.c: set the correct path for config. directory on windows.
21962
21963 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
21964
21965         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
21966           on win32.
21967
21968 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
21969
21970         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
21971         from pinvoke functions.
21972         
21973         * marshal.c (mono_ftnptr_to_delegate): Implement this.
21974
21975 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
21976
21977         * culture-info-tables.h: reflecting locale-builder updates.
21978
21979 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
21980
21981         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
21982         #59086.
21983
21984 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
21985
21986         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
21987         * icall.c: Modified icalls for RNG.
21988         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
21989         Windows (CryptoAPI).
21990
21991 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
21992
21993         * locales.c: Fix build.
21994
21995 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
21996
21997         * culture-info-tables.h: reflecting locale-builder updates.
21998
21999 2004-05-25  Jackson Harper  <jackson@ximian.com>
22000
22001         * locales.c: When creating the current culture use the $LANGs
22002         specific culture. So DateTimeFormat and NumberFormat entries are created.
22003         
22004 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
22005
22006         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
22007         a char array as parameter.
22008
22009 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
22010
22011         * image.c: In mono_image_open(), always use an absolute path name to
22012           look for already loaded images.
22013
22014 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
22015
22016         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
22017         missing in the windows build (like older cygwin include files).
22018
22019 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
22020
22021         * icall.c: Fixed check for possible integer overflow in Buffer_
22022         BlockCopy icall. Replaced comments style // by /* */.
22023
22024 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
22025
22026         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
22027         
22028         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
22029         check after MONO_VTADDR. Fixes pinvoke2.exe.
22030
22031         * marshal.h marshal.c metadata.h: Add beginnings of support for
22032         ftnptr -> delegate marshalling.
22033
22034 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
22035
22036         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
22037         * threads.c: Fix warnings.
22038
22039 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
22040
22041         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
22042         * icall.c: Registered icalls for Suspend and Resume.
22043         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
22044           Thread.Abort.
22045         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
22046         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
22047         * process.c: Use WaitForSingleObjectEx.
22048         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
22049           checkpoints.
22050         * threads.c, threads.h: Make use of new Ex wait methods. Improved
22051           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
22052           for Suspend and Resume. Added new mono_thread_stop, used for stoping
22053           background threads. Added basic support for Abort in Windows.
22054           Start new threads using a managed delegate invoke wrapper. This wrapper
22055           has an interruption checkpoint that is needed since an interruption
22056           can be requested before the thread leaves the unmanaged code that starts 
22057           the thread.
22058         * marshal.c: Added interruption checkpoint after every native call, and
22059           also before managed calls for wrappers called from unmanaged code to
22060           go into managed code.
22061         * object.h: Added new field in MonoThread to keep track of interruption
22062           requests.
22063
22064 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
22065
22066         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
22067         calls.
22068
22069 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22070
22071         * appdomain.c:
22072         * assembly.c:
22073         * gc.c:
22074         * locales.c:
22075         * mono-config.c:
22076         * rand.c: getenv -> g_getenv (windows!)
22077
22078         * process.c: complete_path is also used on non-windows platforms.
22079
22080 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22081
22082         * icall.c: new signature for Process_Start.
22083
22084         * process.[ch]: new signature for Process_Start. If we're on windows
22085         and UseShellExecute is false, we have to search for the program by
22086         ourselves if we don't get a full path.
22087
22088 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
22089
22090         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
22091         marshalling and call CleanUpNativeData if needed. Fixes #58646.
22092
22093 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22094
22095         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
22096         Fixes bug #58373.
22097
22098 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22099
22100         * process.c: use double quotes to quote program name and arguments on
22101         windows. Fixes bug #58575.
22102
22103 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22104
22105         * file-io.c: don't return "." and ".." when using windows Find*File.
22106
22107 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
22108
22109         * marshal.c: Don't pass wrappers to message init because method 
22110         addressed used to lookup metadata. part of remoting[2|3] fix.
22111
22112 2004-05-15  Jackson Harper  <jackson@ximian.com>
22113
22114         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
22115         path is essentially the same as MONO_PATH except that it points to
22116         GACs instead of lib directories.
22117         * loader.h: The user gac is gone so we dont need function to
22118         enable/disable it.
22119         * mono-config.c: user gac option is now gone.
22120         
22121 2004-05-15  Jackson Harper  <jackson@ximian.com>
22122
22123         * culture-info.h: Make defines more consistent, add calendar data
22124         to the culture info table.
22125         * culture-info-tables.h: Add basic calendar data. Basically
22126         everyone gets default gregorian until all the data is
22127         updated.
22128         * locales.c: Use the new consistent defines. Set calendar data for
22129         culture info objects.
22130         * object.h: add a field for calendar data to CultureInfo
22131         
22132 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
22133
22134         * image.c: image->runtime_invoke_cache is keyed on signatures now.
22135         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
22136         a signature.
22137         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
22138         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
22139         an extra param that is the pointer of the method to invoke. The IL for
22140         the invoke method is no longer specific to the method, but to the
22141         signature of the method. Thus, we can share the same code for multiple
22142         methods. This reduces the number of methods that have to be compiled.
22143
22144 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
22145
22146         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
22147
22148         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
22149
22150         * icall.c: Optimize Buffer.BlockCopy.
22151
22152 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22153
22154         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
22155         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
22156         quote). Changed them to "MMMM yyyy".
22157
22158 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
22159
22160         * rand.c
22161         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
22162
22163 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
22164
22165         * reflection.h: Updated after changes to managed structures.
22166
22167         * appdomain.c: Bump corlib version.
22168
22169 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22170
22171         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
22172         windows.
22173
22174 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22175
22176         * Makefile.am: link to ../os/libmonoos.la on windows.
22177
22178         * assembly.c:
22179                 -If MONO_DEBUG, warn about non-existing directories in
22180                 MONO_PATH.
22181                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
22182                 compile time variable.
22183                 -Removed init_default_path and call mono_set_rootdir from
22184                 libmonoos.a instead (windows only).
22185
22186         * assembly.h: declare mono_assembly_getrootdir().
22187
22188         * domain.c:
22189         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
22190
22191         * loader.c: s/getenv/g_getenv/
22192
22193 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
22194
22195         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
22196
22197         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
22198
22199         * metadata.h: Add new marshalling conversions.
22200
22201         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
22202         function.
22203
22204         * reflection.c (mono_reflection_get_type): Lookup the type in all
22205         modules of a multi-module assembly. Fixes #58291.
22206
22207 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
22208
22209         * threads.c: Before aborting a background, set the StopRequested
22210         state.  This avoids throwing the Abort exception.
22211         In mono_thread_manage, don't continue with the shutdown until all
22212         aborted threads have actually stopped.
22213
22214 2004-05-10  Jackson Harper  <jackson@ximian.com>
22215
22216         * locales.c: Remove the modifier from culture names.
22217         
22218 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22219
22220         * Makefile.am: monosn is not installed any more. It has been deprecated
22221         in favor of sn.
22222
22223 2004-05-07  Jackson Harper  <jackson@ximian.com>
22224
22225         * locales.c
22226         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
22227         Fix array construction, add bailout if the length is 0.
22228
22229 2004-05-07  Dick Porter  <dick@ximian.com>
22230
22231         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
22232         machine doesn't have a DNS entry.  Patch by Urs Muff
22233         (umuff@quark.com), fixes bug 57928.
22234
22235 2004-05-06  Jackson Harper  <jackson@ximian.com>
22236
22237         * reflection.c: Handle null PublicTokens properly. alloc mem for
22238         assembly names culture so we dont crash when freeing it.
22239         
22240 2004-05-06  Jackson Harper  <jackson@ximian.com>
22241
22242         * assembly.c: Check the usergac when loading with partial names.
22243         
22244 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
22245
22246         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
22247         does nothing for now (not required for Linux/Windows) but the class
22248         library can call it (and a newer or modified runtime could need it).
22249         * icall.c: Registred icall.
22250
22251 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22252
22253         * loader.c: prints a message on module loading error we set MONO_DEBUG
22254         environment variable.
22255
22256 2004-05-05  Jackson Harper  <jackson@ximian.com>
22257
22258         * appdomain.c: Handle PublicKeyToken=null properly.
22259         
22260 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
22261
22262         * environment.c|h: Added icall ves_icall_System_Environment_
22263         GetOSVersionString to get the current OS version as a string.
22264         * icall.c: Registred icall.
22265
22266 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
22267
22268         * object.c: in mono_object_get_virtual_method(), take into account that
22269         non-virtual methods don't have a slot in the vtable. Check needed when
22270         the object is a proxy.
22271
22272 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
22273
22274         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
22275         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
22276
22277         * object.c (mono_class_compute_gc_descriptor): Fix warning.
22278
22279         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
22280         passed when a valuetype is expected.
22281
22282         * object.c (mono_unhandled_exception): Only set the exit code if the
22283         exception happens in the main thread. Fixes thread5.exe.
22284
22285         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
22286         invalid names. Fixes #58047.
22287
22288 2004-05-03  Jackson Harper  <jackson@ximian.com>
22289
22290         * assembly.c: This line was committed accidently and is unneeded.
22291         
22292 2004-05-03  Jackson Harper  <jackson@ximian.com>
22293
22294         * icall.c: Add new icall for Assembly::LoadWithPartialName
22295         * assembly.c/.h: new function that probes the GAC to load partial
22296         assembly names by Paolo Molaro.
22297         
22298 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22299
22300         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
22301         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
22302         (type_get_fully_qualified_name): Added PublicKeyToken when building a
22303         full type name.
22304
22305 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22306
22307         * appdomain.c: fixed check for 'neutral' culture and removed warning.
22308         * reflection.c: fix bug when parsing a full type name and Version is not
22309         the last thing in the string.
22310
22311 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
22312
22313         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
22314         crashes when it is freed.
22315
22316 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22317
22318         * assembly.c: print the compat warning to stderr.
22319
22320 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
22321
22322         * assembly.c (mono_assembly_load_references): Add a compatibility
22323         hack to run old applications that might be still referencing the
22324         3300-based assemblies, only do this for System.xxx.
22325
22326 2004-05-01  Jackson Harper  <jackson@ximian.com>
22327
22328         * appdomain.c: If the culture is neutral we set it to "".
22329         
22330 2004-04-29  Jackson Harper  <jackson@ximian.com>
22331
22332         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
22333
22334 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
22335  
22336         * string-icalls.c: added low overhead function for copying chars
22337         * icall.c: added needed icall for the above function
22338  
22339 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22340
22341         * icall.c: fix return value of get_global_assembly_cache.  Implemented
22342         Environment.GetLogicalDrives.
22343
22344 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
22345
22346         * rand.c: try and talk to egd or prngd
22347         for random bytes if opening devices fail.
22348
22349 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
22350
22351         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
22352         alignment for the type using the native alignment of its members 
22353         instead of using klass->min_align.
22354
22355         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
22356
22357 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22358
22359         * file-io.c:
22360         * socket-io.c: added check for sys/aio.h.
22361
22362 2004-04-28  Dick Porter  <dick@ximian.com>
22363
22364         * threads.c: Don't abort a thread thats already aborting, when
22365         terminating everything.
22366
22367 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22368
22369         * icall.c: added 2 new async calls for Socket.
22370
22371         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
22372         IO on *nix systems.
22373
22374         * threadpool.c: removed unused variable.
22375
22376 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
22377
22378         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
22379
22380 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
22381
22382         * locales.c: put back string_invariant_tolower () and
22383         string_invariant_toupper ().
22384
22385 2004-04-26 David Waite <mass@akuma.org>
22386
22387         * file-io.h:
22388         * socket-io.h:
22389         * threads.h:
22390         * unicode.h: remove comma from end of enumeration declarations
22391
22392 2004-04-26 David Waite <mass@akuma.org>
22393
22394         * debug-mono-symfile.h:
22395         * decimal.c:
22396         * mono_debug.h:
22397         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
22398
22399
22400 2004-04-26  Jackson Harper  <jackson@ximian.com>
22401
22402         * appdomain.c: Increment version number.
22403         
22404 2004-04-26  Jackson Harper  <jackson@ximian.com>
22405
22406         * appdomain.c: Set assembly references public token value when
22407         PublicKeyToken is specified, not the hash_value. Free public token
22408         values when free assembly name data. Previously the public key
22409         token was hex decoded, however we are using hex encoded public key
22410         tokens, so this is not neccasary.
22411         * assembly.c: Lookup assemblies in the gac if their public token
22412         value is set. Add function to allow enabling user gac
22413         lookups. Specify whether or not the assembly was loaded from the
22414         GAC. Compare full assembly names when checking the cache for
22415         assemblies (Temporarily disabled see comment in code). Remove
22416         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
22417         specifies trace-loader they get extra info to stdout on the
22418         loading of assemblies.
22419         * image.h: Add a field for an assembly references public token
22420         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
22421         whether an assembly has been loaded from the GAC.
22422         * image.c: Remove a corlib -> mscorlib name mapping.
22423         * loader.h: Add function to enable/disable the user gac.
22424         * mono-config.c: Check if the usergac is enabled in the config
22425         file.
22426         * icall.c: New icall to determine whether or not an assembly has
22427         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
22428         * tabldefs.h: Add constant for assemblyref flag that specifies a
22429         full public key is used instead of a public token.
22430         * reflection.c: Remove mscorlib -> corlib mappings. Set
22431         PublicTokenValue instead of hash value. This value is a hex
22432         string so it does not need to be expanded.
22433
22434 2004-04-26  Martin Baulig  <martin@ximian.com>
22435
22436         * mono-debug-debugger.c (mono_debugger_initialize): Set
22437         `mono_debugger_initialized' before calling mono_debug_lock().
22438
22439 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
22440
22441         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
22442           InternalToUpper/InternalToLower.
22443         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
22444           removed invariant culture shortcut.  This is now done in managed code.
22445         * locales.c: (string_invariant_toupper/tolower) removed.
22446
22447 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22448
22449         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
22450         Added Poll internal call.
22451
22452         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
22453         call for Poll. Select was too heavy for polling a single socket.
22454
22455         * threadpool.[ch]: added mono_threadpool_cleanup.
22456         * threads.c: use it. Don't use Thread_Abort on windows.
22457
22458 2004-04-23  Martin Baulig  <martin@ximian.com>
22459
22460         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
22461
22462 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
22463
22464         * icall.c: Registred new icalls for key pair protection and added an
22465         icall for Environment.GetFolderPath on Windows.
22466         * security.c|h: Added new icalls for key pair protection.
22467
22468 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22469
22470         * socket-io.c: don't display the non-supported family warning for known
22471         families. Now this is not displayed on windows when checking support
22472         for IPv4/IPv6.
22473
22474 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22475
22476         * class.c: don't display the layout warning for static fields.
22477
22478 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
22479
22480         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
22481         * locales.c, locales.h: Added new icalls for culture-specific
22482         Char.ToLower and Char.ToUpper.
22483
22484 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22485
22486         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
22487         by David Waite.
22488
22489 2004-04-20  Martin Baulig  <martin@ximian.com>
22490
22491         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
22492         of the type name before passing it to mono_reflection_type_from_name().
22493
22494 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
22495
22496         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
22497         encodings here. Fixes #56965.
22498
22499 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
22500
22501         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
22502         fix test on strstr result not that I can see anything that
22503         relies on the result.
22504
22505 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
22506
22507         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
22508         Fixes #57081.
22509
22510         * marshal.c (mono_marshal_get_string_encoding): New helper function.
22511
22512         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
22513         function to determine which marshalling to use for strings. Fixes
22514         #56965.
22515
22516         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
22517
22518         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
22519
22520 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
22521
22522         * icall.c: #include mono-config.h
22523
22524 2004-04-15  Jackson Harper  <jackson@ximian.com>
22525
22526         * culture-info-tables.h: Fix date formats for en-US culture.
22527         
22528 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
22529
22530         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
22531         ThreadPool.SetMinThreads.
22532         * threadpool.c: Implemented ThreadPool.GetMinThreads and
22533         ThreadPool.SetMinThreads.
22534
22535 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
22536
22537         * mono-config.c: also load the .config file in the directory
22538         where the assembly was found.
22539
22540 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
22541
22542         * assembly.c: load per-assembly config files.
22543         * icall.c: decrapified code to get the config dir and moved to
22544         mono-config.c.
22545         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
22546         per-assembly config files. When doing a dll map lookup give precedence
22547         to the per-assembly data.
22548
22549 2004-04-14  Martin Baulig  <martin@ximian.com>
22550
22551         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
22552         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
22553         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
22554
22555         * mono-debugger-debugger.c: While the debugger is locked, remember
22556         whether the symbol tables have changes and send one single
22557         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
22558
22559 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
22560
22561         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
22562
22563         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
22564         function.
22565
22566         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
22567         account when marshalling string arrays. Fixes #56965.
22568
22569 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
22570
22571         * icall.c: Add new icalls mapping for security.
22572         * security.c|h: Add internal calls for WindowsIdentity,
22573         WindowsImpersonationContext and WindowsPrincipal.
22574
22575 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
22576
22577         * class.c: Added comment to ensure the System.MonoDummy class
22578         is removed when no longer necessary
22579
22580 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
22581
22582         * appdomain.c: Pass arguments to the bootstraping exceptions to
22583         minimize JITed methods at boot
22584
22585         * metadata.c (mono_exception_from_name_two_strings): Allow for the
22586         second string to be null.
22587
22588         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
22589         Change the protocol to minimize the JIT methods at startup.  Now
22590         it Returns the internal codepage, if the value of "int_code_page"
22591         is 1 at entry, and we can not compute a suitable code page
22592         number, returns the code page as a string.
22593
22594 2004-04-13  Jackson Harper  <jackson@ximian.com>
22595
22596         * culture-info-tables.h: Fix number of decimal digits for all
22597         english locales.
22598
22599 2004-04-13  Jackson Harper  <jackson@ximian.com>
22600
22601         * icall.c: Clairfy out of sync error message. It is not always
22602         your corlib that is out of sync.
22603
22604 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
22605
22606         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
22607         properties when only the set accessor is overriden. Fixes #55874.
22608
22609 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
22610
22611         * assembly.c (mono_assembly_load_references): Make this thread safe.
22612         Fixes #56327.
22613
22614 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
22615
22616         * monosn.c: Add missing initialization calls.
22617
22618 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
22619
22620         * locales.c:
22621         ves_icall_System_Globalization_CultureInfo_construct_number_format
22622         Fix g_assert so it compiles on fussier compilers re int/ptr
22623         mismatch
22624
22625 2004-04-08  Dick Porter  <dick@ximian.com>
22626
22627         * socket-io.h:
22628         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
22629         53992.  Also rearrange the code so that the internal calls return
22630         an error value and exceptions are thrown from managed code.
22631
22632         * icall.c: Add type info to the socket icalls.
22633
22634 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22635
22636         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
22637         owes me a beer.
22638
22639 2004-04-07  Martin Baulig  <martin@ximian.com>
22640
22641         * class.c (mono_class_from_generic_parameter): Don't default
22642         `klass->parent' to `mono_defaults.object_type'.
22643
22644 2004-04-07  Martin Baulig  <martin@ximian.com>
22645
22646         * reflection.c (mono_reflection_initialize_generic_parameter): Set
22647         `param->pklass->reflection_info'.       
22648
22649 2004-04-07  Jackson Harper  <jackson@ximian.com>
22650
22651         * culture-info-tables.h: Fix date separator symbol.
22652         
22653 2004-04-07  Martin Baulig  <martin@ximian.com>
22654
22655         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
22656         from System.Type to System.MonoType.
22657
22658 2004-04-07  Martin Baulig  <martin@ximian.com>
22659
22660         * reflection.h
22661         (MonoReflectionGenericParam): Added `has_reference_type' and
22662         `has_value_type' fields.
22663
22664         * reflection.c (mono_image_get_generic_param_info): Encode the
22665         correct flags if we have the `class' or `struct' constraint.
22666
22667 2004-04-07  Martin Baulig  <martin@ximian.com>
22668
22669         * reflection.h
22670         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
22671
22672 2004-04-07  Jackson Harper  <jackson@ximian.com>
22673
22674         * appdomain.c: Revert extra patches, just wanted to bump the
22675         version number.
22676         
22677 2004-04-07  Jackson Harper  <jackson@ximian.com>
22678
22679         * Makefile.am: Add culture-info private headers.
22680         * icall.c: Add new icalls for contructing locales.
22681         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
22682         * locales.h: Declare new culture info construction methods.
22683         * object.h: Add new fields used to avoid the CultureMap to
22684         MonoCultureInfo.
22685         * culture-info.h: Definition of structs used in the culture info
22686         tables.
22687         * culture-info-tables.h: Autogenerated tables that contain culture
22688         info data. This file was generated with the locale-builder tool.
22689         * appdomain.c: Incement corlib version number.
22690         
22691 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
22692
22693         * appdomain.c: (mono_runtime_init) move mono_thread_init
22694         to before mono_object_new calls so critical sections
22695         are initialized before use.
22696
22697 2004-04-07  Martin Baulig  <martin@ximian.com>
22698
22699         * icall.c
22700         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
22701         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
22702         (ves_icall_MonoGenericParam_initialize): Removed.
22703         (monogenericparam_icalls): Removed.
22704         (generictypeparambuilder_icalls): Added new table for
22705         System.Reflection.Emit.GenericTypeParameterBuilder.
22706
22707         * reflection.c
22708         (mono_reflection_define_generic_parameter): Removed.
22709         (mono_reflection_initialize_generic_parameter): This is now called
22710         from GenericTypeParameterBuilder's .ctor.
22711
22712 2004-04-06  Martin Baulig  <martin@ximian.com>
22713
22714         * class.c (mono_class_init): Don't inflate nested classes in a
22715         generic instance.
22716         (mono_type_get_name_recurse): Include the generic arguments for
22717         generic instances and generic type declarations.
22718         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
22719         (_mono_class_get_instantiation_name): Removed.
22720         (mono_class_create_generic): Always use `gklass->name' as our name.
22721
22722         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
22723
22724         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
22725         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
22726         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
22727         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
22728         closed generic methods here.
22729
22730         * reflection.c
22731         (mono_reflection_generic_inst_get_nested_types): Removed.
22732         (inflate_mono_method): Copy the generic parameters from the
22733         MonoMethodHeader into out MonoGenericMethod.
22734
22735 2004-04-06  Martin Baulig  <martin@ximian.com>
22736
22737         * row-indexes.h
22738         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
22739
22740         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
22741
22742         * reflection.c (build_compressed_metadata): If we have any entries
22743         in the GenericParam, MethodSpec or GenericParamConstraint tables,
22744         set the header version to 1.1.
22745
22746 2004-04-06  Martin Baulig  <martin@ximian.com>
22747
22748         * class.c (mono_class_init): If we're a generic instance,
22749         initialize our nested classes, too.
22750         (_mono_class_get_instantiation_name): Deal with the new `!%d'
22751         suffix. 
22752
22753 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22754
22755         * process.c: quote the argument passed to the shell on windows.
22756
22757 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
22758
22759         * threads.c (mono_alloc_special_static_data): Allow this to be
22760         called during startup.
22761
22762 2004-04-02  Martin Baulig  <martin@ximian.com>
22763
22764         * icall.c
22765         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
22766
22767 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
22768
22769         * icall.c: Fix build.
22770
22771 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
22772
22773         * Makefile.am: Added security.c|h.
22774         * icall.c: Added icall for get_UserName;
22775         * security.c: New file for security related icalls. Added function
22776         get_UserName for System.Environment (fix #56144).
22777         * security.h: New. Header file for security.c
22778
22779 2004-04-02  Dick Porter  <dick@ximian.com>
22780
22781         * icall.c: Deleted the icalls that were obsoleted some time ago
22782         by the ICU string code, and which were mixed into the icall
22783         rearranging.  Fixes bug 55969.
22784
22785         * string-icalls.h: 
22786         * string-icalls.c: Deleted the code that those icalls reference.
22787
22788 2004-04-01  Martin Baulig  <martin@ximian.com>
22789
22790         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
22791
22792         * class.c (mono_class_from_generic_parameter): Don't set 
22793         TYPE_ATTRIBUTE_INTERFACE.
22794         (my_mono_class_from_generic_parameter): Likewise.
22795
22796 2004-04-01  Martin Baulig  <martin@ximian.com>
22797
22798         * loader.c (find_method): Added an optional `MonoClass *ic'
22799         argument to search in a specific interface.
22800         (mono_get_method_constrained): New public function.
22801
22802 2004-04-01  Martin Baulig  <martin@ximian.com>
22803
22804         * reflection.c (mono_image_get_generic_field_token): Use the
22805         `handleref' cache here.
22806
22807 2004-04-01  Martin Baulig  <martin@ximian.com>
22808
22809         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
22810
22811         * reflection.c (create_generic_typespec): Use the `typespec' hash
22812         here, not the `typeref' one.    
22813
22814 2004-04-01  Martin Baulig  <martin@ximian.com>
22815
22816         * class.c (mono_class_inflate_generic_type): Moved the
22817         functionality into a new static inflate_generic_type() which
22818         returns NULL if it didn't do anything.  Only increment the
22819         `mono_stats.inflated_type_count' if we actually inflated
22820         something.
22821         (mono_class_get_full): Check the classes type to see whether we
22822         need to inflate it; also inflate MONO_TYPE_(M)VAR.
22823
22824 2004-04-01  Jackson Harper  <jackson@ximian.com>
22825
22826         * reflection.c: Set culture for assembly references.
22827         
22828 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
22829
22830         * reflection.[ch], icall.[ch], Fix support for pinning variables.
22831
22832 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22833
22834         * assembly.c:
22835         (do_mono_assembly_open): the critical section also covers
22836         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
22837
22838 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22839
22840         * threads.c:
22841         (mono_manage_threads): abort the background threads when finishing.
22842         Fixes bug #47232.
22843
22844 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22845
22846         * gc.c: only close the done_event handle if there was no timeout.
22847         C-ified comments.
22848
22849 2004-03-30  Martin Baulig  <martin@ximian.com>
22850
22851         * icall.c (icall_entries): It's called "System.Activator", not
22852         "System.Activation".    
22853
22854 2004-03-30  Martin Baulig  <martin@ximian.com>
22855
22856         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
22857         (mono_class_create_from_typespec): Likewise.
22858
22859 2004-03-30  Martin Baulig  <martin@ximian.com>
22860
22861         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
22862         `has_ctor_constraint' and `initialized'.
22863
22864 2004-03-30  Martin Baulig  <martin@ximian.com>
22865
22866         * reflection.c (encode_new_constraint): New static function to add
22867         the constructor constraint attribute to a type parameter.
22868         (encode_constraints): Call encode_new_constraint() if necessary.
22869
22870         * reflection.h
22871         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
22872
22873         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
22874         
22875 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
22876
22877         * reflection.c, icall.c: add support for pinning variables. 
22878
22879 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
22880
22881         * marshal.c (mono_marshal_get_managed_wrapper):
22882         init bool local with zero rather than null.
22883
22884 2004-03-29  Martin Baulig  <martin@ximian.com>
22885
22886         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
22887         the "official" behavior here.
22888         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
22889
22890 2004-03-29  Martin Baulig  <martin@ximian.com>
22891
22892         * icall.c: Reflect latest API changes.
22893
22894 2004-03-29  Martin Baulig  <martin@ximian.com>
22895
22896         * loader.c (mono_get_method_from_token): Also call
22897         mono_metadata_load_generic_params () for abstract and interface
22898         methods; replace the type arguments in the method signature with
22899         the ones which are loaded from the metadata.
22900
22901 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
22902
22903         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
22904         of the lock is not the current thread. MS.NET don't do it, in spite of
22905         what the documentation says. See bug #56157.
22906
22907 2004-03-28  Martin Baulig  <martin@ximian.com>
22908
22909         * class.c (mono_class_init): Don't call init_properties() and
22910         init_events() for generic instances; set `prop->parent' when
22911         inflating properties.
22912
22913         * reflection.c (mono_generic_inst_get_object): Call
22914         `mono_class_init (ginst->klass)'.
22915         (mono_type_get_object): Only create a MonoGenericInst if your
22916         generic type is a TypeBuilder.
22917         (do_mono_reflection_bind_generic_parameters): Only set
22918         `ginst->is_dynamic' if our generic type is a TypeBuilder.
22919
22920 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
22921
22922         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
22923         Fixes #56091.
22924
22925 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22926
22927         * icall.c: added Kill_internal icall.
22928         * process.[ch]: added Kill_internal icall.
22929
22930 2004-03-25  Martin Baulig  <martin@ximian.com>
22931
22932         * class.h (MonoStats): Added `generic_instance_count',
22933         `inflated_method_count', `inflated_type_count' and
22934         `generics_metadata_size'.       
22935
22936 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22937
22938         * reflection.c: no warnings now.
22939
22940 2004-03-25  Martin Baulig  <martin@ximian.com>
22941
22942         * class.c (mono_class_get_full): New public function; does a
22943         mono_class_get(), but also takes a `MonoGenericContext *'.
22944
22945         * loader.c (mono_field_from_memberref): Renamed to
22946         `field_from_memberref', made static and added `MonoGenericContext *'
22947         argument.
22948         (mono_field_from_token): Added `MonoGenericInst *' argument.
22949         (method_from_memberef): Likewise.
22950         (mono_get_method_from_token): Likewise.
22951         (mono_get_method_full): New public function; does a
22952         mono_get_method(), but also takes a `MonoGenericContext *'.
22953
22954         * verify.c (mono_method_verify): Get the method's generic context
22955         and pass it to mono_field_from_token(), mono_get_method_full() and
22956         mono_class_get_full().
22957
22958 2004-03-25  Martin Baulig  <martin@ximian.com>
22959
22960         * class.c (mono_class_inflate_generic_type): Take a
22961         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
22962         `MonoGenericMethod *'.
22963
22964 2004-03-25  Martin Baulig  <martin@ximian.com>
22965
22966         * loader.h (MonoMethodInflated): Store the MonoGenericContext
22967         instead of the MonoGenericMethod here.
22968
22969 2004-03-25  Martin Baulig  <martin@ximian.com>
22970
22971         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
22972         each time we create a new MonoGenericInst, we also create a new
22973         context which points back to us.
22974
22975         * class.c (inflate_method): Use `ginst->context' instead of
22976         creating a new context.
22977
22978         * loader.c (method_from_memberref): Use
22979         `klass->generic_inst->context' instead of creating a new context.
22980
22981 2004-03-25  Martin Baulig  <martin@ximian.com>
22982
22983         * class.h (MonoGenericContext): New struct.
22984         (MonoGenericMethod): Removed `generic_inst'.
22985
22986         * class.c (mono_class_inflate_generic_method): Take a
22987         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
22988
22989 2004-03-25  Martin Baulig  <martin@ximian.com>
22990
22991         * loader.h (MonoMethodInflated): New typedef.
22992
22993         * metadata.h (MonoMethodSignature): Removed `gen_method', make
22994         `generic_param_count' consume just 30 bits, added `is_inflated'
22995         and `has_type_parameters' flags (one bit each).
22996
22997         * class.c (mono_class_inflate_generic_method): Create a
22998         MonoMethodInflated instead of a MonoMethodNormal and set
22999         `is_inflated' in the method signature.
23000
23001         * class.h (MonoGenericMethod): Removed `generic_method'.
23002
23003 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
23004
23005         * image.c: Make sure the name of a MonoImage is always an absolute path.
23006           This fixes bug #54415.
23007
23008 2004-03-24  Martin Baulig  <martin@ximian.com>
23009
23010         * class.c (mono_class_setup_vtable): If we're a generic instance,
23011         use our generic type's vtable size.
23012
23013 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
23014
23015         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
23016         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
23017         problems.
23018
23019 2004-03-23  Martin Baulig  <martin@ximian.com>
23020
23021         * class.h (MonoDynamicGenericInst): Added `int count_events' and
23022         `MonoEvent *events'.
23023
23024         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
23025         (typebuilder_icalls): Added "get_event_info"; calls
23026         mono_reflection_event_builder_get_event_info(). 
23027
23028         * reflection.c (mono_reflection_generic_inst_initialize): Added
23029         `MonoArray *events'.
23030         (mono_reflection_event_builder_get_event_info): New function.
23031
23032 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
23033
23034         * object.h: add mono_type_initialization_init
23035
23036         * object.c (mono_runtime_class_init): 
23037         implement class constructor synchronization rules
23038         to cope with threading issues.  
23039         add mono_type_initialization_init
23040
23041         * appdomain.c (mono_runtime_init): call 
23042         mono_type_initialization_init
23043
23044         * class.h: removing initializing field from MonoVTable
23045
23046 2004-03-23  Martin Baulig  <martin@ximian.com>
23047
23048         * class.c (my_mono_class_from_generic_parameter): Use
23049         `param->name' if it's not NULL. 
23050
23051 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
23052
23053         * class.c: do not insert non-virtual methods in the vtable.
23054         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
23055         that means the method is non-virtual. This never would have
23056         happened before.
23057
23058 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
23059
23060         * profiler.c: Added lock for accessing coverage_hash.
23061
23062 2004-03-22  Martin Baulig  <martin@ximian.com>
23063
23064         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
23065         `method->method->signature->generic_param_count != 0' to make it
23066         work for interface methods.
23067
23068 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23069
23070         * process.c: quote the string passed to the shell using g_shell_quote.
23071
23072 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23073
23074         * threads.c:
23075         (mono_threads_manage): don't remove the finalizer thread and self
23076         from the threads hash table so that mono_thread_manage can be called
23077         more than once.
23078
23079 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23080
23081         * process.c: quote the arguments when UseShellExecute is true. Fixes
23082         bug #55790.
23083
23084 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23085
23086         * threads.c: set mono_thread_detach as a cleanup routine for every
23087         thread. This way it's always executed upon thread termination, either
23088         aborted or finished normally. No more xsp hangs!
23089
23090 2004-03-17  Martin Baulig  <martin@ximian.com>
23091
23092         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
23093         `int count_nested' and a `MonoType **nested'.
23094
23095         * reflection.c (mono_reflection_bind_generic_parameters): Moved
23096         most of the functionality into a new static
23097         do_mono_reflection_bind_generic_parameters() and don't take a
23098         `MonoType *nested_in' argument any more.  Don't compute nested
23099         types here.
23100         (mono_reflection_generic_inst_get_nested_types): New public method
23101         to get nested types.
23102
23103         * class.c (mono_class_create_generic): Set `klass->nested_in' if
23104         we're a nested class.
23105
23106         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
23107         mono_reflection_generic_inst_get_nested_types() to compute the
23108         nested types.
23109
23110 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
23111
23112         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
23113         descriptive error message under windows.
23114         
23115 2004-03-17  Martin Baulig  <martin@ximian.com>
23116
23117         * class.c (dup_type): Added `const MonoType *original' argument;
23118         copy the attrs from the original type.
23119
23120 2004-03-17  Martin Baulig  <martin@ximian.com>
23121
23122         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
23123         `m->generic_inst_cache' here.
23124
23125 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
23126
23127         * exception.h exception.c: Add stack_overflow_exception.
23128
23129 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23130
23131         * threadpool.c:
23132         (overlapped_callback): call SetEvent *after* invoking the callback.
23133         No need to call CloseHandle.
23134
23135 2004-03-16  Martin Baulig  <martin@ximian.com>
23136
23137         * reflection.c (mono_image_get_fieldref_token): Take a
23138         `MonoReflectionField *' instead of a `MonoClassField *' and a
23139         `MonoClass *'; store the `MonoReflectionField *' in the hash.
23140
23141 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23142
23143         * appdomain.c: don't add the culture to the filename we're looking for
23144         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
23145
23146 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23147
23148         * locales.c: don't ignore symbols when doing case insensitive compares.
23149         Thanks Dick! Fixes bug #54046.
23150
23151         * threads.c: surround 'threads' usage with enter/leave in
23152         mono_thread_manage.
23153
23154 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
23155
23156         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
23157         implicitly marshalled as [Out]. Fixes #55450.
23158
23159         (mono_marshal_get_runtime_invoke): Zero out the result if there is
23160         an exception.
23161
23162 2004-03-16  Martin Baulig  <martin@ximian.com>
23163
23164         * class.c (mono_class_from_generic_parameter): Use the actual
23165         parameter name. 
23166
23167 2004-03-16  Martin Baulig  <martin@ximian.com>
23168
23169         * reflection.c (type_get_signature_size): New static function.
23170         Compues the size of the type in a method signature.
23171         (method_get_signature_size): New static function; calls
23172         type_get_signature_size() to compute the actual size of the
23173         method's signature.
23174         (method_encode_signature): Use method_get_signature_size() to get
23175         the signature's size rather than using `nparams * 10'.
23176
23177 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23178
23179         * file-io.h: define here WapiOverlapped on windows. I don't want the
23180         regular OVERLAPPED one.
23181
23182         * file-io.c:
23183         * threadpool.c: somehow, BindIoCompletionCallback is not found.
23184         Disabling AIO on windows.
23185
23186 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23187
23188         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
23189         bug #55385.
23190
23191 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23192
23193         * appdomain.c: upgraded corlib version.
23194
23195         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
23196         and BeginWrite. Allow opening files for asynchrnous operations.
23197
23198         * file-io.h: new struct that maps FileStreamAsyncResult.
23199         * icall.c: added new icalls.
23200         * process.[ch]: support setting child process environment variables
23201         and use the SHELL or COMSPEC when UseShellExecute is true.
23202
23203         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
23204         callback for async. IO is here and also BindHandle.
23205
23206         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
23207         from here.
23208
23209 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
23210
23211         * reflection.c (create_custom_attr): Allow len == 0.
23212
23213         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
23214         computation on big-endian machines.
23215
23216 2004-03-13  Martin Baulig  <martin@ximian.com>
23217
23218         * class.h (MonoGenericInst): Added `int count_ifaces'.
23219
23220         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
23221         `ginst->count_ifaces' instead `klass->interface_count' since we
23222         may get called before the vtable is created.
23223
23224         * loader.c (mono_method_get_param_names): If we're a generic
23225         instance, return and don't initialize the class.
23226
23227         * reflection.c (mono_reflection_setup_generic_class): Don't call
23228         ensure_runtime_vtable().
23229         (mono_reflection_bind_generic_parameters): Set
23230         `ginst->count_ifaces'.
23231
23232 2004-03-11  Jackson Harper <jackson@ximian.com>
23233
23234         * icall.c:
23235         * unicode.c:
23236         * unicode.h: Remove unused System.Char icalls.
23237         
23238 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
23239
23240         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
23241         code when we P/Invoke the first library in Windows.Forms, instead
23242         of when we first open the assembly.
23243
23244         * assembly.c: Drop the lookup from here.
23245
23246 2004-03-10  Martin Baulig  <martin@ximian.com>
23247
23248         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
23249         class for properties, fields and events.  Finally fixes #54945.
23250
23251 2004-03-10  Martin Baulig  <martin@ximian.com>
23252
23253         * metadata.c (mono_metadata_class_equal): New static function;
23254         checks whether two generic instances or two generic parameters are
23255         equal.
23256         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
23257         compare classes.        
23258
23259 2004-03-10  Martin Baulig  <martin@ximian.com>
23260
23261         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
23262
23263         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
23264         argument and write it into the `reflection_info' field.
23265
23266         * icall.c
23267         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
23268         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
23269
23270 2004-03-09  Jackson Harper  <jackson@ximian.com>
23271
23272         * char-conversions.h: use 8 bits for numeric data its all we need
23273         * icall.c: numeric data is only 8 bits now.
23274
23275 2004-03-09  Martin Baulig  <martin@ximian.com>
23276
23277         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
23278
23279         * class.c (init_properties, init_events): Initialize the new
23280         `parent' field.
23281
23282         * reflection.c (typebuilder_setup_properties): Likewise.
23283         (typebuilder_setup_events): Likewise.
23284
23285         * reflection.h (MonoEventInfo): Replaced `parent with
23286         `declaring_type' and `reflected_type'.
23287
23288         * icall.c (ves_icall_get_property_info): Distinguish between
23289         declaring and reflected type.
23290         (ves_icall_get_event_info): Likewise.
23291
23292 2004-03-09  Martin Baulig  <martin@ximian.com>
23293
23294         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
23295         (ves_icall_Type_GetField): Correctly set field->klass.
23296
23297 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
23298
23299         * loader.h: Fix warning.
23300
23301 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
23302
23303         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
23304         library routine if present.  Notice that it will still continue
23305         executing even if its missing, for those working on the Gtk#
23306         edition of Windows.Forms.
23307
23308         * assembly.c (do_mono_assembly_open): If loading the
23309         System.Windows.Forms call mono_loader_wini_init.
23310
23311 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
23312
23313         * class.h: Added MonoRemoteClass struct.
23314         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
23315         function for MonoStrings.
23316         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
23317         Added internal call for getting the proxy type.
23318         * marshal.c: Get the type of transparent proxies from its remote_class.
23319         Added methods that generate the IL for type checks and casts:
23320         mono_marshal_get_isinst, mono_marshal_get_castclass, 
23321         mono_marshal_get_proxy_cancast.
23322         * marshal.h: Declaration of the previous new methods.
23323         * object.c: Added new moethods for creating and updating MonoRemoteClass
23324         instances: mono_remote_class, mono_upgrade_remote_class, 
23325         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
23326         * verify.c: FIx transparent_proxy_fields layout.
23327         * appdomain.c: Bump corlib version.
23328
23329 2004-03-04  Jackson Harper  <jackson@ximian.com>
23330
23331         * icall.c: Add icall to access char conversion tables.
23332         * char-conversions.h: Character conversion tables.
23333         * Makefile.am: Add char-conversions.h private header file.
23334         
23335 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
23336
23337         * appdomain.c (unload_thread_main): Increase unloading timeout to
23338         10 sec as a temporary workaround for Nant problems.
23339
23340 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
23341
23342         * gc.c: Add checks for GC_enable and GC_disable.
23343
23344         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
23345         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
23346         (bug #54988).
23347         
23348 2004-02-27  Martin Baulig  <martin@ximian.com>
23349
23350         * reflection.c (mono_reflection_bind_generic_parameters): Take a
23351         `MonoReflectionType *' instead of a `MonoType *'.
23352
23353 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
23354
23355         * gc.c (run_finalize): Avoid finalizing the object representing the
23356         finalizer thread.
23357         (finalizer_thread): Fix warning.
23358
23359 2004-02-25  Martin Baulig  <martin@ximian.com>
23360
23361         * class.c (_mono_class_get_instantiation_name): Added `int offset'
23362         argument for nested types.
23363         (mono_class_create_generic): Added support for nested generictypes.
23364
23365         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
23366         `GList *nested'.
23367
23368         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
23369
23370         * reflection.c (method_encode_signature): Increase the minimum
23371         value of `size' from 10 to 11.
23372         (mono_reflection_bind_generic_parameters): Take `int type_argc'
23373         and `MonoType **types' arguments instead of the `MonoArray
23374         *types'; added `MonoType *nested_in'.  Recursively instantiate
23375         nested classes. 
23376
23377 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
23378
23379         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
23380         stack_overflow_ex members which are used by exception handling.
23381
23382         * appdomain.c (mono_runtime_init): Initialize the new members.
23383
23384         * gc.c (mono_gc_enable): New helper function.
23385         * gc.c (mono_gc_disable): New helper function.
23386
23387 2004-02-23  Martin Baulig  <martin@ximian.com>
23388
23389         * icall.c: I must have been really stupid - make it actually work
23390         this time ;-)
23391
23392 2004-02-23  Martin Baulig  <martin@ximian.com>
23393
23394         * loader.c (method_from_memberref): Only inflate the method if
23395         it's in another klass.
23396
23397 2004-02-23  Martin Baulig  <martin@ximian.com>
23398
23399         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
23400         (mono_class_init): If we're a generic instance and an interface,
23401         compute `class->interface_id'; also create `class->interfaces'
23402         here and inflate them.
23403
23404         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
23405         `ginst->is_open'.
23406         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
23407
23408         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
23409
23410 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
23411
23412         * reflection.c (method_encode_code): Improved the error message
23413         generated by the exception.
23414
23415 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23416
23417         * icall.c: Martin did not do what he said in the ChangeLog for
23418         2004-02-18, but put back the changes for properties and events.
23419         Commenting those changes out again and adding comment to bug #54518.
23420         
23421         * process.c: removed warning.
23422
23423 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
23424
23425         * marshal.c (emit_struct_conv): Print an error message instead of
23426         asserting when a type does not have the StructLayout attribute.
23427
23428 2004-02-20  Martin Baulig  <martin@ximian.com>
23429
23430         * reflection.c (mono_type_get_object): Also use the cache for
23431         generic instances.
23432         (mono_reflection_bind_generic_parameters): Always compute
23433         `ginst->ifaces'.        
23434
23435 2004-02-20  Martin Baulig  <martin@ximian.com>
23436
23437         * class.h (MonoGenericMethod): Removed `klass'.
23438
23439         * class.c (mono_class_inflate_generic_method): Added `MonoClass
23440         *klass' argument.
23441
23442 2004-02-20  Martin Baulig  <martin@ximian.com>
23443
23444         * reflection.c (method_encode_methodspec): Actually use the
23445         uninflated signature for the memberref.
23446
23447 2004-02-20  Martin Baulig  <martin@ximian.com>
23448
23449         * class.h (MonoGenericMethod): Removed `declaring'.
23450
23451         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
23452         is NULL, compute it here.
23453
23454 2004-02-20  Martin Baulig  <martin@ximian.com>
23455
23456         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
23457
23458         * metadata.c (mono_metadata_generic_inst_hash): New method.
23459         (mono_metadata_generic_inst_equal): New method.
23460
23461         * reflection.c (mono_reflection_bind_generic_parameters): Use the
23462         `klass->image->generic_inst_cache' cache to avoid creating
23463         duplicate MonoGenericInst's.
23464
23465         * class.c (mono_class_inflate_generic_type): Use the cache.
23466
23467 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
23468
23469         * object.c: fixed gc descriptor calculation for embedded valuetypes.
23470
23471 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23472
23473         * icall.c: added Socket.WSAIoctl icall.
23474
23475         * socket-io.[ch]: implemented
23476         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
23477
23478 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
23479
23480         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
23481
23482 2004-02-18  Urs C Muff  <umuff@quark.com>
23483
23484         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
23485         this work on PPC and other big-endian architectures.
23486
23487         * debug-mono-symfile.h: Prepended the names of all the `guint32'
23488         fields with an underscore to make sure they're only accessed by
23489         the read32() macro.
23490
23491 2004-02-18  Martin Baulig  <martin@ximian.com>
23492
23493         * icall.c: Put the klass->refclass changes back for methods and
23494         fields, but not for properties and events.  We're currently not
23495         distinguishing between DeclaringType and ReflectedType for
23496         properties and events, that's what caused the regressions.
23497
23498 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23499
23500         * object.c:
23501         (mono_async_result_new): the handle can be NULL.
23502
23503         * threadpool.c: Use an event instead of a semaphore, don't initialize
23504         it until needed. This saves quite a few semaphores from being created
23505         when using the threadpool.
23506
23507 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
23508
23509         * object.c (mono_string_is_interned_lookup): Fix interning of long
23510         strings. Fixes #54473.
23511
23512         * domain.c (ldstr_equal): Optimize if the two strings are equal.
23513
23514         * icall.c: Revert the klass->refclass changes since they introduce
23515         regressions (bug #54518).
23516
23517 2004-02-18  Martin Baulig  <martin@ximian.com>
23518
23519         * class.c (mono_class_init): If we're a generic instance and don't
23520         come from a TypeBuilder, inflate our members here.
23521         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
23522         (mono_class_create_generic): New public method.
23523         (mono_class_initialize_generic): Removed.
23524         (get_instantiation_name): Renamed to
23525         _mono_class_get_instantiation_name() and made it public.
23526
23527 2004-02-18  Martin Baulig  <martin@ximian.com>
23528
23529         * class.c (mono_class_inflate_generic_type): Clear the new
23530         instance's `nginst->klass' when inflating a generic instance.
23531         (mono_class_is_subclass_of): Added (basic) support for generic
23532         instances.
23533
23534 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
23535
23536         * appdomain.h, domain.c: use a MonoCodeManager instead of a
23537         MonoMempool to hold compiled native code.
23538
23539 2004-02-17  Martin Baulig  <martin@ximian.com>
23540
23541         * class.h (MonoDynamicGenericInst): Added `count_properties' and
23542         `properties'.
23543
23544         * reflection.c (mono_reflection_generic_inst_initialize): Added
23545         `MonoArray *properties' argument.
23546
23547         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
23548
23549 2004-02-17  Martin Baulig  <martin@ximian.com>
23550
23551         * icall.c (ves_icall_Type_GetFields): Renamed to
23552         ves_icall_Type_GetFields_internal() and added a
23553         `MonoReflectionType *rtype' argument; pass it to
23554         mono_field_get_object() to set the field's "reflected" type.
23555         (ves_icall_Type_GetConstructors): Likewise.
23556         (ves_icall_Type_GetEvents): Likewise.
23557         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
23558         argument; pass it to mono_method_get_object() to set the method's
23559         "reflected" type.       
23560
23561 2004-02-17  Martin Baulig  <martin@ximian.com>
23562
23563         * class.h (MonoDynamicGenericInst): New type.
23564         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
23565
23566         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
23567         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
23568         (ves_icall_MonoGenericInst_GetFields): New interncall.
23569
23570         * class.c (mono_class_from_generic): Don't call
23571         mono_class_initialize_generic() if this is a dynamic instance;
23572         ie. it's being created from a TypeBuilder.
23573         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
23574         `class->byval_arg.type'.
23575
23576         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
23577         to `inflate_method' and made static.
23578         (mono_reflection_inflate_field): Removed.
23579         (mono_reflection_generic_inst_initialize): New public method.
23580
23581         * reflection.h (MonoReflectionGenericInst): Removed `methods',
23582         `ctors' and `fields'; added `initialized'.
23583
23584 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
23585
23586         * debug-helpers.c (mono_method_full_name): Fix output for empty
23587         namespaces.
23588
23589 2004-02-12  Martin Baulig  <martin@ximian.com>
23590
23591         * class.h (MonoClassField): Added `MonoType *generic_type'.
23592
23593         * reflection.c (mono_image_get_fieldref_token): Added support for
23594         instantiated generic types.
23595         (field_encode_inflated_field): Removed.
23596         (mono_image_get_inflated_field_token): Removed.
23597         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
23598
23599         * reflection.h (MonoReflectionInflatedField): Removed.
23600
23601 2004-02-12  Martin Baulig  <martin@ximian.com>
23602
23603         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
23604         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
23605
23606         * reflection.c (mono_image_get_methodspec_token): Take a
23607         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
23608         (mono_image_create_token): Check whether we have a
23609         `method->signature->gen_method' and call
23610         mono_image_get_methodspec_token() if appropriate.
23611         (inflated_method_get_object): Removed.
23612         (mono_reflection_bind_generic_method_parameters): Return a
23613         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
23614         (mono_reflection_inflate_method_or_ctor): Likewise.
23615
23616         * reflection.h (MonoReflectionInflatedMethod): Removed.
23617
23618 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
23619
23620         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
23621         for custom valuetype marshalling.
23622
23623         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
23624
23625 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23626
23627         * icall.c: fixed WSAGetLastError_internal name.
23628
23629 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
23630
23631         * threads.c (mono_thread_attach): Allow this to be called multiple
23632         times for a thread.
23633         
23634         * threads.c (build_wait_tids): Do not wait for ourselves.
23635
23636         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
23637         appdomain list is empty.
23638
23639         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
23640         memory returned by mono_string_builder_to_utf16, since it points into
23641         managed memory. Thanks to Bernie Solomon for noticing this.
23642
23643         * icall.c: Add AppDomainSetup icalls.
23644
23645         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
23646
23647         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
23648         types.
23649
23650         * reflection.c (reflection_methodbuilder_to_mono_method): Save
23651         custom attributes to the method_aux struct. Also fix array indexes etc.
23652
23653         * loader.c (mono_method_get_param_names): Make dynamic case work again.
23654         
23655 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
23656
23657         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
23658         (both static and runtime) and reduce startup time.
23659
23660 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
23661
23662         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
23663         AsAny marshalling conversion instead of crashing.
23664
23665         * marshal.c: Fix warnings.
23666
23667 2004-02-09  Martin Baulig  <martin@ximian.com>
23668
23669         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
23670
23671         * reflection.h (MonoReflectionInflatedMethod): Removed the
23672         `declaring' field, it's now in the unmanaged MonoGenericMethod.
23673
23674         * reflection.c (method_encode_methodspec): Removed the `method'
23675         argument; we get it from `gmethod->declaring'.
23676         (inflated_method_get_object): Removed the `declaring' argument.
23677
23678 2004-02-09  Martin Baulig  <martin@ximian.com>
23679
23680         * class.h (MonoGenericMethod): New type.
23681         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
23682         `generic_method'.
23683
23684         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
23685         a `MonoGenericMethod *gen_method' one.
23686
23687         * class.c (mono_class_inflate_generic_type): Take an additional
23688         `MonoGenericMethod * argument.  This is only non-NULL if we're
23689         inflating types for a generic method.   
23690         (mono_class_inflate_generic_signature): Renamed to
23691         inflate_generic_signature() and made static; take a
23692         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
23693         (inflate_generic_header): Take a `MonoGenericMethod *' argument
23694         instead of a `MonoGenericInst *' one.
23695         (mono_class_inflate_generic_method): Likewise.
23696
23697         * reflection.c (encode_generic_method_sig): Take a
23698         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
23699         (method_encode_methodspec): Likewise.
23700         (inflated_method_get_object): Likewise. 
23701
23702         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
23703         field with a `MonoGenericMethod *gmethod' one.  
23704
23705 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
23706
23707         * class.h (mono_class_has_parent): add parens to expansion
23708         so you can ! this.
23709
23710 2004-02-08  Martin Baulig  <martin@ximian.com>
23711
23712         * image.h (MonoImage): Removed `generics_cache'.
23713
23714         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
23715         instead of a `MonoType *' argument; removed the `inflate_methods'
23716         argument.  Don't inflate methods here.
23717
23718         * loader.c (find_method): If it's a generic instance, call
23719         mono_class_init() on the `sclass->generic_inst->generic_type'.
23720
23721         * metadata.c (mono_type_size): Make this work on uninitialized
23722         generic instances; call it on the `ginst->generic_type's class.
23723
23724         * reflection.c (mono_reflection_bind_generic_parameters): Call
23725         mono_class_from_generic() to create the `ginst->klass'.
23726
23727 2004-02-08  Martin Baulig  <martin@ximian.com>
23728
23729         * class.h (MonoClass): Changed type of `generic_inst' from
23730         `MonoType *' to `MonoGenericInst *'.
23731
23732 2004-02-08  Martin Baulig  <martin@ximian.com>
23733
23734         * icall.c (ves_icall_Type_BindGenericParameters): Just call
23735         mono_type_get_object(), this is now creating a `MonoGenericInst'
23736         for MONO_TYPE_GENERICINST.
23737         (ves_icall_MonoGenericInst_GetParentType): Likewise.
23738         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
23739
23740         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
23741         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
23742         (inflated_method_get_object): Added `MonoClass *refclass' argument.
23743         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
23744         and reflected type.
23745
23746         * reflection.h (MonoReflectionInflatedMethod): Removed
23747         `declaring_type' and `reflected_type'.
23748
23749 2004-02-08  Martin Baulig  <martin@ximian.com>
23750
23751         * class.h (MonoGenericInst): Added `MonoType *parent' and
23752         `MonoType **ifaces'.
23753
23754         * reflection.h (MonoReflectionGenericInst): Removed `klass',
23755         `parent' and `interfaces'.
23756
23757         * reflection.c (mono_reflection_bind_generic_parameters): Take a
23758         `MonoType *' argument and return a `MonoType *'.
23759
23760         * icall.c
23761         (ves_icall_MonoGenericInst_GetParentType): New interncall.
23762         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
23763
23764 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
23765
23766         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
23767         valuetype marshalling.
23768
23769 2004-02-06  Martin Baulig  <martin@ximian.com>
23770
23771         * class.c
23772         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
23773         (my_mono_class_from_generic_parameter): Likewise.
23774
23775 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
23776
23777         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
23778         contents of the symbol files lazily.
23779
23780         * object.h (MonoThread): Add 'name' and 'name_len' fields.
23781
23782         * threads.h threads.c icall.c: New icalls for getting and setting the
23783         threads name.
23784
23785 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
23786
23787         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
23788         Raise an exception when the domain is not found.
23789
23790 2004-02-03  Martin Baulig  <martin@ximian.com>
23791
23792         * reflection.c (mono_image_get_methodspec_token): Use the
23793         uninflated signature; fixes gen-33.
23794
23795 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
23796
23797         * gc.c threads.c: Make the finalizer thread a normal managed thread so
23798         the finalizer code can use thread functionality.
23799
23800         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
23801         the finalizer thread.
23802
23803         * threads.c: Make some functions more robust.
23804
23805         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
23806
23807         * metadata.h: Add new marshalling conventions.
23808
23809         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
23810         stringbuilder marshalling. Fixes #53700.
23811
23812         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
23813
23814         * reflection.c (mono_image_get_type_info): Save declarative security
23815         info.
23816
23817         * reflection.c (mono_image_get_field_info): Handle uninitialized 
23818         unmanaged fields as well.
23819
23820         * appdomain.c: Bump corlib version.
23821
23822 2004-02-01  Martin Baulig  <martin@ximian.com>
23823
23824         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
23825         method type arguments.  
23826
23827 2004-01-30  Duncan Mak  <duncan@ximian.com>
23828
23829         * marshal.h: Add prototype for
23830         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
23831         and
23832         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
23833         fix the build.
23834
23835 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
23836
23837         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
23838         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
23839
23840 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
23841
23842         * marshal.c (mono_marshal_get_native_wrapper): Add support for
23843         custom marshalling of valuetypes.
23844
23845         * marshal.c: Fix some warnings.
23846
23847 2004-01-29  Martin Baulig  <martin@ximian.com>
23848
23849         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
23850         for generic method parameters.
23851
23852         * reflection.c (method_encode_methodspec): Write the uninflated
23853         signature into the methodspec table.
23854         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
23855         is always the uninflated method.
23856         (reflection_methodbuilder_to_mono_method): Copy the generic
23857         parameters from the MethodBuilder into `header->gen_params'.
23858
23859 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
23860
23861         * class.c (mono_class_from_generic_parameter): Fix warning.
23862
23863 2004-01-27  Martin Baulig  <martin@ximian.com>
23864
23865         * class.c (mono_class_from_generic_parameter): Don't create
23866         `klass->methods' here.  
23867
23868 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
23869
23870         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
23871         extension since it does not work with libraries named lib<FOO>.dll.so.
23872
23873 2004-01-25  Martin Baulig  <martin@ximian.com>
23874
23875         * class.c (mono_class_inflate_generic_type): Added support for
23876         MONO_TYPE_GENERICINST.
23877
23878         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
23879         inflate methods on open constructed types.      
23880
23881 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23882
23883         * object.c: fire ProcessExit event in the root AppDomain after running
23884         Main. Fixes bug #53299.
23885
23886 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
23887
23888         * socket-io.c: include the new socket-wrappers.h header.
23889         Use the wrappers instead of the unix socket functions to make the code
23890         more clear.
23891
23892 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
23893
23894         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
23895
23896         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
23897         Fixes #22532.
23898
23899 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
23900
23901         * reflection.c (mono_image_create_pefile): Handle the case when the
23902         entry point is not a MethodBuilder.
23903
23904         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
23905         field to ReflectionMethod since it is not allways a builder.
23906
23907         * reflection.c (type_get_fully_qualified_name): New helper function to
23908         return the fully qualified name of a type.
23909
23910         * reflection.c (encode_marshal_blob): Always emit the fully qualified
23911         type name for custom marshallers.
23912
23913         * reflection.c (mono_marshal_spec_from_builder): Ditto.
23914
23915         * class.c (mono_class_setup_vtable): If a parent class already 
23916         implements an interface, use the implementing methods from that class.
23917         Fixes #53148.
23918
23919 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23920
23921         * threadpool.c: just return instead of ExitThread to allow for thread
23922         clean up earlier.
23923
23924 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
23925
23926         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
23927         when closing resource modules.
23928
23929         * reflection.c (mono_image_create_pefile): Handle the case when the
23930         entry point is not a MethodBuilder.
23931
23932         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
23933         field to ReflectionMethod since it is not allways a builder.
23934
23935 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
23936
23937         * marshal.c (mono_marshal_get_managed_wrapper): 
23938         mono_marshal_alloc takes native int so CONV_I
23939         the arg for 64bits.
23940
23941 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
23942
23943         * reflection.c (fixup_cattrs): New function to fixup the methoddef
23944         tokens in the cattr table. Fixes #53108.
23945
23946 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23947
23948         * loader.c: don't trim ".dll" before looking up in the config file.
23949         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
23950
23951 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
23952
23953         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
23954         Return the module which contains the resource as well.
23955         (ves_icall_System_Reflection_Module_Close): New icall.
23956
23957         * appdomain.c: Bump corlib version number.
23958
23959         * image.c (mono_image_addref): New public function.
23960
23961         * assembly.c: Call mono_image_addref.
23962
23963         * reflection.c (mono_module_get_object): Increase reference count of 
23964         the image.
23965
23966         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
23967         Fixes #22532.
23968
23969         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
23970         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
23971         proper exceptions on DllImport problems.
23972
23973 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
23974
23975         * class.c, metadata.c: eliminate CSIZE macro.
23976
23977 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
23978
23979         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
23980         * object.h: Added async_callback field in MonoAsyncResult.
23981         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
23982         * verify.c: Added async_callback in MonoAsyncResult layout.
23983
23984 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
23985
23986         * reflection.c (mono_reflection_get_custom_attrs): Add support
23987         for Modules.
23988
23989 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
23990
23991         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
23992         marshalling.
23993         (mono_marshal_method_from_wrapper): Add null pointer check.
23994
23995 2004-01-16  Martin Baulig  <martin@ximian.com>
23996
23997         * debug-mono-symfile.h: Set version number to 36 and reflect
23998         latest symbol writer changes.
23999
24000 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
24001
24002         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
24003         multi-dimensional arrays.
24004         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
24005         (mono_class_from_mono_type): Use bounded_array_class_get.
24006         
24007         * class.c (mono_bounded_array_class_get): New function which takes
24008         a 'bounded' bool argument to distinguish vectors from one dimensional
24009         arrays.
24010
24011         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
24012         bounded_array_class_get if the array has bounds.
24013
24014         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
24015         Search modules loaded using AssemblyBuilder:AddModule as well.
24016
24017 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24018
24019         * appdomain.c: increased corlib version.
24020         * filewatcher.c: removed g_print.
24021         * icall.c:
24022         (get_property_info): only allocate what is actually requested.
24023         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
24024
24025 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24026
24027         * Makefile.am: added filewatcher.[ch]
24028         * filewatcher.[ch]: FileSystemWatcher runtime support.
24029         * icall.c: added new FSW icalls.
24030
24031 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
24032
24033         * string-icalls.c: fix stringbuilder regression as suggested by
24034         Iain McCoy <iain@mccoy.id.au>.
24035
24036 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
24037
24038         * process.c (process_read_stringtable_block): Recognize '007f' as
24039         a language neutral stringtable block.
24040
24041 2004-01-12  Patrik Torstensson
24042
24043         * object.h (MonoStringBuilder) : Changed layout to support our
24044         new stringbuilder class.
24045         * marshal.c: Change marshalling to support the new layout of 
24046         string builder.
24047         * appdomain.c: increased version number because new layout of
24048         string builder.
24049
24050 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
24051
24052         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
24053         assembly name as an string instead of an AssemblyName, since it is
24054         easier to extract info from it.
24055
24056         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
24057         the culture subdirectories too. Fixes #52231.
24058
24059 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24060
24061         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
24062         It takes 2 new parameters with an optional name for the method to look
24063         for and case ignoring info.
24064
24065         * threadpool.c: removed unused variable.
24066
24067 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24068
24069         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
24070         It takes 2 new parameters with an optional name for the property to look
24071         for and case ignoring info.
24072         Fixes bug #52753.
24073
24074 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
24075
24076         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
24077         Fix #52451.
24078
24079 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24080
24081         * appdomain.c:
24082         * assembly.c: escape the uri before passing it to g_filename_from_uri.
24083         Fixes bug #52630.
24084
24085 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
24086
24087         * reflection.c: Add support for more than one unmanaged resource.
24088
24089         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
24090         in field->def_value, as done in all other cases.
24091
24092         * reflection.c (mono_reflection_get_custom_attrs): Add support for
24093         TypeBuilders.
24094
24095         * reflection.c (mono_reflection_create_runtime_class): Remove 
24096         errorneous assignment to klass->element_class, since it is already
24097         done in mono_reflection_setup_internal_class.
24098
24099 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24100
24101         * gc.c: added missing LeaveCriticalSection.
24102         * icall.c: indented a couple of lines.
24103         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
24104         if we call EndInvoke inside a callback. Fixes bug #52601.
24105
24106 2004-01-07  Martin Baulig  <martin@ximian.com>
24107
24108         * mono-debug-debugger.h
24109         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
24110
24111 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
24112
24113         * appdomain.c: Use messages in NotImplementedException.
24114
24115         * exception.c (mono_get_exception_not_implemented): Now this takes
24116         a message argument.
24117
24118         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
24119         exception instead of g_asserting an aborting when something is not
24120         implemented.
24121
24122         Add some inline docs.
24123
24124 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
24125
24126         * reflection.h: Update after changes to object layout.
24127
24128         * reflection.c: Implement saving of unmanaged aka win32 resources.
24129
24130         * appdomain.c: Bump version number.
24131
24132         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
24133         Handle missing domains gracefully.
24134
24135 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
24136
24137         * file-io.c : On Windows, there are much more invalid_path_chars.
24138
24139 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
24140
24141         * class.h, object.c: prepare for GetType () speedup.
24142
24143 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
24144
24145         * profiler.c: workaround for --profile null reference exception on
24146           cygwin. Patch by Patrik Torstensson.
24147
24148 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
24149
24150         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
24151         make work for unaligned access.
24152
24153 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
24154
24155         * class.c: small cleanup (class->fields [i] -> field).
24156         * image.c: check address of metadata is valid.
24157
24158 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
24159
24160         * assembly.h assembly.c (mono_assembly_loaded): New public function to
24161         search the list of loaded assemblies.
24162
24163         * reflection.c (mono_reflection_type_from_name): Use 
24164         mono_assembly_loaded instead of mono_image_loaded.
24165
24166         * reflection.c: Fix warnings.
24167
24168 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
24169
24170         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
24171         is dynamic. This is needed since an assembly can contain both dynamic and
24172         non-dynamic images.
24173
24174         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
24175         assembly->dynamic.
24176
24177         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
24178
24179         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
24180         to store modules loaded using AddModule.
24181
24182         * reflection.c (mono_image_fill_file_table): Generalize this so it works
24183         on Modules.
24184
24185         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
24186
24187         * reflection.c (mono_image_fill_export_table_from_module): New function to
24188         fill out the EXPORTEDTYPES table from a module.
24189
24190         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
24191         into a separate function. Also handle loaded non-dynamic modules.
24192
24193         * reflection.c (mono_image_basic_init): Fix memory allocation.
24194
24195         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
24196
24197         * assembly.c (mono_assembly_load_references): Make this public.
24198
24199 2003-12-19  Martin Baulig  <martin@ximian.com>
24200
24201         * class.c (mono_class_initialize_generic): Made this static, take
24202         a `MonoGenericInst *' instead of a `MonoClass *'.
24203         (mono_class_from_generic): Call mono_class_initialize_generic()
24204         unless we're already initialized or being called from
24205         do_mono_metadata_parse_generic_inst().
24206
24207         * class.h (MonoGenericInst): Added `initialized' and
24208         `init_pending' flags.
24209
24210         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
24211         `mono_class_init (gklass)' or mono_class_initialize_generic()
24212         here; set `generic_inst->init_pending' while parsing the
24213         `type_argv'.
24214
24215 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
24216
24217         * locales.c: include string.h for memxxx prototypes
24218
24219 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
24220
24221         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
24222         constructor when accessing literal fields.
24223
24224 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
24225
24226         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
24227
24228         * reflection.c (assembly_add_resource_manifest): New function to fill
24229         the MANIFESTRESOURCE table.
24230
24231         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
24232
24233         * reflection.h: Update to changes in class layout.
24234
24235         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
24236         Reenable call to mono_runtime_is_shutting_down ().
24237
24238         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
24239         determine if the runtime is shutting down.
24240
24241 2003-12-16  Jackson Harper <jackson@ximian.com>
24242
24243         * icall.c: comment out call to mono_runtime_is_shutting_down to
24244         fix build.
24245         
24246 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
24247
24248         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
24249         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
24250
24251 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
24252
24253         * reflection.c: move definition of swap_with_size
24254         to before its first call
24255
24256 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
24257
24258         * appdomain.c (mono_runtime_is_shutting_down): New public function.
24259
24260         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
24261         icall.
24262
24263         * object.c: Fix warnings.
24264
24265         * icall.c (ves_icall_Type_Get...): Only consider inherited static
24266         members if FlattenHierarchy is set.
24267
24268         * reflection.c (mono_image_add_decl_security): New function to emit
24269         declarative security.
24270
24271         * reflection.h reflection.c: Add support for declarative security.
24272
24273         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
24274         
24275 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
24276
24277         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
24278         
24279         * appdomain.c verify.c: Moved corlib version checking into its own
24280         function in appdomain.c since it needs to create vtables etc.
24281
24282 2003-12-13  Patrik Torstensson <p@rxc.se>
24283
24284         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
24285         instead of unwrapped server.
24286
24287 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
24288
24289         * verify.c (check_corlib): Fix field index.
24290
24291 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
24292
24293         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
24294         GetGacPath icall.
24295
24296 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
24297
24298         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
24299         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
24300         cope with sizeof(size_t) != sizeof(guint32).
24301
24302 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24303
24304         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
24305         in case of failure.
24306
24307 2003-12-10  Mark Crichton <crichton@gimp.org>
24308
24309         * icall.c: removed the GetNonZeroBytes.  We now handle this case
24310         in managed code.
24311
24312         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
24313
24314 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
24315
24316         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
24317         marked as deleted.
24318
24319 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
24320
24321         * verify.c (check_corlib): Handle the case when the version field is 
24322         initialized by a static constructor.
24323
24324 2003-12-08  Patrik Torstensson  <p@rxc.se>
24325
24326     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
24327
24328 2003-12-08  Martin Baulig  <martin@ximian.com>
24329
24330         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
24331         a MonoReflectionGenericParameter, also take the parameter index
24332         and name as arguments.
24333         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
24334         (ves_icall_MonoGenericParam_initialize): New interncall.
24335         (ves_icall_Type_make_byref_type): New interncall.
24336
24337         * reflection.h (MonoReflectionGenericParam): Derive from
24338         MonoReflectionType, not just from MonoObject.  Added `refobj' and
24339         `index' fields.
24340
24341         * reflection.c (mono_reflection_define_generic_parameter): Create
24342         and return a new MonoReflectionGenericParam; don't initialize the
24343         constraints here.
24344         (mono_reflection_initialize_generic_parameter): New public method;
24345         initializes the constraints and creates the `param->pklass'.
24346
24347 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
24348
24349         * reflection.h reflection.c: Use the new fields 'num_types', 
24350         'num_fields' and 'num_methods' to track the number of types etc.
24351
24352         * verify.c (check_corlib): Check corlib version number.
24353
24354 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
24355
24356         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
24357         function works on all methods.
24358
24359 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
24360
24361         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
24362         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
24363         the custom_type_info flag of the transparent proxy.
24364         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
24365         objects that supports IRemotingTypeInfo.
24366         * object.h: Added custom_type_info field in transparent proxy.
24367
24368 2003-12-06  Martin Baulig  <martin@ximian.com>
24369
24370         * class.c (mono_class_create_from_generic): Removed.
24371         (mono_class_from_generic): Check `ginst->klass' before doing
24372         anything else.  This is important to fully support "recursive"
24373         generic types.
24374
24375         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
24376         empty `generic_inst->klass' before doing anything else.
24377
24378 2003-12-06  Dick Porter  <dick@ximian.com>
24379
24380         * verify.c: 
24381         * object.h:
24382         * icall.c:
24383         * locales.c: Use C structs to access class fields.  Don't do a
24384         conversion between MonoString and UChar because both are
24385         platform-endian UTF-16.  Compare now takes startindex and count
24386         parameters.  Add a char overload for IndexOf.  Speed up the
24387         invariant string IndexOf.
24388
24389 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
24390
24391         * Makefile.am (monosn_LDADD): Fix parallel build.
24392
24393 2003-12-04  Martin Baulig  <martin@ximian.com>
24394
24395         * icall.c
24396         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
24397         (ves_icall_Type_make_array_type): New interncall.       
24398
24399 2003-12-04  Martin Baulig  <martin@ximian.com>
24400
24401         * locales.c: also change it in the !HAVE_ICU case.
24402
24403 2003-12-04  Dick Porter  <dick@ximian.com>
24404
24405         * icall.c:
24406         * locales.c: construct_compareinfo is now in CompareInfo, not
24407         CultureInfo.
24408
24409 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
24410
24411         * image.c (mono_image_load_file_for_image): Cache loaded images in the
24412         image->files array.
24413
24414         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
24415         table as well.
24416
24417         * assembly.c (mono_assembly_load_references): Only load references
24418         once.
24419
24420         * class.c (mono_class_from_name): Avoid linear search of the 
24421         EXPORTEDTYPE table.
24422
24423         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
24424
24425 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
24426
24427         * image.h (MonoImage): Add 'field_cache' field.
24428
24429         * loader.c (mono_field_from_token): Cache field lookups.
24430         
24431         * reflection.c (mono_module_get_object): Fix name property.
24432
24433         * icall.c (ves_icall_get_enum_info): Update after changes to 
24434         mono_metadata_get_constant_index ().
24435
24436         * icall.c: Get rid of get_type_info icall, use a separate icall for
24437         each type property to avoid needless memory allocations. Fixes #51514.
24438
24439         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
24440         to avoid needless binary searches.
24441
24442         * class.c (class_compute_field_layout): Move the initialization of
24443         field->def_value to mono_class_vtable ().
24444
24445         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
24446         non-corlib types.
24447
24448         * object.c (mono_object_allocate): Make it inline.
24449
24450         * object.c (mono_object_allocate_spec): Make it inline.
24451         
24452 2003-12-02  Dick Porter  <dick@ximian.com>
24453
24454         * locales.c (create_NumberFormat): NumberFormatInfo construction.
24455         Patch by Mohammad DAMT (mdamt@cdl2000.com).
24456
24457 2003-12-01  Dick Porter  <dick@ximian.com>
24458
24459         * threads.c: Fix signature and call in CreateMutex and
24460         CreateEvent.
24461
24462 2003-12-01  Dick Porter  <dick@ximian.com>
24463
24464         * icall.c: 
24465         * locales.c: Implement string compares and searching
24466
24467         * object.h: Add extra Thread field
24468
24469 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
24470
24471         * reflection.c (fixup_method): Add support for MonoCMethod.
24472
24473 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
24474
24475         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
24476
24477         * reflection.c (assembly_name_to_aname): Allow extra characters in
24478         assembly names. Fixes #51468.
24479
24480 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
24481
24482         * exception.c (mono_exception_from_name_domain): New helper function.
24483
24484         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
24485         exception object in the correct domain.
24486
24487         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
24488         formatting + make a copy a the input data.
24489
24490         * loader.c (mono_get_method_from_token): Methods which contain
24491         native code do not have entries in the ImplMap.
24492
24493         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
24494         Thanks to Gonzalo for spotting this.
24495         
24496         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
24497         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
24498
24499         * assembly.h (mono_assembly_load_from): Split the second part of 
24500         assembly loading into a new public function.
24501
24502         * exception.h (mono_get_exception_bad_image_format): New function.
24503
24504 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
24505
24506         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
24507         Enumerate all modules inside a dynamic assembly. Fixes #51293.
24508         
24509         * icall.c: Add new icall for creating dynamic methods.
24510
24511         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
24512
24513         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
24514
24515         * reflection.c (mono_reflection_create_dynamic_method): New icall to
24516         create a dynamic method.
24517
24518         * reflection.c (resolve_object): New helper function.
24519
24520         * reflection.c: Generalize ReflectionMethodBuilder and the functions
24521         which manipulate it so they can also work on dynamic methods.
24522
24523         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
24524         creating the MonoReflectionMethodAux structure if it is not needed.
24525         
24526         * reflection.h verify.c: Update after changes to object layout.
24527
24528         * reflection.c (method_builder_encode_signature): Fix compilation on
24529         gcc 2.95.x.
24530
24531 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
24532
24533         * appdomain.h: Added support for context static fields. Added static_data
24534           field to MonoAppContext and renamed thread_static_fields to a more
24535           generic special_static_fields in MonoAppDomain, since it can now contain
24536           context static fields.
24537         * domain.c: Updated hashtable name.
24538         * object.c: Replaced field_is_thread_static() for a more generic
24539           field_is_special_static() which also checks for context static attribute.
24540           In mono_class_vtable(), added support for static context fields.
24541         * threads.c: Changed methods that manage thread static fields to more
24542           generic methods so they can be reused both for thread and context static
24543           data.
24544         * threads.h: Declared some new methods.
24545
24546 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
24547
24548         * reflection.h: Update after changes to the managed types.
24549
24550         * reflection.c (encode_custom_modifiers): New helper function.
24551
24552         * reflection.c (method_encode_signature): Emit custom modifiers.
24553
24554         * reflection.c (field_encode_signature): Emit custom modifiers.
24555
24556 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
24557
24558         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
24559
24560         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
24561         implementation.
24562
24563         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
24564         icall.
24565
24566         * object.c (mono_field_get_value_object): New function.
24567
24568         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
24569         specific.
24570
24571 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
24572
24573         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
24574         return a preallocated out-of-memory exception instance.
24575
24576         * object.c (out_of_memory): Use the new function.
24577
24578         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
24579         flag is before the custom modifiers. Fixes #49802.
24580
24581 2003-11-16  Martin Baulig  <martin@ximian.com>
24582
24583         * class.c (mono_class_is_open_constructed_type): Implemented the
24584         MONO_TYPE_GENERICINST case.
24585
24586 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
24587
24588         * assembly.c (mono_assembly_fill_assembly_name): New function to
24589         fill out the MonoAssemblyName structure.
24590         (mono_assembly_open): Use the new function.
24591
24592         * icall.c (fill_reflection_assembly_name): New helper function.
24593
24594         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
24595         new function.
24596
24597         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
24598
24599 2003-11-15  Martin Baulig  <martin@ximian.com>
24600
24601         * class.c (mono_class_is_open_constructed_type): New public
24602         function; checks whether a type is an open constructed type,
24603         ie. whether it still contains type parameters.
24604         (mono_class_inflate_generic_type): If we're a type parameter and
24605         the inflated type is also a MONO_TYPE_(M)VAR, return the original
24606         type.
24607
24608         * class.h (MonoGenericInst): Added `guint32 is_open'.
24609
24610         * loader.c (method_from_methodspec): Check whether we're an open
24611         or closed constructed type and set `ginst->is_open'.
24612
24613         * reflection.c (mono_reflection_bind_generic_parameters): Check
24614         whether we're an open or closed constructed type and set
24615         `ginst->is_open'.
24616         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
24617         from open constructed types.
24618
24619 2003-11-15  Martin Baulig  <martin@ximian.com>
24620
24621         * reflection.c (mono_reflection_bind_generic_parameters): If we're
24622         a generic instance (instead of a generic type declaration) with
24623         unbound generic parameters, bind them to our actual types.
24624
24625 2003-11-14  Martin Baulig  <martin@ximian.com>
24626
24627         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
24628
24629         * reflection.c (mono_reflection_bind_generic_parameters): If we're
24630         an interface type, populate `res->interfaces' with instantiated
24631         versions of all the interfaces we inherit.
24632
24633 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
24634
24635         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
24636         when MONO_PATH is set but doesn't contain the install dir.
24637
24638 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24639
24640         * icall.c:
24641         (ves_icall_Type_GetInterfaces): don't return an interface twice when
24642         it's also implemented in base classes. Fixes bug #50927.
24643
24644 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
24645
24646         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
24647         if this method is called from a finalizer. Fixes #50913.
24648
24649 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
24650
24651         * threads.c: Implement VolatileRead/VolatileWrite
24652
24653         * icall.c: Add new icalls for VolatileRead/VolatileWrite
24654
24655 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
24656
24657         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
24658         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
24659         2.95.3.
24660
24661         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
24662         from Peter Ross (pro@missioncriticalit.com).
24663         
24664 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
24665
24666         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
24667
24668 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
24669
24670         * assembly.c (mono_assembly_load_references): Disable check because it
24671         triggers on older corlibs which lots of people have.
24672
24673 2003-11-12  Jackson Harper  <jackson@ximian.com>
24674
24675         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
24676         load corlib.dll if mscorlib.dll is not found.
24677         * assembly.h: Remove corlib name define.
24678         * class.c:
24679         * domain.c:
24680         * image.c: Change corlib name to mscorlib.
24681         
24682 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
24683
24684         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
24685
24686 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
24687
24688         * appdomain.h: Added loader_optimization here to sync with the C#
24689         code, and add disallow_binding_redirects field.
24690
24691 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
24692
24693         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
24694
24695         * reflection.c (mono_image_build_metadata): Fix crash on modules
24696         with no types.
24697
24698         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
24699
24700         * icall.c (ves_icall_get_method_info): Return callingConvention as
24701         well.
24702
24703         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
24704         namespaces from the EXPORTEDTYPE table as well.
24705
24706         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
24707         from all modules inside the assembly.
24708         
24709 2003-11-11  Martin Baulig  <martin@ximian.com>
24710
24711         * reflection.c (mono_reflection_bind_generic_parameters): Make
24712         this work for interfaces.
24713
24714 2003-11-11  Martin Baulig  <martin@ximian.com>
24715
24716         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
24717
24718 2003-11-11  Martin Baulig  <martin@ximian.com>
24719
24720         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
24721         "MonoInflatedMethod" and "MonoInflatedCtor".
24722
24723 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
24724
24725         * reflection.c (resolution_scope_from_image): Use the assembly table
24726         from the manifest module, since other modules don't have it.
24727
24728         * debug-helpers.c (mono_type_full_name): New helper function.
24729
24730         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
24731
24732         * image.c (mono_image_load_file_for_image): New public function which
24733         is a replacement for the load_file_for_image in class.c.
24734
24735         * assembly.c (mono_assembly_load_module): A wrapper for the function
24736         above which does assembly association and reference loading too.
24737
24738         * class.c (mono_class_from_name): Call mono_assembly_load_module.
24739
24740 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24741
24742         * appdomain.c: not all of the attributes for the full assembly name
24743         are required and the order doesn't matter. Fixes bug #50787.
24744
24745 2003-11-10  Dick Porter  <dick@ximian.com>
24746
24747         * locales.c: Use platform-endian UTF16
24748
24749 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
24750
24751         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
24752         
24753 2003-11-10  Martin Baulig  <martin@ximian.com>
24754
24755         * metadata.c
24756         (mono_metadata_load_generic_params): Make this actually work.
24757
24758         * reflection.c (mono_reflection_bind_generic_parameters): If our
24759         parent is a generic instance, pass all the `types' to it, no
24760         matter whether it has the same number of type parameters or not.
24761
24762 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
24763
24764         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
24765
24766         * assembly.c (mono_assembly_load_references): Move the image<->assembly
24767         assignment code to this function so it gets called recursively for all
24768         modules.
24769
24770         * image.c (load_modules): Remove the assembly assignment since it is
24771         now done by mono_assembly_load_references.
24772         
24773         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
24774         Add 'module' argument.
24775         (mono_module_get_types): New helper function.
24776         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
24777
24778 2003-11-08  Martin Baulig  <martin@ximian.com>
24779
24780         * class.c (mono_class_inflate_generic_method): Interface method
24781         don't have a header.
24782
24783         * reflection.c (mono_image_get_methodspec_token): Take an
24784         additional `MonoGenericInst *' argument instead of reading it from
24785         the header; this is necessary to support interfaces.
24786         (mono_image_create_token): Pass the `MonoGenericInst *' from the
24787         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
24788         (inflated_method_get_object): Take an additional `MonoGenericInst *'
24789         argument.
24790
24791         * reflection.h (MonoReflectionInflatedMethod): Added
24792         `MonoGenericInst *ginst'.
24793
24794 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
24795
24796         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
24797
24798 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
24799
24800         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
24801
24802 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
24803
24804         * reflection.c 
24805         (reflection_methodbuilder_from_method_builder):
24806         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
24807         initialize a ReflectionMethodBuilder structure.
24808         (mono_image_get_methodbuilder_token):
24809         (mono_image_get_ctorbuilder_token): New functions to emit memberref
24810         tokens which point to types in another module inside the same assembly.
24811
24812         * reflection.c: Use the new helper functions.
24813         
24814         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
24815
24816         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
24817         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
24818
24819         * reflection.c (resolution_scope_from_image): Emit a moduleref if
24820         neccesary.
24821
24822         * reflection.c (mono_image_build_metadata): Emit metadata only for the
24823         current module. Emit the manifest only for the main module.
24824
24825         * reflection.c (mono_image_create_token): Add assertion when a 
24826         memberref needs to be created.
24827
24828         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
24829
24830         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
24831         larger buffer for the custom attribute blob. Fixes #50637.
24832         
24833 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24834
24835         * threadpool.c: notify listener on async processing handles after
24836         invoking the async callback. Thanks to Zoltan.
24837
24838 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
24839
24840         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
24841         avoid code duplication.
24842
24843         * reflection.h (MonoDynamicImage): New type which is currently unused,
24844         but will be used through the ref.emit code in place of 
24845         MonoDynamicAssembly.
24846
24847         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
24848         object layout.
24849
24850         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
24851         a MonoDynamicImage instead of just a MonoImage.
24852         
24853         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
24854         icalls to ModuleBuilder but keep their semantics, so they will work
24855         with moduleb->assemblyb. This will change later.
24856         
24857 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
24858
24859         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
24860         object layout.
24861
24862         * reflection.c (mono_image_build_metadata): Avoid creation of a default
24863         main module, since it is now done by the managed code.
24864
24865 2003-11-03  Martin Baulig  <martin@ximian.com>
24866
24867         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
24868         `ginst->klass' here.
24869         (method_encode_methodspec): Don't use the `ginst->generic_method's
24870         klass if it's a generic instance, use `ginst->klass' in this case.
24871
24872 2003-11-03  Martin Baulig  <martin@ximian.com>
24873
24874         * reflection.c (mono_image_get_generic_method_param_info):
24875         Removed, use mono_image_get_generic_param_info() instead.
24876         (mono_image_get_type_info): Write the GenericParam table before
24877         the Method table.  This is neccessary because in the GenericParam
24878         table, type parameters of the class (ie. '!0' etc.) must come
24879         before the ones from its generic methods (ie. '!!0' etc).
24880
24881 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
24882
24883         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
24884
24885 2003-11-02  Martin Baulig  <martin@ximian.com>
24886
24887         * reflection.c (create_generic_typespec): Take a
24888         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
24889         the generic parameters from it.
24890
24891 2003-11-02  Martin Baulig  <martin@ximian.com>
24892
24893         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
24894         instead of a `MonoClassField *' since we just need the type.
24895         (create_generic_typespec): New static function.  Creates a
24896         TypeSpec token for a generic type declaration.
24897         (mono_image_get_generic_field_token): New static function.
24898         (mono_image_create_token): If we're a FieldBuilder in a generic
24899         type declaration, call mono_image_get_generic_field_token() to get
24900         the token.
24901
24902 2003-11-02  Martin Baulig  <martin@ximian.com>
24903
24904         * reflection.h
24905         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
24906         `MonoReflectionGenericInst *declaring_type' and
24907         `MonoReflectionGenericInst *reflected_type' fields.
24908
24909         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
24910         `MonoReflectionGenericInst *declaring_type' and a
24911         `MonoReflectionGenericInst *reflected_type' argument instead of a
24912         single `MonoReflectionGenericInst *type' one.  Set
24913         `res->declaring_type' and `res->reflected_type' from them.
24914         (mono_reflection_inflate_field): Likewise.      
24915
24916 2003-11-02  Martin Baulig  <martin@ximian.com>
24917
24918         * class.c (mono_class_setup_vtable): Don't store generic methods
24919         in the vtable.  
24920
24921 2003-11-02  Martin Baulig  <martin@ximian.com>
24922
24923         * reflection.h (MonoReflectionGenericInst): Added
24924         `MonoReflectionType *declaring_type'.
24925
24926         * reflection.c (mono_reflection_bind_generic_parameters): Use
24927         `if (tb->parent)' instead of `klass->parent'.
24928
24929 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
24930
24931         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
24932         with an empty ASSEMBLY table.
24933
24934         * reflection.c (mono_image_build_metadata): Avoid using the same loop
24935         variable in the inner and outer loops.
24936
24937 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
24938
24939         * metadata.h (mono_metadata_make_token): Put parentheses around macro
24940         argument.
24941
24942         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
24943         
24944         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
24945         icalls. Instead, do everything in managed code. This is needed since
24946         it is hard to restore the original domain etc. in unmanaged code in the
24947         presence of undeniable exceptions.
24948
24949         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
24950         New icalls to push and pop appdomain refs.
24951
24952 2003-10-31  Martin Baulig  <martin@ximian.com>
24953
24954         * class.c (inflate_generic_type): Renamed to
24955         mono_class_inflate_generic_type() and made it public.
24956
24957         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
24958         New interncall.
24959
24960         * loader.c (mono_field_from_memberref): Also set the retklass for
24961         typespecs.
24962
24963         * fielder.c (mono_image_get_inflated_field_token): New static
24964         method; creates a metadata token for an inflated field.
24965         (mono_image_create_token, fixup_method): Added support for
24966         "MonoInflatedField".
24967         (fieldbuilder_to_mono_class_field): New static function.
24968         (mono_reflection_inflate_field): New public function.
24969
24970         * reflection.h
24971         (MonoReflectionGenericInst): Added `MonoArray *fields'.
24972         (MonoReflectionInflatedField): New typedef.     
24973
24974 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
24975
24976         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
24977         for Solaris and other platforms without s6_addr16
24978
24979 2003-10-30  Martin Baulig  <martin@ximian.com>
24980
24981         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
24982         argument instead of two.
24983         (mono_class_inflate_generic_signature): Likewise.
24984         (inflate_generic_header): Likewise.
24985         (mono_class_inflate_generic_method): Likewise.  In addition, if
24986         `ginst->klass' is set, it becomes the new `method->klass'.
24987
24988         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
24989         field.
24990
24991         * reflection.c (encode_generic_method_sig): Write a 0xa as the
24992         first byte. [FIXME]
24993         (method_encode_methodspec): If we have generic parameters, create
24994         a MethodSpec instead of a MethodRef.
24995         (fixup_method): Added support for "MonoInflatedMethod" and
24996         "MonoInflatedCtor".
24997         (mono_image_create_token): Added support for "MonoInflatedMethod"
24998         and "MonoInflatedCtor".
24999         (inflated_method_get_object): New static function; returns a
25000         managed "System.Reflection.MonoInflatedMethod" object.
25001         (mono_reflection_bind_generic_method_parameters): Return a
25002         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
25003         (mono_reflection_inflate_method_or_ctor): Likewise.
25004         (mono_image_get_generic_method_param_info): Initialize unused
25005         fields to zero.
25006         (mono_image_get_generic_param_info): Likewise.
25007
25008         * reflection.h (MonoReflectionInflatedMethod): New public
25009         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
25010         "S.R.MonoInflatedCtor" classes.
25011
25012         * loader.c (method_from_memberref): If we're a TypeSpec and it
25013         resolves to a generic instance, inflate the method.
25014
25015 2003-10-28  Dick Porter  <dick@ximian.com>
25016
25017         * object.c (mono_runtime_run_main): Convert command-line arguments
25018         into utf8, falling back to the user's locale encoding to do so.
25019
25020 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
25021
25022         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
25023         at this time.
25024
25025         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
25026
25027         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
25028         up icalls at method definition time. Partially fixes #33569.
25029
25030 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
25031
25032         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
25033         marshalling of arrays. Fixes #50116.
25034
25035         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
25036
25037         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
25038         points to a vtable in the dying appdomain.
25039
25040         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
25041         listeners into unmanaged code inside the lock.
25042
25043         * object.c (mono_class_vtable): Turn off typed allocation in non-root
25044         domains and add some comments.
25045
25046 2003-10-25  Martin Baulig  <martin@ximian.com>
25047
25048         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
25049
25050         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
25051
25052         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
25053         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
25054         currently parsing.  Create the generic class and store it in
25055         `generic_inst->klass' before parsing the type arguments.  This is
25056         required to support "recursive" definitions; see mcs/tests/gen-23.cs
25057         for an example.
25058         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
25059         to support recursive typespec entries.
25060
25061         * class.c (mono_class_setup_parent): If our parent is a generic
25062         instance, we may get called before it has its name set.
25063         (mono_class_from_generic): Splitted into
25064         mono_class_create_from_generic() and mono_class_initialize_generic().
25065
25066 2003-10-25  Martin Baulig  <martin@ximian.com>
25067
25068         * icall.c (ves_icall_Type_BindGenericParameters): Return a
25069         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
25070         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
25071         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
25072
25073         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
25074         (create_typespec): Likewise.
25075         (mono_reflection_bind_generic_parameters): Return a
25076         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
25077         (mono_reflection_inflate_method_or_ctor): New public function.
25078
25079         * reflection.h (MonoReflectionGenericInst): New typedef.        
25080
25081 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
25082
25083         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
25084         inside the domain lock. Fixes #49993.
25085         
25086         * object.c (mono_class_vtable): When typed allocation is used, 
25087         allocate vtables in the GC heap instead of in the mempool, since the
25088         vtables contain GC descriptors which are used by the collector even
25089         after the domain owning the mempool is unloaded.
25090
25091         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
25092
25093         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
25094         reflect what it does. Also invalidate mempools instead of freeing
25095         them if a define is set.
25096
25097         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
25098         of the appdomain.
25099         
25100         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
25101         hold the finalizable objects in this domain.
25102
25103         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
25104         appdomain.
25105
25106         * appdomain.c (mono_domain_set): New function to set the current
25107         appdomain, but only if it is not being unloaded.
25108
25109         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
25110         appdomain which is being unloaded.
25111         
25112         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
25113         unloading of the root appdomain.
25114
25115         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
25116         icall to execute a method in another appdomain. Intended as a 
25117         replacement for InternalSetDomain, which can confuse the code 
25118         generation in the JIT.
25119
25120         * appdomain.c (mono_domain_is_unloading): New function to determine
25121         whenever an appdomain is unloading.
25122
25123         * appdomain.c (mono_domain_unload): New function to correctly unload
25124         an appdomain.
25125
25126         * assembly.c (mono_assembly_load_references): Check that an assembly
25127         does not references itself.
25128
25129         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
25130         domain manually, it asks the finalizer thread to do it, then waits for
25131         the result. Also added a timeout.
25132
25133         * icall.c: Register the new icalls.
25134
25135         * threads.h threads.c: Export the mono_gc_stop_world and 
25136         mono_gc_start_world functions.
25137         
25138         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
25139         function to fill out the mempool with 0x2a.
25140
25141 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
25142
25143         * reflection.h (MonoReflectionMethodAux): New structure to store
25144         information which is rarely used, thus is not in the MonoMethod
25145         structure.
25146
25147         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
25148         store the aux info.
25149
25150         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
25151         and marshalling info into the aux structure.
25152
25153         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
25154         from the aux structure.
25155
25156         * loader.c (mono_method_get_param_names): Retrieve the param names from
25157         the aux structure.
25158         
25159 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
25160
25161         * exception.h exception.c: Add AppDomainUnloadedException && fix 
25162         warning.
25163
25164 2003-10-21  Dick Porter  <dick@ximian.com>
25165
25166         * socket-io.c
25167         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
25168         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
25169
25170 2003-10-21  Martin Baulig  <martin@ximian.com>
25171
25172         * reflection.c (mono_reflection_bind_generic_parameters):
25173         `klass->parent' is NULL for interfaces.
25174
25175 2003-10-21  Martin Baulig  <martin@ximian.com>
25176
25177         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
25178
25179 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
25180
25181         * exception.c (mono_exception_from_name_msg): New helper function for
25182         creating exceptions and initializing their message field.
25183
25184         * exception.c: Simplify functions using the new helper.
25185
25186         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
25187         New function.
25188
25189         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
25190         mono_raise_exception, since otherwise gcc doesn't generate the function
25191         epilog for raise_exception, confusing the stack unwinding in the JIT.
25192         Fixes #45043.
25193
25194         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
25195         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
25196         Fixes #49499.
25197
25198 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25199
25200         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
25201         utf8.
25202
25203 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
25204
25205         * icall.c: Removed GetUninitializedObject method because
25206           AllocateUninitializedClassInstance does the same.
25207
25208 2003-10-18  Martin Baulig  <martin@ximian.com>
25209
25210         * class.c (inflate_generic_signature): Renamed to
25211         mono_class_inflate_generic_signature() and made it public.
25212         (my_mono_class_from_generic_parameter): New static function; if we
25213         don't already have the generic parameter's MonoClass, create a
25214         very simple one which is just used internally in the runtime and
25215         not passed back to managed code.
25216
25217         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
25218
25219         * metadata.h (MonoMethodSignature): Moved the
25220         `MonoGenericParam *gen_params' to the MonoMethodHeader.
25221         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
25222
25223         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
25224         ves_icall_MonoMethod_GetGenericArguments(); this is now an
25225         interncall on the MonoMethod class, not on MethodInfo.
25226         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
25227         calling mono_reflection_bind_generic_method_parameters() directly.
25228
25229         * loader.c (mono_method_get_signature): If this is a MethodSpec;
25230         return the already computed `method->signature'.
25231         (method_from_methodspec): New static function to load a method
25232         from a MethodSpec entry.
25233         (mono_get_method_from_token): Call the new method_from_methodspec()
25234         for MethodSpec tokens.  
25235         (mono_get_method_from_token): If we're a generic method, load the
25236         type parameters.
25237
25238         * reflection.c (mono_image_get_memberref_token): Allow
25239         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
25240         table.
25241         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
25242         (mono_image_create_token): First check whether it's a generic
25243         method (so we'd need to create a MethodSpec), then do the other
25244         two alternatives.
25245         (mono_reflection_bind_generic_method_parameters): Return a
25246         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
25247         called directly from the interncall.
25248
25249 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
25250
25251         * reflection.c (load_public_key): Move loading of the public key
25252         into managed code.
25253
25254         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
25255
25256         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
25257         fields.
25258
25259         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
25260         culture, hash_alg and public_key. Fixes #49555.
25261
25262 2003-10-17  Martin Baulig  <martin@ximian.com>
25263
25264         * class.h (MonoGenericInst): Moved this declaration here and added
25265         `MonoMethod *generic_method'.
25266
25267         * icall.c
25268         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
25269         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
25270
25271         * metadata.c (mono_metadata_type_equal): Two types of
25272         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
25273         index; ie. don't compare the address of the `MonoGenericParam'
25274         structure.
25275         (mono_metadata_load_generic_params): Removed the `MonoMethod
25276         *method' argument.
25277
25278         * metadata.h (MonoGenericInst): Moved declaration to class.h.
25279         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
25280
25281         * reflection.c (method_encode_signature): Encode the number of
25282         generic parameters.
25283         (encode_generic_method_sig): New static function.
25284         (method_encode_methodspec): New static function; creates an entry
25285         in the MethodSpec table for a generic method.
25286         (mono_image_get_methodspec_token): New static function.
25287         (mono_image_create_token): Call mono_image_get_methodspec_token()
25288         for generic methods.
25289         (mono_reflection_bind_generic_method_parameters): New public
25290         function.  Instantiates a generic method.
25291
25292 2003-10-16  Martin Baulig  <martin@ximian.com>
25293
25294         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
25295         *gen_params' here from MonoMethodHeader.
25296
25297         * metadata.c (mono_metadata_parse_method_signature): If we have
25298         generic parameters, initialize `method->gen_params' and then set
25299         the correct `type->data.generic_param' in all the parameters.
25300
25301 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
25302
25303         * threads.c (mono_threads_get_default_stacksize): New function to 
25304         return the default stacksize.
25305
25306         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
25307         termination of the finalizer thread, since the previous method had
25308         race conditions. Fixes #49628.
25309
25310         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
25311         as for the other managed threads.
25312
25313 2003-10-16  Martin Baulig  <martin@ximian.com>
25314
25315         * class.c (inflate_generic_signature): Copy `generic_param_count'
25316         and `gen_params'.
25317
25318         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
25319         New interncall.
25320
25321         * metadata.c (mono_metadata_parse_method_signature): Actually set
25322         the `method->generic_param_count' here.
25323         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
25324
25325 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
25326
25327         * object.h: Add a new field to TypedRef to simplify the implementation
25328         of the REFANY opcodes in the JIT.
25329
25330         * icall.c: Make use of the new field.
25331
25332         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
25333         dynamically.
25334
25335 2003-10-15  Martin Baulig  <martin@ximian.com>
25336
25337         * class.c (mono_class_from_gen_param): Renamed to
25338         mono_class_from_generic_parameter() and moved most of the
25339         functionality from mono_reflection_define_generic_parameter()
25340         here; ie. we create a "real" class here.
25341         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
25342         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
25343         previously been called.
25344
25345         * class.h (MonoGenericParam): Moved the declaration of this struct
25346         here from metadata.h and added `MonoMethod *method'.
25347
25348         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
25349         interncall.
25350
25351         * loader.c (mono_get_method_from_token): If we have any generic
25352         parameters, call mono_metadata_load_generic_params() to read them
25353         from the MONO_TABLE_GENERICPAR.
25354
25355         * metadata.c (mono_metadata_load_generic_params): Added
25356         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
25357
25358         * metadata.h (MonoMethodSignature): Replaced
25359         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
25360         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
25361
25362         * reflection.c (mono_reflection_define_generic_parameter): Moved
25363         most of the functionality into the new
25364         mono_class_from_generic_parameter(); set the `method' field if
25365         we're a method parameter.       
25366
25367 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
25368
25369         * marshal.c (emit_struct_conv): if native size is 0
25370         emit no code.
25371
25372 2003-10-14  Martin Baulig  <martin@ximian.com>
25373
25374         * icall.c: The generics API has changed in the spec since it was
25375         added to System.Type; these modifications make it match the spec
25376         again.
25377         (ves_icall_Type_GetGenericParameters): Renamed to
25378         `ves_icall_Type_GetGenericArguments'.
25379         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
25380         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
25381         `ves_icall_MonoType_get_HasGenericArguments'.
25382         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
25383         `ves_icall_MonoType_get_IsGenericParameter'.
25384         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
25385         this is no interncall anymore.
25386         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
25387         `ves_icall_TypeBuilder_get_IsGenericParameter'.
25388
25389 2003-10-14  Martin Baulig  <martin@ximian.com>
25390
25391         * reflection.c (mono_reflection_bind_generic_parameters): Also
25392         inflate generic methods if we're reading the class from IL.
25393
25394 2003-10-13  Martin Baulig  <martin@ximian.com>
25395
25396         * reflection.c (mono_reflection_define_generic_parameter): This
25397         method isn't called directly from the icall anymore; take a
25398         `MonoReflectionAssemblyBuilder *' so we can use this for type and
25399         method generic parameters.
25400         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
25401         (method_builder_encode_signature): Encode generic parameters.
25402         (mono_image_get_method_info): Write generic params to the
25403         MONO_TABLE_GENERICPARAM table.
25404
25405         * reflection.h (MonoReflectionMethodBuilder): Added
25406         `MonoArray *generic_params'.
25407
25408         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
25409
25410         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
25411         wrapper for mono_reflection_define_generic_parameter().
25412         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
25413
25414 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
25415
25416         * marshal.h: Add missing function to fix build.
25417
25418         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
25419         the SetLastError pinvoke attribute.
25420
25421         * marshal.c (mono_marshal_set_last_error): New helper function called
25422         by the generated code.
25423         
25424         * marshal.c (mono_mb_emit_branch): New helper function.
25425
25426         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
25427
25428         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
25429         classes as parameters and return values of delegates. Fixes #29256. 
25430
25431 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
25432
25433         * locales.c: use gint32 in non HAVE_ICU case
25434
25435 2003-10-11  Martin Baulig  <martin@ximian.com>
25436
25437         * mono-debug.c (mono_debug_add_method): Added a workaround for
25438         bug #48591.
25439
25440 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
25441
25442         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
25443         delegates passed to native code must use the STDCALL calling 
25444         convention. Fixes #35987.
25445
25446 2003-10-10  Martin Baulig  <martin@ximian.com>
25447
25448         * class.c (inflate_generic_type): If we're inflating for a generic
25449         type instance (and not for a generic method), return
25450         MONO_TYPE_MVAR unchanged.
25451
25452 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25453
25454         * string-icalls.c: Join ignores null strings in the source array.
25455         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
25456         * threads.c: GetAvailableTheads is slightly more accurate.
25457
25458 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
25459
25460         * threads.h threads.c : add mono_threads_set_default_stacksize
25461         and pass default to CreateThread calls.
25462
25463 2003-10-09  Dick Porter  <dick@ximian.com>
25464
25465         * icall.c:
25466         * locales.h:
25467         * locales.c: Internal calls for constructing CultureInfo and
25468         related objects from libicu (if its available.)
25469
25470 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
25471
25472         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
25473
25474 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25475
25476         * threadpool.c: added an argument to async_invoke_thread that is the
25477         item to process, pass the MonoAsyncResult to the thread start function
25478         when creating a new thread. This way we don't need to acquire any lock
25479         when we're creating a new thread. Readded a semaphore for faster
25480         response times (instead of that Sleep i added).
25481
25482 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
25483
25484         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
25485         get daylight change dates better on Windows, fix handling
25486         of platforms without tm_gmtoff.
25487
25488 2003-10-06  Martin Baulig  <martin@ximian.com>
25489
25490         * class.c (inflate_generic_method): Renamed to
25491         mono_class_inflate_generic_method() and made public.
25492         (mono_class_init): Don't inflate the generic methods here.
25493         (mono_class_from_generic): Added `gboolean inflate_methods'
25494         argument.  Inflate the methods here.
25495
25496         * loader.c (mono_method_get_param_names): Ignore instances of
25497         generic types for the moment.
25498
25499         * reflection.c (fixup_method): Added support for inflated methods.
25500         (mono_image_create_token): Use mono_image_get_methodref_token()
25501         for inflated methods.
25502         (mono_custom_attrs_from_param): Ignore instances of generic types
25503         for the moment.
25504         (mono_reflection_bind_generic_parameters): New public function.
25505         Moved all the functionality from
25506         ves_icall_Type_BindGenericParameters() here and added support for
25507         dynamic types.
25508         (mono_reflection_define_generic_parameter): Initialize
25509         `klass->methods' here.
25510
25511         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
25512         functionality into mono_reflection_define_generic_parameter().
25513         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
25514         TypeBuilder, return that TypeBuilder.
25515
25516 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25517
25518         * appdomain.c: removed mono_delegate_semaphore.
25519
25520         * threadpool.c:
25521         (mono_thread_pool_add): moved hash table creation inside and the thread 
25522         creation outside of the critical region.
25523         (mono_thread_pool_finish): removed obsolete code.
25524         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
25525         continue or exit the thread depending on the queue.
25526
25527 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
25528
25529         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
25530         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
25531         handle more bool marshalling options
25532
25533 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
25534
25535         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
25536         arrays of structs. Also add a more descriptive error message when
25537         a structure member is marshalled as LPArray.
25538
25539 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
25540
25541         * marshal.c (mono_marshal_get_native_wrapper): Add support for
25542         marshalling arrays of complex types. Fixes #29098. Also remove an
25543         usused and incomplete function.
25544
25545 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
25546
25547         * gc.c: report heap_size - free_bytes as total memory allocated
25548         (bug#49362).
25549
25550 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
25551
25552         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
25553         fix timezone handling problems on Windows.
25554         
25555         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
25556         asserts when the year is outside the range handled by ms the functions.
25557
25558         * class.c (setup_interface_offsets): If the class is an interface,
25559         fill out its interface_offsets slot.
25560
25561 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25562
25563         * threadpool.c: mark threadpool threads as background.
25564
25565 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
25566
25567         * decimal.c - define DECINLINE to nothing if not using GCC
25568
25569 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
25570
25571         * assembly.c: More refcount fixes.
25572
25573 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25574
25575         * string-icalls.c: if we're not trimming, return the same string.
25576         When not splitting, don't create a new string.
25577
25578 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25579
25580         * image.c:
25581         (mono_image_open): increment the ref_count inside the critical section.
25582
25583 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
25584
25585         * image.c (mono_image_open): Fix reference counting bug.
25586
25587 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
25588
25589         * marshal.c (mono_marshal_type_size) struct alignment changed for 
25590         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
25591         64bits. Avoid leak in mono_marshal_get_native_wrapper when
25592         mono_lookup_pinvoke_call throws.        
25593
25594 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
25595
25596         * reflection.c (mono_reflection_parse_type): Fix #49114.
25597
25598         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
25599         temporary workaround for cygwin header problem.
25600
25601         * object.c (mono_object_isinst): Synchronize this with the code
25602         generated by the JIT for casts.
25603
25604 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
25605
25606         * reflection.c (encode_type): Fix #38332.
25607
25608 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
25609
25610         * marshal.c (mono_marshal_method_from_wrapper): New function to return
25611         the original method from the wrapper method.
25612
25613 2003-09-25  Martin Baulig  <martin@ximian.com>
25614
25615         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
25616         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
25617         (ves_icall_Type_get_IsGenericInstance): New interncall.
25618
25619 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
25620
25621         * object.c: fix cast warning in big endian code.
25622
25623 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
25624
25625         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
25626         
25627 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25628
25629         * assembly.c: don't call check_env from mono_assembly_load. It's
25630         already done once in mono_assemblies_init and may cause headaches when
25631         multiple threads are loading assemblies.
25632
25633 2003-09-19  Martin Baulig  <martin@ximian.com>
25634
25635         * reflection.c (mono_reflection_define_generic_parameter): Don't
25636         allocate `klass->methods', set `klass->flags' to
25637         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
25638
25639 2003-09-18  Martin Baulig  <martin@ximian.com>
25640
25641         * class.c (mono_class_init): Don't create `class->methods' if it's
25642         already initialized.
25643
25644         * metadata.c (mono_metadata_load_generic_params): Make this
25645         actually work.
25646
25647         * reflection.c (mono_reflection_define_generic_parameter): Set
25648         parent class and interfaces from the constraints.
25649
25650         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
25651         to keep this struct in sync with the declaration in TypeBuilder.cs.
25652
25653 2003-09-17  Martin Baulig  <martin@ximian.com>
25654
25655         * metadata.h (MonoType): Replaced the data's `int type_param'
25656         field with `MonoGenericParam *generic_param'.
25657         (MonoGenericParam): Added `MonoClass *klass'.
25658
25659         * class.c (mono_class_from_gen_param): Removed the
25660         `MonoImage *image' and `int type_num' arguments.
25661
25662         * metadata.c (mono_metadata_parse_generic_param): New static
25663         method; creates a MonoGenericParam which just contains the index.
25664         (do_mono_metadata_parse_type): Call
25665         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
25666         MONO_TYPE_MVAR.
25667
25668         * reflection.c (mono_image_typedef_or_ref): Generic type
25669         parameters may be in the same assembly, but never use a typedef
25670         for them.
25671         (mono_reflection_define_generic_parameter): We're now creating a
25672         "real" class for the type parameter; it's now safe to call
25673         mono_class_from_mono_type() on the class'es type, it'll do the
25674         right thing.
25675
25676 2003-09-16  Martin Baulig  <martin@ximian.com>
25677
25678         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
25679         `symfile->range_entry_size' and `symfile->class_entry_size' here;
25680         the `symfile' data structure must be fully initialized before it
25681         gets added to the table.
25682
25683 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
25684
25685         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
25686
25687         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
25688         class init trampolines.
25689
25690 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
25691
25692         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
25693         to the built-in profiler to turn off time and allocation profiling
25694         respectively.
25695
25696 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
25697
25698         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
25699         g_direct_equal.
25700
25701         * debug-helpers.c (mono_method_full_name): Print the wrapper type
25702         in human readable form.
25703
25704 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
25705
25706         * reflection.c icall.c: Fixed warnings.
25707
25708         * image.c (load_class_names): Use a temporary hash table to hold the
25709         namespaces in order to avoid doing many string comparisons.
25710
25711         * image.h: Fix typo.
25712
25713         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
25714         Pass NULL instead of g_direct_equal to the GHashTable constructor 
25715         since the NULL case is short-circuited inside g_hash_table_lookup, 
25716         leading to better performance.  
25717
25718         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
25719         obtain the first custom attribute for a given index. Depends on the
25720         CustomAttribute table being sorted by the parent field.
25721
25722         * reflection.c (mono_custom_attrs_from_index): Use the new function 
25723         for better performance.
25724
25725 2003-09-07  Martin Baulig  <martin@ximian.com>
25726
25727         * class.c (mono_class_init): If we're a generic instance, inflate
25728         all our methods instead of loading them from the image.
25729         (mono_class_from_generic): Set `class->methods = gklass->methods'.
25730
25731 2003-09-07  Martin Baulig  <martin@ximian.com>
25732
25733         * mono-debug-debugger.c: Added support for constructors.
25734
25735 2003-09-06  Martin Baulig  <martin@ximian.com>
25736
25737         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
25738         New interncall.
25739
25740         * reflection.c (mono_reflection_setup_generic_class): Call
25741         ensure_runtime_vtable() to create the vtable.
25742
25743 2003-09-05  Martin Baulig  <martin@ximian.com>
25744
25745         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
25746         MONO_TYPE_MVAR.
25747
25748 2003-09-04  Martin Baulig  <martin@ximian.com>
25749
25750         * reflection.c (mono_reflection_define_generic_parameter): Generic
25751         parameters start with zero.
25752
25753 2003-09-04  Martin Baulig  <martin@ximian.com>
25754
25755         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
25756
25757         * reflection.h (MonoReflectionGenericParam): New typedef.
25758         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
25759         the generic parameters from the managed TypeBuilder.
25760
25761         * reflection.c (mono_reflection_define_generic_parameter): New function.
25762         (mono_reflection_create_runtime_class): Encode generic parameters.
25763         (mono_reflection_setup_generic_class): New function; this is
25764         called after adding adding all generic params to the TypeBuilder.
25765         (encode_type): Added MONO_TYPE_VAR.
25766
25767 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
25768
25769         * class.h class.c (mono_class_needs_cctor_run): Moved this method
25770         here from the JIT.
25771
25772         * assembly.h assembly.c: Moved the AOT loading code into an assembly
25773         load hook.
25774
25775 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
25776
25777         * reflection.h reflection.c class.h class.c: Delete duplicate 
25778         definition of mono_type_get_name () from reflection.c and export the
25779         one in class.c.
25780
25781         * class.c: Class loading fixes from Bernie Solomon 
25782         (bernard@ugsolutions.com).
25783
25784         * reflection.c: Endianness fixes from Bernie Solomon 
25785         (bernard@ugsolutions.com).
25786         
25787 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
25788
25789         * assembly.h assembly.c: Define a file format version for AOT
25790         libraries.
25791         
25792         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
25793
25794         * appdomain.h (MonoJitInfo): New field to determine whenever the
25795         code is domain neutral.
25796         
25797 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
25798
25799         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
25800
25801 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
25802
25803         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
25804         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
25805         Avoid caching the result since strings must be domain specific. Fixes
25806         #48050.
25807
25808 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
25809
25810         * marshal.c (mono_marshal_init): Make this callable multiple times
25811         since it is hard to find a correct place to call it.
25812
25813         * object.c (mono_runtime_class_init): Execute static constructors in
25814         the correct appdomain.
25815
25816         * image.c (build_guid_table): Handle the case when multiple images have
25817         the same GUID.
25818
25819 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25820
25821         * icall.c: added a couple of icalls for System.Web.
25822
25823 2003-08-28  Martin Baulig  <martin@ximian.com>
25824
25825         * icall.c (ves_icall_Type_BindGenericParameters): Use
25826         `klass->generic_inst' instead of `&klass->byval_arg' in the
25827         mono_type_get_object() call.  The returned type must be
25828         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
25829
25830 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
25831
25832         * NOTES: New file.
25833
25834         * object.c (mono_class_proxy_vtable): Make it thread safe.
25835
25836         * pedump.c: Fix warning.
25837
25838         * object.c appdomain.h: Get rid of metadata_section. 
25839         It is no longer needed and it was causing deadlocks with domain->lock.
25840
25841         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
25842
25843 2003-08-26  Martin Baulig  <martin@ximian.com>
25844
25845         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
25846
25847 2003-08-26  Martin Baulig  <martin@ximian.com>
25848
25849         * pedump.c (main): Call mono_metadata_init(),
25850         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
25851         and mono_loader_init().
25852
25853 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
25854
25855         * loader.h: Add missing include to fix build.
25856
25857         * image.h: mono_image_load_references is no more.
25858
25859         * assembly.c: Reworked assembly loading to make it really thread safe.
25860         After these changes, the assembly returned by mono_assembly_open is
25861         fully initialized, i.e. all its references assemblies are loaded.
25862
25863         * assembly.c (mono_image_load_references): Renamed to 
25864         mono_assembly_load_references, and made private, since clients no
25865         longer need to call it.
25866
25867         * class.c: Removed calls to mono_assembly_load_references, since it was
25868         a source of deadlocks.
25869
25870         * loader.h loader.c class.h class.c: Protect data structures using a 
25871         new lock, the loader lock.
25872
25873         * class.c (mono_class_setup_vtable): Create temporary hash tables and
25874         GPtrArrays only when needed.
25875
25876         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
25877         into empty structures by mcs. Fixes pinvoke7.cs.
25878         
25879         * domain.c (mono_init): Call a new initialization function.
25880
25881         * appdomain.c (mono_runtime_init): Call the new initializer function
25882         of the marshal module.
25883
25884         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
25885         inserted into empty structures by mcs. Fixes pinvoke7.cs.
25886
25887         * marshal.h marshal.c: Added locks around the wrapper caches to make
25888         this module thread safe.
25889
25890         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
25891         this argument. Fixes pinvoke1.exe.
25892
25893 2003-08-25  Lluis Sanchez <lluis@ximian.com>
25894
25895         * object.h: Added call_type field to MonoMethodMessage and the corresponding
25896         enumeration of values. Removed fields to store remote call output values in
25897         MonoAsyncResult. Not needed any more.
25898         * object.c: Initialize call_type and async_result fields in mono_message_init.
25899         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
25900         dispatching the message.
25901         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
25902         async call to finish. To do it use a message with EndInvoke call type.
25903
25904 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
25905
25906         * loader.h loader.c (mono_method_hash_marhal_info): New function which
25907         determines whenever a method has marshalling info.
25908
25909 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25910
25911         * assembly.c: fix the build on windows.
25912
25913 2003-08-22 Lluis Sanchez <lluis@ximian.com>
25914
25915         * object.cs: Fixed bug #47785.
25916
25917 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
25918
25919         * string-icalls.c (StringReplace): If their are no occurances of
25920         the old string found return a reference to the supplied
25921         string. This saves some memory and matches MS behavoir.
25922         
25923 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25924
25925         * socket-io.c: fixed compilation for systems that define AF_INET6
25926         and don't define SOL_IP/SOL_IPV6.
25927
25928 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
25929
25930         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
25931         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
25932
25933         * rawbuffer.c rawbuffer.h: Make this module thread safe.
25934
25935         * domain.c: Make this module thread safe.
25936
25937         * domain.c (mono_init): Call new initialization function.
25938
25939         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
25940         reference types too. Fixes #38812.
25941
25942         * image.c (mono_image_init): Fixed warnings.
25943
25944         * class.c (mono_class_from_typeref): Handle assembly load failure
25945         correctly.
25946
25947         * appdomain.c (add_assemblies_to_domain): Handle the case when
25948         the references of an assembly are not yet loaded.
25949
25950         * metadata.c image.c assembly.c: Moved initialization of global
25951         variables to a separate function called at startup since lazy 
25952         initialization of these variables is not thread safe.
25953         
25954         * image.c assembly.c: Made this module thread safe by adding locks in 
25955         the appropriate places.
25956
25957         * domain.c (mono_init): Call the new initialization functions of the
25958         three modules.
25959
25960 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
25961
25962         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
25963           make a direct call. It is proxy's work to make the call asynchronous.
25964           mono_delegate_end_invoke(): If the targe is a proxy, just collect
25965           the return values.
25966         * object.cs: mono_method_call_message_new(): read AsyncResult and
25967           state object from parameters list, if this info is requested.
25968         * object.h: Added fields to store remote call output values in
25969           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
25970
25971 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
25972
25973         * object.h: add needed fields to MonoThread.
25974         * threads.c, threads.h: allow registering a function to cleanup data
25975         allocated per thread by the JIT.
25976
25977 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
25978
25979         * loader.h: portability fix by Bernie Solomon
25980         * <bernard@ugsolutions.com>.
25981
25982 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
25983
25984         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
25985         return a MonoArray. This simplifies the code and also ensures that
25986         the cache allways contains an object reference as a value.
25987
25988         * icall.c (ves_icall_get_parameter_info): Simplified using the new
25989         function.
25990
25991 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25992
25993         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
25994         fixes a problem with byte ordering when getting the address family for
25995         a socket.
25996
25997 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
25998
25999         * .cvsignore: Added monosn.
26000
26001         * reflection.h reflection.c loader.c: Added support for parameter
26002         marshalling to dynamically created types. Fixes #47295.
26003
26004 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
26005
26006         * rand.c: remove useless warnings.
26007
26008 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
26009
26010         * class.c: implemented ldtoken for methods and fieldrefs.
26011
26012 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26013
26014         * threadpool.c: when mono_async_invoke was called, no one took care of
26015         monitoring the queue. So if the method invoked took some time and we
26016         got new async invoke requests after 500 ms (the thread created waited
26017         that long in WaitForSingleObject), the new async invoke was not called
26018         until the previous one finished.
26019
26020         This is fixed now. Thanks to Totte for helping with it.
26021
26022 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26023
26024         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
26025
26026 2003-08-11  Martin Baulig  <martin@ximian.com>
26027
26028         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
26029
26030 2003-08-06  Martin Baulig  <martin@ximian.com>
26031
26032         * mono-debug-debugger.c: Added support for static fields,
26033         properties and methods.
26034
26035 2003-08-06  Martin Baulig  <martin@ximian.com>
26036
26037         * mono-debug-debugger.c: Don't store the MonoString's vtable to
26038         make this work for applications with multiple application domains.
26039
26040 2003-08-04  Martin Baulig  <martin@ximian.com>
26041
26042         * mono-debug-debugger.c: Completely reworked the type support; the
26043         most important thing is that we're now just using one single
26044         `MonoType' instance per type.
26045
26046 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
26047
26048         * mono-endian.h, mono-endian.c, icall.c: Added icall
26049         ves_icall_System_Double_AssertEndianity to assert double word endianity
26050         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
26051
26052 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
26053
26054         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
26055         support, icalls and fixes.
26056
26057 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
26058
26059         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
26060         classes that are a punctuation character in .NET is not the same a
26061         g_unichar_ispunct.
26062
26063 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
26064
26065         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
26066
26067 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
26068
26069         * icall.c: Add new MemCopy internalcall.
26070         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
26071         Simplified code; It is not necessary to handle all the cases here,
26072         as the C# code takes care of it.  Only handle the case of the name
26073         resource embedded into the assembly.
26074
26075         Changed signature to return the data pointer and the size of the
26076         data. 
26077
26078 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
26079
26080         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
26081         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
26082
26083 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
26084
26085         * socket-io.c: ignore EINTR error in select.
26086
26087 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
26088
26089         * class.h, class.c: removed unused subclasses field in MonoClass.
26090
26091 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
26092
26093         * icall.c: improve fix of get_base_definition(). If the parent class
26094           doesn't have the mehod, look at the parent of the parent.
26095         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
26096           to check if a parameter is an in or out parameter
26097           (PARAM_ATTRIBUTE_IN is not set by default).
26098           mono_method_return_message_restore(): Use mono_class_value_size to
26099           get the size of a value type. mono_type_stack_size (parameterType)
26100           does not return the correct value if parameterType is byRef.
26101           mono_load_remote_field(), mono_load_remote_field_new(),
26102           mono_store_remote_field(), mono_store_remote_field_new():
26103           raise exception if the remote call returns an exception.
26104
26105 2003-07-28  Martin Baulig  <martin@ximian.com>
26106
26107         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
26108         method.  This is a wrapper around mono_runtime_invoke() which
26109         boxes the instance object if neccessary.
26110
26111 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
26112
26113         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
26114         metadata.h, row-indexes.h, verify.c: first cut of generics support.
26115
26116 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
26117
26118         * icall.c: disable mcs bug workaround.
26119
26120 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
26121
26122         * object.c (mono_runtime_class_init): Take the metadata_section
26123         mutex before obtaining the domain mutex.
26124
26125         * appdomain.h: Added definition of metadata_section mutex here. 
26126
26127         * object.c: define metadata_mutex here.
26128
26129 2003-07-24  Ravi Pratap  <ravi@ximian.com>
26130
26131         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
26132         fixed.
26133
26134 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
26135
26136         * reflection.c: Fix bug #46669
26137
26138 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26139
26140         * exception.c:
26141         * exception.h:
26142         * icall.c:
26143         * object.h: fill in the type name for TypeLoadException.
26144
26145 2003-07-23  Ravi Pratap  <ravi@ximian.com>
26146
26147         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
26148         relationship between TypeBuilders while compiling corlib) and bug
26149         45993 (Array types returned from the runtime while compiling
26150         corlib were from the loaded corlib).
26151
26152 2003-07-22  Martin Baulig  <martin@ximian.com>
26153
26154         * mono-debug-debugger.c: Reworked the type support a bit more;
26155         distinguish between types and classes.
26156
26157 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
26158
26159         * icall.c: add IsArrayImpl icall.
26160
26161 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
26162
26163         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
26164         initializing real_size only once. Also fix bug #46602.
26165
26166 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
26167
26168         * object.c: Renamed mono_metadata_section to metadata_section.
26169
26170 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
26171
26172         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
26173           empty array if the type is an array. Fixed.
26174           ves_icall_MonoMethod_get_base_definition: if the base method
26175           is abstract, get the MethodInfo from the list of methods of
26176           the class.
26177         * reflection.c: ParameterInfo.PositionImpl should be zero-based
26178           and it was 1-based. Fixed in mono_param_get_objects.
26179
26180 2003-07-20  Martin Baulig  <martin@ximian.com>
26181
26182         * mono-debug.h: Set version number to 31.
26183         (mono_debug_init): Added `MonoDomain *' argument.
26184
26185         * mono-debug-debugger.c: Reworked the type support; explicitly
26186         tell the debugger about builtin types; pass the `klass' address to
26187         the debugger.
26188
26189 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
26190
26191         * image.c: Allow new metadata tables to be loaded without a
26192         warning. Also update the warning message to give the new constant value.
26193                 
26194 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
26195
26196         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
26197         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
26198         array type representation changes.
26199
26200 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
26201
26202         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
26203         on Environment.Exit () call.
26204
26205 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
26206
26207         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
26208         requires a matching corlib.
26209
26210 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
26211
26212         * Changelog: My editor decided to add a CR to each line. Sorry about that.
26213           Committed again without the CRs.
26214         
26215 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
26216
26217         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
26218           getting it from the "this" socket instance. Did not work
26219           if the socket is a subclass of Socket.
26220           Also fixed bug #35371.
26221
26222 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
26223
26224         * metadata.c: fixed size for TypedByRef.
26225         * loader.c: when searching for a method, consider the vararg amrker.
26226         * unicode.c, decimal.c: constify some arrays.
26227
26228 2003-07-15  Dick Porter  <dick@ximian.com>
26229
26230         * socket-io.c: Fixed compilation for gcc < 3.2.
26231
26232         Fixed compilation for machines that don't have AF_INET6 (thanks to
26233         Bernie Solomon <bernard@ugsolutions.com> for that part.)
26234
26235         Fixed compile warnings.
26236         
26237         Fixed formatting and line endings.
26238
26239 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
26240
26241         * socket-io.h:
26242         * socket-io.c: Added IPv6 support.
26243
26244 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
26245
26246         * class.c (mono_class_is_assignable_from): New function to implement
26247         the is_assignable_from logic. Used by mono_object_isinst, 
26248         Type::IsAssignableFrom () and the interpreter.
26249
26250         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
26251         Object, even interfaces.
26252         
26253         * object.c (mono_object_isinst): Implement in terms of 
26254         is_assignable_from.
26255
26256         * icall.c (ves_icall_type_is_assignable_from): New icall.
26257
26258 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
26259
26260         * domain.c (foreach_domain): fix compiler warning.
26261
26262 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
26263
26264         * image.c (load_metadata_ptrs): use g_strndup because strndup is
26265         not available on all plattforms
26266
26267 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
26268
26269         * image.h image.c: Store the metadata version string in MonoImage.
26270         * icall.c: New icall to retrieve the image version.
26271         * reflection.c (create_dynamic_image): Fill in the image version field
26272         * reflection.c (build_compressed_metadata): Use the image version
26273         from the image structure.
26274
26275 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26276
26277         * appdomain.c: modified comment.
26278         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
26279         That will be its last iteration when mono_gc_cleanup is called from
26280         mono_runtime_cleanup and before the domain is unloaded.
26281
26282         Fixes bug #45962.
26283
26284 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
26285
26286         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
26287         attributes.
26288
26289 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
26290
26291         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
26292         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
26293         Bernie Solomon <bernard@ugsolutions.com>.
26294
26295 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
26296
26297         * object.c, object.h: provide mono_object_new_fast() for faster
26298         allocation in some special cases.
26299
26300 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
26301
26302         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
26303         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
26304
26305 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
26306
26307         * threadpool.c: fix leaks.
26308
26309 2003-07-01  Dick Porter  <dick@ximian.com>
26310
26311         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
26312         using MonoGHashTables.  Fixes threadpool bug posted to list.
26313
26314 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
26315
26316         * image.h, image.c: added support to load an assembly from a byte array.
26317         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
26318         assembly bundle support.
26319
26320 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
26321
26322         * threadpool.c (mono_thread_pool_add): keep a reference to the
26323         AsyncResult to prevent GC
26324
26325 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
26326
26327         * class.c: leak fix.
26328
26329 2003-06-25  Dick Porter  <dick@ximian.com>
26330
26331         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
26332         for the async object, the WaitHandle object will close the handle.
26333         Fixes bug 45321.
26334
26335 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
26336
26337         * class.c: in mono_array_class_get (), lookup from the hash with the
26338         same type we insert: this works around a bug in
26339         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
26340         lluis. The real fix will have to wait for after the release.
26341
26342 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
26343
26344         * icall.c: fix memory leak when getting type members.
26345
26346 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
26347
26348         * reflection.c: added more pubtoken special cases.
26349
26350 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
26351
26352         * class.c: handle field offset correctly when class size
26353         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
26354
26355 2003-06-20  Martin Baulig  <martin@ximian.com>
26356
26357         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
26358         *image' field.
26359
26360 2003-06-20  Martin Baulig  <martin@ximian.com>
26361
26362         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
26363
26364 2003-06-20  Martin Baulig  <martin@ximian.com>
26365
26366         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
26367         just distinguish between variables in registers and variables at
26368         an offset relative to a register.
26369
26370 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26371
26372         * icall.c: #ifdef out latest changes until mcs is fixed.
26373
26374 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
26375
26376         * icall.c: return members in metadata order.
26377
26378 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
26379
26380         * icall.c: avoid infinite loop in GetTimeZoneData.
26381
26382 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
26383
26384         * icall.c: added Marshal.Prelink/All icalls.
26385
26386 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
26387
26388         * object.c, object.h: fix warnings and do some overflow checking
26389         when creating arrays.
26390
26391 2003-06-17  Dick Porter  <dick@ximian.com>
26392
26393         * file-io.h:
26394         * file-io.c: File attributes need to be tweaked slightly when
26395         passed from the managed to the w32 world.
26396
26397 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
26398         * profiler.h profiler-private.h profiler.c: Rework last patch
26399         based on suggestion by Paolo.
26400         
26401 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
26402
26403         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
26404         instruction level coverage data collection.
26405         * profiler.h profiler.c (: Added new callback function which can be
26406         used by the profiler to limit which functions should have coverage
26407         instrumentation.
26408         * profiler.c (mono_profiler_load): Call g_module_build_path to
26409         generate the file name of the profiler library.
26410
26411 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
26412
26413         * profiler.c, profiler.h, profiler-private.h: added basic block 
26414         coverage profiling API.
26415
26416 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
26417
26418         * reflection.c (mono_reflection_create_runtime_class): Add support
26419         for events in dynamically generated code.
26420
26421         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
26422         not allocated.
26423
26424 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
26425
26426         * icall.c: when getting timezone info, return reasonable values if we
26427         can't get the actual data.
26428
26429 2003-06-14  Dick Porter  <dick@ximian.com>
26430
26431         * threads.c (start_wrapper): Remove the reference to the thread
26432         object in the TLS data, so the thread object can be finalized.
26433         This won't be reached if the thread threw an uncaught exception,
26434         so those thread handles will stay referenced :-( (This is due to
26435         missing support for scanning thread-specific data in the Boehm GC
26436         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
26437
26438 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
26439
26440         * reflection.c: ensure streams and tables are first allocated with
26441         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
26442
26443 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
26444
26445         * icall.c: fixed GetElementType for byrefs (bug# 44792).
26446
26447 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
26448
26449         * reflection.c (mono_reflection_create_runtime_class): Add support for
26450         properties to dynamically created classes.
26451         * reflection.c: Fix a few places where non-MonoObjects were inserted
26452         into the tokens hashtable.
26453
26454 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
26455
26456         * object.c: some support to handle out of memory exceptions.
26457
26458 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
26459
26460         * marshal.c (mono_marshal_get_native_wrapper): support reference
26461         return types
26462
26463 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
26464
26465         * object.h, object.c: more portability stuff from Bernie Solomon.
26466         Unexport mono_object_allocate(). Added mono_object_unbox ().
26467         Set exitcode when an unhandled exception is thrown.
26468
26469 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
26470
26471         * marshal.c (mono_marshal_get_native_wrapper): use custom
26472         marshaler for return types.
26473
26474 2003-06-10  Dick Porter  <dick@ximian.com>
26475
26476         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
26477         ip_mreq is available
26478
26479 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
26480
26481         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
26482         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
26483         by Bernie Solomon <bernard@ugsolutions.com>.
26484
26485 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
26486
26487         * gc.c (mono_gc_init): Avoid error message on shutdown when
26488         GC_DONT_GC=1 is used.
26489
26490         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
26491         New icall to return the GUID of a module.
26492
26493 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
26494
26495         * class.c: ensure instance size always includes the parent's size
26496         even whem class size is set explicitly (fixes bug#44294).
26497
26498 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
26499
26500         * profiler.h, profiler.c: made the simple profiler thread-safe,
26501         get more accurate timing info. Allow the loading of an
26502         externally-developed profiler module.
26503
26504 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
26505
26506         * marshal.c (mono_marshal_get_native_wrapper): improved
26507         class/byref arguments.
26508         (mono_marshal_get_native_wrapper): better string marshaling support.
26509
26510 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
26511
26512         * class.c: ensure .pack and .size are handled correctly and
26513         simplified layout of static fields.
26514
26515 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
26516
26517         * appdomain.c
26518         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
26519
26520         * loader.c (mono_lookup_pinvoke_call): look for modules in the
26521         current directory (fix bug 44008)
26522
26523 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
26524
26525         * marshal.c (mono_marshal_get_native_wrapper): started support for
26526         custom marshalers.
26527         (mono_delegate_to_ftnptr): consider marshalling specifications
26528
26529 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
26530
26531         * reflection.c, reflection.h: emit custom marshal info.
26532
26533 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26534
26535         * object.c: free the GError.
26536         * icall.c: added CloseEvent_internal.
26537         * threads.[ch]:
26538         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
26539         call.
26540
26541 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
26542
26543         * loader.c (mono_method_get_signature): Add support for dynamic
26544         assemblies.
26545
26546 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
26547
26548         * reflection.c: fixed bug #43905.
26549
26550 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
26551
26552         * class.c, domain.c, icall.c, metadata.h, object.h: support for
26553         handling TypedReference and ArgIterator.
26554         * loader.c, loader.h: added function to get signature at call site.
26555
26556 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
26557
26558         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
26559         data readonly. Buglets and warning fixes. Some MethodSpec support.
26560
26561 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
26562
26563         * class.h, class.c, object.c: remove relative numbering support.
26564
26565 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
26566
26567         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
26568         free the string, until we get a chance to fix Gtk#
26569
26570 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26571
26572         * marshal.c: revert last patch.
26573
26574 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
26575
26576         * icall.c: updates for new mono_class_vtable() not calling
26577         the type constructor anymore.
26578
26579 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
26580
26581         * object.h, object.c: separate vtable creation from type
26582         initialization. Make running the .cctor thread safe.
26583
26584 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
26585
26586         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
26587
26588 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
26589
26590         * loader.c (mono_get_method): consider calling convention
26591
26592 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
26593
26594         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
26595         to return the invisible global type for a module.
26596
26597         * reflection.c (mono_image_build_metadata): Emit global fields too.
26598
26599 2003-05-20  Peter Williams  <peterw@ximian.com>
26600
26601         * loader.c (mono_lookup_internal_call): Add a few newlines.
26602
26603 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
26604
26605         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
26606         literal strings.
26607
26608         * appdomain.c (set_domain_search_path): Recalculate search path when
26609         AppDomainSetup.PrivateBinPath changes.
26610
26611         * object.c (mono_class_compute_gc_descriptor): It turns out some
26612         parts of the class libs (like System.Thread) holds pointers to
26613         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
26614         to treat native int a pointer type here.
26615         
26616 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
26617
26618         * appdomain.h, domain.c: add hashtable for jump target resolution.
26619
26620 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
26621
26622         * reflection.h reflection.c icall.c: Added new icalls 
26623         GetManifestResourceInfoInternal, GetModulesInternal and support
26624         infrastructure.
26625
26626 2003-05-16  Dick Porter  <dick@ximian.com>
26627
26628         * icall.c:
26629         * file-io.h:
26630         * file-io.c: Implement System.IO.MonoIO::GetTempPath
26631
26632 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
26633
26634         * object.c: mono_store_remote_field: little fix to previous patch.
26635
26636 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
26637
26638         * class.c: add constructors to array classes.
26639         * icall.c: special case array construction for InternalInvoke (),
26640
26641 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
26642
26643         * class.h class.c reflection.c object.c: Added support for field
26644         defaults in dynamically generated classes.
26645
26646 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
26647
26648         * reflection.c: properly encode charset for ddlimport.
26649
26650 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
26651
26652         * threads.c: allow compiling without GC.
26653
26654 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
26655
26656         * appdomain.h, object.c, object.h, threads.c, threads.h: added
26657         handling of thread static data.
26658
26659 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
26660
26661         * reflection.h, reflection.c: added mono_custom_attrs_free ().
26662
26663 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
26664
26665         * class.c (mono_array_class_get): always set the serializable flags
26666         (mono_array_class_get): always set the SEALED attribute for array types
26667
26668 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
26669
26670         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
26671         attributes (fix for bug 42021).
26672
26673 2003-05-12  Dick Porter  <dick@ximian.com>
26674
26675         * gc.c: Don't run finalizers when the finalizer thread is
26676         finishing up, because the default domain has already been
26677         destroyed.
26678
26679 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
26680
26681         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
26682         value is null, we should throw an exception.   This is slightly
26683         different than the other conventions used for the constructor.
26684
26685 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26686
26687         * socket-io.c: fixed windows build.
26688
26689 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26690
26691         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
26692
26693 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
26694
26695         * object.c (mono_string_new_wrapper): Compatibility fix for MS
26696         compilers.
26697
26698 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
26699
26700         * class.c (mono_class_layout_fields): Add experimental GC aware
26701         auto layout facility. Requires class library changes to work correctly.
26702
26703         (mono_class_setup_vtable): Avoid overriding explicit interface
26704         method implementations. Fixes iface3.exe test.
26705
26706         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
26707         object reference.
26708         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
26709         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
26710
26711         * metadata.h: Add new type classification macro which determines
26712         whenever the type holds an object reference.
26713
26714 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
26715
26716         * marshal.c (mono_marshal_get_native_wrapper): cleanups
26717
26718 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
26719
26720         * gc.c (finalizer_thread): Work around a GC bug.
26721
26722 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
26723
26724         * marshal.c (emit_struct_conv): allow unions
26725
26726         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
26727
26728 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
26729
26730         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
26731
26732 2003-05-06  Martin Baulig  <martin@ximian.com>
26733
26734         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
26735
26736 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26737
26738         * socket-io.c:
26739         (Select_internal): allow NULLs, don't create arrays if not needed.
26740         Coupled with Socket.cs changes.
26741
26742         * threadpool.c:
26743         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
26744         register a finalizer for it that will close the semaphore handle. This
26745         fixes the leak and make Lupus' test run with > 4080 loops.
26746
26747 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
26748
26749         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
26750         Jerome Laban (bug #42287)
26751
26752 2003-05-02  Martin Baulig  <martin@ximian.com>
26753
26754         * debug-mono-symfile.h
26755         (MonoSymbolFile): Moved declaration into mono-debug.h.
26756         (MonoDebugMethodJitInfo): Likewise.
26757         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
26758         argument.
26759         (_mono_debug_address_from_il_offset): Take a
26760         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
26761
26762         * mono-debug.h
26763         (MonoDebugDomainData): New struct.
26764         (mono_debug_get_domain_data): New function.
26765         (mono_debug_add_method): Take an additional `MonoDomain *'
26766         argument.
26767         (mono_debug_source_location_from_address): Likewise.
26768         (mono_debug_il_offset_from_address): Likewise.
26769         (mono_debug_address_from_il_offset): Likewise.
26770
26771 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
26772
26773         * reflection.c: one more check for null type in custom attrs.
26774
26775 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26776
26777         * reflection.c: avoid warning (comparison is always false due to limited
26778         range of data type).
26779
26780 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26781
26782         * icall.c: throw an exception in Type.GetField if the argument 'name'
26783         is NULL.
26784
26785 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
26786
26787         * reflection.c: fixed handling of enums in named arguments to custom
26788         attributes (bug #42123).
26789
26790 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
26791
26792         * reflection.c: use the right array element type and handle
26793         a null for a Type argument, too.
26794
26795 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
26796
26797         * reflection.c: handle arrays as arguments to custom attributes.
26798
26799 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
26800
26801         * reflection.c: handle a string value in a custom attr
26802         ctor that takes an object.
26803
26804 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
26805
26806         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
26807         (fix bug #42063)
26808
26809 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
26810
26811         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
26812
26813 2003-04-27  Martin Baulig  <martin@ximian.com>
26814
26815         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
26816         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
26817         MONO_DEBUGGER_EVENT_BREAKPOINT.
26818         (mono_breakpoint_trampoline_code): Removed.
26819         (mono_debugger_event_handler): The last argument is now a
26820         `guint32'.
26821         (mono_debugger_insert_breakpoint_full): Removed the
26822         `use_trampoline' argument.
26823         (mono_debugger_method_has_breakpoint): Likewise.
26824         (mono_debugger_trampoline_breakpoint_callback): Renamed to
26825         mono_debugger_breakpoint_callback(); take the method and
26826         breakpoint number as arguments.
26827
26828 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
26829
26830         * metadata.c: fix off by one when loading parameters attributes.
26831
26832 2003-04-24  Martin Baulig  <martin@ximian.com>
26833
26834         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
26835
26836 2003-04-24  Martin Baulig  <martin@ximian.com>
26837
26838         * mono-debug-debugger.c: Moved all code which interacts with the
26839         Mono Debugger here.
26840
26841         * debug-mono-symfile.c: This code now just deals with the symbol
26842         file itself, the debugger code is now in mono-debug-debugger.c.
26843
26844 2003-04-23  Martin Baulig  <martin@ximian.com>
26845
26846         * mono-debug.c (mono_debug_source_location_from_il_offset):
26847         New method; like mono_debug_source_location_from_address(), but
26848         takes an IL offset instead of a machine address.
26849
26850 2003-04-23  Martin Baulig  <martin@ximian.com>
26851
26852         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
26853         `line' field; this is now computed by the debugger.
26854
26855 2003-04-23  Martin Baulig  <martin@ximian.com>
26856
26857         * mono-debug.[ch]: New files.  This is the new debugging interface.
26858
26859         * mono-debug-debugger.[ch]: New files.  Moved all code which
26860         interacts with the Mono Debugger here.
26861
26862 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
26863
26864         * domain.c (mono_init): initialize mono_defaults.monitor_class
26865
26866 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
26867
26868         * reflection.c (method_encode_code): Add a spicy exception to help
26869         future compiler authors.
26870
26871 2003-04-21  Martin Baulig  <martin@ximian.com>
26872
26873         * icall.c
26874         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
26875         Make this work with relative pathnames; g_filename_to_uri() needs
26876         an absolute filename.
26877
26878 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
26879
26880         * icall.c: Track name changes in Object and ValueType.
26881
26882 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
26883
26884         * metadata.c (mono_type_stack_size): size should be a multiple of
26885         sizeof (gpointer)
26886
26887 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26888
26889         * gc.c:
26890         (internal_domain_finalize): moved into mono_domain_finalize. No need
26891         to create another thread because the finalizers will be run in the
26892         finalizer thread.
26893         
26894         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
26895         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
26896         to be run (MS does this too).
26897
26898 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
26899
26900         * object.c (mono_class_compute_gc_descriptor): Update comment.
26901
26902         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
26903
26904         * image.h: Add synchronized wrapper cache.
26905
26906         * image.c (do_mono_image_open): Initialize cache.
26907
26908         * reflection.c (create_dynamic_mono_image): Initialize cache.
26909
26910 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26911
26912         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
26913         ves_icall_System_Buffer_ByteLengthInternal.
26914
26915 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
26916
26917         * reflection.c: setup klass->nested_in earlier. Allow
26918         a dash in the assembly name.
26919
26920 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
26921
26922         * metadata.c (mono_type_to_unmanaged): dont access
26923         type->data.klass for MONO_TYPE_OBJECT
26924         (mono_type_to_unmanaged): consider System.Delegate class
26925
26926 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
26927
26928         * class.c: just setup supertypes in the proper place instead of
26929         initializing the full element class for arrays.
26930
26931 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
26932
26933         * class.c: ensure the element class of arrays is initialized.
26934         Setup the supertype info for array classes, too.
26935
26936 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
26937
26938         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
26939
26940 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26941
26942         * Makefile.am: re-added -m option when running cygpath. This way,
26943         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
26944         separator.
26945         * mono-config.c: same codepath for locating mono config file for WIN32
26946         and the rest.
26947         * assembly.c: if mono_assembly_setrootdir is called, don't override
26948         the value set.
26949
26950 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26951
26952         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
26953         MONO_ASSEMBLIES variable.
26954
26955 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
26956
26957         * icall.c: added Assembly::GetNamespaces() icall.
26958
26959 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26960
26961         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
26962
26963 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
26964
26965         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
26966         * object.c: fixed bug in the construction of vtable for proxies
26967
26968 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
26969
26970         * object.c (mono_array_new): Mark mono_array_new as an icall.
26971
26972 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26973
26974         * class.c: fixed test for public method when overriding interfaces.
26975         Closes bug #40970.
26976
26977 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
26978
26979         * appdomain.h, domain.c: added mono_domain_foreach() to
26980         be able to access the currently loaded appdomains.
26981         * object.c: make string interning work across sppdomains.
26982         Mark some functions for use as icalls.
26983
26984 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
26985
26986         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
26987
26988         * reflection.h reflection.c: Allocate long living data using 
26989         GC_MALLOC_ATOMIC so the collector does not need to scan it.
26990
26991         * reflection.c: Double the allocation size in streams instead of
26992         increasing it, to prevent unneccesary copying on large assemblies.
26993         
26994         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
26995         creation if the assembly does not have the Run flag set.
26996
26997 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
26998
26999         * class.h: avoid the C++ keywords in header files (Jerome Laban
27000         spotted and fixed this).
27001
27002 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27003
27004         * object.c:
27005         (mono_unhandled_exception): fill in the arguments for the
27006         UnhandledException event. Only trigger that event for the default
27007         domain (as MS does).
27008
27009 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
27010
27011         * object.c: Improve typed allocation stuff based on suggestions from
27012         Paolo. Also turn it on if the GC library supports it.
27013
27014 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
27015
27016         * object.c object.h class.h: Added experimental typed allocation
27017         facility using the interfaces in gc_gcj.h.
27018
27019         * os/gc_wrapper.h: Added new include files.
27020         
27021 2003-04-03  Martin Baulig  <martin@ximian.com>
27022
27023         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
27024         which is not yet enabled by default.
27025
27026         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
27027         functions.
27028         (mono_gc_lock, mono_gc_unlock): New static functions.
27029
27030         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
27031         functions; stop/start the world for the garbage collector.  This
27032         is using the windows API; we need to complete the SuspendThread()/
27033         ResumeThread() implementation in the io-layer to make this work on Unix.
27034         (mono_gc_push_all_stacks): New public function; tells the garbage
27035         collector about the stack pointers from all managed threads.
27036
27037 2003-04-03  Martin Baulig  <martin@ximian.com>
27038
27039         * object.h (MonoThread): Added `gpointer stack_ptr'.
27040
27041         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
27042
27043 2003-04-03  Martin Baulig  <martin@ximian.com>
27044
27045         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
27046
27047 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
27048
27049         * reflection.c (typebuilder_setup_fields): Initialize field.first and
27050         field.last.
27051
27052 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
27053
27054         * loader.c (mono_lookup_internal_call): Report the corlib that is
27055         out of sync.
27056
27057 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
27058
27059         * icall.c (ves_icall_type_GetTypeCode): fixed check for
27060         System.DBNull (it's class not valuetype).
27061
27062 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
27063
27064         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
27065         if the array method was already assigned a token (fixes bug#40646).
27066
27067 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
27068
27069         * reflection.c (mono_reflection_get_type): Attempt type resolve even
27070         if no assembly is given.
27071
27072 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
27073
27074         * metadata.h: Added the new tables.
27075
27076         * row-indexes.h: Added definitions for new tables.
27077
27078         * metadata.c: Add schemas for new tables, and add support for
27079         computing the sizes of them.
27080
27081         * class.c: Update for handling the new type cases.
27082
27083 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
27084
27085         * metadata.h (MONO_TYPE_IS_VOID): new macro
27086
27087 2003-03-31  Martin Baulig  <martin@ximian.com>
27088
27089         * threads.h (MonoThreadCallbacks): Added `thread_created'.
27090
27091         * threads.c (mono_thread_new_init): Call `thread_created' in the
27092         mono_thread_callbacks.
27093
27094 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
27095
27096         * loader.h: added marshalbyrefobject_class to mono_defaults
27097         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
27098         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
27099           generation of output parameters.
27100           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
27101         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
27102           contextbound and the target object belongs to the context of the caller.
27103         * object.h: added context and unwrapped_server variables in MonoRealProxy.
27104         * object.c: Implemented support for interfaces and abstract classes
27105           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
27106           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
27107
27108 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
27109
27110         * class.h class.c (mono_class_is_subclass_of): New function.
27111         
27112         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
27113         routines for most common case (calls from ArrayList::ToArray).
27114
27115         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
27116         routine so programs which call Environment::Exit() can be profiled.
27117
27118         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
27119         Added MONO_ARCH_SAVE_REGS.
27120
27121         * icall.c (ves_icall_type_is_subtype_of): Use new function.
27122
27123 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
27124
27125         * blob.h: Add a couple of new MonoType types definitions.
27126
27127         * tabledefs.h: Add a couple of new call convs.
27128
27129 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
27130
27131         * reflection.h (MonoReflectionDynamicAssembly): track changes in
27132         the layout of the class.
27133
27134         * reflection.c (alloc_table): double the size on overflow to avoid
27135         unnecessary copying.
27136
27137         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
27138         avoid filling out metadata tables and blobs. Also set mb->ilgen to
27139         null so it can be garbage collected.
27140         
27141 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
27142
27143         * reflection.c (mono_reflection_get_type): Return the resolved type
27144         only if it is in the assembly we searched.
27145
27146         * reflection.c (ensure_runtime_vtable): Initialize method slots.
27147
27148         * class.c (mono_class_setup_vtable): Set the slot of the overriding
27149         method.
27150
27151 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27152
27153         * appdomain.c:
27154         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
27155         the right one is 'file:///blah', but MS allows it.
27156         * assembly.c:
27157         (mono_assembly_open): allow 'file://blah'
27158
27159         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
27160
27161 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
27162
27163         * socket-io.c: fixes bug #40310.
27164
27165 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
27166
27167         * reflection.c (mono_reflection_parse_type): handle deeply nested
27168         types correctly.
27169
27170         * reflection.c (mono_image_create_token): Use unique token values
27171         since they will be put into a hash table.
27172
27173         * class.c (mono_class_setup_vtable): If a method occurs in more than
27174         one place in the vtable, and it gets overriden, then change the
27175         other occurances too.
27176
27177         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
27178         object as return type.
27179
27180 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
27181
27182         * icall.c: Deleted "ToString" implementation for double and float
27183         because they are full implemented in managed code.
27184
27185 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
27186
27187         * reflection.c, reflection.h: implemented and exported functions
27188         to retrieve info about custom attributes.
27189
27190 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27191
27192         * appdomain.c: moved Uri handling to assembly.c
27193         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
27194         work when using a file Uri in *nix and windows.
27195
27196         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
27197         GetReferencedAssemblies.
27198
27199 2003-03-18  Dick Porter  <dick@ximian.com>
27200
27201         * icall.c: Rename a couple of internal calls
27202
27203         * threads.c: Set the thread state to Stopped when a thread exits.
27204         Fixes bug 39377.
27205
27206 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
27207
27208         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
27209         New icall.
27210
27211         * object.c (mono_class_vtable): fix warning.
27212
27213 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
27214
27215         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
27216
27217         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
27218         memory.
27219         (method_encode_clauses): Create exception info structures in the right
27220         order.
27221         (mono_reflection_setup_internal_class): Initialize supertypes field.
27222
27223         * class.c object.c: Handle interfaces which implement other interfaces 
27224         correctly.
27225
27226         * class.h class.c: Move the supertypes array initialization code into 
27227         a separate function so it can be used for dynamic types too. Also call
27228         it earlier, in mono_class_init(), since it can be used before the
27229         type is initialized.
27230
27231 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27232
27233         * Makefile.am:
27234         * assembly.c:
27235         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
27236
27237         * appdomain.c:
27238         * appdomain.h:
27239         * marshal.c:
27240         * object.c: remove warnings.
27241
27242 2003-03-13  Martin Baulig  <martin@ximian.com>
27243
27244         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
27245         (MonoDebugLexicalBlockEntry): New types.
27246
27247         * debug-mono-symfile.c
27248         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
27249
27250 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27251
27252         * process.c: ret can be any non-zero value accroding to MS doc.
27253
27254 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
27255
27256         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
27257         fixing a warning for a miss-used prototype, would have cause
27258         random memory corruption.
27259
27260 2003-03-07  Martin Baulig  <martin@ximian.com>
27261
27262         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
27263         getting really annoying ....
27264
27265 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
27266
27267         * reflection.c (fixup_method): added support for array methods.
27268
27269 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
27270
27271         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
27272         (pointed out by Michael Adams).
27273
27274 2003-03-04  Dick Porter  <dick@ximian.com>
27275
27276         * icall.c: Temporarily reverted the Double and Single ToString()
27277         change, because it broke nunit.
27278
27279 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
27280
27281         * object.h, threads.h: make include files compatible with C++
27282         (patch by Jerome Laban <jlaban@wanadoo.fr>).
27283
27284 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
27285
27286         * icall.c: Erased ToString helper functions for Double and Single.
27287         Now, that implementations ar all in managed code (Double and Single
27288         Formatters).
27289
27290 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
27291
27292         * appdomain.c: Added method for initializing the default context of
27293         a domain. Added internal call for getting the default context.
27294         * appdomain.h: Added context variable in MonoDomain struct.
27295         * domain.c: mono_domain_set also sets the default context of the domain
27296         * icall.c: Mapped internal method InternalGetDefaultContext.
27297         * object.c: mono_object_get_virtual_method returns always a remoting
27298         wrapper if the object is a transparent proxy.
27299         mono_runtime_invoke_array: when creating an object by calling the
27300         constructor, if the created object is a proxy, then the constructor should
27301         be called using the a remoting wrapper.
27302
27303 2003-03-03  Dick Porter  <dick@ximian.com>
27304
27305         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
27306         variable so it compiles on solaris.  Problem spotted by
27307         Christopher Taylor <ct@cs.clemson.edu>
27308
27309 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27310
27311         * appdomain.c:
27312         (get_info_from_assembly_name): don't leak value.
27313
27314         * icall.c:
27315         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
27316         result.
27317
27318 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
27319
27320         * assembly.c: export mono_image_load_references ().
27321         * class.c: handle function pointers. mono_class_from_name() now
27322         supports nested type names directly.
27323
27324 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
27325
27326         * reflection.h reflection.c: Encode already created dynamic methods 
27327         and fields correctly as a DEF instead of a REF.
27328
27329         * reflection.c: Get rid of the force_ref argument to 
27330         mono_image_typedef_or_ref since it was wrong in the first place.
27331
27332         * string-icalls.c: add error checking to string constructors according
27333         to the MSDN docs.
27334
27335         * reflection.c: Emit types in the order their TypeBuilders were 
27336         created. Previously, a new table index was assigned to each type before
27337         the tables were emitted. This was wrong because the signature blob
27338         might already refer to a type by its original table index.
27339
27340 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
27341
27342         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
27343         change.
27344         
27345 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27346
27347         * Makefile.am: make assemblies dir have \ instead of / on windows.
27348
27349 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
27350
27351         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
27352         iterate over the NESTEDCLASS table using a linear search since the
27353         table is not guaranteed to be sorted by the secondary key.
27354
27355         * class.c (mono_class_create_from_typedef): fixed up call to
27356         mono_metadata_nesting_typedef.
27357         
27358 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
27359
27360         * marshal.c (mono_string_to_byvalstr): clear the memory as
27361         suggested by Jerome Laban <jlaban@wanadoo.fr>
27362
27363 2003-02-26  Dick Porter  <dick@ximian.com>
27364
27365         * process.c: Cope with padding in .rsrc blocks
27366
27367 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
27368
27369         * metadata.h: reverted the filter_len change, it breaks reflection
27370         
27371 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
27372
27373         * metadata.h: added a new field to store the filter_len
27374         
27375
27376 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
27377
27378         * reflection.c: handle custom attributes for types and members
27379         created with Reflection.Emit (bug#38422).
27380
27381 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
27382
27383         * reflection.c: define RTSpecialName automatically for constructors for
27384         compatibility with MS.NET.
27385
27386         * reflection.c (mono_reflection_create_runtime_class): initialize
27387         nested_in field of dynamically created classes.
27388
27389 2003-02-22  Martin Baulig  <martin@ximian.com>
27390
27391         * debug-mono-symfile.h: Incremented version number.
27392
27393 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
27394
27395         * object.h icall.c process.c: fix warnings.
27396
27397 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
27398
27399         * appdomain.h appdomain.c:
27400         (mono_domain_try_type_resolve): split the 
27401         name_or_tb argument into a name and a tb argument.
27402         (mono_domain_has_type_resolve): new function to check whenever the
27403         application has registered a TypeResolve event handler.
27404         
27405         * icall.c reflection.h reflection.c: move the type resolve logic into
27406         mono_reflection_get_type () so it will be invoked when 
27407         Assembly::GetType () is called.
27408
27409         * reflection.c:
27410         (mono_reflection_get_type): renamed to get_type_internal.
27411         (mono_reflection_get_type): fixed type name generation so it works 
27412         for nested types too.
27413         (mono_reflection_get_type): call has_type_resolve () to avoid the 
27414         costly type name generation if there is no resolve event handler.
27415
27416 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
27417
27418         * class.c, image.c: load exported types from file references.
27419
27420 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
27421
27422         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
27423           used to cache the managed methods used to create proxies and make 
27424           remote invocation of methods.
27425         * class.h: Added in MonoVTable a flag to indicate that a class needs 
27426           to be remotely created.
27427         * object.c: Modified the method mono_class_vtable(). It now initializes 
27428           the remote flag of the vtable. Modified mono_object_new_specific(), 
27429           so now it checks the remote flag.
27430         * icall.c: Added a couple of internal methods, one for enabling instance 
27431           creation interception for a type, and one for creating objects bypassing
27432           the remote check.
27433
27434 2003-02-18  Martin Baulig  <martin@ximian.com>
27435
27436         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
27437         New interncall to get a method's metadata token.
27438
27439         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
27440         New interncall for the debugger.
27441
27442 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
27443
27444         * class.c (mono_class_setup_vtable): allocate supertype array
27445
27446 2003-02-18  Martin Baulig  <martin@ximian.com>
27447
27448         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
27449
27450 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27451
27452         * reflection.c:
27453         (assembly_name_to_aname): jump over unknown properties (i've found
27454         something like: 'type, assembly, version=xxx, custom=null, public...',
27455         so now will ignore custom=null and still get the rest of the values).
27456
27457 2003-02-17  Dick Porter  <dick@ximian.com>
27458
27459         * threads.c: Have Thread.Start() wait for a semaphore to signal
27460         that the thread has set up all its local data.  This fixes bug
27461         34323, where Abort() raced the new thread's TLS data.
27462
27463         Also removes the handle_store() call from start_wrapper, because
27464         threads are now always created suspended and there is no longer a
27465         race between the parent and child threads to store the info.
27466
27467 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
27468
27469         * image.c: explain the #- heap issue in a message, hopefully
27470         avoiding FAQs on mono-list.
27471
27472 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27473
27474         * icall.c:
27475         (GetEntryAssembly): if the domain has not invoked
27476         AppDomain.ExecuteAssembly yet, return the assembly of the default
27477         AppDomain.
27478
27479 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
27480
27481         * class.c (mono_ldtoken): make it work in dynamic assemblies.
27482
27483 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
27484
27485         * metadata.c, reflection.c: simple speedup to type hash
27486         and equals code.
27487
27488 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
27489
27490         * image.c, image.h, class.c, assembly.c: move module loading
27491         to MonoImage. When loading metadata, consider alignemnet from
27492         the start of metadata, not from the metadata address in memory.
27493
27494 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
27495
27496         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
27497         AssemblyBuilder objects. Factored out custom attribute creation into
27498         a separate function.
27499         (create_custom_attr): new function to create custom attributes.
27500
27501 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
27502
27503         * Makefile.am: Got tired of typing the full pathname to pedump.
27504         Until there is another option, am installing this.
27505
27506 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
27507
27508         * class.c (class_compute_field_layout): always set field->parent 
27509         (mono_ldtoken): use mono_defaults.fieldhandle_class;
27510
27511 2003-02-11  Dick Porter  <dick@ximian.com>
27512
27513         * threads-types.h:
27514         * monitor.c: Rewrote Monitor, making lock much faster and
27515         Pulse/Wait work as specified.  Also uses much fewer handles, and only
27516         creates them as needed.
27517
27518         * exception.c: Added SynchronizationLockException
27519
27520         * threads.c: Deleted old Monitor implementation.  The new one is
27521         in a new file.
27522
27523 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
27524
27525         * class.c: handled TypedReference type code. Set the correct size for
27526         class data. Setup interface_offsets for interface classes, too.
27527
27528 2003-02-09  Martin Baulig  <martin@ximian.com>
27529
27530         * debug-mono-symfile.h: Reflect latest symbol writer changes.
27531
27532 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
27533
27534         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
27535         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
27536         * object.c: fixed mono_object_get_virtual_method () for interfaces.
27537         * verify.c: check for code that runs after the end of the method.
27538
27539 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
27540
27541         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
27542         "System.Math::Round2".
27543         * sysmath.h: Added Floor, Round and Round2 definitions.
27544         * sysmath.c: Modified certain functions that were not 100% compliant
27545         with MS.NET (math precision) and added the implementation of Floor,
27546         Round and Round2.
27547
27548 2003-02-07  Martin Baulig  <martin@ximian.com>
27549
27550         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
27551
27552 2003-02-07  Martin Baulig  <martin@ximian.com>
27553
27554         * debug-mono-symfile.c: Reflected latest symwriter changes.
27555         (mono_debug_create_mono_symbol_file): Removed.
27556         (mono_debug_open_mono_symbol_file): Take an argument which
27557         specifies whether to create a dynamic symbol file.
27558
27559 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
27560
27561         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
27562
27563 2003-02-05  Martin Baulig  <martin@ximian.com>
27564
27565         * reflection.c (mono_image_build_metadata): Make this public,
27566         protect it against being called multiple times, don't create
27567         resources and don't build the compressed metadata here.
27568         (mono_image_create_pefile): Do this here.
27569
27570         * icall.c
27571         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
27572
27573 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27574
27575         * socket-io.c: fixed bug #36322.
27576
27577 2003-02-06  Piers Haken <piersh@friskit.com>
27578
27579         * appdomain.[ch]:
27580         * class.h:
27581         * debug-mono-symfile.c:
27582         * icall.c:
27583         * loader.c:
27584         * mono-config.c:
27585         * monosn.c:
27586         * reflection.c:
27587         * socket-io.c: warning cleanups
27588
27589 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
27590
27591         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
27592         function. works like remoting invoke, but does a check for the Proxy first.
27593
27594 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
27595
27596         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
27597
27598 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
27599
27600         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
27601         array of pointers.
27602         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
27603         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
27604
27605         * object.c (mono_store_remote_field_new): used by the new jit
27606         instead of mono_store_remote_field
27607         (mono_load_remote_field_new): used by the new jit
27608         instead of mono_load_remote_field
27609
27610 2003-02-05  Patrik Torstensson
27611
27612         * appdomain.c: changed unload to take the domain id instead
27613         of domain
27614         
27615         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
27616
27617
27618 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27619
27620         * appdomain.c: don't look for assemblies in ApplicationBase if
27621         PrivateBinPathProbe is set.
27622
27623 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27624
27625         * object.c: make the first argument in main_args contain the absolute
27626         path to the assembly. Fixes bug #37511.
27627
27628 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27629
27630         * icall.c: get correct UTC offset for countries not using daylight
27631         time saving. Fixes bug #30030.
27632
27633 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27634
27635         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
27636         and 1 are the family).
27637
27638 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
27639
27640         * icall.c (ves_icall_InternalExecute): removed wrong assertion
27641
27642         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
27643
27644 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
27645
27646         * reflection.c: added support for SignatureHelper tokens, which is
27647         needed by the Calli opcode.
27648
27649         * reflection.h: track changes to SignatureHelper class.
27650
27651         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
27652
27653 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27654
27655         * appdomain.c: fixed loading assemblies from PrivateBinPath.
27656
27657 2003-02-03  Patrik Torstensson
27658         * appdomain.[c|h], domain.c : 
27659          - Added support for getting a domain via domain id
27660          - Support for setting and getting domain from System.AppDomain 
27661            (used in cross appdomain channel)
27662          - Added support for get/set for a MonoAppContext on a thread 
27663            (Context class in System.Runtime.Remoting.Contexts),
27664          - Removed hack in Get/SetData and ExecuteAssembly.
27665         
27666         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
27667         the managed world to get control when a proxy is created.
27668
27669         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
27670         
27671 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
27672
27673         * icall.c
27674         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
27675         Populate the codebase field as well.
27676
27677 2003-02-02  Martin Baulig  <martin@ximian.com>
27678
27679         * debug-mono-symfile.c
27680         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
27681         (mono_debug_symfile_add_method): Allow interncalls.
27682
27683 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27684
27685         * icall.c: throw parse exception if strtod fails or the string is empty.
27686
27687 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
27688
27689         * marshal.c: handle object type separately from defined
27690         class types.
27691
27692 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
27693
27694         * marshal.c: handle NATIVE_LPSTR for strings when it's
27695         explicitly specified.
27696
27697 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
27698
27699         * reflection.c, reflection.h, icall.c: setup the reflection
27700         handle cache for ModuleBuilders and AssemblyBuilders.
27701
27702 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
27703
27704         * reflection.c (reflection_methodbuilder_to_mono_method): set
27705         pinvoke flag
27706
27707 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27708
27709         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
27710
27711 2003-01-29  Dick Porter  <dick@ximian.com>
27712
27713         * threads.c: No need for the fake_thread kludge now that Thread
27714         doesn't run a class constructor
27715         
27716 2003-01-29  Dick Porter  <dick@ximian.com>
27717
27718         * threads.c: Use g_direct_hash instead of the rather bogus
27719         g_int_hash
27720
27721 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
27722
27723         * marshal.c (mono_marshal_get_native_wrapper): add check for null
27724         (fix pinvoke12.exe)
27725         (mono_marshal_get_struct_to_ptr): generate valid IL code
27726         (mono_marshal_get_ptr_to_struct): generate valid IL code
27727         (*): correctly set sig->pinvoke, we need to memdup the signature
27728         to do that
27729
27730 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
27731
27732         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
27733         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
27734
27735 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
27736
27737         * profiler.c: provide more callers information.
27738
27739 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
27740
27741         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
27742
27743         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
27744
27745         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
27746
27747 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
27748
27749         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
27750         exception instead of going into an infinite loop on dates which it 
27751         can't yet handle.
27752
27753         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
27754         out-of-range exception if needed.
27755
27756         * class.c (mono_class_setup_vtable): allow a virtual method to provide
27757         an implementation for an interface method and to override an inherited
27758         method at the same time. 
27759         Imagine a scenario when a virtual method is used to override a
27760         virtual abstract method in a parent class, and this same method 
27761         provides an implementation for an method inherited from an interface. 
27762         In this case, the interface resolution code will set im->slot, which 
27763         means that the virtual method override pass will skip this method 
27764         which means a pointer to the abstract method inherited from the parent
27765         will remain in the vtable of this non-abstract class.
27766
27767         * class.c: (mono_class_setup_vtable): continue search for a real 
27768         method if only an abstract method is found.     
27769
27770 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
27771
27772         * reflection.c: add size to encoding for ByValStr and ByValArray
27773         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
27774
27775 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
27776
27777         * class.c (mono_class_setup_vtable): pass the override info as an
27778         argument.
27779
27780         * class.c (mono_class_setup_vtable): set the slot of overriding methods
27781         correctly.
27782         
27783         * reflection.c (ensure_runtime_vtable); add support for method 
27784         overrides.
27785         
27786 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
27787
27788         * reflection.c (resolution_scope_from_image): Hack to work to work with
27789         dynamic assemblies.
27790
27791         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
27792         added a 'force_ref' argument to force this function to allways return 
27793         a TypeRef. This is needed by mono_image_get_memberref_token ().
27794         
27795 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
27796
27797         * reflection.c (mono_image_get_type_info): interfaces really don't have
27798         a parent.
27799
27800         * reflection.c (mono_image_basic_init): fill out missing fields of
27801         image structure.
27802
27803         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
27804         dynamic assemblies. This is required so dynamic assemblies show up in
27805         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
27806         Type::GetType() etc. This is consistent with MS behaviour.
27807
27808         * image.c image.h reflection.c: add newly created classes to the name 
27809         cache so mono_class_get () will find them.      
27810
27811 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
27812
27813         First part of changes to get IKVM.NET running under mono.
27814         
27815         * appdomain.h, appdomain.c: added new function 
27816         mono_domain_try_type_resolve() which will emit TypeResolve events. 
27817         This function will call AppDomain::DoTypeResolve to do the actual work.
27818
27819         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
27820         moved existing code dealing with dynamic tokens to a new function 
27821         called mono_reflection_lookup_dynamic_token (). This function will 
27822         raise TypeResolve events when appropriate. Since reflection.c is not 
27823         part of libmetadata, a new hook function called 
27824         mono_lookup_dynamic_token() is added to class.c which will call this.
27825
27826         * assembly.h assembly.c: make the invoke_load_hook function public,
27827         so it can be called for dynamic assemblies.
27828
27829         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
27830
27831         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
27832         type isn't found.
27833
27834         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
27835         MonoGHashTable, since it contains pointers to objects which the GC 
27836         needs to track.
27837
27838         * assembly.c (search_loaded): remove unused variable.
27839         
27840 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
27841
27842         * object.c: fixed issue exposed by gcc-generated IL programs
27843         that use RVA data for pointers.
27844
27845 2003-01-25  Martin Baulig  <martin@ximian.com>
27846
27847         * threads.c (start_wrapper): Moved the initialization of
27848         `start_func' above the mono_new_thread_init() call to which we
27849         pass it as argument.
27850
27851 2003-01-24  Martin Baulig  <martin@ximian.com>
27852
27853         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
27854         the MonoThread pointer.
27855
27856 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
27857
27858         * icall.c: Rename `PowImpl' to Pow.
27859
27860 2003-01-23  Dick Porter  <dick@ximian.com>
27861
27862         * threads.c (start_wrapper): Create a Thread object if needed, so
27863         the Main() thread can do the class initialisation in a subthread
27864         that has been set up to allow managed code execution.
27865
27866         Pass the thread ID instead of the MonoThread pointer to the thread
27867         start and attach callbacks.  This change is required, because the
27868         jit thread start callback must be called _before_ the Thread
27869         object can be created.
27870         
27871         (mono_thread_init): Removed much object creation code that is no
27872         longer needed.  No managed code is called from here now.
27873
27874         * object.c (mono_runtime_exec_managed_code): Create a subthread
27875         for Main, and call back to the runtime to use it.
27876         Set the exit code when Main exits.
27877
27878         * gc.c: Make sure domain finalisation happens in a subthread.
27879         Re-enable threaded GC, fixing bug 31333 (again).
27880
27881         * environment.c: System.Environment internall calls (so far just
27882         ExitCode is here, the others are still in icall.c)
27883
27884         * appdomain.c (mono_runtime_cleanup): All threads running managed
27885         code should have finished before mono_runtime_cleanup() is
27886         reached, so no need to clean up threads.
27887
27888 2003-01-22  Martin Baulig  <martin@ximian.com>
27889
27890         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
27891         `gpointer func' arguments.      
27892         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
27893         but added `MonoThread *thread' argument.
27894         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
27895
27896         * threads.c (mono_new_thread_init): Added `gpointer func' argument
27897         and pass it to the mono_thread_start_cb callback.
27898         (mono_install_thread_callbacks): New public function to install a
27899         set of callbacks which are set by the debugger.
27900         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
27901
27902 2003-01-22  Martin Baulig  <martin@ximian.com>
27903
27904         * Makefile.am: Install debug-mono-symfile.h.
27905
27906 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
27907
27908         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
27909
27910 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
27911
27912         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
27913         * class.c (mono_ptr_class_get): correctly set access levels of pointers
27914         (mono_array_class_get): correctly set access levels of arrays
27915
27916 2003-01-20      Patrik Torstensson
27917         * image.h (MonoAssemblyName): changed major, minor, build, revision
27918         from signed to unsigned.
27919
27920 2003-01-20  sean kasun <skasun@azstarnet.com>
27921
27922         * reflection.c (load_cattr_value): Now this handles
27923         MONO_TYPE_SZARRAY.  Fixes bug #35629
27924
27925 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
27926
27927         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
27928         integer value
27929
27930 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27931
27932         * decimal.c: fixed bug #26056.
27933
27934 2003-01-17  Martin Baulig  <martin@ximian.com>
27935
27936         * gc.c: Raise an ExecutionEngineException instead of using g_error().
27937
27938 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27939
27940         * exception.[ch]:
27941         (mono_get_exception_type_initialization): new function.
27942
27943         * object.c: throw a TypeInitializationException when an exception is
27944         thrown invoking the class constructor.
27945
27946 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27947
27948         * reflection.c: fixed attribute reading.
27949
27950 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27951
27952         * icall.c:
27953         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
27954         provided, look for the type in the calling assembly and then in
27955         mscorlib; if the assembly name is provided, only try that one.
27956
27957 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
27958
27959         * object.c: register the vtable before there is a chance it's
27960         queried again recursively.
27961
27962 2003-01-13  Duncan Mak  <duncan@ximian.com>
27963
27964         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
27965         gc-internal.h. 
27966         
27967 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
27968
27969         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
27970
27971 2003-01-11  Martin Baulig  <martin@ximian.com>
27972
27973         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
27974         this to 20 for the release.
27975
27976 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
27977
27978         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
27979
27980         * loader.c (mono_method_get_marshal_info): bug fix
27981
27982         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
27983         structures with explicit layout
27984
27985 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
27986
27987         * profiler.c: made the output more readable (and sorted). 
27988         Added caller information for the allocation profiler.
27989
27990 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
27991
27992         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
27993
27994 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27995
27996         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
27997         to get value types.
27998         
27999 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
28000
28001         * object.c, profiler.h, profiler.c, profiler-private.h:
28002         Added object allocation profiler.
28003
28004 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
28005
28006         * reflection.h, reflection.c: handle global methods.
28007         Compress blob entries.
28008
28009 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
28010
28011         * marshal.c: fix compilation.
28012
28013 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
28014
28015         * loader.c (mono_method_get_marshal_info): impl.
28016
28017         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
28018
28019 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28020
28021         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
28022         for reference types.
28023
28024 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
28025
28026         * loader.c: fixed off by one error in loaded parameter names.
28027
28028 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
28029
28030         * marshal.c (mono_marshal_get_icall_wrapper): like
28031         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
28032         instead of a MonoMethod.
28033
28034 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28035
28036         * decimal.c: fixed bug #36537.
28037
28038 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
28039
28040         * marshal.c: throw a missing method exception if a
28041         P/Invoke method is not found.
28042
28043 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
28044
28045         * icall.c: allow a null this for constructors.
28046
28047 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
28048
28049         * icall.c: raise the proper exceptions if the arguments to the
28050         internal Invoke are incorrect.
28051
28052 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
28053
28054         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
28055
28056 2003-01-03  Martin Baulig  <martin@ximian.com>
28057
28058         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
28059
28060 2002-12-31  Martin Baulig  <martin@ximian.com>
28061
28062         * debug-mono-symfile.c: Completely rewrote the type section.
28063         Instead of using individual malloc()ed fields, we use one big
28064         continuous memory area and offsets into this area.
28065         See the comments in the source code for details.
28066
28067 2002-12-30  Martin Baulig  <martin@ximian.com>
28068
28069         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
28070
28071 2002-12-30  Martin Baulig  <martin@ximian.com>
28072
28073         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
28074         line number table in this data blob instead of using an external
28075         pointer.
28076
28077 2002-12-28  Martin Baulig  <martin@ximian.com>
28078
28079         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
28080
28081 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
28082
28083         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
28084         as a boxed return type.
28085
28086 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
28087
28088         * appdomain.c
28089         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
28090         g_build_filename to properly get separators on the filename created.
28091
28092         * object.h: Small change, introduce MonoMarshalByRefObject to
28093         track the layout of that structure in the C# universe as we make
28094         changes there.
28095
28096 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
28097
28098         * object.c: removed assert to allow static fields on interfaces.
28099         * loader.c: a TypeSpec may be used for any type, not just arrays.
28100
28101 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
28102
28103         * class.c, class.h: added mono_class_array_element_size ().
28104         Ignore static methods in interfaces.
28105
28106 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28107
28108         * threads.c: fixed the build under cygwin.
28109
28110 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
28111
28112         * reflection.c: handle nullref constants. Allocate keys for
28113         reflection handles with the GC.
28114
28115 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
28116
28117         * threads.c, threads.h: added mono_thread_get_abort_signal()
28118         to get a suitable signal for thread abort.
28119
28120 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
28121
28122         * metadata.c: fix handling of ExportedType table.
28123
28124 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28125
28126         * icall.c: added WriteWindowsDebugString internal call.
28127
28128 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28129
28130         * reflection.h: added fields to match C# implementation.
28131
28132 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28133
28134         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
28135
28136 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
28137
28138         * gc.h, gc-internal.h: Rename header for GC internal calls to
28139         gc-internal.h from gc.h as to not clash with Boehm GC having its
28140         header installed as <gc.h> in outside include paths.
28141         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
28142         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
28143
28144 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28145
28146         * icall.c: assign minor, build and revision in FillName.
28147
28148 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
28149
28150         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
28151         Added support for running code generated by Reflection.Emit.
28152
28153 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28154
28155         * appdomain.c: check for NULL argument in LoadFrom.
28156
28157 2002-12-10  Dick Porter  <dick@ximian.com>
28158
28159         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
28160
28161 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28162
28163         * appdomain.c: fix buglet when building exe file name.  Handle full
28164         assembly name (needed after latest changes to AssemblyName).
28165         * image.c:
28166         (mono_image_close): free some hashtables.
28167
28168 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
28169
28170         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
28171         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
28172         on some systems (redhat 7.3) 
28173
28174 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
28175
28176         * threads.c: delete the critical section of a sync block,
28177         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
28178
28179 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
28180
28181         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
28182
28183 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28184
28185         * appdomain.[ch]: handle the assembly preload event to try loading the
28186         assemblies using the paths we have in the current domain.
28187
28188         * assembly.[ch]: created an assembly preload hook that is called to try
28189         loading the assembly by other means that the ones provided here.
28190
28191         * domain.c: initialize the domain search path.
28192
28193         From now on, assemblies (TODO: except corlib and System) are loaded
28194         according to these rules when using mono_assembly_load ():
28195
28196                 1. It tries to load the assembly from the ApplicationBase
28197                 of the current domain appending .dll and .exe (TODO: have to
28198                 try loading from name/name.dll and name/name.exe).
28199
28200                 2. It tries the search path specified in PrivateBinPath for the
28201                 current domain (if any).
28202
28203                 3. Previous behavior.
28204
28205 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
28206
28207         * icall.c: implemented GetInterfaceMap() related icall.
28208         * domain.c, loader.h: load MethodInfo in mono_defaults.
28209
28210 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
28211
28212         * gc.c: disable the finalizer thread for now, untill all the issues
28213         with it are resolved.
28214
28215 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
28216
28217         * string-icalls.c: handle embedded nulls in string ctor when the
28218         length is specified.
28219
28220 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
28221
28222         * class.c: look for explicit interface implementation in parent
28223         classes, too.
28224
28225 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
28226
28227         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
28228
28229 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
28230
28231         * gc.c: protect handles with a critical section.
28232
28233 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28234
28235         * icall.c:
28236         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
28237         parameters. If no assembly specified, try getting the type from all
28238         the assemblies in the current domain, else, load the assembly and get
28239         the type from it.
28240
28241 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28242
28243         * marshal.c: applied patch from Aleksey Demakov that fixes
28244         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
28245
28246 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28247
28248         * icall.c: fixed get_location.
28249
28250 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
28251
28252         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
28253         declarations to make it work with older gcc. 
28254
28255         * loader.c (mono_get_method): set signature->pinvoke for native calls
28256
28257 2002-11-20  Dick Porter  <dick@ximian.com>
28258
28259         * threads.c (mono_thread_init): Set the main thread's handle
28260
28261 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
28262
28263         * gc.c: allow compilation without GC support. Changed to match the
28264         mono coding style.
28265
28266 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
28267
28268         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
28269
28270 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
28271
28272         * reflection.c: set a public key token on the core assemblies.
28273
28274 2002-11-18  Dick Porter  <dick@ximian.com>
28275
28276         * threads.c: Split out some thread initialisation so that other
28277         files can set the start callback function.
28278
28279         * gc.c: Run finalisers in a separate thread, to avoid stack
28280         overflow.  Fixes bug 31333.
28281
28282         * appdomain.c: Set up GC finalisation thread.
28283
28284         * reflection.c: 
28285         * object.c: 
28286         * domain.c: Use gc.h macros for GC_malloc
28287         
28288 2002-11-15  Dick Porter  <dick@ximian.com>
28289
28290         * threadpool.c: 
28291         * threads.c:
28292         * appdomain.c: Removed mono_runtime_init_with_attach(),
28293         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
28294         merging the extra parameter with the existing function.  Removed
28295         unneeded code in mono_thread_attach().
28296
28297 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
28298
28299         * image.c (mono_image_loaded_by_guid): a method to get loaded
28300         images by guid. 
28301         (load_metadata_ptrs): we store the guid as string.
28302
28303 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
28304
28305         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
28306
28307         * metadata.c (mono_guid_to_string): imported method form Zoltan
28308         Varga (slightly modified)
28309
28310         * assembly.c (mono_assembly_open): load precompiled code
28311
28312         * loader.h (MonoMethod): we store the method token for use in the
28313         aot compiler. 
28314
28315 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28316
28317         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
28318         the hook function called when an assembly is loaded.
28319         
28320         * domain.c: Modified file.
28321         (mono_domain_assembly_load): removed hash table insertion of assemblies.
28322
28323         Fixes bug #33196.
28324
28325 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
28326
28327         * reflection.c: Map PEFileKind to the value expected by the WinNT
28328         image loader. 
28329
28330 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28331
28332         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
28333         Read until the buffer is filled completely.
28334
28335 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28336
28337         * icall.c: implemented MonoType.InternalGetEvent ().
28338
28339 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28340
28341         * appdomain.c: implemented InitAppDomainSetup. Delayed
28342         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
28343         the entry_assembly.
28344
28345         * assembly.c: base_dir is now an absolute path ending with
28346         G_DIR_SEPARATOR.
28347
28348         * icall.c: modified get_location according to the above changes.
28349
28350         * object.c: init AppDomain.SetupInformation for the default domain after
28351         we have the entry assembly.
28352
28353         * domain.c: when unloading a domain, setup = NULL.
28354
28355 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
28356
28357         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
28358
28359 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
28360
28361         * object.h, object.c: introduced mono_object_get_virtual_method ()
28362         to lookup the method invoked on an object when a callvirt is done on
28363         a method.
28364         * icall.c: make MethodInfo::Invoke() always do a virtual call.
28365
28366 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28367
28368         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
28369         current domain when loaded an assembly and failed to load it.
28370
28371         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
28372
28373 2002-10-31  Dick Porter  <dick@ximian.com>
28374
28375         * icall.c: 
28376         * file-io.h: 
28377         * file-io.c: Return the error status in a parameter, as the
28378         GetLastError() value has long since been blown away if we try and
28379         look it up in a subsequent internal call invocation.  Delete the
28380         GetLastError() internal call, because it's useless.
28381
28382 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
28383
28384         * class.[ch]: added cast_class to fix bug 29517
28385
28386 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
28387
28388         * marshal.c: create valid IL code in the filter clause:
28389         the new JIT is less forgiving:-)
28390
28391 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28392
28393         * icall.c: removed get_property internal call.
28394
28395 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
28396
28397         * appdomain.h domain.c: Added an ID to appdomains.
28398         
28399         * threads.c threads.h icall.c: Implement icall
28400         Thread:GetDomainID(), and remove unused icall 
28401         CurrentThreadDomain_internal.
28402
28403 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28404
28405         * icall.c: Don't recurse through the base types in GetConstructor.
28406         Fixes bug #32063. 
28407
28408 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
28409
28410         * mempool.h, mempool.c: added mono_mempool_empty() and
28411         mono_mempool_stats().
28412
28413 2002-10-23  Dick Porter  <dick@ximian.com>
28414
28415         * file-io.c: 
28416         * file-io.h: 
28417         * icall.c: Added MonoIO.GetFileType internal call
28418
28419 2002-10-17  Dick Porter  <dick@ximian.com>
28420
28421         * appdomain.c (mono_runtime_cleanup): Don't signal the async
28422         delegate semaphore before waiting for all threads to finish,
28423         because new threads can also call async delegates.  Fixes bug
28424         32004.
28425
28426         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
28427         of 3 seconds, in case another async job is queued.  (This part is
28428         needed because the bug fix reintroduced the 3s exit lag.)  This
28429         makes the mono_runtime_shutdown flag superfluous.
28430
28431 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
28432
28433         * reflection.c: include ehader size in method section headers.
28434         Really check for suplicated modules entries.
28435
28436 2002-10-17  Martin Baulig  <martin@gnome.org>
28437
28438         * debug-mono-symfile.c: Added back support for locals.
28439
28440 2002-10-14  Martin Baulig  <martin@gnome.org>
28441
28442         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
28443         MONO_TYPE_VOID.
28444
28445 2002-10-14  Martin Baulig  <martin@gnome.org>
28446
28447         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
28448         mono_class_get() instead of looking in the class cache. 
28449
28450 2002-10-13  Martin Baulig  <martin@gnome.org>
28451
28452         * debug-mono-symfile.c: Set version number to 28, include the
28453         signature in method names.
28454
28455 2002-10-13  Martin Baulig  <martin@gnome.org>
28456
28457         * debug-mono-symfile.h: Set version number to 27.
28458
28459 2002-10-11  Martin Baulig  <martin@gnome.org>
28460
28461         * gc.c: Don't register/unregister NULL pointers as disappearing links.
28462
28463 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
28464
28465         * metadata.c, metadata.h: added helper function to allocate signatures.
28466
28467 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28468
28469         * icall.c: added internal call to get the location of machine.config.
28470
28471 2002-10-08  Martin Baulig  <martin@gnome.org>
28472
28473         * debug-mono-symfile.c: Ignore classes with a pending init for the
28474         moment.
28475
28476 2002-10-03  Dick Porter  <dick@ximian.com>
28477
28478         * threads.c: Freebsd pthread_t is a pointer
28479
28480 2002-10-03  Dick Porter  <dick@ximian.com>
28481
28482         * socket-io.c: Implemented GetHostName_internal
28483
28484 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28485
28486         * mono-config.c:
28487         (mono_config_parse_file): don't leak the text.
28488
28489 2002-10-02  Martin Baulig  <martin@gnome.org>
28490
28491         * debug-mono-symfile.c: Added support for methods.
28492
28493 2002-10-01  Martin Baulig  <martin@gnome.org>
28494
28495         * debug-mono-symfile.c: Don't emit methods and line numbers for
28496         the dynamic symbol file, just write the type table.  We can easily
28497         have an external helper program which creates a symbol file for an
28498         IL file.        
28499
28500 2002-10-01  Dick Porter  <dick@ximian.com>
28501
28502         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
28503         Only add the handle to the cleanup array when we're about to
28504         launch the thread.  Bug 31425 deadlocked when the test was run on
28505         mono under w32.
28506
28507 2002-10-01  Martin Baulig  <martin@gnome.org>
28508
28509         * debug-mono-symfile.c: Added support for properties.
28510
28511 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
28512
28513         * reflection.c: unaligned store fix from Mark Crichton
28514         <crichton@gimp.org>.
28515
28516 2002-09-27  Martin Baulig  <martin@gnome.org>
28517
28518         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
28519         New interncall.
28520
28521 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
28522
28523         * assembly.h, assembly.c: use a sane API to hook into the assembly
28524         loading process instead of a useless special-purpouse hack
28525         (ngen needs a hook, too, for example).
28526
28527 2002-09-27  Dick Porter  <dick@ximian.com>
28528
28529         * threads.c (mono_thread_init): Call GetCurrentProcess() so
28530         io-layer can set up some process handle info.  Not needed on w32,
28531         but doesn't hurt either.
28532
28533         * process.c: Pass the program name in the second parameter to
28534         CreateProcess, so the path is searched.  Include the working
28535         directory. Implemented process name, process enumeration, and some
28536         process detail internal calls.
28537         
28538         * icall.c: Added internal calls for process lookup, and some
28539         process details
28540
28541 2002-09-26  Martin Baulig  <martin@gnome.org>
28542
28543         * assembly.c (mono_install_open_assembly_hook): New global
28544         function to install a function to be invoked each time a new
28545         assembly is loaded.
28546         (mono_assembly_open): Run this callback function if set.
28547
28548         * debug-mono-symfile.c: Put back line numbers for the dynamic
28549         symbol file and also record the .il file as source file.  This
28550         allows us to install the temporary symbol file as `file.dbg' just
28551         like a compiler-generated one.
28552
28553 2002-09-26  Nick Zigarovich <nick@chemlab.org>
28554
28555         * Corrected typo in gc.c (BOHEM vs BOEHM).
28556
28557 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28558
28559         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
28560         GetProperties. Also avoid calling g_slist_length in GetProperties and
28561         GetMethods.
28562
28563 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
28564
28565         * reflection.c: avoid unaligned stores (bug spotted by
28566         Mark Crichton  <crichton@gimp.org>).
28567
28568 2002-09-25  Martin Baulig  <martin@gnome.org>
28569
28570         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
28571         instead of guint64 for addresses and added prologue/epilogue info.
28572
28573 2002-09-25  Martin Baulig  <martin@gnome.org>
28574
28575         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
28576         store line number info.  For the dynamic symbol file, we only need
28577         to provide the JIT generated dynamic line number info for the dynamic
28578         symbol file.
28579
28580 2002-09-25  Martin Baulig  <martin@gnome.org>
28581
28582         * debug-mono-symfile.h: Incremented version number.
28583
28584 2002-09-24  Martin Baulig  <martin@gnome.org>
28585
28586         * class.c (mono_debugger_class_init_func): New global function
28587         pointer variable.
28588         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
28589         call it.
28590
28591         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
28592         function.  This is called via the mono_debugger_class_init_func
28593         hook to add all types to the dynamic type table.
28594         (ves_icall_MonoDebugger_GetType): New interncall to get a class
28595         from its metadata token.
28596
28597         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
28598         New interncall for the debugger.
28599
28600 2002-09-24  Nick Drochak <ndrochak@gol.com>
28601
28602         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
28603         before using it in case it is null.
28604         
28605 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
28606
28607         * metadata.c: allow custom modifiers in local var signatures
28608         (bug spotted by Zoltan Varga).
28609
28610 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
28611
28612         * class.c: deal with the <Module> class that may have a NULL vtable.
28613         Eliminate warnings.
28614
28615 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
28616
28617         * image.c, image.h: more strong name helpers.
28618         * monosn.c: more work: convert pem keys to cryptoapi format.
28619
28620 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
28621
28622         * string-icalls.c: speedup IndexOf.
28623
28624 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
28625
28626         * icall.c: updates from Zoltan.2.Varga@nokia.com.
28627
28628 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
28629
28630         * icall.c: cleanup: use mono_object_domain ().
28631
28632 2002-09-23  Martin Baulig  <martin@gnome.org>
28633
28634         * debug-mono-symfile.c: Improved type support.
28635
28636 2002-09-22  Martin Baulig  <martin@gnome.org>
28637
28638         * debug-mono-symfile.c: Added support for reference types and strings.
28639
28640 2002-09-22  Martin Baulig  <martin@gnome.org>
28641
28642         * debug-mono-symfile.c: Started to work on the type table.
28643
28644 2002-09-21  Martin Baulig  <martin@gnome.org>
28645
28646         * debug-mono-symfile.c: Largely reworked the symbol table format.
28647         The symbol table is now incrementally updated each time a new
28648         method is added.  We're now also using our own magic and version
28649         so that you don't need to recompile all your classes if the
28650         dynamic table changes.
28651         (mono_debug_update_mono_symbol_file): Removed.
28652         (mono_debug_symfile_add_method): New function to add a method.
28653
28654 2002-09-21  Martin Baulig  <martin@gnome.org>
28655
28656         * icall.c
28657         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
28658         New interncall.
28659
28660         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
28661         New interncall to get a method from its metadata token.
28662
28663 2002-09-21  Martin Baulig  <martin@gnome.org>
28664
28665         * debug-mono-symfile.c: Create type table.
28666
28667 2002-09-20  Martin Baulig  <martin@gnome.org>
28668
28669         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
28670
28671 2002-09-20  Martin Baulig  <martin@gnome.org>
28672
28673         * debug-mono-symfile.c: Provide information about params and locals.
28674
28675 2002-09-20  Martin Baulig  <martin@gnome.org>
28676
28677         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
28678         New interncall.
28679
28680         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
28681         interncall to get a method from its metadata token.
28682
28683 2002-09-20  Martin Baulig  <martin@gnome.org>
28684
28685         * debug-mono-symfile.c: Added a few checks for method->header
28686         being non-NULL.  This should never happen, but for the moment
28687         let's use a g_warning() rather than a g_assert().
28688
28689 2002-09-19  Mark Crichton  <crichton@gimp.org>
28690
28691         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
28692         even if support for it isn't present.  Added an #ifdef to fix this.
28693
28694         * socket-io.c: Added checks back for Solaris support.
28695
28696 2002-09-19  Martin Baulig  <martin@gnome.org>
28697
28698         * debug-mono-symfile.c (read_string, write_string): Reflect latest
28699         changes in the symbol file format.
28700
28701 2002-09-18  Martin Baulig  <martin@gnome.org>
28702
28703         * debug-mono-symfile.c: Set version number to 21.
28704
28705 2002-09-18  Dick Porter  <dick@ximian.com>
28706
28707         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
28708         on netbsd.  Fixes bug 30051.
28709
28710 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28711
28712         * reflection.c:
28713         (set_version_from_string): little fix.
28714
28715 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
28716
28717         * monosn.c, Makefile.am: added strong name utility.
28718         * reflection.h, reflection.c: implemented delayed signing,
28719         locale, version and hash id assembly attributes.
28720
28721 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
28722
28723         * loader.c, metadata.c: load param attributes in signatures.
28724
28725 2002-09-16  Martin Baulig  <martin@gnome.org>
28726
28727         * debug-mono-symfile.c: Added string table with all method names.
28728
28729 2002-09-14  Martin Baulig  <martin@gnome.org>
28730
28731         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
28732         fast method lookup.
28733
28734 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
28735
28736         * reflection.c: record the public key token of referenced assemblies.
28737
28738 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
28739
28740         * image.c, image.h: added functions to get the strong name and the
28741         public key of an assembly.
28742         * pedump.c: use them.
28743
28744 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
28745
28746         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
28747
28748 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
28749
28750         * marshal.c (mono_marshal_get_managed_wrapper): Added
28751         MONO_TYPE_BOOLEAN 
28752
28753 2002-09-11  Martin Baulig  <martin@gnome.org>
28754
28755         * gc.c: Call GC_unregister_disappearing_link() on all links when
28756         finalizing them, this is necessary to aviod a crash in boehm's
28757         finalize handler.
28758
28759 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
28760
28761         * gc.c: handle GetTarget for finalized objects spotted and fixed by
28762         nick@chemlab.org.
28763
28764 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
28765
28766         * icall.c: implemented MonoType::Module.
28767         * reflection.c, reflection.h: mono_module_get_object () from
28768         Tomi Pakarinen <tomi.pakarinen@welho.com>.
28769
28770 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
28771
28772         * icall.c: ignore overridden methods in GetMethods ().
28773         Fix for FieldInfo::SetValue().
28774         * object.c: handle float/double in runtime invoke.
28775
28776 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
28777
28778         * object.c: allow a constructor to be called again on an object.
28779
28780 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
28781
28782         * class.h, class.c: move field layout code to it's own function and
28783         export it. Get an interface id earlier. Move fields in MonoClass
28784         so they are more cache friendly and align the bitfields.
28785         * loader.c: temporary handle get_param_names() for a runtime method.
28786         * reflection.c, reflection.h: more code to handle runtime creation of
28787         types.
28788
28789 2002-09-09  Martin Baulig  <martin@gnome.org>
28790
28791         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
28792         signature with the pinvoke field being set for the actual call.
28793
28794 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
28795
28796         * icall.c: removed some unused icalls. Start of map of glib charsets
28797         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
28798
28799 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
28800
28801         * debug-helpers.c: break infinite loop (found and fixed by
28802         Holger Arnold <harnold@gmx.de>).
28803
28804 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
28805
28806         * icall.c: target may be null in create_delegate.
28807
28808 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
28809
28810         * marshal.c: handle a boolean return type.
28811
28812 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
28813
28814         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
28815
28816 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
28817
28818         * gc.c: fix weakreferences.
28819
28820 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
28821
28822         * icall.c: added icall to get default codepage.
28823
28824 2002-09-03  Dick Porter  <dick@ximian.com>
28825
28826         * threads.h: 
28827         * threads.c: Use MonoThread instead of MonoObject where
28828         apropriate.
28829
28830         Store running thread objects in a hash table, so that we have all
28831         the info to hand when waiting for them to finish
28832         (means we don't need OpenThread() any more, so mingw builds should
28833         be fully functional again.)
28834
28835         * verify.c:
28836         * object.h: Added thread ID to MonoThread
28837
28838 2002-09-03  Martin Baulig  <martin@gnome.org>
28839
28840         * icall.c (System.Reflection.Assembly::get_location): New interncall.
28841
28842 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28843
28844         * icall.c: fixed leak in get_temp_path. Thanks lupus.
28845
28846 2002-09-03  Martin Baulig  <martin@gnome.org>
28847
28848         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
28849         argument to store the end address of the disassembled instruction.
28850
28851         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
28852         here from debug-symfile.h.
28853         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
28854         JIT into this struct.
28855         (MonoSymbolFile): Added `char *image_file' field.
28856         (MonoDebugGetMethodFunc): Removed.
28857         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
28858         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
28859         (mono_debug_find_method): New method.
28860
28861         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
28862         create a full symbol file.
28863         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
28864         and static symbol files.
28865         (mono_debug_find_method): The symbol file keeps an internal method hash,
28866         call this to get a MonoDebugMethodInfo from a MonoMethod.
28867
28868         * debug-symfile.[ch]: Removed.
28869
28870 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
28871
28872         * image.c (do_mono_image_open): Remove linker version check.
28873
28874 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
28875
28876         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
28877         wrappers for instance methods.
28878         
28879 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28880
28881         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
28882
28883 2002-08-28  Dick Porter  <dick@ximian.com>
28884
28885         * Makefile.am: Export HOST_CC for w32 builds
28886
28887 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
28888
28889         * file-io.c process.c: MonoString are null terminated, no
28890         need for mono_string_to_utf16() anymore.
28891
28892 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
28893
28894         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
28895
28896 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
28897
28898         * icall.c, reflection.h: speedup System.MonoType.
28899
28900 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
28901
28902         * reflection.c: allow null as the value of a string argument in
28903         custom attributes constructors.
28904
28905 2002-08-27  Martin Baulig  <martin@gnome.org>
28906
28907         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
28908         `trampoline_address' field.
28909
28910 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
28911
28912         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
28913         check (fixes bug #29486) 
28914
28915 2002-08-27  Martin Baulig  <martin@gnome.org>
28916
28917         * debug-mono-symfile.c: Changed the file format in a way that allows us
28918         open it read-only and to use a specially malloced area for all the
28919         dynamic data.  We can now also generate a symbol file on-the-fly if we're
28920         debugging IL code and there is no MCS generated symbol file for it.
28921
28922 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
28923
28924         * object.c: added a define for a good string and array
28925         creation speedup (not enabled by default because we need to deal with
28926         the synch stuff).
28927
28928 2002-08-26  Martin Baulig  <martin@gnome.org>
28929
28930         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
28931         function to create a dynamic symbol file.  This is used by the
28932         debugger to create a symbol file for IL code on-the-fly.
28933
28934 2002-08-26  Martin Baulig  <martin@gnome.org>
28935
28936         * loader.c (mono_lookup_pinvoke_call): Include the error message
28937         from g_module_error() in the error message.
28938
28939 2002-08-24  Martin Baulig  <martin@gnome.org>
28940
28941         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
28942         function to update the symbol file.  The symbol file is mmap()ed
28943         writable, but private.  This allows us to install the symbol file
28944         together with the assembly.
28945
28946 2002-08-24  Martin Baulig  <martin@gnome.org>
28947
28948         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
28949         but they can read the new symbol file format which mcs is now creating.
28950
28951         * debug-symfile.c (mono_debug_find_source_location): Moved to
28952         debug-mono-symfile.c; this is now operating on the new symbol file.
28953
28954 2002-08-23  Martin Baulig  <martin@gnome.org>
28955
28956         * debug-helpers.c (mono_method_desc_from_method): New function to get
28957         a MonoMethodDesc from a MonoMethod.
28958
28959 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
28960
28961         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
28962         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
28963
28964 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
28965
28966         * string-icalls.[ch]: make helper methods static.
28967
28968 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28969
28970         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
28971         types to it and to SetValueInternal.
28972
28973         * object.c: Moved handle_enum label to its proper place. This was the
28974         f... bug! ;-)
28975
28976         This time i compiled mcs and gtk-sharp and they both work.
28977
28978 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28979
28980         * icall.c: reverted partially my previous patch until 
28981         object.c:set_value handles enums correcly.
28982
28983 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28984
28985         * icall.c:
28986         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
28987         (ves_icall_System_Environment_get_MachineName): removed warning when
28988         compiling under cygwin.
28989
28990 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
28991
28992         * object.c: fixed field_get_value() for reference types.
28993
28994 2002-08-22  Dick Porter  <dick@ximian.com>
28995
28996         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
28997         Don't free a buffer while it's still needed.  Patch from Jonathan
28998         Liger <Jonathan.liger@wanadoo.fr>
28999
29000 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
29001
29002         * icall.c (ves_icall_System_Environment_get_Platform): Add new
29003         internal call.
29004
29005 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
29006
29007         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
29008         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
29009
29010         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
29011         we call unmanaged code which throws exceptions.
29012
29013 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
29014
29015         * appdomain.h: added per-domain entry_assembly.
29016         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
29017         arguments.
29018         * icall.c: Assembly::GetEntryAssembly icall.
29019         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
29020         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
29021
29022 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
29023
29024         * appdomain.h, gc.c: added mono_domain_finalize ().
29025
29026 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29027
29028         * object.c:
29029         (mono_print_unhandled_exception): changed g_warning by g_printerr
29030         because g_log has a 1024 characters limit (yeah, i got a big stack
29031         trace). Don't print exception name, that should be in ToString 
29032         returned string.
29033
29034 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29035
29036         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
29037         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
29038
29039 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29040
29041         * object.c:
29042         (mono_print_unhandled_exception): after previous commit, i realized
29043         that MS calls ToString on the exception. I changed this function to
29044         do that. This way we get stack_trace for free.
29045
29046 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29047
29048         * object.c:
29049         (mono_print_unhandled_exception): invoke Message property instead of
29050         getting 'message' field from Exception. Don't allocate memory for
29051         'trace' and 'message' if not needed.
29052
29053 2002-08-18  Dick Porter  <dick@ximian.com>
29054
29055         * unicode.c: Fix asserts to match Encoder.cs checks
29056
29057 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
29058
29059         * marshal.c: fix unaligned store issue and a few wrong
29060         opcode argument types.
29061
29062 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29063
29064         * icall.c: added GetUninitializedObjectInternal internal call.
29065
29066 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
29067
29068         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
29069         to the right domain.
29070
29071 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
29072
29073         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
29074
29075         * class.c (class_compute_field_layout): set blittable to false for Strings
29076
29077         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
29078
29079 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
29080
29081         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
29082         first chunk of code to create types at runtime. Code to
29083         handle ReflectedType/DeclaringType. Make reflection handles
29084         domain specific.
29085
29086 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
29087
29088         * class.c: set correct name in arrays.
29089
29090 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
29091
29092         * appdomain.c (mono_domain_transfer_object): make it work with
29093         valuetypes. bug fixes.
29094
29095 2002-08-12  Dick Porter  <dick@ximian.com>
29096
29097         * object.h: Rename some parameters to avoid c++ keywords (Patch
29098         from Joseph Wenninger <kde@jowenn.at>)
29099
29100 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
29101
29102         * icall.c: added icall to implement Assembly.GetFile*.
29103
29104 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
29105
29106         * reflection.h, reflection.c: code to embed managed resources.
29107
29108 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
29109
29110         * class.c: move all the type size stuff into
29111         class_compute_field_layout().
29112
29113 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
29114
29115         * class.c: ensure enums have always the correct instance size.
29116         * unicode.c: remove wrong assert.
29117
29118 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
29119
29120         * assembly.c: fix mem corruption issue.
29121         * image.h, image.c: added mono_image_get_resource () to access
29122         managed resources.
29123         * icall.c: implemented Assembly.EntryPoint property and some
29124         Managed Resources related internalcalls.
29125
29126
29127 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
29128
29129         * image.c, image.h: impemented mono_image_get_entry_point ().
29130         * appdomain.c: use mono_image_get_entry_point.
29131
29132 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
29133
29134         * reflection.c: support the object type argument when loading
29135         custom attributes.
29136
29137 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
29138
29139         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
29140         String as return type.
29141
29142 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
29143
29144         * reflection.c: fix encoding of named args for custom attrs to match
29145         the ms implementation. Read them back when instantiating custom
29146         attributes.
29147
29148 2002-08-02  Radek Doulik  <rodo@ximian.com>
29149
29150         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
29151         by Dietmar as quick fix
29152         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
29153         16 as stack size, used on more places as quick fix before Dietmar
29154         will fix it properly
29155
29156 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
29157
29158         * object.h, object.c: added accessors for fields and properties.
29159
29160 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
29161
29162         * class.c, class.h: made mono_class_get_field_from_name ()
29163         loop on parent types.
29164         Added mono_class_get_property_from_name ().
29165
29166 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
29167
29168         * class.c, class.h: move the code to setup the type vtable in its own
29169         function so that it can be reused also for types created at runtime.
29170         Eliminate the "class" identifier from the header file.
29171         * reflection.c: setup the vtable for enums so that we can create
29172         objects for use in SetConstant ().
29173
29174 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
29175
29176         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
29177         instead of the delegate itself as this pointer (bug #28383)
29178
29179 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
29180
29181         * marshal.c (mono_marshal_get_managed_wrapper): added return type
29182         conversions.
29183
29184 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
29185
29186         * loader.c: don't set the pinvoke bit on icalls.
29187
29188 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
29189
29190         * debug-helpers.c (mono_method_full_name): only print a number to
29191         indicate wrapper type (so that the output is more readable in traces).
29192
29193 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
29194
29195         * class.c (mono_class_init): include method override patch from Paolo
29196
29197 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
29198
29199         * icall.c: fixed GetTypeCode().
29200
29201 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
29202
29203         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
29204         use real delegate invoke function to make it work with multicast
29205         delegates (fix bug# 28291).
29206
29207 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
29208
29209         * object.c: load constant strings.
29210
29211 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
29212
29213         * reflection.c: no magic numbers.
29214         * tabledefs.h: security action enum.
29215
29216 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
29217
29218         * assembly.c: fix possible memory corruption.
29219
29220 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
29221
29222         * reflection.h, reflection.c: added support for linking resources.
29223         * verify.c: check we have an updated corlib.
29224
29225 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
29226
29227         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
29228         string arrays.
29229         (mono_marshal_string_array): null terminate unmanaged string arrays.
29230         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
29231
29232 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
29233
29234         * icall.c: Type.GetType () can now return also types from the
29235         calling assembly.
29236
29237 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
29238
29239         * loader.h, loader.c: stack walking support.
29240         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
29241         GetCallingAssembly.
29242
29243 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
29244
29245         * marshal.c: added optimisations for blittable types 
29246
29247         * class.c (mono_array_class_get): do not set blittable attribute on arrays
29248         (mono_class_setup_mono_type): set blittable attribute for single
29249         and double.
29250
29251         * marshal.c (mono_string_utf8_to_builder): impl.
29252         (mono_string_builder_to_utf8): impl.
29253         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
29254
29255 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
29256
29257         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
29258         (mono_marshal_get_managed_wrapper): impl. byref types
29259
29260 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29261
29262         * icall.c:
29263         (search_method): don't display debug message. 
29264
29265 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
29266
29267         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
29268
29269 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
29270
29271         * appdomain.c: set the missing filename when throwing exception.
29272
29273 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
29274
29275         * metadata.c (mono_type_size): code cleanup
29276         (mono_type_stack_size): removed some test code
29277
29278 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
29279
29280         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
29281         mono_get_exception_file_not_found now.
29282
29283         * exception.c (mono_exception_from_name_two_strings): New version
29284         that will call a constructor with two string arguments. 
29285         (mono_get_exception_file_not_found): New helper routine, used to
29286         report file-not-found errors.
29287
29288 2002-07-20  Dick Porter  <dick@ximian.com>
29289
29290         * process.h:
29291         * process.c: Pass file handles to CreateProcess
29292         
29293         * icall.c:
29294         * file-io.h:
29295         * file-io.c: Implemented CreatePipe
29296
29297 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
29298
29299         * metadata.c (mono_get_param_info): set alignment for value types
29300
29301 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
29302
29303         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
29304         Constify mono_domain_assembly_open().
29305         * loader.c: handle null namespace in icalls.
29306
29307 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
29308
29309         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
29310         (emit_str_to_ptr_conv): marshal object as structs
29311
29312         * metadata.c (mono_type_to_unmanaged): marshal object as structs
29313
29314         * marshal.c (mono_marshal_get_runtime_invoke): support value types
29315
29316 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
29317
29318         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
29319         (mono_marshal_get_native_wrapper): we an now return value types
29320
29321 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
29322
29323         * verify.c: more checks implemented.
29324
29325 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
29326
29327         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
29328         (fix bug #27695)
29329         (mono_marshal_get_native_wrapper): allow byref arguments
29330         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
29331         impl. PtrToStringXXX methods
29332         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
29333         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
29334         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
29335         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
29336         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
29337
29338 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
29339
29340         * reflection.c: fix buglet in parsing an assembly name.
29341
29342 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
29343
29344         * marshal.c (emit_ptr_to_str_conv): first impl.
29345
29346 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
29347
29348         * object.c, class.h: cache the vtable in the class as suggested by
29349         vargaz@freemail.hu (Zoltan Varga).
29350
29351 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
29352
29353         * class.h, loader.c: added mono_field_from_token().
29354         * verify.c: first cut of type checking code.
29355
29356 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
29357
29358         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
29359
29360 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
29361
29362         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
29363         (fix bug #27782)
29364         (mono_marshal_get_remoting_invoke): impl.
29365         (mono_delegate_begin_invoke): impl.
29366         (mono_mb_emit_save_args): impl.
29367         (mono_delegate_end_invoke): impl.
29368         (mono_marshal_get_delegate_begin_invoke):
29369         (mono_marshal_get_delegate_end_invoke):
29370         (mono_marshal_get_delegate_invoke): generate a special name for
29371         those methods (including the signature) and associate them whith
29372         the delegate class. 
29373
29374 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
29375
29376         * reflection.[ch]: 
29377         (mono_reflection_type_from_name): now it has a MonoImage parameter
29378         which is used as the default image to search the type in. If the image
29379         is NULL or getting the type from it fails, it defaults to corlib.
29380
29381         * icall.c: changed 1 call to mono_reflection_type_from_name to match
29382         new parameter.
29383
29384 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
29385
29386         * reflection.c: update the parameter table index.
29387
29388 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
29389
29390         * domain.c: don't include the mark byte in the string hash.
29391
29392 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
29393
29394         * icall.cs: icall for Type.GetTypeCode ().
29395         * verify: a couple of fixes and disabled local initialization checks.
29396
29397 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
29398
29399         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
29400
29401         * debug-helpers.c (mono_method_full_name): print the type of the
29402         runtime wrapper
29403
29404         * metadata.c (mono_signature_hash): a hash function for signatures
29405         (mono_signature_hash): better hash algorithm
29406
29407         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
29408
29409         * debug-helpers.c (mono_method_full_name): this can now generate
29410         method names with signatures
29411
29412         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
29413         method dont have this pointers.
29414
29415 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
29416
29417         * reflection.c: fixup typebuilder tokens.
29418         * image.c: fix buglet.
29419         * marshal.h: remove whitespace.
29420         * metadata.h, metadata.c: reinstate code that was removed.
29421         * verify.c: handle catch directives and fix another couple of bugs.
29422
29423 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
29424
29425         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
29426         (mono_marshal_get_native_wrapper): make it comp. with the old code
29427         (mono_marshal_get_native_wrapper): support boolean
29428         (mono_marshal_get_managed_wrapper): support more types
29429
29430 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
29431
29432         * class.c (class_compute_field_layout): compute class->blittable attribute.
29433
29434 2002-07-09  Dick Porter  <dick@ximian.com>
29435
29436         * threads.c: Make the thread cleaning up cope with threads that
29437         call ExitThread()
29438
29439 2002-07-08  Radek Doulik  <rodo@ximian.com>
29440
29441         * reflection.c (method_encode_code): use non-translated values to
29442         compute finally_start, this fixes exception handling on ppc, yay!
29443
29444         * decimal.h (struct signscale): fix endianess
29445
29446 2002-07-07  Radek Doulik  <rodo@ximian.com>
29447
29448         * reflection.c: swap box_val and not val
29449
29450 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
29451
29452         * reflection.c, reflection.h: handle full assembly info in type name.
29453         Handle Type arguments when loading custom attributes.
29454         * icall.c: updated to use new mono_reflection_type_from_name () method.
29455
29456 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29457
29458         * loader.c:
29459         (method_from_memberref): also print assembly name when method not found.
29460
29461 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29462
29463         * icall.c:
29464         (ves_icall_TypeGetProperties): fixed bug #27473. 
29465
29466 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29467
29468         * reflection.c: display image name and token when cannot find the
29469         .ctor for an attribute.
29470
29471 2002-07-05  Martin Baulig  <martin@gnome.org>
29472
29473         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
29474
29475 2002-07-04  Dick Porter  <dick@ximian.com>
29476
29477         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
29478         compile on mingw.  This will cause mingw builds to not wait for
29479         subthreads to terminate after the main thread does.  I've lodged a
29480         bug with the mingw developers for them to wrap OpenThread().
29481
29482 2002-07-03  Dick Porter  <dick@ximian.com>
29483
29484         * threads.c: Store thread IDs instead of handles, because
29485         GetCurrentThread() returns a pseudohandle and therefore stores
29486         useless values.  mono_thread_cleanup() continues checking the
29487         array of threads until it is empty, to cope with subthreads
29488         spawning new threads after the main thread has finished.
29489
29490         * profiler.h:
29491         * profiler.c:
29492         * profiler-private.h: Pass the thread ID to thread profiler
29493         functions, instead of a handle
29494
29495 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
29496
29497         * verify.c: fixes to make it more usable.
29498         * pedump.c: added --verify code to verify IL code in an assembly.
29499
29500 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
29501
29502         * reflection.c: turn errors into warnings to allow compiling corlib.
29503
29504 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
29505
29506         * reflection.c: add special cases to compile corlib.
29507
29508 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
29509
29510         * reflection.c: handle properties with only a set method.
29511
29512 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
29513
29514         * opcodes.h: add enum with opcodes in opval order.
29515
29516 2002-07-01  Dick Porter  <dick@ximian.com>
29517         
29518         * object.h:
29519         * object.c (mono_runtime_run_main): Removed unneeded argument
29520
29521 2002-06-28  Martin Baulig  <martin@gnome.org>
29522
29523         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
29524
29525 2002-06-27  Dick Porter  <dick@ximian.com>
29526
29527         * threads.c: Store the handle in both the parent thread and in the
29528         subthread, to minimise the time between starting a new thread and
29529         storing its ID.
29530
29531 2002-06-26  Dick Porter  <dick@ximian.com>
29532
29533         * appdomain.c (mono_runtime_cleanup): Close the socket library
29534         after all the threads have finished, not before
29535
29536 2002-06-26  Martin Baulig  <martin@gnome.org>
29537
29538         * debug-symfile.c (mono_debug_find_source_location): Added
29539         `guint32 *line_number' argument.  If it's not NULL, store the line number
29540         there and return the file name without the line number.
29541
29542 2002-06-25  Dick Porter  <dick@ximian.com>
29543
29544         * icall.c:
29545         * process.h:
29546         * process.c: Process forking and other support functions
29547
29548 2002-06-25  Dick Porter  <dick@ximian.com>
29549
29550         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
29551         things dont happen when the image is closed.
29552         (mono_image_lookup_resource): Walk the resource section looking
29553         for a particular entry
29554
29555         * cil-coff.h: PE resource section decoding
29556
29557 2002-06-25  Dick Porter  <dick@ximian.com>
29558         
29559         * assembly.h:
29560         * assembly.c: 
29561         (mono_assembly_foreach): Accessor functions to walk the list of
29562         loaded assemblies
29563         (mono_assembly_set_main):
29564         (mono_assembly_get_main): Process methods need to know which
29565         assembly is the "main" one
29566
29567         * object.c (mono_runtime_run_main): Record the main assembly
29568
29569         * debug-helpers.c: Fix typo
29570
29571 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
29572
29573         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
29574         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
29575
29576 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
29577
29578         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
29579
29580 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
29581
29582         * image.c (do_mono_image_open): Initialize reference count,
29583         otherwise we leak the MonoImage.
29584
29585 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
29586
29587         * reflection.c: small tweak to handle self-hosting.
29588
29589 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
29590
29591         * reflection.c: fix type name parse code.
29592
29593 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
29594
29595         * reflection.c: break out of the loop.
29596         * image.c: special case corlib.
29597
29598 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
29599
29600         * reflection.c: add all the custom attrs at the end to ensure the
29601         ctors have been properly initialized when the attributes are defined
29602         in the current assembly.
29603
29604 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
29605
29606         * reflection.c: handle correctly multiple-nested types.
29607
29608 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
29609
29610         * row-indexes.h: fix typos.
29611         * reflection.c: adjust for typos and fix method_def_or_ref
29612         encoding in MethodImpl table.
29613
29614 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
29615
29616         * reflection.c: fix entry point patching (thanks Serge!).
29617
29618 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
29619
29620         * verify.c: add check for System.Exception
29621
29622 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
29623
29624         * image.c, class.c: minifix for code just c&p'ed.
29625         * reflection.c: warning fix.
29626         * object.h, loader.h, domain.c: load also StringBuilder.
29627
29628 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
29629
29630         * marshal.h, marshal.c: some support code to handle complex marshaling.
29631
29632 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
29633
29634         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
29635         Better signatures with vtable error dump.
29636
29637 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
29638
29639         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
29640
29641 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
29642
29643         * icall.c (ves_icall_Type_GetField): impl.
29644
29645 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
29646
29647         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
29648         to retrieve a marshal description blob for a field or param.
29649
29650 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
29651
29652         * reflection.h, reflection.c: change order of nested type emission
29653         to avoid table corruption. The NestedTypes table is sorted.
29654         * icall.c: change order of GetConstructor results to workaround mcs bug.
29655
29656 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
29657
29658         * reflection.h, reflection.c: handle field and param marshal
29659         information.
29660
29661 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
29662
29663         * icall.c, marshal.c marshal.h: more Marshal class implementation.
29664
29665 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
29666
29667         * reflection.c: fix call convention.
29668
29669 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
29670
29671         * reflection.h, reflection.c: mono_image_get_memberref_token()
29672         takes a type instead of a class, now. Added
29673         mono_image_get_array_token() to create tokens for the special
29674         multi-dim array methods.
29675
29676 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
29677
29678         * assembly.c: handle modules (no assembly table). Split
29679         loading references in its own function.
29680         * class.c: handle moduleref resolution scope.
29681         * image.c, image.h: cache module name in image.
29682
29683 2002-06-07  Martin Baulig  <martin@gnome.org>
29684
29685         * reflection.c (mono_image_get_type_info): Only add a class layout entry
29686         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
29687
29688 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
29689
29690         * icall.c: more signature fixes that used uint instead of int.
29691
29692 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
29693
29694         * reflection.c: fixed signature of field refs.
29695
29696 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
29697
29698         * class.c, reflection.c: handle typerefs of nested types
29699         (both on read and when writing files).
29700
29701 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
29702
29703         * icall.c: fix method signatures that tried to workaround the previous
29704         typo, d'oh!
29705
29706 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
29707
29708         * debug-helpers.c: fix typo.
29709
29710 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
29711
29712         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
29713         rewrote the PE/COFF writing code (our programs are understood by the
29714         ms runtime, now).
29715
29716 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
29717
29718         * gc.c, gc.h, icall.c: weakreference support.
29719
29720 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
29721
29722         * Makefile.am, mono-config.c: use $(sysconfdir).
29723
29724 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
29725
29726         * icall.c: changed default precision of Double.ToString() to 15.
29727         Fixed memory leak. Unified with Single.ToString.
29728
29729 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
29730
29731         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
29732
29733 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
29734
29735         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
29736         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
29737         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
29738         and myself.
29739
29740 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
29741
29742         * debug-symfile.c, sysmath.c: yet more compilation fixes.
29743
29744 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
29745
29746         * reflection.c, socket-io.c: more compilation fixes.
29747
29748 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
29749
29750         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
29751         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
29752         unicode.c: warning and compiler compatibility fixes.
29753
29754 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
29755
29756         * class.h, metadata.c: fixed warnings/compilation errors.
29757
29758 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
29759
29760         * Makefile.am, mono-config.c, mono-config.h: configuration file
29761         support routines.
29762         * loader.c, loader.h: make Dll mapping configurable at runtime in the
29763         config file. Export methods to insert and lookup mappings.
29764
29765 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
29766
29767         * reflection.c: handle types and boxed objects in custom attr
29768         constructors.
29769
29770 2002-05-30  Martin Baulig  <martin@gnome.org>
29771
29772         * debug-symfile.c
29773         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
29774
29775 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
29776
29777         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
29778         to lookup the implmap row for a P/Invoke method.
29779         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
29780         P/Invoke method from the runtime on an as needed basis.
29781
29782 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
29783
29784         * metadata.c (mono_metadata_parse_signature): impl.
29785
29786 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
29787
29788         * class.c: handle .pack directive.
29789
29790 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
29791
29792         * object.c: initialize static fields with RVA data.
29793
29794 2002-05-25  Martin Baulig  <martin@gnome.org>
29795
29796         * debug-symfile.c
29797         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
29798
29799 2002-05-24  Martin Baulig  <martin@gnome.org>
29800
29801         * debug-symfile.c
29802         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
29803         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
29804         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
29805
29806 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
29807
29808         * object.c: special case string ctros in invoke.
29809         * gc.c: silly whitespace changes.
29810
29811 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
29812
29813         * threadpool.[ch]: impl. a threadpool that can
29814         be used by mint and mono.
29815
29816 2002-05-22  Martin Baulig  <martin@gnome.org>
29817
29818         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
29819         The first argument is now a `MonoReflectionModuleBuilder *', the return
29820         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
29821         `methods' field to get the method builder.  The `token' argument is the
29822         unfixed token.
29823
29824         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
29825         invalid characters instead of g_assert_not_reached()ing.  This seems
29826         to be the behaviour of mscorlib.
29827
29828 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
29829
29830         * object.c (mono_runtime_invoke_array): applied patch from Rachel
29831         Hestilow to fix bug #25104
29832
29833 2002-05-21  Martin Baulig  <martin@gnome.org>
29834
29835         * debug-symfile.c (mono_debug_find_source_location): New function.
29836         Looks up an IL offset in the line number table and returns the source
29837         location as a string.
29838
29839 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29840
29841         * icall.c:
29842         (mono_double_ToStringImpl): changed %f by %g until we have something
29843         better.
29844
29845 2002-05-21  Nick Drochak  <ndrochak@gol.com>
29846
29847         * icall.c : Use different name for Math.Pow's icall.  Needed to check
29848         parameters first in C#.
29849
29850 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
29851
29852         * icall.c, reflection.h: added icall to get info about an event.
29853
29854 2002-05-20  Radek Doulik  <rodo@ximian.com>
29855
29856         * object.c (mono_value_box): don't use memcpy for boxing on BIG
29857         endian
29858         (mono_value_box): don't use memcpy for small sizes on
29859         architectures with unaligned access
29860
29861 2002-05-20  Martin Baulig  <martin@gnome.org>
29862
29863         * reflection.c (mono_reflection_setup_internal_class): Don't crash
29864         if `tb->parent == NULL'.
29865         (mono_reflection_create_internal_class): New function.  This is
29866         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
29867         for enum types.
29868
29869         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
29870         New interncall.
29871
29872 2002-05-19  Martin Baulig  <martin@gnome.org>
29873
29874         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
29875         argument to get the length, don't default to the array length.
29876
29877 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
29878
29879         * assembly.c (mono_assembly_setrootdir): New function used to
29880         override the MONO_ASSEMBLIES directory.
29881
29882 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
29883
29884         * icall.c: ValueType_GetHashCode() initialize local var.
29885
29886 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
29887
29888         * reflection.c: sort custom attributes table.
29889
29890 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
29891
29892         * reflection.c: support named args in custom attributes (write support).
29893
29894 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
29895
29896         * reflection.c: fix finally position calculation.
29897
29898 2002-05-15  Radek Doulik  <rodo@ximian.com>
29899
29900         * reflection.c: fixed endianess at many places
29901
29902         * icall.c (ves_icall_InitializeArray): comment out debug msg
29903
29904 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
29905
29906         * object.c (mono_unhandled_exception): new function to handle
29907         unhandled exceptions.
29908         (mono_unhandled_exception): call the UnhandledException event.
29909         (mono_runtime_delegate_invoke): impl.
29910
29911 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
29912
29913         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
29914         returns the RVA, not the direct pointer to the data. Handle the case
29915         when the class size is fixed.
29916
29917 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
29918
29919         * reflection.c: fix some endianess issues.
29920
29921 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
29922
29923         * object.c (mono_runtime_invoke): is now able to catch exceptions.
29924
29925         * threads.c (mono_thread_init): added a callback which is invoked
29926         at thread start.
29927
29928 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
29929         
29930         * icall.c: make GetHashCode return non-negative values.
29931
29932 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
29933
29934         * object.c, icall.c, gc.c: revert to address-based hashcode.
29935
29936 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
29937
29938         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
29939
29940 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
29941
29942         * icall.c, class.c: special case <Module>.
29943
29944 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
29945
29946         * icall.c: fix bug in GetNow().
29947
29948 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
29949
29950         * object.c (mono_runtime_class_init): make sure that we call all
29951         static class constructors.
29952
29953 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
29954
29955         * reflection.c: sort methodsemantics table.
29956
29957 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
29958
29959         * reflection.h, reflection.c: honour init locals setting.
29960
29961 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
29962
29963         * icall.c: copied Double ToStringImpl for Single ToStringImpl
29964
29965 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
29966
29967         * reflection.c: support ContructorBuilders in attribute blob creation.
29968
29969 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
29970
29971         * reflection.c: some changes to build a binary that can be run
29972         directly in windows.
29973
29974 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
29975
29976         * loader.c: print a big message when an icall can't be found.
29977
29978 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29979
29980         * string-icalls.c: fix bug 24248.
29981
29982 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
29983
29984         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
29985         icall.c, reflection.h: separate assembly loading by pathname and by
29986         assembly name. Use the MONO_PATH env var to search for assemblies.
29987
29988 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
29989
29990         * assembly.c, image.h: add some support for assemblies
29991         with multiple modules.
29992         * class.c, class.h: export mono_class_from_typeref().
29993         * loader.c: remove duplicated code and use mono_class_from_typeref(),
29994         instead.
29995
29996 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
29997
29998         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
29999         documentation says (the ECMA one is correct).
30000
30001 2002-05-02  Dick Porter  <dick@ximian.com>
30002
30003         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
30004         Don't name the synchronisation mutex.
30005
30006 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
30007
30008         * rand.c
30009         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
30010         Make the prototypes match.
30011         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
30012         Same.
30013
30014         * icall.c
30015         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
30016         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
30017         all systems have tm.tm_zone, so use strftime() with %Z to print
30018         the timezone abreviation into a temp string.
30019
30020         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
30021         rather than mono_array_addr() on a MonoString on Big Endian
30022         machines.
30023
30024 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
30025
30026         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
30027         fix bug 24041
30028
30029 2002-04-30  Dick Porter  <dick@ximian.com>
30030
30031         * socket-io.c: Cope with SOCKET being an integer rather than a
30032         pointer now.
30033
30034         * threads.c: Added Thread_free_internal, to deal with thread
30035         handle cleanup.  Moved calls to handle_store() and handle_remove()
30036         to start_wrapper(), so each can only be called once.  Allocate
30037         synchronisation blocks with GC_malloc(), and use GC finalisation
30038         to close the handles.
30039
30040         * icall.c: added System.Threading.Thread::Thread_free_internal
30041
30042 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
30043
30044         * icall.c: support Environment.Exit, CommandLineArgs().
30045
30046 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
30047
30048         * object.c, object.h: added mono_runtime_run_main () and
30049         mono_runtime_get_main_args () for use in System.Environment.
30050
30051 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
30052
30053         * gc.c: fix thinko, enable actual finalization since the jit is now
30054         fixed.
30055
30056 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
30057
30058         * gc.c, object.c: take into account that an object may be offset wrt the address
30059         returned by GC_malloc().
30060
30061 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
30062
30063         * image.c: handle files without entries in the assembly table (modules).
30064
30065 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
30066
30067         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
30068         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
30069         allowed to be null when it's System.Object class setup.
30070
30071 2002-04-27  Martin Baulig  <martin@gnome.org>
30072
30073         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
30074         if `tb->parent == NULL' rather than crashing.
30075
30076 2002-04-28  Nick Drochak  <ndrochak@gol.com>
30077
30078         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
30079         calling acos() where asin() should have been called.
30080
30081 2002-04-26  Martin Baulig  <martin@gnome.org>
30082
30083         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
30084         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
30085         there's a subdirectory called `System', but we don't want to read that
30086         subdirectory as an assembly.
30087
30088 2002-04-25  Martin Baulig  <martin@gnome.org>
30089
30090         * debug-symfile.c: Reflect latest MonoString changes.
30091
30092 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
30093
30094         * rand.c, rand.h: instance method icalls need to have an explicit
30095         this pointer as first argument in the C implementation.
30096
30097 2002-04-25  Nick Drochak <ndrochak@gol.com>
30098
30099         * icall.c: Fix typo in map for GetNonZeroBytes
30100
30101 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
30102
30103         * string-icalls.c : String does now passes unit tests without any 
30104         errors, the following changes has been made:
30105         
30106         Implemented replace methods.
30107         Renaming of methods to (try) follow the standard.
30108         Fixed compare ordinal
30109         Made all memory allocated directly to function instead of via icall function.
30110         Small performance fix in is_in_array function
30111                         
30112  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
30113
30114         c (mono_string_Internal_ctor_charp_int_int):
30115         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
30116         sindex < 0, throw ArgumentOutOfRangeException instead of
30117         ArgumentNullException.
30118
30119         Added new check for length == 0, however
30120         I need to make it return String.Empty from the C code.
30121         
30122         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
30123         that calculate the length for us here.
30124         
30125         (mono_string_Internal_ctor_sbytep_int_int): Replaced
30126         mono_string_new_utf16 with mono_string_new, since value is utf8.
30127
30128 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
30129
30130         * object.c: register the object for finalization if needed.
30131         Allocate one more char in the string for the terminating 0 char.
30132
30133 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
30134
30135         * class.c, class.h, image.c: check if a type implemenst a destructor.
30136         Use the proper key for array class lookups.
30137         * icall.c: register the icalls in the System.GC class.
30138         * gc.c, gc.h: GC-related functions and icalls.
30139
30140 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
30141
30142         * icall.c:
30143         * socket-io.c:
30144         * unicode.c: free some strings gotten from mono_string_to_utf8 and
30145         changed a couple of free () by g_free ().
30146
30147         * decimal.c: one-liner in the comments for decimal2string ().
30148
30149 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
30150
30151         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
30152
30153 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
30154
30155         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
30156         * object.c (mono_runtime_invoke_array) : handle null in params
30157
30158 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
30159
30160         * string-icalls.c: fixed bug in split (one off bug)
30161
30162 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
30163
30164         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
30165         * icalls.c: added String::Equals as internal method
30166
30167 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
30168
30169         * threads.c: fixed bug in the double interlocked functions
30170
30171 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
30172
30173         * threads.c: implemented all of the new interlocked icalls.
30174         * string-icalls.c: fix a bug in insert.
30175         * icalls.c: added the icalls for interlocked, removed old string functions.
30176         
30177 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
30178
30179         * loader.c: fix off-by-one error when reading argument names.
30180
30181 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
30182
30183         * profiler.c: win32 counter implementation (untested).
30184         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
30185         (the latter needs testing and more complete impl. from win32 folks).
30186
30187 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
30188
30189         * object.c: mono_array_new_full workaround mono_array_class_get
30190         problem.
30191
30192 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
30193
30194         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
30195         * object.h (mono_string_chars): Changed casting type.
30196
30197 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
30198
30199         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
30200                            method signatures to use gunichar2 instead of gint16.
30201
30202 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
30203
30204         * object.h, object.c: domain-specific versions of mono_object_new and
30205         mono_array_new.
30206
30207 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
30208
30209         * object.c: changed String layout
30210
30211         * string-icalls.c (mono_string_Internal_ctor_chara): added
30212         internal string constructors.
30213
30214 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
30215
30216         * threads.c: pass 'this' to the thread start routine.
30217
30218 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
30219
30220         * string-icalls.c: fix IndexOf and LastIndexOf. Now
30221         InternalCompareStr don't call twice mono_string_cmp_char for the last
30222         character. Improved performance in mono_string_cmp_char.
30223
30224 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
30225
30226         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
30227         code into its own library: libmonoruntime.
30228
30229 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
30230
30231         * object.h, object.c: changed array format so that szarrays do not
30232         require a bounds structure.
30233         * icall.c, appdomain.c: support for new szarray format.
30234
30235 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
30236
30237         * metadata.c: compare also the retuns type when comparing signatures:
30238         we didn't do this as an optimization since really overloaded methods
30239         must differ also in the arguments, but this doesn't work with
30240         low-level IL code (or when using explicit conversion operators: see
30241         bug#23498 for an example).
30242
30243 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
30244
30245         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
30246
30247 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
30248
30249         * icall.c: make MonoType::GetElementType its own icall.
30250
30251 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
30252
30253         * icall.c: remove MonoMethod_get_Name().
30254         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
30255         object.
30256
30257 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
30258
30259         * string-icalls.c: optimized a few methods.
30260
30261 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
30262
30263         * icall.c: added all new string internal calls
30264         * string-icalls.c: added, new string internal call implementation.
30265         * object.c: added mono_string_new_size for allocating a string a size
30266
30267 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
30268
30269         * object.c (mono_object_isinst): use the same code as in the
30270         optimized x86 version.
30271
30272 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
30273
30274         * profiler.c: TSC-based timer code (faster and more accurate).
30275         Not hooked up in configure, yet (set USE_X86TSC to 1).
30276
30277 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
30278
30279         * profiler.c, profiler.h: track time spent compiling methods.
30280         * threads.c: track thread creation/destruction.
30281
30282 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
30283
30284         * profiler.c, profiler.h, profiler-private.h: profiling interface
30285         and sample implementation. Moved here so that it can be used also by
30286         the jit.
30287
30288 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
30289
30290         * reflection.c, reflection.h: keep types and other handles separate in
30291         the hash tables for referred tokens. Add guid for modules.
30292
30293 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
30294
30295         * assembly.c: fix bugs found with valgrind.
30296         * metadata.h, metadata.c: added mono_metadata_guid_heap().
30297
30298 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
30299
30300         * threads: added icall support for getting current domain for
30301                    the thread.
30302  
30303 2002-04-13  Martin Baulig  <martin@gnome.org>
30304
30305         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
30306         (MonoDebugVarInfo): Added `index' field for register based addresses.
30307         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
30308         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
30309         `MonoDebugVarInfo *params' and `guint32 this_offset' with
30310         `MonoDebugVarInfo *this_var'.
30311
30312         * debug-symfile.c (relocate_variable): New static function to write
30313         a location description for a local variable or method parameter.
30314
30315 2002-04-12  Martin Baulig  <martin@gnome.org>
30316
30317         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
30318         stack offset and begin/end scope address of a local variable.
30319         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
30320         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
30321         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
30322
30323         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
30324         Added new relocation types for start/end scope of a local variable.
30325
30326 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
30327
30328         * object.h: add mono_object_domain() macro.
30329         * reflection.c: handle typespecs.
30330         * icall.c: MonoMethod::get_Name() implementation.
30331
30332 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
30333
30334         * icall.c: String::GetHashCode() icall implementation.
30335
30336 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
30337
30338         * icall.c: String::IndexOfAny icall.
30339         * object.c, object.h: make array->max_length more useful.
30340         Intrduced mono_object_class() and mono_string_length() macros.
30341
30342 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
30343
30344         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
30345         instead of g_unichar_isdigit.
30346
30347 2002-04-11  Nick Drochak  <ndrochak@gol.com>
30348
30349         * icall.c: Implement a simple Double.ToString().
30350
30351 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
30352
30353         * appdomain.h: only io-layer.h is supposed to be included.
30354         * icall.c: explicitly import environ. Fix warning.
30355
30356 2002-04-10  Nick Drochak  <ndrochak@gol.com>
30357
30358         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
30359                 return true even if it's not Daylight Savings time.
30360                 Only return false for the case where the function isn't
30361                 implemented for a plaform (read Windows).
30362
30363 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
30364
30365         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
30366         data with a mutex.
30367
30368 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
30369
30370         * mempool.c (mono_mempool_alloc): only use g_malloc when
30371         absolutely necessary.
30372
30373 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
30374
30375         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
30376
30377         * class.c (mono_class_vtable): use domain mempool to allocate vtable
30378         (mono_class_proxy_vtable): use domain mempool
30379
30380 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
30381
30382         * appdomain.h, appdomain.c: split initialization that requires the
30383         execution engine support into mono_runtime_init().
30384
30385 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
30386
30387         * class.c (mono_class_init): don't include vtable inside MonoClass
30388         to save some memory, gather some statistics.
30389         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
30390
30391 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
30392
30393         * icall.c: internalcall implementation for ValueType.Equals().
30394
30395 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
30396
30397         * object.c (mono_message_init): moved 
30398         (mono_runtime_exec_main): new arch. independent impl.
30399         (mono_runtime_invoke_array): new method - like
30400         mono_runtime_invoke, but you can pass an array of objects.
30401         (mono_remoting_invoke): new arch. independent impl.
30402         (mono_message_invoke): new arch. independent impl.
30403         (mono_runtime_class_init): new arch. independent impl.
30404         (mono_runtime_object_init): new arch. independent impl.
30405
30406 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
30407
30408         * metadata.c, object.c, reflection.c: documented the exported
30409         functions.
30410
30411 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
30412
30413         * icall.c: simpler code to pass the assembly builder data to corlib.
30414         Implement GetNestedTypes() internalcall.
30415
30416 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
30417
30418         * class.c: warn if a type can't be loaded.
30419
30420 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
30421
30422         * image.h: typedef MonoImageOpenStatus
30423         * types.h: removed unused file
30424         
30425 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
30426
30427         * icall.c: Enum_ToObject accepts enum value arguments.
30428
30429 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
30430
30431         * class.c: move initialization of properties, events and nested
30432         classes, so that they happen for interfaces, too.
30433
30434 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
30435
30436         * icall.c: cleanup some ugly casts in Array_SetValue*.
30437
30438 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
30439
30440         * icall.c: the values array fro enums is of the correct type, now.
30441         Implement (correctly) getFullName instead of assQualifiedName for
30442         MonoType.
30443         * reflection.h, reflection.c: added mono_type_get_name ().
30444
30445 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
30446
30447         * assembly.c, image.h: for each MonoImage, record from wich assembly
30448         it was loaded.
30449         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
30450         Make Type.Assembly work.
30451
30452 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
30453
30454         * debug-symfile.h: use char* instead of gpointer to avoid
30455         unnecessary casts.
30456
30457         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
30458
30459         * icall.c (ves_icall_InternalExecute): impl. FielSetter
30460         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
30461
30462 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
30463
30464         * icall.c (mono_message_init): impl. (code cleanup)
30465         (ves_icall_InternalExecute): impl. FieldGetter
30466
30467         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
30468         defined we call all (non-static)methods through the vtable. 
30469
30470 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
30471
30472         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
30473         finalizer even though the memory is still referenced (and the chunk of
30474         memory is not freed).
30475
30476 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
30477
30478         * assembly.c: fix brokeness.
30479
30480 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
30481
30482         * class.c: kill some warnings. Check explicit interface method
30483         implementation also without considering the namespace.
30484         Load also literal strings in static class data.
30485
30486 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
30487
30488         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
30489         (default_assembly_name_resolver): Make the resolver take the
30490         "base" directory where the assembly was originally defined, so we
30491         can load DLLs that are in the same directory as the assembly that
30492         is being referenced.
30493
30494 2002-03-28  Dick Porter  <dick@ximian.com>
30495
30496         * file-io.h: 
30497         * file-io.c:
30498         * socket-io.c: 
30499         * unicode.h: 
30500         * unicode.c: Warning cleanups
30501
30502 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
30503
30504         * object.h, reflection.h: use the correct type instead of MonoObject.
30505
30506 2002-03-28  Martin Baulig  <martin@gnome.org>
30507
30508         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
30509         (mono_debug_update_symbol_file): Initialize classes if necessary.
30510
30511 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
30512
30513         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
30514         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
30515
30516 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
30517
30518         * assembly.h: fix function prototype.
30519         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
30520         * mono-endian.h: use const cast.
30521
30522 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
30523
30524         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
30525
30526 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
30527
30528         * loader.c: don't assert when a typeref can't be loaded, give
30529         a chance to the runtime to trow an exception instead.
30530         * loader.h: fix warning.
30531
30532 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
30533
30534         * class.c (mono_class_proxy_vtable): added proxy support
30535
30536 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
30537
30538         * icall.c: removed last of PAL calls, added System.Environment
30539         * file-io.h, file-io.c: MonoIO implementation
30540         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
30541
30542 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
30543
30544         * appdomain.c: do not use the byte marker in ldstr table lookup.
30545         * debug-helpers.c: allow two ':' to separate class and method name.
30546         * object.c: allocate arrays bounds with the GC, too.
30547         * verify: add a few more checks.
30548
30549 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
30550
30551         * reflection.c: output also literal strings. Allocate parameter data
30552         with GC_malloc() (thanks, Martin, for catching this!).
30553
30554 2002-03-26  Martin Baulig  <martin@gnome.org>
30555
30556         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
30557         include the `this' offset in the `param_offsets'.
30558
30559 2002-03-25  Martin Baulig  <martin@gnome.org>
30560
30561         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
30562         mono_debug_get_class() function to get the classes. Added new
30563         relocation types for arrays and strings.
30564         (mono_debug_get_class): New static function to search in all
30565         referenced assemblies for a metadata token.
30566
30567         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
30568
30569 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
30570
30571         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
30572         hold gc-allocated objects. Make the string heap a stream like the
30573         others. Removed duplicated code when writing stream info.
30574         Added asserts to catch possible buffer overflows. Set the sorted map
30575         for tables that need sorting. Added some documentation.
30576
30577 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
30578
30579         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
30580         for interned strings and vtables.
30581
30582 2002-03-24  Martin Baulig  <martin@gnome.org>
30583
30584         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
30585         it in the array since it was created with g_slist_prepend().
30586
30587 2002-03-24  Martin Baulig  <martin@gnome.org>
30588
30589         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
30590         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
30591         (mono_debug_method_from_token): Renamed to
30592         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
30593         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
30594
30595         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
30596         relocation types.
30597
30598         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
30599
30600 2002-03-24  Martin Baulig  <martin@gnome.org>
30601
30602         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
30603         (mono_debug_method_from_token): New func.
30604
30605         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
30606         New interncall, calls mono_debug_local_type_from_signature().
30607         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
30608         calls mono_debug_method_from_token().
30609
30610 2002-03-23  Martin Baulig  <martin@gnome.org>
30611
30612         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
30613         specifies the number of bytes to be converted, not the array size.
30614         Return the number of chars, not the number of bytes.
30615         (ves_icall_iconv_get_chars): The `byteCount' argument
30616         specifies the number of bytes to be converted, not the array size.
30617
30618 2002-03-23  Martin Baulig  <martin@gnome.org>
30619
30620         * reflection.h (MonoReflectionSigHelper): New type.
30621
30622         * reflection.c (mono_reflection_sighelper_get_signature_local),
30623         (mono_reflection_sighelper_get_signature_local): New functions.
30624
30625         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
30626         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
30627         interncalls.
30628
30629 2002-03-23  Martin Baulig  <martin@gnome.org>
30630
30631         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
30632         is_writeable is set.
30633         (mono_raw_buffer_update): New function to write the modified map
30634         back to disk.
30635
30636         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
30637
30638         * debug-symfile.c (mono_debug_update_symbol_file): Call
30639         mono_raw_buffer_update() when done writing.
30640
30641 2002-03-23  Martin Baulig  <martin@gnome.org>
30642
30643         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
30644
30645         * debug-symfile.c: Added support for arguments and local variables.
30646
30647 2002-03-23  Dick Porter  <dick@ximian.com>
30648
30649         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
30650         protected by ifdefs, hence breaking the w32 build.
30651
30652 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
30653
30654         * object.c: implement is_interned() the right way.
30655
30656 2002-03-21  Martin Baulig  <martin@gnome.org>
30657
30658         * debug-symfile.[ch]: New files to handle debugging information
30659         files. There's also support to dynamically update these symbol
30660         files to include machine dependent information.
30661
30662 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
30663
30664         * threads.c (mono_thread_create): new function to create thread
30665         from C
30666
30667 2002-03-20  Martin Baulig  <martin@gnome.org>
30668
30669         * icall.c (ves_icall_InternalInvoke): Create a new object if the
30670         method is a constructor.
30671         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
30672         points to ves_icall_InternalInvoke().
30673
30674 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
30675
30676         * file-io.c: Flush shouldn't throw exceptions.
30677
30678 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
30679
30680         * file-io.c: FileStream flush support; FileSetLength now
30681         restores file pointer.
30682
30683 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
30684
30685         * class.c: set image for pointer classes.
30686
30687 2002/03/19  Nick Drochak <ndrochak@gol.com>
30688
30689         * sysmath.c: Forgot one.
30690
30691 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
30692
30693         * sysmath.c: Avoid redefining existing names.
30694
30695 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
30696
30697         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
30698         handled by runtime as icall rather than dllimport from libm.so
30699         * file-io.c, file-io.h: fixed handle argument type.
30700
30701 2002-03-18  Dick Porter  <dick@ximian.com>
30702
30703         * reflection.c (mono_image_get_type_info): rename interface to
30704         iface, because of "#define interface struct" on windows.
30705
30706 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
30707
30708         * class.c, class.h: rename and export mono_ptr_class_get().
30709         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
30710         * reflection.c, reflection.h, icall.c: better/saner type name
30711         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
30712         method signatures.
30713
30714 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
30715
30716         * class.c (mono_class_init): removed hardcoded GHC_SLOT
30717
30718         * icall.c (ves_icall_InternalInvoke): impl.
30719
30720 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
30721
30722         * reflection.c: output the interface map table, too.
30723
30724 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
30725
30726         * class.c (class_compute_field_layout): separate computation of 
30727         static field layout
30728
30729 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
30730
30731         * icall.c: added System.Buffer support.
30732         * file-io.c: moved file icalls from PAL to FileStream.
30733
30734 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
30735
30736         * icall.c (ves_icall_System_Object_GetHashCode): impl.
30737
30738 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
30739
30740         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
30741
30742 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
30743
30744         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
30745
30746 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
30747
30748         * debug-helpers.{c,h}: moved here from monograph some useful functions
30749         to locate a method by name/signature in a class or image. Included
30750         also a small and flexible IL disassembler.
30751
30752 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
30753
30754         * reflection.c: fixup tokens in methods with small header size, too.
30755
30756 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
30757
30758         * object.c (mono_string_to_utf8): remove assert(!error), instead
30759         print a warning. 
30760
30761 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
30762
30763         * icall.c: update to the new mono_Array_class_get interface.
30764
30765 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
30766
30767         * appdomain.c, object.c: Boehm-GC enable.
30768         * icall.c: make get_data_chunk() support split data requests.
30769         Ensure a class is initialized in more cases. Return only the first
30770         property found in GetProperties() or the compiler gets confused. 
30771         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
30772         * reflection.h, reflection.c: add fixup mechanism for field and method
30773         tokens. Initialize assembly->typeref in a single place. Output
30774         properties after events. Support custom attributes for events, too.
30775         Typo fix for paramter custom attrs.
30776
30777 2002-03-07  Martin Baulig  <martin@gnome.org>
30778
30779         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
30780
30781 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
30782
30783         * class.c (mono_array_class_get): fix. for multi. dim. arrays
30784
30785 2002-03-06  Martin Baulig  <martin@gnome.org>
30786
30787         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
30788         non-zero lower bounds. See testcases #F10-#F13.
30789
30790 2002-03-05  Martin Baulig  <martin@gnome.org>
30791
30792         * exception.c (mono_get_exception_argument_out_of_range): New exception.
30793
30794         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
30795         ves_icall_System_Array_GetValue(), only calculate the absolute array position
30796         here.
30797         (ves_icall_System_Array_SetValue): Likewise.
30798         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
30799         as argument and does the actual work. This function is used when copying a
30800         multi-dimensional array.
30801         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
30802         now do all the widening conversions of value types.
30803         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
30804
30805 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
30806
30807         * class.c: remove some magic numbers and use the smbolic names,
30808         instead. Added init_events() to load event info at class init time.
30809         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
30810         and mono_metadata_methods_from_event().
30811         * reflection.h, reflection.c: added support for writing out the evnets
30812         related information.
30813
30814 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
30815
30816         * reflection.h, icall.c: use a different method (GetInterfaces)
30817         to gather interface info and add isbyref, isprimitive and
30818         ispointer to the ves_icall_get_type_info() return value.
30819
30820 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
30821
30822         * class.h: stared adding support for events.
30823         * icall.c: split find_members implementation. Added debug icall to get
30824         the address of an object.
30825         * reflection.c: handle TypeBuilders in mono_type_get_object().
30826
30827 2002-03-01  Martin Baulig  <martin@gnome.org>
30828
30829         * icall.c (ves_icall_System_Array_GetLength): This must throw an
30830         ArgumentOutOfRangeException(), not an ArgumentException().
30831         (ves_icall_System_Array_GetLowerBound): Likewise.
30832         (ves_icall_System_Array_GetValue): Improved argument checking.
30833         (ves_icall_System_Array_SetValue): Improved argument checking.
30834
30835 2002-03-01  Martin Baulig  <martin@gnome.org>
30836
30837         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
30838         called with invalid arguments rather than just dying with g_assert().
30839         (ves_icall_System_Array_SetValue): Likewise.
30840         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
30841         raise a NotImplementedException instead.
30842         (ves_icall_System_Array_GetLength): Added argument checking.
30843         (ves_icall_System_Array_GetLowerBound): Added argument checking.
30844
30845 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
30846
30847         * object.h (mono_assert): new macros mono_assert and
30848         mono_assert_not_reached
30849
30850 2002-02-28  Martin Baulig  <martin@gnome.org>
30851
30852         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
30853         and "System::String::IsInterned" to "System::String::_IsInterned".
30854
30855 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
30856
30857         * icall.c: remove hacks for typebuilder. Added icall to create a
30858         modified type from a tybebuilder.
30859         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
30860         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
30861         to create a backing MonoClass for a TypeBuilder.
30862
30863 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
30864
30865         * class.c, class.h: more refactoring of class init.
30866         Export mono_class_setup_mono_type() and mono_class_setup_parent().
30867
30868 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
30869
30870         * marshal.c, marshal.h: start of marshaling interface.
30871
30872 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
30873
30874         * icall.c: fix order in assembly qualified name icall.
30875
30876 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
30877
30878         * class.c: do not free str, since we store it in the hash table.
30879         * reflection.h: add label field to MonoILExceptionInfo.
30880         * reflection.c: handle references to more than one assembly. Handle
30881         case when there isn't a module created in the assembly.
30882
30883 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
30884
30885         * class.c: Fix typo. Start refactoring of class init code.
30886
30887 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
30888
30889         * appdomain.c: exit with 1 on error.
30890         * class.c: we already have the name in MonoClassField.
30891         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
30892         MonoStreamHeader instead of an offset of image->raw_metadata.
30893
30894 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
30895
30896         * appdomain.c (mono_init): Be even more descriptive about the error.
30897
30898 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
30899
30900         * appdomain.c: give the user an informative message when corlib can't
30901         be loaded.
30902
30903 2002-02-26  Martin Baulig  <martin@gnome.org>
30904
30905         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
30906         New icall to get the time zone data.
30907
30908 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
30909
30910         * reflection.c: set virtual and raw size of section correctly.
30911         * threads.c: transfer domain information to newly created threads.
30912
30913 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
30914
30915         * class.c: when instancing a class in a domain, load the default
30916         vaules for static fields from the constant table. Fix System.Enum to
30917         not be an enum.
30918         * icall.c: implement Object::GetType() internalcall. Implemented
30919         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
30920         Fixed checking of binding flags in find_members().
30921         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
30922         * reflection.c: handle enumerations when writing to the constant
30923         table. Use a different object cache for types.
30924
30925
30926 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
30927
30928         * object.c (mono_object_isinst): fix for arrays
30929
30930         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
30931
30932 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
30933
30934         * object.c: don't use mprotect ()  and fix intern pool hash table
30935         lookup for big endian systems.
30936
30937 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
30938
30939         * icall.c: change type_is_subtype_of () signature.
30940
30941 2002-02-21  Mark Crichton  <crichton@gimp.org>
30942
30943         * rand.c, rand.h: Added random number generator for
30944         System.Security.Cryptography classes.
30945
30946         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
30947
30948         * icall.c: Added System.Security.Cryptography calls.
30949
30950 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
30951
30952         * class.c, icall.c, metadata.c: better support for pointer types.
30953         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
30954         * reflection.c: Add support for getting custom attrs for properties
30955         and simplify some code.
30956
30957 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
30958
30959         * icall.c: change getToken () and add custom attribute GetBlob()helper
30960         method.
30961         * reflection.h: add custom attrs array to the reflection builder structures.
30962         * reflection.c: encode and emit custom attributes for all the relevant
30963         reflection objects. Cache fieldref and methodref tokens. Change
30964         mono_image_create_token() interface to take a MonoDynamicAssembly.
30965         More complete custom attributes decoder. Load custom attributes for
30966         Assembly, Field, Method and Constructor objects, too. Make the
30967         returned array an Attribute[] one, not object[]. Added
30968         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
30969         custom attribute constructor.
30970
30971 2002-02-20  Dick Porter  <dick@ximian.com>
30972
30973         * icall.c:
30974         * rawbuffer.c:
30975         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
30976         problem code out for now).
30977
30978 2002-02-19  Radek Doulik  <rodo@ximian.com>
30979
30980         * object.c (mono_ldstr): use hash table to avoid multiple swapping
30981
30982 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
30983
30984         * icall.c: register the GetCustomAttributes method.
30985         * object.c, object.h: add mono_string_new_len ().
30986         * reflection.h, reflection.c: added mono_runtime_invoke(),
30987         mono_install_runtime_invoke(). Added
30988         mono_reflection_get_custom_attrs () to load custom attributes and
30989         create the attribute objects.
30990
30991 2002-02-19  Dick Porter  <dick@ximian.com>
30992         * threads-dummy-types.c:
30993         * threads-dummy-types.h:
30994         * threads-dummy.c:
30995         * threads-dummy.h:
30996         * threads-pthread-types.c:
30997         * threads-pthread-types.h:
30998         * threads-pthread.c:
30999         * threads-pthread.h:  Deleted obsolete files
31000
31001 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
31002
31003         * class.c (mono_class_vtable): runtime init the class when we
31004         allocate static class data.
31005
31006         * icall.c (ves_icall_System_Array_SetValue): check for null values.
31007
31008         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
31009         and String - but we will need generic marshalling support in the
31010         future. 
31011         (mono_init): set the domain name in a ms compatible way
31012
31013         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
31014         String[].
31015
31016 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
31017
31018         * object.c (mono_array_clone): use alloca() instead of g_malloc  
31019         for sizes
31020
31021         * appdomain.c (mono_domain_unload): impl.
31022
31023 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
31024
31025         * appdomain.c, object.c: fix intern pool implementation.
31026         * class.c: fix alignment code.
31027
31028 2002-02-16  Radek Doulik  <rodo@ximian.com>
31029
31030         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
31031         and s2 > s1, just copy lower bytes to be compatible with little
31032         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
31033         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
31034
31035         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
31036         force big_endian to be 1 for big endian machines 
31037         (ves_icall_iconv_new_decoder): ditto
31038
31039 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
31040
31041         * socket-io.c (convert_sockopt_level_and_name): If the system
31042         doesn't define SOL_IP or SOL_TCP, get them by hand using
31043         getprotobyname() and caching the values (because this could be a
31044         slow operation).
31045         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
31046         Use the appropriate struct when the system does support it. Ie,
31047         not all systems have struct ip_mreqn so use struct ip_mreq when
31048         appropriate.
31049
31050 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
31051
31052         * reflection.c: handle finally clauses.
31053
31054 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
31055
31056         * socket-io.c: use g_snprintf() instead of snprintf.
31057
31058 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
31059
31060         * reflection.c (mono_param_get_objects): Cast second argument to
31061         mono_method_get_param_names to a const char** to silence the
31062         compiler warning.
31063
31064         * appdomain.c (mono_domain_assembly_open): Put parens around the
31065         truth statement in the for-loop.
31066
31067         * unicode.c (iconv_convert): Got rid of a compiler warning about
31068         int i being unused when the system has a new iconv.
31069         (iconv_get_length): Same.
31070
31071         * image.c (load_class_names): Cast the second argument to
31072         g_hash_table_insert() to char* to hush compiler warnings about the
31073         arg being a const.
31074         (mono_image_open): Same here.
31075
31076         * socket-io.c: Don't conditionally include sys/filio.h or
31077         sys/sockio.h here anymore since we now get them from
31078         io-layer/io-layer.h
31079         (inet_pton): If the system doesn't support inet_aton, implement
31080         using inet_addr and also #define INADDR_NONE if it isn't defined
31081         by the system.
31082
31083 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
31084
31085         * metadata.c, metadata.h: added function to get packing and size info
31086         of a typedef.
31087         * reflection.h, reflection.c: handle field RVA data. Save info about
31088         the table layout if needed. Assign typedef indexes to all the types
31089         before dumping the info about them to avoid forward reference problems.
31090
31091 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
31092
31093         * socket-io.c (convert_sockopt_level_and_name): ifdef
31094         SO_ACCEPTCONN because it is not defined on my system (old debian)
31095
31096 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
31097
31098         * opcode.c: use stddef.h to get NULL.
31099
31100 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
31101
31102         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
31103         for FIONBIO, FIONREAD and SIOCATMARK.
31104         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
31105         define INADDR_NONE and besides, inet_addr() is deprecated and
31106         should not be used. Use inet_pton() instead - it also has the
31107         added bonus that it can easily handle IPv6 addresses as well.
31108         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
31109
31110 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
31111
31112         * decimal.c: remove _MSC_VER conditional.
31113
31114 2002-02-13  Dick Porter  <dick@ximian.com>
31115
31116         * socket-io.c: 
31117         * icall.c: Internal calls for Blocking, Select, Shutdown,
31118         GetSocketOption and SetSocketOption
31119
31120 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
31121
31122         * assembly.cs: better resolver: use it instead of some kludgy
31123         code.
31124
31125 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
31126
31127         * reflection.c: the best way to speed-up the compiler is to avoid
31128         infinite loops.
31129
31130 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
31131
31132         * class.c (mono_class_vtable): changed the object layout
31133         (obj->vtable->class). 
31134         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
31135
31136 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
31137
31138         * assembly.c: look for assemblies in the assembly dir, too.
31139
31140 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
31141
31142         * class.c: fix thinko in mono_class_from_type().
31143
31144 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
31145
31146         * exception.h, exception.c: added TypeLoadException.
31147         * object.h, object.c: added mono_array_clone ().
31148         * icall.c: handle throwOnError in AssemblyGetType().
31149         Added Array.Clone().
31150         * opcode.h, opcode.c: use a single value for the opcode val.
31151         Compile fix for non-gcc compilers.
31152
31153 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
31154
31155         * opcodes.c, opcodes.h: export interesting info about opcodes.
31156
31157 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
31158
31159         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
31160         icalls. 
31161
31162         * class.c (class_compute_field_layout): set element_class for enums
31163         (mono_class_create_from_typedef): set element_class for normal classes
31164
31165         * icall.c (ves_icall_System_Enum_get_value): impl.
31166
31167         * class.c (mono_class_create_from_typedef): do not set valuetype
31168         flag for System.ValueType and System.Enum
31169
31170 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
31171
31172         * unicode.c (iconv_convert): fix big endian problem.
31173
31174 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
31175
31176         * class.c: add asserts if we are ever going to scribble over memory.
31177         * socket-io.c: not all systems have AF_IRDA defined.
31178
31179 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
31180
31181         * class.c (class_compute_field_layout): do not consider static
31182         fields to compute alignment
31183
31184 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
31185
31186         * appdomain.c (mono_appdomain_get): impl.
31187         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
31188
31189 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
31190
31191         * icall.c: ignore "file://" prefix when loading an assembly.
31192
31193 2002-01-23  Dick Porter  <dick@ximian.com>
31194
31195         * socket-io.c:
31196         * icall.c:
31197         * Makefile.am: Added socket support
31198
31199 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
31200
31201         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
31202         code back.  This should return the assemblies that are loaded by
31203         the runtime on behalf of an application domain. 
31204
31205         The current implementation is still broken, it just returns every
31206         assembly loaded, but until we get real applications domain this
31207         will do.
31208
31209 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
31210
31211         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
31212         AppDomain object.
31213
31214 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
31215
31216         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
31217         the mono_class_from_name lookup.
31218         (ves_icall_get_parameter_info): ditto.
31219         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
31220         method.
31221         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
31222
31223 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
31224
31225         * class.c: load also nested classes on class init.
31226         System.ValueType instance methods gets passed boxed
31227         values, unless methods in derived classed that get a pointer to the
31228         data.
31229         * icall.c: use better name parsing code in GetType().
31230         * image.c, image.h: add mono_image_loaded ().
31231         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
31232         * reflection.c, reflection.h: added mono_reflection_parse_type().
31233
31234 2002-01-22  Veronica De Santis <veron78@interfree.it>
31235
31236         * icall.c : Added mapping of internal calls for Manual and Auto reset events
31237         * threads.c : Added the implementation of internal calls for events
31238         * threads.h : Added prototypes of internal calls for events
31239         
31240 2002-01-21  Radek Doulik  <rodo@ximian.com>
31241
31242         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
31243
31244 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
31245
31246         * class.c (mono_class_init): set min_align to 1 (instead of 0)
31247         (mono_class_value_size): use min_align
31248
31249 2002-01-20  Dick Porter  <dick@ximian.com>
31250
31251         * threads.h:
31252         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
31253         so it compiles on w32.
31254
31255 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
31256
31257         * metadata.c (mono_type_stack_size): impl.
31258
31259         * class.c (mono_class_get_field): impl. memberref token
31260
31261 2002-01-16 Veronica De Santis <veron78@@interfree.it>
31262
31263         * icall.h : Added the internal calls mapping for CreateMutex_internal
31264                     and ReleaseMutex_internal.
31265         * threads.h : Added the prototype of mutexes internal calls.
31266         * threads.c : Added the implementations of mutexes internal calls.
31267
31268 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
31269
31270         * metaparse.h: removed unused file.
31271         * reflection.c, reflection.h: added stream_data_align () function 
31272         to align data in streams and keep stream aligned. Add support for
31273         exception support in method headers.
31274
31275 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
31276
31277         * unicode.c: make iconv_convert () return the number of bytess written
31278         in the output buffer.
31279
31280 2002-01-15  Dick Porter  <dick@ximian.com>
31281         * threads.c: Make the runtime's idea of infinite timeouts coincide
31282         with the class library's
31283
31284         Fix a particularly egregious bug in mono_thread_cleanup(). That
31285         code was so utterly bogus it must have been written on a Monday.
31286
31287 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
31288
31289         * reflection.h: add subtypes field to TypeBuilder.
31290         * reflection.c: encode constants for literal fields.
31291         Handle subtypes. Fix user string token (and add a zero byte)
31292         at the end.
31293         
31294 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
31295
31296         * class.c (mono_class_init): bug fix: assign slot numbers for
31297         abstract methods.
31298
31299 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
31300
31301         * reflection.c: don't try to output a code RVA for abstract methods.
31302         Small fixes for method header format. Output parameter info to the
31303         ParamDef table. Save method overriding info to MethodImpl table.
31304         Fix property support. Allow typedef.extends to be a type in the
31305         building assembly.
31306         * verify.c: fix off-by-one error.
31307
31308 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
31309
31310         * class.c: fix mono_class_from_mono_type () for szarray types.
31311         Remove unused cache check in mono_class_from_type_spec().
31312         * icall.c: *type_from_name () functions handle simple arrays and byref.
31313         * reflection.c: handle byref and szarray types. Handle methods without
31314         body (gets P/Invoke compilation working). Handle types and fields in
31315         get_token ().
31316         * reflection.h: add rank to MonoTypeInfo.
31317
31318 2002-01-10  Dick Porter  <dick@ximian.com>
31319
31320         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
31321         internal calls
31322
31323 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
31324
31325         * icall.c: initialize class in type_from_handle ().
31326         Loop also in parent classes for get_method ().
31327         * reflection.c: properly encode class and valuetype types.
31328         Start on encoding TypeBuilder types. Handle fieldrefs.
31329         Use correct length when registering a user string.
31330         Handle ConstructorBuilder and MonoMethod in get_token ().
31331         Make mono_type_get_object () aware of cached types.
31332         * object.c: back out change to mono_string_new ().
31333
31334 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
31335         * object.c: mono_string_new should return a NULL when the string 
31336         passed in is NULL -- not try to deference it.
31337         
31338 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
31339
31340         * icall.c: hack to make IsSubType work for TypeBuilders.
31341         * reflection.c: emit constructors before methods.
31342         Retrieve param names in mono_param_get_objects().
31343
31344 2002/01/05  Nick Drochak  <ndrochak@gol.com>
31345
31346         * Makefile.am: fix list of headers and sources so automake 1.5
31347         doesn't complain. Removed \# at end of list.
31348
31349 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
31350
31351         * reflection.c: get token for a method ref. Set return type of
31352         constructor to void.
31353         * loader.c: debug message.
31354         * class.c: typo fix.
31355
31356 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
31357
31358         * icall.c: fix array init with rank > 1. FindMembers
31359         loops in parent class as well.
31360         * image.c: do not insert nested types in name cache.
31361         * reflection.c: warning fix.
31362         * reflection.h: add override method (for interface impl).
31363
31364 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
31365
31366         * metadata.c: fix customattr decoding.
31367
31368 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
31369
31370         * rawbuffer.cs: Added native Win32 implementation, avoids using
31371         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
31372
31373 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
31374
31375         * class.c: make the low-level routines handle the cache.
31376
31377 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
31378
31379         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
31380
31381 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
31382
31383         * class.c: fix mono_array_element_size() for objects.
31384         * class.h, class.c: add properties to MonoClass and load them
31385         at init time.
31386         * icall.c: check with isinst() when assigning a value to an array
31387         instead of requiring the classes to match exactly.
31388         Implemented icall for System.Type::GetType().
31389         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
31390         enums. Handle bindingflags when looking for methods and fields.
31391         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
31392         and mono_metadata_methods_from_property().
31393         * reflection.h, reflection.c: added structures for propreties,
31394         parameters and enums. Implemented mono_property_get_object() and
31395         mono_param_get_objects().
31396
31397 2001-12-18  Dick Porter  <dick@ximian.com>
31398
31399         * file-io.c: Use mono_string_to_utf16() instead of
31400         mono_string_chars()
31401
31402         * object.c: Added mono_string_to_utf16(), which copies the non
31403         NULL-terminated MonoString into a new double-null-terminated
31404         buffer.
31405
31406 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
31407
31408         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
31409
31410 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
31411
31412         * file-io.c: raise exceptions if handle is invalid.
31413
31414 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
31415
31416         * assembly.c: yet another check for mscorlib.
31417         * class.c, class.h: load nesting info for classes.
31418         * icall.c: many new functions to support the Reflection classes.
31419         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
31420         * reflection.h, reflection.c: mono_image_create_token(),
31421         mono_assembly_get_object(), mono_type_get_object(),
31422         mono_method_get_object(), mono_field_get_object(): methods to return
31423         objects that parallel the C representation of assemblies, types,
31424         methods, fields.
31425
31426 2001-12-11  Dick Porter  <dick@ximian.com>
31427
31428         * icall.c:
31429         * file-io.c: Internal calls for file IO.
31430
31431 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
31432
31433         * tabledefs.h: missing FileAttributes.
31434         * verify.h, verify.c: use is_valid_string () to simplify and check for
31435         valid strings more correctly. Fix warnings and speeling.
31436         Check more tables: Filed, File, ModuleRef, StandAloneSig.
31437         Check code: branches, maxstack, method calls.
31438
31439 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
31440
31441         * object.c (mono_object_allocate): removed static, so that the jit
31442         can allocate value types.
31443
31444         * icall.c (ves_icall_System_DateTime_GetNow): impl.
31445
31446 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
31447
31448         * class.c: init enum types right away and register the
31449         token->MonoClass map in mono_class_create_from_typedef ().
31450         * verify.h, verify.c: first cut of the verifier.
31451         * pedump.c: add --verify switch to verify metadata tables.
31452         * tabledefs.h: add some missing enums.
31453
31454 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
31455
31456         * class.c (mono_install_runtime_class_init): impl.
31457         (mono_class_init): renamed mono_class_metadata_init to
31458         mono_class_init, also removed the metadata_inited flag
31459
31460         * object.c (mono_object_isinst): use faster algorithm
31461
31462 2001-11-30  Radek Doulik  <rodo@ximian.com>
31463
31464         * mono-endian.h: reverted last change
31465         added function prototypes
31466
31467         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
31468         add mono-endian.c back
31469
31470         * mono-endian.c: returned back, as Paolo pointed out, it's needed
31471         for unaligned access, I've mistaked it with endianess. I am
31472         sorry.
31473         (mono_read16): fix reverted endianess
31474         (mono_read64): ditto
31475         (mono_read32): ditto
31476
31477 2001-11-30  Dick Porter  <dick@ximian.com>
31478
31479         * exception.c: Implement mono_exception_from_name()
31480
31481 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
31482
31483         * metadata.h, metadata.c: remove params_size and locals_size and their
31484         calculation from the metadata code: they are only usefult to the
31485         interp.
31486
31487 2001-11-29  Radek Doulik  <rodo@ximian.com>
31488
31489         * object.c (mono_ldstr): swap bytes here, it's probably not the
31490         best place, but works for me now, I'll redo it once I know mono
31491         better, also note that I add PROT_WRITE and don't reset back, also
31492         note that it's only affects big endians, so x86 should be OK
31493
31494         * mono-endian.h (read16): use just glib macros for both endians
31495
31496         * mono-endian.c: removed as glib macros are used in in
31497         mono-endian.h so we don't need to care about endianess for read
31498         macros as glib does that for us already
31499
31500 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
31501
31502         * class.h, class.h: take minimum alignment into consideration so
31503         that the fields of a class remain aligned also when in an array.
31504
31505 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
31506
31507         * loader.h, loader.c: add mono_method_get_param_names().
31508         * class.c: 0-init class fields.
31509
31510 2001-11-26  Dick Porter  <dick@ximian.com>
31511
31512         * icall.c:
31513         * threads-types.h:
31514         * threads.c: New file that handles System.Threading on all platforms
31515
31516         * object.c: 
31517         * object.h: Remove the synchronisation struct from MonoObject,
31518         replace it with a pointer that gets initialised on demand
31519
31520         * Makefile.am: Replace all the system-specific threading code with
31521         a single file that uses the new wrapper library
31522
31523 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
31524
31525         * class.c, class.h: add mono_install_trampoline() so that the runtime
31526         can register a function to create a trampoline: removes the ugly
31527         requirement that a runtime needed to export arch_create_jit_trampoline.
31528         * object.h, object.c: added mono_install_handler() so that the runtime
31529         can install an handler for exceptions generated in C code (with
31530         mono_raise_exception()). Added C struct for System.Delegate.
31531         * pedump.c: removed arch_create_jit_trampoline.
31532         * reflection.c: some cleanups to allow registering user strings and
31533         later getting a token for methodrefs and fieldrefs before the assembly
31534         is built.
31535         * row-indexes.h: updates and fixes from the new ECMA specs.
31536
31537 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
31538
31539         * class.h, class.c: add enum_basetype field to MonoClass.
31540         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
31541         to get index in the constant table reated to a field, param or
31542         property.
31543         * reflection.h, reflection.c: handle constructors. Set public-key and
31544         version number of the built assembly to 0.
31545         * row-indexes.h: update from new ECMA spec.
31546
31547 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
31548
31549         * class.h, class.c: add a max_interface_id to MonoClass.
31550         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
31551         since it's used to do that. Added mono_type_type_from_obj().
31552         Make GetType() return NULL instead of segfaulting if the type was not
31553         found. Handle simple arrays in assQualifiedName.
31554         * object.h: add a struct to represent an Exception.
31555         * reflection.c: output call convention in method signature.
31556         Add code to support P/Invoke methods and fixed offsets for fields.
31557
31558 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
31559
31560         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
31561         the value.
31562         * icall.c: use mono_array_addr instead of array->vector: fixes the
31563         reflection image writing.
31564         * reflection.c: init call convention byte to 0 in method signature.
31565         Encode the property signature. Don't output property-related methods
31566         twice. Really process the properties for a type (don't cast a field to
31567         a property, my mom always told me that).
31568         Fix 64 bit issues in pointer alignment in a different and more
31569         readable way.
31570
31571 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
31572
31573         * loader.h: Removed type class from MonoDefaults, added monotype
31574
31575         * loader.c: Loaded MonoType, removed loading of Type
31576
31577         * icall.c (my_mono_new_object): Now returns a System.MonoType,
31578         and fills in System.Type._impl with a RuntimeTypeHandle rather
31579         than the actual MonoClass *
31580
31581         (ves_icall_type_from_handle): change from type_class to
31582         monotype_class
31583
31584         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
31585         implemented
31586
31587         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
31588         implemented
31589
31590         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
31591
31592         (ves_icall_System_Reflection_Assembly_GetType): implemented
31593
31594         (ves_icall_System_MonoType_assQualifiedName): implemented
31595
31596         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
31597
31598 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
31599
31600         * assembly.c (mono_assembly_open): Implement a cache for the
31601         assemblies. 
31602
31603         (mono_assembly_close): only destroy the assembly when the last
31604         reference is gone.
31605         
31606 2001-11-09  Dick Porter  <dick@ximian.com>
31607
31608         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
31609
31610 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
31611
31612         * class.c (mono_class_metadata_init): bug fix: compute the right slot
31613
31614 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
31615
31616         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
31617         from Martin Weindel.
31618         * object.h: add mono_string_chars ().
31619
31620 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
31621
31622         * reflection.c (build_compressed_metadata): Eliminates warnings
31623         and uses 64-bit clean code.
31624
31625         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
31626         (mono_type_equal): Change signature to eliminate warnings.
31627
31628 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
31629
31630         * icall.c, loader.c: remove the internalcall array constructors.
31631         Changes to match the new MonoArray structure.
31632         * object.h, object.c: an array object doesn't allocate an extra
31633         vector. Add mono_array_new_full () to create jagged arrays easily.
31634
31635 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
31636
31637         * metadata.h, metadata.c: add mono_metadata_field_info () to
31638         retreive all the info about a field from vairous tables.
31639         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
31640         * class.h, class.c: augment MonoClassField with more info.
31641         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
31642         policy and load a field's RVA if needed.
31643
31644 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
31645
31646         * class.c (mono_class_metadata_init): create a trampoline for all
31647         virtual functions instead of actually compiling them.
31648
31649 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
31650
31651         * class.h, class.c: include name in MonoClassField.
31652         * class.c: fix fundamental type of System.Object and System.String.
31653         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
31654         tokens in ldtoken.
31655         * icall.c: remove internalcalls for the Reflection stuff that is now
31656         done in C# code.
31657         * loader.c: mono_field_from_memberref () implementation.
31658         * mono-endian.c: thinko (s/struct/union/g).
31659         * object.c, object.h: make the mono_string_* prototypes actually use
31660         MonoString instead of MonoObject.
31661         * reflection.c, reflection.h: updates for changes in the reflection
31662         code in corlib: we use C structures that map to the actual C# classes.
31663         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
31664         fat method header if needed and use the info from the ILGenerator for
31665         methods. Handle fields in types. Misc fixes.
31666
31667 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
31668
31669         * class.c (mono_class_metadata_init): bug fix: always allocate
31670         space for static class data
31671
31672 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
31673
31674         * class.c (mono_compute_relative_numbering): use relative
31675         numbering to support fast runtime type checks.
31676
31677 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
31678
31679         * class.c (mono_class_create_from_typeref): added debugging output
31680         to print class name when MonoDummy is returned instead of real class
31681
31682 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
31683
31684         * class.c (mono_class_metadata_init): interface offset table now
31685         contains pointers into the vtable - this is more efficient for the jit
31686
31687 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
31688
31689         * class.c (mono_class_metadata_init): use a temporary vtable (the
31690         old algorithm only worked for the interpreter, but not for the jit)
31691
31692 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
31693
31694         * loader.c (method_from_memberref): use mono_class_get to get the
31695         class of an array instead of using System.Array directly.
31696         (mono_get_method): also add MEMBERREF methods to the method cache
31697         which usefull for arrays.
31698
31699 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
31700
31701         * pedump.c (arch_compile_method): added to compute vtable entry
31702
31703         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
31704         number of interfaces.
31705         
31706         * class.h: merged MonoArrayClass into MonoClass
31707
31708         * class.c (mono_class_create_from_typedef): compute the vtable size and
31709         allocate space to include the vtable inside MonoClass
31710         (mono_class_metadata_init): initialize the vtable
31711
31712 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
31713
31714         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
31715         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
31716         * image.c: endian fixes by Laurent Rioux.
31717         * object.h, object.c: rename MonoStringObject to MonoString and
31718         MonoArrayObject to MonoArray. Change some function names to conform to
31719         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
31720         guint16* as first argument, so don't use char*.
31721         Provide macros to do the interesting things on arrays in a portable way.
31722         * threads-pthread.c: updates for the API changes and #include <sched.h>
31723         (required for sched_yield()).
31724         * icall.c: updates for the API changes above.
31725         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
31726         platforms that need them.
31727
31728 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
31729
31730         * class.c: set the correct type for all the fundamental
31731         type when loading the class.
31732
31733 2001-10-05  Dick Porter  <dick@ximian.com>
31734
31735         * threads-pthread.c (pthread_mutex_timedlock): Simple
31736         compatibility version for C libraries that lack this call.
31737
31738 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
31739
31740         * class.c: MonoTypes stored in MonoClass are stored as
31741         fundamental MonoTypes when the class represents a
31742         fundamental type (System.Int32, ...).
31743         The TypeHandle return by ldtoken is a MonoType*.
31744         * icall.c: ves_icall_get_data_chunk () write out all the
31745         PE/COFF stuff. Implement ves_icall_define_method (),
31746         ves_icall_set_method_body (), ves_icall_type_from_handle ().
31747         * image.c: properly skip unknown streams.
31748         * loader.h, loader.c: add type_class to mono_defaults.
31749         * metadata.c, metadata.h: export compute_size () as
31750         mono_metadata_compute_size () with a better interface.
31751         Typo and C&P fixes.
31752         * pedump.c: don't try to print the entry point RVA if there is no entry point.
31753         * reflection.c, reflection.h: many cleanups, fixes, output method
31754         signatures and headers, typedef and typeref info, compress the metadata
31755         tables, output all the heap streams, cli header etc.
31756         * row-indexes.h: typo fixes.
31757
31758 2001-10-04  Dick Porter  <dick@ximian.com>
31759
31760         * object.h: Add a synchronisation mutex struct to MonoObject
31761
31762         * object.c (mono_new_object): Initialise the object
31763         synchronisation mutexes
31764
31765         * icall.c: System.Threading.Monitor internal calls
31766         
31767         * threads-pthread.h:
31768         * threads-pthread.c: System.Threading.Monitor internal calls
31769
31770         * threads-types.h: New file, includes the system-specific thread
31771         structures
31772         
31773         * threads-pthread-types.h:
31774         * threads-pthread-types.c: New files, handle pthread-specific
31775         synchronisation types
31776
31777         * threads-dummy-types.h: 
31778         * threads-dummy-types.c: New files of dummy support for
31779         thread-specific types
31780
31781         * metadata.c:
31782         * image.c:
31783         * pedump.c: include mono-endian.h not endian.h
31784         
31785         * Makefile.am: More threads files.
31786         Name mono-endian.h not endian.h
31787
31788 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
31789
31790         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
31791         stuff and implement a few more bits.
31792         * icall.c: a field needs to be dereferenced twice. Do not use the same
31793         name for two variables in the same scope.
31794         * image.c, image.h: cleanups.
31795
31796 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
31797
31798         * class.c (mono_class_metadata_init): bug fix: compute the right size
31799
31800 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
31801
31802         * icall.c: implemented some of the Reflection internalcalls.
31803         * image.c, image.h: start writing out the PE/COFF image.
31804         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
31805         that does the reverse than decode_blob_size ().
31806         * object.c: use mono_metadata_encode_value (). Move here
31807         temporary implementation of mono_string_to_utf8 ().
31808         * rawbuffer.c: make malloc_map static.
31809
31810 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
31811
31812         * metadata.c: fix type comparison for arrays.
31813         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
31814         Added a couple of new classes to monodefaults.
31815         * icall.c: added a couple of Reflection-related internalcalls.
31816         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
31817         Added a byval_arg MonoType to MonoClass.
31818
31819 2001-09-28  Dick Porter  <dick@ximian.com>
31820
31821         * icall.c:
31822         * threads-pthread.h: 
31823         * threads-pthread.c: Implemented internal calls for
31824         LocalDataStoreSlot operations.  Applied mutexes around all shared
31825         data.  Reworked the thread creation and Start() operations to
31826         avoid a race condition.
31827         
31828         * threads-dummy.h:
31829         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
31830
31831 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
31832
31833         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
31834
31835 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
31836
31837         * class.c, loader.c: warn and return NULL instead of erroring out.
31838         * icall.c: added System.AppDomain::getCurDomain().
31839         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
31840
31841 2001-09-25  Dick Porter  <dick@ximian.com>
31842
31843         * threads-pthread.h:
31844         * threads-pthread.c: Implemented timed thread joining and added
31845         System.Threading.Thread::Join_internal internal call
31846
31847         * icall.c: Added System.Threading.Thread::Join_internal internal call
31848
31849         * threads-dummy.h:
31850         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
31851
31852 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
31853
31854         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
31855         mono_string_intern () to implement the semantics of the ldstr opcode
31856         and the interning of System.Strings.
31857         * icall.c: provide hooks to make String::IsIntern and String::Intern
31858         internalcalls.
31859
31860 2001-09-23  Dick Porter  <dick@ximian.com>
31861
31862         * threads-dummy.c: 
31863         * threads-dummy.h: New files of dummy threading routines
31864
31865         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
31866         support code based on system specifics
31867
31868         Rename PTHREAD_LIBS to THREAD_LIBS
31869         
31870 2001-09-23  Dick Porter  <dick@ximian.com>
31871
31872         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
31873         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
31874         internal calls.
31875         (mono_thread_init): Set up a Thread object instance to return when
31876         the main thread calls Thread.CurrentThread
31877         (mono_thread_cleanup): Wait for all subthreads to exit
31878
31879         * icall.c: New internal calls for System.Threading.Thread::Sleep
31880         (including Schedule) and CurrentThread
31881
31882         * threads.h: New file, to insulate thread-specific stuff from the
31883         rest of the code
31884
31885 2001-09-21  Dick Porter  <dick@ximian.com>
31886
31887         * threads-pthread.h: 
31888         * threads-pthread.c: New file, for handling pthreads-style
31889         threading support.  Start() now starts a new thread and executes
31890         the ThreadStart delegate instance.
31891
31892         * icall.c: Added the internalcall for
31893         System.Threading.Thread::Start_internal
31894
31895         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
31896
31897 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
31898
31899         * loader.c: work around the different signatures for delegates
31900         constructors csc generates in compiled code vs the ones compiled in mscorlib.
31901
31902 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
31903
31904         * class.h, class.c: add mono_class_get_field_from_name ().
31905         * *: Fix C comments and other ANSI C issues.
31906
31907 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
31908
31909         * endian.h, assembly.c: fix some endianness issues.
31910
31911 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
31912
31913         * loader.h, load.c: add delegate_class to mono_defaults.
31914         Handle runtime provided methods in mono_get_method ().
31915
31916 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
31917
31918         * loader.c (mono_get_method): use pinvoke for internal call
31919
31920         * icall.c: use pinvoke for internal call
31921
31922         * loader.c (method_from_memberref): set the method name
31923
31924 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
31925
31926         * metadata.c: help the compiler generate better code for
31927         mono_class_from_mono_type ().
31928
31929 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
31930
31931         * class.c (mono_class_metadata_init): delayed computing of the
31932         class size to mono_class_metadata_init ()
31933
31934 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
31935
31936         * class.c, class.h: add an interfaces member to MonoClass.
31937         * image.c, image.h: add assembly_name field to MonoImage
31938         from the assembly table.
31939         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
31940
31941 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
31942
31943         * class.c: Handle Array in mono_class_from_mono_type ().
31944         * metadata.c, pedump.c: some endian fixes.
31945
31946 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
31947
31948         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
31949         * metadata.c: fix small problem introduced with the latest commit.
31950
31951 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
31952
31953         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
31954         We don't need a MonoMetadata pointer anymore to compare signatures in
31955         mono_metadata_signature_equal (), update callers.
31956         Reduced memory usage an number of allocations for MonoMethodHeader and
31957         MonoMethodSignature.
31958
31959 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
31960
31961         * metadata.c: added compare for szarray.
31962
31963 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
31964
31965         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
31966         and add a couple more types to it and mono_defaults. Give an hint on
31967         classes that need implementing in our corlib and are referenced
31968         in mscorlib.
31969
31970 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
31971
31972         * class.h, class.c: keep track if a class is also an Enum.
31973         * loader.c: Implement a couple more types for use in libffi
31974         marshalling. Gives better diagnostics when failing to dlopen
31975         a library. Set method->klass for P/Invoke methods, too.
31976
31977 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
31978
31979         * class.c, class.h: add a MonoType this_arg to MonoClass that
31980         represents a pointer to an object of the class' type that
31981         can be used by the interpreter and later the type cache.
31982         Add best guess alignment info for valuetype objects.
31983
31984 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
31985
31986         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
31987         into MonoType: one less level of indirection and allocation and
31988         simplifies quite a bit of code. Added cache for MonoTypes that are
31989         used frequently, so that we don't need to allocate them all the time.
31990
31991 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
31992
31993         * class.c (mono_class_create_from_typedef): System.Enum is also a
31994         value type, although it does not derive from System.ValueType
31995         (maybe a bug in the ms compiler?)
31996
31997         * metadata.c (mono_type_size): return the right size for value types
31998
31999         * loader.c (mono_get_method): only initialize method header if not abstract
32000
32001         * class.c (mono_class_from_mono_type): use mono_default values. 
32002
32003 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
32004
32005         * *: use MonoClass pointers instead of <type_tokens>
32006         
32007         * class.h: new flag: metadata_inited.
32008
32009         * class.c (mono_class_metadata_init): impl.
32010         (mono_class_instance_size): impl.
32011         (mono_class_data_size): impl.
32012
32013 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
32014
32015         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
32016         MonoClass now has the name and name_space fields. 
32017         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
32018         mono_get_method () takes and optional MonoClass as argument.
32019         Removed mono_typedef_from_name() and added mono_class_token_from_name()
32020         instead that takes advantage of a map from class names to typedef
32021         tokens in MonoImage.
32022
32023 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
32024
32025         * metadata.c: zero is not a valid alignment boundary.
32026         Merge MONO_TYPE_VOID in default decoding code.
32027
32028 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
32029
32030         * image.h: merged MonoMetadata into MonoImage
32031
32032         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
32033         identify the type of elements.
32034
32035 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
32036
32037         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
32038         * cil-coff.h: split MonoMSDOSHeader and add size info.
32039         * image.c: add some consistency checks.
32040         * metadata.c: fix row size computation: one programmer
32041         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
32042         add explanation for the locator routine.
32043         Fix decoding of size in method header.
32044         
32045 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
32046
32047         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
32048         (g_concat_dir_and_file): Bring g_concat_dir_and_file
32049         function from gnome-libs.  This uses the right path separator
32050         based on the OS, and also works around a bug in some systems where
32051         a double slash is not allowed. 
32052         (default_assembly_name_resolver): Use g_concat_dir_and_file
32053         (mono_assembly_open): ditto.
32054
32055 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
32056
32057         * metadata.c (mono_metadata_signature_equal): impl.
32058
32059         * *: void is now a realy MonoType (instead of using NULL)
32060         
32061         * metadata.c (do_mono_metadata_parse_type): use
32062         mono_metadata_parse_type to parse void value.
32063
32064 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
32065
32066         * metadata.c, metadata.h: in the signature and method header store
32067         only the space required for holding the loca vars and incoming arguments.
32068
32069 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
32070
32071         * metadata.c (do_mono_metadata_parse_type): treat void like any
32072         other type (instead of assigning NULL);
32073
32074 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
32075
32076         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
32077
32078 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
32079
32080         * image.c (do_mono_image_open): added a cache for arrays.
32081
32082 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
32083
32084         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
32085         decode a single column from a row in a metadata table and changes
32086         to take advantage of it in the typedef locator (gives a nice speed up).
32087         Store offset info for function params.
32088
32089 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
32090
32091         * image.h (MONO_IMAGE_IS_CORLIB): removed 
32092
32093 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
32094
32095         * assembly.c: how could mono_assembly_close () had ever worked?
32096         * metadata.c, metadata.h: provide offset info for local vars.
32097         Implement mono_type_size () to take care of alignment as well
32098         as size (it was mono_field_type_size in cli/class.c before).
32099
32100 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
32101
32102         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
32103
32104         * assembly.h (CORLIB_NAME): set to corlib.dll
32105
32106         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
32107
32108 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
32109
32110         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
32111         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
32112         tokentype.h: massive namespace cleanup.
32113
32114 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
32115
32116         * metadata.h, metadata.c: decode exception clauses when parsing method header.
32117
32118 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
32119
32120         * metadata.c (mono_metadata_free_type): added check for type !=
32121         NULL (void) before calling mono_metadata_free_type()
32122
32123 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
32124
32125         * metadata.h, row_indexes.h: added header with enumerations to use
32126         to index in the columns from tables in metadata and to decode coded
32127         tokens: we should start using this instead of embedding magic numbers
32128         all over the code.
32129
32130 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
32131
32132         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
32133         Move metadata_t info from cli_image_info_t to MonoImage, where
32134         it's easily accessible. Changed all the uses accordingly.
32135         Added the method and class caches to MonoImage.
32136         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
32137         and mono_metadata_decode_value () signature to be more consistent
32138         with the other parse functions (and simplify code). Taken advantage
32139         of zero-length array allocation with GCC. Removed reduntant (and
32140         wrong) MonoFieldType struct and use MonoParam instead. Changed
32141         mono_metadata_parse_field_type () to use common code for parsing.
32142         Added mono_metadata_typedef_from_field () and
32143         mono_metadata_typedef_from_method () to lookup a typedef index from a
32144         field or method token.
32145         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
32146
32147 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
32148
32149         * metadata.c (mono_metadata_parse_field_type): Implement. 
32150         (do_mono_metadata_parse_type): Split engine from
32151         mono_metadata_parse_type, so that we can create smaller structures
32152         for things that just have one pointer to the MonoType (look at
32153         the MonoFieldType)
32154
32155 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
32156
32157         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
32158         as Jan Gray found out, it is incorrect. 
32159
32160 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
32161
32162         * assembly.c: Implement asssembly loading.  This loads an image
32163         and loads all the referenced assemblies.  Come to think of it, we
32164         could always do lazy loading of the assemblies. 
32165
32166         * image.c (mono_image_open): Keep loaded images in a hashtable.
32167
32168         * image.h (MonoImage): Add reference count.
32169
32170 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
32171
32172         * assembly.c (mono_assembly_open): Keep track of the file name in
32173         case the assembly has no ASSEMBLY table.
32174
32175         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
32176         from get.c here.
32177
32178 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
32179
32180         * metadata.c, metadata.h: decode local vars in method header
32181         parse function. Change callers accordingly.
32182
32183 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
32184
32185         * metadata.h, cil-coff.h: protect against multiple inclusion.
32186         Added some new structures to hold information decoded from metadata:
32187         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
32188         and relevant decoding/free functions.
32189         * metadata.c: implement decoding functions. Add warning for out of bounds
32190         index in mono_metadata_locate(). Implement mono_get_method () to retreive
32191         all the info about a method signature and invocation. Remove check on
32192         uninitialized local var in parse_mh() and fix memory leak.
32193
32194 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
32195
32196         * metadata.h: More macros.
32197
32198         * tokentype.h: New file.
32199
32200 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
32201
32202         * assembly.c: added a consistency check and initialize
32203         some structures with g_new0().
32204         * metadata.c: fixed a couple more bugs in table size computation
32205         and add other checks for out-of bound access to metadata.
32206
32207 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
32208
32209         * metatada.c: fix bugs computing table sizes. Spew a
32210         warning when index in string heap is out of bounds.
32211
32212 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
32213
32214         * metadata.h: Add a couple of macros to manipulate tokens. 
32215
32216 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
32217
32218         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
32219         cli_section_tables).
32220
32221 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
32222
32223         * metadata.c (mono_metadata_user_string): New function, provides
32224         access to the UserString heap. 
32225
32226 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
32227
32228         * metadata.c: Add inline documentation.
32229
32230 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
32231
32232         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
32233         files. 
32234
32235 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
32236
32237         * typeattr.h: New file, TypeAttribute flags. 
32238
32239 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
32240
32241         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
32242         mono_assembly_ensure_section): Section loading code.
32243         (load_section_tables): Load the sections.
32244
32245         * mono/metadata/metadata.c (mono_metadata_locate_token,
32246         mono_metadata_locate): Functions to locate the information
32247         definition given a token or a table and an index.
32248         (mono_metadata_compute_table_bases): New.
32249         (compute_size): New function to compute the sizes of the various
32250         tables.
32251
32252         * mono/metadata/metadata.h: Finish listing the different index
32253         types. 
32254
32255         * mono/metadata/pedump.c: Improve to dump new information.
32256
32257 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
32258
32259         * mono/metadata/metadata.c: Entered all the tables matching
32260         Beta2. 
32261
32262         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
32263
32264
32265
32266