25085c0a808ccdb3b397cb269cfbce6409a6c948
[mono.git] / mono / metadata / ChangeLog
1 2009-06-17  Zoltan Varga  <vargaz@gmail.com>
2
3         * marshal.c (get_runtime_invoke_type): Don't share primitive types
4         for return values.
5
6 2009-06-16 Rodrigo Kumpera  <rkumpera@novell.com>
7
8         * metadata-verify.c: Initial method header verification.
9
10 2009-06-16 Rodrigo Kumpera  <rkumpera@novell.com>
11
12         * metadata-verify.c (verify_import_table): The IAT contents
13         might end been patched by the windows DL when running with
14         coree enabled.
15
16 2009-06-15 Rodrigo Kumpera  <rkumpera@novell.com>
17
18         * class.c (mono_class_from_typeref): If the enclosing type is not
19         found return null instead of crashing. Fixes #508487.
20
21 2009-06-15  Atsushi Enomoto  <atsushi@ximian.com>
22
23         * normalization-tables.h : updated to the latest unicode charcter
24           data.
25         * appdomain.c : bump corlib version.
26
27 2009-06-14  Zoltan Varga  <vargaz@gmail.com>
28
29         * class.c (mono_class_from_name): Fix support for assembly references
30         in the EXPORTEDTYPE table. Fixes #511704.
31
32 2009-06-13  Geoff Norton  <gnorton@novell.com>
33
34         * domain.c: Ensure that mono_domain_assembly_open actually opens the
35         assembly in the target domain.
36
37 2009-06-12  Robert Jordan  <robertj@gmx.net>
38
39         * cominterop.c (cominterop_get_ccw): Increment mspec's SizeParamIndex
40         because "this" of the managed signature has become an
41         ordinary parameter in the unmanaged signature.
42
43 2009-06-12  Zoltan Varga  <vargaz@gmail.com>
44
45         * class-internals.h (struct _MonoGenericContainer): Add an 'image'
46         field for owner-less generic containers.
47
48         * reflection.c (mono_reflection_initialize_generic_parameter): Set the
49         image field of the owner-less generic containers created here.
50
51         * metadata.c (mono_metadata_load_generic_params): Ditto, the
52         contain is ownerless until the caller sets its owner.
53
54         * metadata.c (type_in_image): Handle owner-less generic containers
55         correctly.
56         
57 2009-06-11  Zoltan Varga  <vargaz@gmail.com>
58
59         * image.c (mono_image_close): Support debug_assembly_unload for
60         dynamic images too.
61
62 2009-06-11 AndrĂ©s G. Aragoneses  <aaragoneses@novell.com>
63
64         * class.c: Fix some typos in comments.
65
66 2009-06-11  Zoltan Varga  <vargaz@gmail.com>
67
68         * reflection.c (add_custom_modifiers): Avoid reading invalid memory.
69
70         * threads.c (mono_thread_execute_interruption): Avoid creating the
71         abort exception object while holding the synch_cs lock.
72
73 2009-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
74
75         * metadata-verify.c: Verify basic cattr content.
76
77 2009-06-10  Zoltan Varga  <vargaz@gmail.com>
78
79         * reflection.c (add_exported_type): Don't set the FORWARDER flag on
80         nested types.
81         
82         * reflection.c (mono_image_fill_export_table_from_type_forwarders): Add
83         support for nested types. Fixes #511704.
84
85 2009-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
86
87         * metadata-verify.c: Verify methodspec signatures.
88
89 2009-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
90
91         * metadata-verify.c: Verify typespec signatures.
92
93 2009-06-09  Zoltan Varga  <vargaz@gmail.com>
94
95         * metadata.c (free_inflated_method): Call 
96         mono_marshal_free_inflated_wrappers (), which was missed earlier.
97
98 2009-06-08  Miguel de Icaza  <miguel@novell.com>
99
100         * mono-config.c: Small change to report the PPC64/ILP32 model.
101
102 2009-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
103
104         * metadata-verify.c (parse_type): Check szarray.
105
106 2009-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
107
108         * metadata-verify.c (parse_type): Check fnptr.
109
110 2009-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
111
112         * metadata-verify.c (parse_type): Check generic instances.
113
114 2009-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
115
116         * metadata-verify.c (parse_type): Check array shape.
117
118 2009-06-05  Robert Jordan  <robertj@gmx.net>
119
120         * class.c (mono_class_create_from_typedef): Check only for
121         mscorlib's System.Array.
122
123 2009-06-04 Rodrigo Kumpera  <rkumpera@novell.com>
124
125         * metadata-verify.c (parse_type): Check pointer, class/valuetype
126         and generic params. 
127
128         * metadata-verify.c (parse_field): Check the signature.
129
130 2009-06-04 Rodrigo Kumpera  <rkumpera@novell.com>
131
132         * metadata-verify.c: Implement locals signature check.
133
134 2009-06-04  Marek Safar  <marek.safar@gmail.com>
135
136         * domain.c: Add .NET 4.0 Beta 1 version.
137
138 2009-06-04  Bill Holmes  <billholmes54@gmail.com>
139
140         * cominterop.c (cominterop_ccw_queryinterface): Fix for bug 499566.
141           For QueryInterface on CCWs consider the base class
142           interfaces as well.
143
144         Code is contributed under MIT/X11 license.
145
146 2009-06-04  Zoltan Varga  <vargaz@gmail.com>
147
148         * wrapper-types.h: Delete STATIC_RGCTX_INVOKE.
149
150         * marshal.c (mono_marshal_ret_static_rgctx_invoke): Remove, no longer
151         used.
152
153         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Avoid
154         adding a static-rgctx invoke wrapper, it is done by the runtime trampolines.
155
156         * generic-sharing.c (inflate_other_data): Ditto.
157         
158 2009-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
159
160         * metadata-verify.c: Implement property signature check.
161
162 2009-06-04  Mark Probst  <mark.probst@gmail.com>
163
164         * sgen-gc.h: Register saving support for PPC.
165
166 2009-06-04  Mark Probst  <mark.probst@gmail.com>
167
168         * sgen-gc.c: Fixed a pthread TLS screwup.
169
170 2009-06-04  Mark Probst  <mark.probst@gmail.com>
171
172         * sgen-gc.c: Do TLS using pthread API if __thread keyword is not
173         supported.
174
175 2009-06-04  Mark Probst  <mark.probst@gmail.com>
176
177         * sgen-gc.c: Disable TLA and managed allocation if the __thread
178         keyword is not supported.
179
180 2009-06-04  Zoltan Varga  <vargaz@gmail.com>
181
182         * marshal.c metadata.c: Applied patch from Ulrich Weigand 
183         <uweigand@de.ibm.com>: Free the wrappers of inflated generic methods when
184         the inflated method is freed. Fixes #508389.
185
186         The code is contributed under the MIT/X11 license.
187         
188 2009-06-03  Zoltan Varga  <vargaz@gmail.com>
189
190         * marshal.c (get_wrapper_target_class): New helper function.
191         (mono_marshal_get_runtime_invoke): Place runtime-invoke wrappers into
192         the <Module> class of the image. Fixes #509049.
193
194 2009-06-01 Rodrigo Kumpera  <rkumpera@novell.com>
195
196         * threads.c (ves_icall_System_Threading_Thread_Sleep_internal):
197         Check if the thread was interrupted and proccess it straight away.
198         Makes abortion much more responsive.
199
200 2009-06-01 Rodrigo Kumpera  <rkumpera@novell.com>
201
202         * threads.c (mono_thread_execute_interruption): Use atomic cas with
203         MonoThread::interruption_requested to match it's counterpart.
204
205         Fixes a hang in abort-stress-1 on a 2 core x86.
206
207         * threads.c (ves_icall_System_Threading_Thread_GetAbortExceptionState):
208         Fix warning.
209
210 2009-06-01 Rodrigo Kumpera  <rkumpera@novell.com>
211
212         Change MonoImage::name_cache to be protected by the image lock
213         instead of the loader lock.
214
215         * appdomain.c (deregister_reflection_info_roots): Protect access
216         to name_cache.
217
218         * class.c (mono_image_init_name_cache): Change from the loader lock
219         to the image lock. Check if the cache wasn't already created.
220
221         * class.c: Change from the loader to the image lock.
222
223         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Fix
224         the code to hold the image lock while iterating over name_cache and
225         not go into mono_array_new holding it.
226
227         * metadata-internals.h: Add a comment about this change.
228
229 2009-06-01 Rodrigo Kumpera  <rkumpera@novell.com>
230
231         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
232         Under the 2.0 profile raise the loader error.
233
234         Fixes #508532.
235
236 2009-06-01 Rodrigo Kumpera  <rkumpera@novell.com>
237
238         * marshal.c (mono_marshal_get_runtime_invoke): Emit the right kind
239         of ldind opcode for generic instances so we don't fail for direct wrappers.
240         This only affect direct calls.
241
242 2009-05-31  Zoltan Varga  <vargaz@gmail.com>
243
244         * reflection.c (create_dynamic_mono_image): Fix warnings.
245
246         * generic-sharing.c (other_info_equal): Ditto.
247         
248 2009-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
249
250         * metadata-verify.c: Implement field signature check.
251
252 2009-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
253
254         * metadata-verify.c: Implement standalone signature check.
255
256 2009-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
257
258         * metadata-verify.c: Implement methodref signature check.
259
260 2009-05-28  Zoltan Varga  <vargaz@gmail.com>
261
262         * object-internals.h (MonoRuntimeCallbacks): New structure containing
263         callbacks supplied by the runtime.
264
265         * object.c (mono_install_callbacks): New internal function to install
266         the callbacks.
267
268         * object.c (mono_create_ftnptr): Move the implementation of this to
269         mini/.
270
271         * object.c (mono_get_addr_from_ftnptr): Ditto.  
272
273 2009-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
274
275         * metadata-verify.c (parse_return_type): Proper byref check.
276         * metadata-verify.c (is_valid_method_signature): Check for zero arity
277         generic signatures and method params.
278
279 2009-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
280
281         * metadata-verify.c (decode_signature_header): Fix bounds check.
282
283         * metadata-verify.c (parse_custom_mods): Check custom mods.
284
285         * metadata-verify.c (parse_type): Do initial basic verification
286         of valid values.
287         
288         * metadata-verify.c (is_valid_method_signature): Parse the generic
289         param count.
290
291 2009-05-26 Rodrigo Kumpera  <rkumpera@novell.com>
292
293         * icall.c (ves_icall_Type_GetMethodsByName): Virtual methods should be
294         discarded based on their most specific definition so we set the method_slots
295         array before checking if the method is acceptable or not.
296
297         Fixes #506757.
298
299 2009-05-26  Mark Probst  <mark.probst@gmail.com>
300
301         * icall.c: Free the old array when resizing a mono_ptr_array.
302
303 2009-05-26  Mark Probst  <mark.probst@gmail.com>
304
305         * reflection.c (create_dynamic_mono_image): Use mono_object_hash()
306         for the hashes whose keys are managed objects.
307
308 2009-05-26  Mark Probst  <mark.probst@gmail.com>
309
310         * object-internals.h, threads.c: Set the execution context on
311         thread start here, not in corlib.
312
313         * appdomain.c: Bump corlib version.
314
315 2009-05-27  Martin Baulig  <martin@ximian.com>
316
317         * mono-debug.c (mono_debug_init): Use `MONO_DEBUG_FORMAT_DEBUGGER'
318         if `_mono_debug_using_mono_debugger' is set to make things work
319         properly when embedding Mono.
320
321 2009-05-25 Rodrigo Kumpera  <rkumpera@novell.com>
322
323         * class.c (mono_class_setup_fields): Don't mark simd types as having
324         16 bytes alignment as the whole runtime doesn't support.
325
326 2009-05-25 Rodrigo Kumpera  <rkumpera@novell.com>
327
328         * metadata-verify.c (safe_read): Use endian safe read macros.
329
330 2009-05-25  Zoltan Varga  <vargaz@gmail.com>
331
332         * object.c (mono_create_ftnptr): Don't allocate from the code mempool since
333         it is read-only when using full aot.
334
335 2009-05-22 Rodrigo Kumpera  <rkumpera@novell.com>
336
337         * metadata-verify.c (is_valid_method_signature): Verify parts
338         of the return type. Provide an error message in case of failure.
339
340 2009-05-22 Rodrigo Kumpera  <rkumpera@novell.com>
341
342         * metadata-verify.c (is_valid_method_signature): Verify the call conv.
343
344 2009-05-22 Rodrigo Kumpera  <rkumpera@novell.com>
345
346         * metadata-verify.c: Include the size prefix in the bounds check.
347
348 2009-05-22  Miguel de Icaza  <miguel@novell.com>
349
350         * icall.c: Remove warnings.
351
352         * mono-config.c: Allow for CONFIG_CPU to be set in config.h and
353         prevent auto-detection based on GCC defines.
354
355         Add PS3
356
357         * metadata-verify.c: Do not include signal.h
358
359         * generic-sharing.c, marshal.c: Add returns to avoid some warning
360         messages.  Not sure why the g_assert_not_reached is not enough to
361         quiet the compiler.
362         
363
364         * appdomain.c: Remove code that is not used when
365         DISABLE_SHADOW_COPY is set.
366
367         * image.c: use g_getenv
368
369 2009-05-21  Miguel de Icaza  <miguel@novell.com>
370
371         * reflection.c: Remove code that it not used with
372         DISABLE_REFLECTION_EMIT is defined.
373
374 2009-05-21  Zoltan Varga  <vargaz@gmail.com>
375
376         * marshal.c (mono_marshal_get_runtime_invoke): Share more runtime
377         invoke wrappers.
378
379 2009-05-20  Miguel de Icaza  <miguel@novell.com>
380
381         * socket-io.c
382         (ves_icall_System_Net_Sockets_Socket_Available_internal): Remove
383         the ifdef here and instead put that on io-layer
384
385 2009-05-19 Rodrigo Kumpera  <rkumpera@novell.com>
386
387         * metadata-verify.c: Verify the generic param constraint table.
388
389 2009-05-19 Rodrigo Kumpera  <rkumpera@novell.com>
390
391         * metadata-verify.c (verify_generic_param_table): Fix
392         thinko on the valid flags bits for generic params.
393
394 2009-05-19 Rodrigo Kumpera  <rkumpera@novell.com>
395
396         * metadata-verify.c: Verify the methodspec table.
397
398 2009-05-19 Rodrigo Kumpera  <rkumpera@novell.com>
399
400         * metadata-verify.c: Verify the generic param table.
401
402 2009-05-19  Mark Probst  <mark.probst@gmail.com>
403
404         * sgen-gc.c: Store and use the count with REMSET_VTYPE.
405
406 2009-05-19  Mark Probst  <mark.probst@gmail.com>
407
408         * sgen-gc.c: Use generation enum more consistently and use the
409         correct generation in mono_gc_register_for_finalization().
410
411 2009-05-18 Rodrigo Kumpera  <rkumpera@novell.com>
412
413         * metadata-verify.c: Verify the nested class table.
414
415 2009-05-18 Rodrigo Kumpera  <rkumpera@novell.com>
416
417         * metadata-verify.c: Verify the manifest resource table.
418
419 2009-05-17  Zoltan Varga  <vargaz@gmail.com>
420
421         * debug-helpers.c (dis_one): Add little-endian support for ldstr.
422
423 2009-05-16  Zoltan Varga  <vargaz@gmail.com>
424
425         * class.c (mono_class_get_vtable_entry): Avoid adding static-rgctx
426         wrappers, this is now done in the JIT.
427         
428         * class.c (mono_set_generic_sharing_supported): New internal function.
429         (mono_class_generic_sharing_enabled): Move the #ifdef stuff to the JIT.
430
431 2009-05-15 Rodrigo Kumpera  <rkumpera@novell.com>
432
433         * metadata-verify.c: Verify the exported type table.
434
435 2009-05-15 Rodrigo Kumpera  <rkumpera@novell.com>
436
437         * pedump.c (main): Fake an assembly for netmodules to make the verifier happy.
438
439 2009-05-15 Rodrigo Kumpera  <rkumpera@novell.com>
440
441         * metadata-verify.c: Verify the file table.
442
443 2009-05-15 Rodrigo Kumpera  <rkumpera@novell.com>
444
445         * metadata-verify.c (verify_assembly_table): Fix an error message.
446
447         * metadata-verify.c: Verify the assemblyref table.
448
449 2009-05-15 Rodrigo Kumpera  <rkumpera@novell.com>
450
451         * metadata-verify.c (verify_assembly_table): Fix the valid
452         bits mask for flags.
453
454 2009-05-15  Zoltan Varga  <vargaz@gmail.com>
455
456         * debug-helpers.c (mono_method_full_name): Print generic parameters of
457         generic methods as well.
458
459 2009-05-15  Geoff Norton  <gnorton@novell.com>
460
461         * gc.c: MachO/Darwin supports and uses semaphores fine for this 
462         use-case and is significantly more performant than the wapi layer.
463
464 2009-05-13 Rodrigo Kumpera  <rkumpera@novell.com>
465
466         * metadata-verify.c: Verify the assembly table.
467
468 2009-05-13 Rodrigo Kumpera  <rkumpera@novell.com>
469
470         * metadata-verify.c: Fix rows limit check.
471
472 2009-05-13 Rodrigo Kumpera  <rkumpera@novell.com>
473
474         * metadata-verify.c: Verify the fieldrva table.
475
476 2009-05-13  Mark Probst  <mark.probst@gmail.com>
477
478         * sgen.c: Speed up weak links and finalizers by grouping them by
479         generation.
480
481 2009-05-13  Mark Probst  <mark.probst@gmail.com>
482
483         * marshal.c (delegate_hash_table_add): When overwriting an entry,
484         free the old GCHandle (only applies to SGen).
485
486 2009-05-13  Zoltan Varga  <vargaz@gmail.com>
487
488         * loader.c (mono_get_method_from_token): Avoid the expensive call to
489         mono_metadata_load_generic_params () for non-generic methods.
490
491 2009-05-12  Mark Probst  <mark.probst@gmail.com>
492
493         * monitor.c, monitor.h (mono_monitor_get_object_monitor_weak_link):
494         New function for returning a monitor's weak link if it has one.
495
496         * sgen-gc.c: Remove an object's monitor's weak link (if it has
497         one) when clearing a domain.  These can still be around because
498         the object might not have been collected.
499
500 2009-05-12  Zoltan Varga  <vargaz@gmail.com>
501
502         * gc.c: Fix a warning.
503
504 2009-05-12  KornĂ©l PĂ¡l  <kornelpal@gmail.com>
505
506         * gc.c (mono_gc_init): Set gc_thread on creation. This avoids the
507         prevous wait that resulted in a deadlock on Windows when initializing
508         the runtime form DllMain. Also results in improved startup time.
509         (finalizer_thread): Get rid of thread_started_event.
510         * threads.c, threads-types.h (mono_thread_create_internal): Return the
511         resulting MonoThread.
512
513         Contributed under MIT/X11 license.
514
515 2009-05-11 Rodrigo Kumpera  <rkumpera@novell.com>
516
517         * metadata-verify.c: Verify the implmap table.
518         Don't require that #US and #Strings be present.
519
520 2009-05-11  Sebastien Pouliot  <sebastien@ximian.com>
521
522         * security-core-clr.c: Delegate checks are done at creation time,
523         not a invocation time. Fix exception for Telerik Silverlight demo
524
525 2009-05-11  Mark Probst  <mark.probst@gmail.com>
526
527         * sgen-gc.c (need_remove_object_for_domain): Remove the special
528         case for the Thread class.
529
530         * threads.c: Do clean-up of abort exception/state in
531         thread_cleanup() instead of Thread.free_internal().  Also clean up
532         current_appcontext.  The reason we have to do that is because
533         those references might point into another domain and if that
534         domain is unloaded before the thread is finalized, they point to
535         invalid data.
536
537 2009-05-10  Andreas Faerber  <andreas.faerber@web.de>
538
539         * null-gc.c (mono_gc_weak_link_add, mono_gc_clear_domain): Fix
540         stub signatures.
541         
542         Contributed unter MIT/X11 license.
543
544 2009-05-09  Miguel de Icaza  <miguel@novell.com>
545
546         * verify.c, metadata-verifier.c: Add support for disabling the
547         verifier in some builds.
548
549         [ Sorry, my previous commit accidentally commited some work in
550         progress ]
551
552 2009-05-08  Zoltan Varga  <vargaz@gmail.com>
553
554         * class.c (mono_class_setup_fields): Set class->field.first for
555         generic instances.
556
557 2009-05-07 Rodrigo Kumpera  <rkumpera@novell.com>
558
559         * metadata-verify.c: Verify the typespec table.
560
561 2009-05-07 Rodrigo Kumpera  <rkumpera@novell.com>
562
563         * metadata-verify.c: Verify the module table.
564
565 2009-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
566
567         * metadata-verify.c: Verify the methodimpl table.
568
569 2009-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
570
571         * metadata-verify.c: Verify the property table.
572
573 2009-05-06  Zoltan Varga  <vargaz@gmail.com>
574
575         * debug-helpers.c (mono_method_desc_match): Add support for generic
576         glob patterns.
577
578 2009-05-05 Rodrigo Kumpera  <rkumpera@novell.com>
579
580         * metadata-verify.c: Verify the propertymap table.
581
582 2009-05-04 Rodrigo Kumpera  <rkumpera@novell.com>
583
584         * metadata-verify.c: Verify the event table.
585
586         * metadata-verify.c (search_sorted_table): Fix offset
587         calculation.
588
589 2009-05-02  Zoltan Varga  <vargaz@gmail.com>
590
591         * domain-internals.h (struct _MonoJitInfo): Add a 'from_llvm' flag.
592
593 2009-05-01  Mark Probst  <mark.probst@gmail.com>
594
595         * gc.c (mono_gc_run_finalize): Don't set the domain too late,
596         because mono_delegate_free_ftnptr() needs it.
597
598 2009-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
599
600         * metadata-verify.c: Verify the eventmap table.
601
602 2009-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
603
604         * metadata-verify.c: Verify the standalonesig table.
605
606 2009-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
607
608         * metadata-verify.c: Verify the field layout table.
609
610 2009-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
611
612         * class.c (mono_type_get_name_recurse): Don't crash
613         for ownerless generic params.
614
615         * debug-helpers.c (mono_type_get_desc): Correct the format
616         for ownerless generic params.
617
618 2009-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
619
620         * metadata-verify.c: Verify the class layout table.
621
622 2009-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
623
624         * metadata-verify.c: Verify the decl security table.
625
626 2009-04-30  Mark Probst  <mark.probst@gmail.com>
627
628         * domain.c (mono_domain_set_internal_with_options): Don't do
629         anything if the old domain is the same as the old one.  Fixes
630         #499326.
631
632 2009-04-30  Mark Probst  <mark.probst@gmail.com>
633
634         * appdomain.c: Deregister the reflection_info roots when unloading
635         a domain.
636
637         * sgen-gc.c, domain.c, gc-internal.h: mono_gc_clear_domain() nulls
638         memory allocated by a domain and frees its disappearing links.
639
640         * boehm-gc.c, null-gc.c: Empty implementation of
641         mono_gc_clear_domain().
642
643 2009-04-30  Mark Probst  <mark.probst@gmail.com>
644
645         * appdomain.c (clear_cached_vtable): Free the static fields memory
646         block.
647
648 2009-04-30  Mark Probst  <mark.probst@gmail.com>
649
650         * gc.c: Set the correct domain when invoking finalizers.
651
652         * appdomain.c: Set the correct domain when creating threads.
653
654 2009-04-30  Mark Probst  <mark.probst@gmail.com>
655
656         * sgen-gc.c: Fix skip size for vectors.
657
658 2009-05-03  Martin Baulig  <martin@ximian.com>
659
660         * mono-debug-debugger.c
661         (mono_debugger_check_breakpoints): Check class init handlers even
662         if we don't have any method load handers.
663
664 2009-04-30  Zoltan Varga  <vargaz@gmail.com>
665
666         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Avoid 
667         returning refonly assemblies if refonly is FALSE. Fixes #499013.
668
669 2009-04-29 Rodrigo Kumpera  <rkumpera@novell.com>
670
671         * metadata-verify.c: Verify the field marshal table.
672
673 2009-04-29 Rodrigo Kumpera  <rkumpera@novell.com>
674
675         * metadata-verify.c: Verify the custom attribute table.
676
677 2009-04-28 Rodrigo Kumpera  <rkumpera@novell.com>
678
679         * metadata-verify.c: Verify the constant table.
680
681 2009-04-28 Rodrigo Kumpera  <rkumpera@novell.com>
682
683         * metadata-verify.c: Verify the memberef table.
684
685 2009-04-28 Rodrigo Kumpera  <rkumpera@novell.com>
686
687         * metadata-verify.c (get_coded_index_token): Remove
688         dead argument.
689
690 2009-04-28 Rodrigo Kumpera  <rkumpera@novell.com>
691
692         * metadata-verify.c: Verify the interfaceimpl table.
693
694 2009-04-28 Rodrigo Kumpera  <rkumpera@novell.com>
695
696         * verify.c: Improve error message.
697
698         * debug-helpers.c (mono_type_get_desc): Harden the code that
699         deals with VAR and MVAR.
700
701 2009-04-28  Zoltan Varga  <vargaz@gmail.com>
702
703         * image.c (mono_image_fixup_vtable): Avoid casting an lvalue. Fixes 
704         part of #498692.
705
706 2009-04-23 Tom Hindle <tom_hindle@sil.org>
707
708         * cominterop.c (ves_icall_System_Runtime_InteropServices_Marshal_ReleaseComObjectInternal):
709         changed to match .Net behaviour of not aborting on additional calls to ReleaseComObject.
710
711 2009-04-28  Sebastien Pouliot  <sebastien@ximian.com>
712
713         * security-core-clr.c: Avoid redundant checks for platform code, 
714         e.g. check for method and for class (very common) and check
715         for class and outer class (less common)...
716
717 2009-04-27  Zoltan Varga  <vargaz@gmail.com>
718
719         * reflection.c: Avoid returning random cattrs for synthetic methods.
720         Fixes #498545.
721
722 2009-04-27 Gonzalo Paniagua Javier <gonzalo@novell.com>
723
724         * assembly.c: assemblies in the GAC should never be shadow-copied.
725
726 2009-04-26  Mark Probst  <mark.probst@gmail.com>
727
728         * domain.c, domain-internals.h: Disable
729         track_resurrection_{objects,handles}_hash in MonoDomain if using
730         SGen.
731
732 2009-04-24 Rodrigo Kumpera  <rkumpera@novell.com>
733
734         * metadata-verify.c: Verify the param table.
735
736 2009-04-24 Rodrigo Kumpera  <rkumpera@novell.com>
737
738         * metadata-verify.c (verify_typedef_table): Range check FieldList and
739         MethodList.
740
741         * metadata-verify.c (verify_method_table): Proper check the ParamList
742         field.
743
744 2009-04-24 Rodrigo Kumpera  <rkumpera@novell.com>
745
746         * metadata-verify.c (verify_method_table): Check for runtime
747         implemented functions such as delegate .ctors. Remove spurious
748         printf.
749         
750 2009-04-24 Rodrigo Kumpera  <rkumpera@novell.com>
751
752         * pedump.c: Proper initialize the runtime forcing the 2.0 profile.
753
754 2009-04-24  Raja R Harinath  <harinath@hurrynot.org>
755
756         Don't allocate MonoGenericInfo for ownerless generic params.
757         * class-internals.h (MonoGenericParam::info): Move field to ...
758         (MonoGenericParamFull): ... this.  New struct.
759         (MonoGenericContainer::type_params): Change type to
760         MonoGenericParamFull.
761         (MonoGenericParam, MonoGenericContainer): Update accessors.
762         * metadata.c (mono_metadata_parse_generic_param): Don't initialize
763         'info' field for ownerless generic param.
764         (mono_metadata_load_generic_params): Update to changes.
765         * reflection.c (mono_reflection_create_generic_class): Likewise.
766         (reflection_methodbuilder_to_mono_method): Likewise.
767         (mono_reflection_initialize_generic_parameter): Likewise.
768
769 2009-04-24  Raja R Harinath  <harinath@hurrynot.org>
770
771         Don't use MonoGenericParamInfo for ownerless generic params.
772         * class.c (get_anon_gparam_class, set_anon_gparam_class): New.  Don't
773         use ParamInfo class at all.
774         (mono_class_from_generic_parameter): Use them.
775         (make_generic_param_class): Fix a couple of instances where 'pinfo
776         == NULL' wasn't handle.
777
778 2009-04-24  Raja R Harinath  <harinath@hurrynot.org>
779
780         * class.c (make_generic_param_class): Carve out of ...
781         (mono_class_from_generic_parameter): ... here.
782
783 2009-04-24  Raja R Harinath  <harinath@hurrynot.org>
784
785         Simplify mono_class_from_generic_parameter
786         * class-internals.h (MonoGenericParamInfo::token): New field.
787         * metadata.c (mono_metadata_load_generic_params): Initialize it
788         from metadata.
789         * class.c (mono_class_from_generic_parameter): Use it instead of
790         searching through metadata.
791
792 2009-04-23 Rodrigo Kumpera  <rkumpera@novell.com>
793
794         * metadata-verify.c: Add verification of the method table.
795
796 2009-04-23 Rodrigo Kumpera  <rkumpera@novell.com>
797
798         * icall.c (ves_icall_Type_GetMethodsByName): Fix memleak for the
799         Delegate::Invoke optimization.
800
801 2009-04-23 Rodrigo Kumpera  <rkumpera@novell.com>
802
803         * appdomain.c (mono_domain_create_appdomain_internal): Free the
804         string returned by get_shadow_assembly_location_base.
805
806         * appdomain.c (get_shadow_assembly_location_base): Add a comment
807         about caller's ownership.
808
809 2009-04-23 Rodrigo Kumpera  <rkumpera@novell.com>
810
811         * reflection.c: Add mono_reflection_cleanup_domain to cleanup
812         reflection memory on domain unload.
813
814         * domain.c (mono_domain_free): Don't free refobject_hash, let the
815         reflection cleanup code do it.
816
817         * domain-internals.h: Add mono_reflection_cleanup_domain.
818
819         This fixes a memory leak for managed mirrors of reflection objects
820         on domain unload. 
821
822 2009-04-22 Rodrigo Kumpera  <rkumpera@novell.com>
823
824         * metadata-verify.c: Implement more verification of the field table.
825
826 2009-04-22 Rodrigo Kumpera  <rkumpera@novell.com>
827
828         * pedump.c (main): Init mono with mscorlib so it defaults to 2.0 and
829         doesn't try to parse the input assembly, which can be broken.
830
831 2009-04-23  Mark Probst  <mark.probst@gmail.com>
832
833         * boehm-gc.c, gc-internal.h, gc.c, monitor.c, null-gc.c,
834         sgen-gc.c: Implement track resurrection in weak GC handles in SGen
835         by using the lowest bit in the link to store whether the link is
836         tracked.  Move the track_resurrection hashes into boehm-gc.c.
837
838 2009-04-22  Miguel de Icaza  <miguel@novell.com>
839
840         * Makefile.am: Split the console support in platform specific code
841         and put together a framework for making this easy in the future so
842         that we can start splitting code instead of having a mess of PLATFORM_WIN32
843
844 2009-04-21 Rodrigo Kumpera  <rkumpera@novell.com>
845
846         * pedump.c: Fix a warning.
847
848 2009-04-21 Rodrigo Kumpera  <rkumpera@novell.com>
849
850         * verify.c (mono_delegate_type_equal): Compare valuetypes using
851         mono_class_from_mono_type to avoid bad interactions with the dual representation
852         of the generic type definition.
853
854 2009-04-21 Rodrigo Kumpera  <rkumpera@novell.com>
855
856         * verify.c (do_invoke_method): Use mono_class_from_mono_type to
857         get the MonoClass for the call context type as it might be a generic
858         instance.
859
860         Fixes #491483.
861
862 2009-04-21  Mark Probst  <mark.probst@gmail.com>
863
864         * object-internals.h: The Thread object has no execution_context
865         member anymore.
866
867         * threads.c, threadpool.c, threads-types.h: Accessor functions for
868         the execution context.
869
870         * appdomain.c: Bump corlib version.
871
872 2009-04-20 Rodrigo Kumpera  <rkumpera@novell.com>
873
874         * verify.c (do_newobj): Improve error message.
875
876 2009-04-20 Rodrigo Kumpera  <rkumpera@novell.com>
877
878         * verify.c (verify_clause_relationship): Only mask as an error if the exception clause
879         is nested in the filter block.
880
881         * verify.c (verify_clause_relationship): The disjoint check must verify if the exception
882         block is not fully nested.
883
884         Fixes #495656.
885
886 2009-04-20 Rodrigo Kumpera  <rkumpera@novell.com>
887
888         * verify.c (verify_type_compatibility_full): Compare MonoClass and
889         not MonoType to check for equality of valuetypes as the generic type
890         definition allows for two different encodings: the generic type definition
891         class or a generic instance over the GTD arguments.
892
893         Fixes #496175.
894
895 2009-04-20 Rodrigo Kumpera  <rkumpera@novell.com>
896
897         * verify.c (dump_stack_value): Fix compilation with extra debug turned on.
898
899         * verify.c (do_initobj): Improve error message.
900
901 2009-04-20 Rodrigo Kumpera  <rkumpera@novell.com>
902
903         * metadata-verify.c: Enable pe verification as the issue with #496453
904         is that the authenticode data directory have a different unspecified
905         format. Ignore it for now.
906
907         * pedump.c: Run the metadata verifier together with the IL verifier.
908
909         Fixes ##496453.
910
911 2009-04-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
912
913         * metadata-verify.c: Temporarily disable pe verification due to #496453.
914
915 2009-04-17 Rodrigo Kumpera  <rkumpera@novell.com>
916
917         * class.c (can_access_type): Check visibility against
918         the element type for pointers and arrays.
919
920         Fixes #496150.
921
922 2009-04-17 Rodrigo Kumpera  <rkumpera@novell.com>
923
924         * metadata-verify.c: Fix cli and table verification to use information
925         from the MonoImage. A lot of duplicated code got killed.
926
927 2009-04-17 Rodrigo Kumpera  <rkumpera@novell.com>
928
929
930         This patch starts to integrate the metadata verifier with the runtime code.
931
932         This patch causes major regression in functionality for the metadata verifier
933         as cli and table verification are disabled since they require to be ported to
934         use MonoImage information.
935
936         * image.c (do_mono_image_load): Split the code in this function
937         into mono_image_load_pe_data and mono_image_load_cli_data.
938         Add     care_about_pecoff parameter to not load pecoff data.
939         Call into the metadata verifier for pecoff and cli verification.
940
941         * image.c (mono_image_open_raw): New function that doesn't perform
942         any parsing of the image contents.
943         
944         The reason for the 3 new functions is to give pedump better control
945         into the interaction with the verifier.
946
947         * metadata-internals.h: Add new functions from image.c as part of the
948         internal mono API.
949
950         * metadata-verify.c: Split mono_image_verify into mono_verifier_verify_pe_data,
951         mono_verifier_verify_cli_data and mono_verifier_verify_table_data. Prepare
952         to make those functions work together with the runtime.
953
954         * verify.c: Add mono_verifier_is_enabled_for_image function that returns
955         true if the image needs to be verified.
956
957         * verify-internals.h: Export new functions from metadata-verify.c and verify.c.
958
959         * pedump.c: Use new metadata verifier API.
960
961 2009-04-19  Zoltan Varga  <vargaz@gmail.com>
962
963         * object.c (mono_install_vtable_trampoline): Make this receive a
964         trampoline creation function instead of trampoline, allowing the JIT
965         to use a different trampoline for each vtable.
966
967 2009-04-18  Mark Probst  <mark.probst@gmail.com>
968
969         * object.c (mono_raise_exception): Don't reset the thread abort
970         exception state here.
971
972 2009-04-18  Mark Probst  <mark.probst@gmail.com>
973
974         * icall-def.h: New icall for getting the thread abort exception
975         state for a thread.
976
977         * object.c, thread.c, object-internals.h: A thread's abort
978         exception state is now a GC handle.  To get the object it stands
979         for, we must move it into the current app domain, if it's
980         different than the one where it originated from.
981
982         * appdomain.c: Bump corlib version.
983
984         * domain.c, domain-internals.h: New function for setting the
985         domain and migrate the thread abort exception or not.
986
987 2009-04-16 Rodrigo Kumpera  <rkumpera@novell.com>
988
989         * metadata-verify.c: Add initial verification of the
990         field table.
991
992 2009-04-16 Rodrigo Kumpera  <rkumpera@novell.com>
993
994         * metadata-verify.c: Add a macro to conditionally enable
995         dumping of verification information. Add  make_coded_token
996         and search_sorted_table to enable search sorted tables
997         by a given coded token.
998
999 2009-04-16 Rodrigo Kumpera  <rkumpera@novell.com>
1000
1001         * metadata-verify.c: Add array mapping from table index
1002         to description offset. Add get_col_offset and get_col_size
1003         functions.
1004
1005 2009-04-16 Rodrigo Kumpera  <rkumpera@novell.com>
1006
1007         * metadata-verify.c: Add remaining table descriptions offsets.
1008         Add remaining coded index descriptions.
1009
1010 2009-04-16 Rodrigo Kumpera  <rkumpera@novell.com>
1011
1012         * metadata-verify.c: Fixed constant table description.
1013         Fixed calculation of HasCustomAttribute coded index size.
1014         Fixed calculation of size for many table indexes. 
1015
1016 2009-04-16 Rodrigo Kumpera  <rkumpera@novell.com>
1017
1018         * pedump.c (dump_metadata): Dump table offset instead
1019         of useless pointer in memory.
1020
1021 2009-04-16 Rodrigo Kumpera  <rkumpera@novell.com>
1022
1023         * metadata-verify.c (verify_typedef_table): Add tests for MethodList.
1024
1025 2009-04-15 Rodrigo Kumpera  <rkumpera@novell.com>
1026
1027         * metadata-verify.c (verify_typedef_table): Add tests for FieldList and
1028         a missing of for interface types.
1029
1030 2009-04-15 Rodrigo Kumpera  <rkumpera@novell.com>
1031
1032         * metadata-verify.c (verify_pe_optional_header): Add comment of why
1033         the code is commented.
1034
1035         * metadata-verify.c (verify_resources_table): Remove spurious printf
1036         and don't fail if there are unmanaged resources. Gmcs generates a useless
1037         one     for all assemblies - I bet it's some MS compatibility junk.
1038
1039 2009-04-15 Rodrigo Kumpera  <rkumpera@novell.com>
1040
1041         * metadata-verify.c (verify_typedef_table): Verify the extends field.
1042
1043         * metadata-verify.c (mono_image_verify): Add a is_corlib.
1044
1045         * verify-internals.h: Same.
1046
1047         * pedump.c: Fix for mono_image_verify new signature.
1048
1049 2009-04-15 Rodrigo Kumpera  <rkumpera@novell.com>
1050
1051         * metadata-verify.c (verify_typedef_table): Verify for some invalid
1052         flags combinations.
1053
1054 2009-04-15 Rodrigo Kumpera  <rkumpera@novell.com>
1055
1056         * metadata-verify.c (verify_module_table): Ignore the generation field.
1057
1058 2009-04-15  Martin Baulig  <martin@ximian.com>
1059
1060         * debug-mono-symfile.c
1061         (mono_debug_symfile_lookup_location): Don't print a warning for
1062         unknown extended opcodes if they're within 0x40 and 0x7f.
1063
1064 2009-04-15  Zoltan Varga  <vargaz@gmail.com>
1065
1066         * marshal.c (mono_marshal_get_runtime_invoke_sig): Don't share runtime
1067         invoke signatures returning an enum. Fixes #494847.
1068
1069 2009-04-14 Rodrigo Kumpera  <rkumpera@novell.com>
1070
1071         * metadata-verify.c: Initial code to verify the typedef table.
1072
1073 2009-04-14 Rodrigo Kumpera  <rkumpera@novell.com>
1074
1075         * verify.c (mono_method_verify): Don't fail if an unconditional branch
1076         with non empty stack happens before the beginning of a try block.
1077
1078         Fixes #494812.
1079
1080 2009-04-14 Rodrigo Kumpera  <rkumpera@novell.com>
1081
1082         * metadata-verify.c: Verify typename and typenamespace fields of
1083         the typeref table.
1084
1085 2009-04-13 Rodrigo Kumpera  <rkumpera@novell.com>
1086
1087         * metadata-verify.c: Initial code to verify the typeref table.
1088
1089 2009-04-13 Rodrigo Kumpera  <rkumpera@novell.com>
1090
1091         * verify.c (verify_delegate_compatibility): Fix error message.
1092
1093 2009-04-14  Sebastien Pouliot  <sebastien@ximian.com>
1094
1095         * security-core-clr.c: Fix typo
1096
1097 2009-04-14  Zoltan Varga  <vargaz@gmail.com>
1098
1099         * marshal.c (delegate_hash_table_add): Make delegate_target_locations 
1100         a MonoGHashTable to keep its values alive.
1101         (emit_marshal_boolean): Fix a warning.
1102
1103 2009-04-13 Gonzalo Paniagua Javier <gonzalo@novell.com>
1104
1105         * socket-io.c: don't return IPv4/IPv6 addresses if the machine does
1106         not have any interface configured for IPv4/IPv6.
1107
1108 2009-04-13 Gonzalo Paniagua Javier <gonzalo@novell.com>
1109
1110         * assembly.c: fix typo in error message.
1111
1112 2009-04-14  Zoltan Varga  <vargaz@gmail.com>
1113
1114         * marshal.c (mono_delegate_to_ftnptr): Use mono_gc_alloc_fixed () for
1115         allocating the location holding the this argument to prevent
1116         'too many root sets' errors.
1117
1118         * object.c (mono_class_create_runtime_vtable): Set field->offset to -1
1119         to mark fields as special static.
1120         (mono_field_static_get_value): Handle special static fields.
1121         (mono_field_static_set_value): Ditto.
1122
1123         * class-internals.h (struct _MonoClassField): Document this.
1124
1125 2009-04-13  Bill Holmes  <billholmes54@gmail.com>
1126
1127         * cominterop.c (mono_cominterop_emit_marshal_com_interface): Assigning
1128           the argument a value of null for the MARSHAL_ACTION_MANAGED_CONV_OUT
1129           case.  This will handle when managed code returns null to native code.
1130
1131         Code is contributed under MIT/X11 license.
1132
1133 2009-04-13  Bill Holmes  <billholmes54@gmail.com>
1134
1135         * object.c (build_imt_slots): Changing a free to a g_free to match
1136           the g_malloc0 in add_imt_builder_entry that allocated this memory.
1137
1138         Code is contributed under MIT/X11 license.
1139
1140 2009-04-13  Bill Holmes  <billholmes54@gmail.com>
1141
1142         * marshal.c (emit_marshal_boolean): Adding code to ensure that
1143           the correct TRUE value is passed through the marshaling layer.
1144
1145         Code is contributed under MIT/X11 license.
1146
1147 2009-04-13  Zoltan Varga  <vargaz@gmail.com>
1148
1149         * marshal.c (mono_marshal_emit_managed_wrapper): Handle closed delegates
1150         correctly. Fixes #492330.
1151         
1152         * marshal.c: Fix the embedding of object pointers into JITted code in
1153         the native-to-managed wrappers by allocating some GC tracked memory, and
1154         embedding the address of that.
1155
1156 2009-04-11  Zoltan Varga  <vargaz@gmail.com>
1157
1158         * object.c (mono_class_create_runtime_vtable): Avoid putting MonoMethod
1159         pointers into the vtable.
1160
1161 2009-04-09 Rodrigo Kumpera  <rkumpera@novell.com>
1162
1163         * verify.c (mono_delegate_type_equal): Proper check MONO_TYPE_CLASS.
1164
1165         * verify.c (verify_ldftn_delegate): Improve error message.
1166
1167 2009-04-09  Raja R Harinath  <harinath@hurrynot.org>
1168
1169         * reflection.c (my_mono_class_from_mono_type): Remove.
1170
1171 2009-04-09  Raja R Harinath  <harinath@hurrynot.org>
1172
1173         Prepare to reduce memory usage of owner-less generic parameters (1/n)
1174         * class-internals.h (MonoGenericParam): Carve out pklass, name, flags
1175         and constraints fields into ...
1176         (MonoGenericParamInfo): ... this.
1177         (mono_generic_param_info, mono_generic_container_get_param_info):
1178         New accessors.
1179         * class.c, debug-helpers.c, icall.c: Update to changes.
1180         * metadata.c, reflection.c, verify.c: Likewise.
1181
1182 2009-04-09  Zoltan Varga  <vargaz@gmail.com>
1183
1184         * debug-helpers.c (dis_one): Fix decoding of strings in dynamic images.
1185
1186         * marshal.c (get_runtime_invoke_type): Share enums with their base types.
1187         
1188         * marshal.c (get_runtime_invoke_type): Share pointers with ints and
1189         booleans with sbytes.
1190
1191 2009-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
1192
1193         * class.c (can_access_instantiation): Verify accesibility of element types
1194         for arrays and pointers.
1195
1196         * class.c (can_access_type): Return true if the target class is VAR or MVAR.
1197
1198         * class.c (mono_method_can_access_method_full): Fix typos in the documentation.
1199
1200         Fixes #493068.
1201
1202 2009-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
1203
1204         * verify.c (do_invoke_method): Improve error messages.
1205
1206 2009-04-08  Bill Holmes  <billholmes54@gmail.com>
1207
1208         * verify.c:  Fixing the MSVC build.
1209
1210         Code is contributed under MIT/X11 license.
1211
1212 2009-04-08  Sebastien Pouliot  <sebastien@ximian.com>
1213
1214         * security-core-clr.c: Simplify get_reflection_caller not to call
1215         mono_method_get_last_managed (another stack walk) and adjust the
1216         callers to handle a (should not happen) NULL return value.
1217
1218 2009-04-08  Raja R Harinath  <harinath@hurrynot.org>
1219
1220         Add accessors to some MonoGenericParam fields
1221         * class-internals.h (mono_generic_param_owner): New accessor.
1222         (mono_generic_param_num): Likewise.
1223         (mono_type_get_generic_param_owner): New helper.
1224         (mono_type_get_generic_param_num): New helper.
1225         * class.c, icall.c, metadata.c, reflection.c, verify.c: Use them.
1226
1227 2009-04-08  Raja R Harinath  <harinath@hurrynot.org>
1228
1229         * class-internals.h (mono_generic_container_get_param): New wrapper.
1230         * class.c, icall.c, metadata.c, verify.c: Use it.
1231
1232 2009-04-08  Raja R Harinath  <harinath@hurrynot.org>
1233
1234         Fix gtest-252.cs
1235         * verify.c (mono_type_is_valid_type_in_context): Rewrite to use
1236         the standard case/loop.  In particular, don't complain about
1237         references to generic type definitions.
1238
1239 2009-04-07  Zoltan Varga  <vargaz@gmail.com>
1240
1241         * debug-helpers.c (dis_one): Decode string arguments.
1242
1243 2009-04-07 Rodrigo Kumpera  <rkumpera@novell.com>
1244
1245         * pedump.c (dump_verify_info): Dump type name correctly.
1246
1247 2009-04-07 Rodrigo Kumpera  <rkumpera@novell.com>
1248
1249         * verify.c (mono_method_verify): Don't init code slots for exception boundaries if they
1250         are larger than code size.
1251
1252         This can happen in valid code if the try/catch block is not followed by any instruction
1253         and do a backward branch on the leave instruction.
1254
1255         Fixes #492494.
1256
1257 2009-04-06  Sebastien Pouliot  <sebastien@ximian.com>
1258
1259         * security-core-clr.c: Fix typo while comparing second method names
1260         in can_avoid_corlib_reflection_delegate_optimization
1261
1262 2009-04-06 Rodrigo Kumpera  <rkumpera@novell.com>
1263
1264         * verify.c (do_throw): Don't allow an unboxed generic param ar argument.
1265
1266         Fixes #487738.
1267
1268 2009-04-06 Rodrigo Kumpera  <rkumpera@novell.com>
1269
1270         * metadata.c (do_mono_metadata_parse_type): Fail if we are decoding
1271         a MVAR using a class context.
1272
1273         Fixes #490335.
1274
1275 2009-04-06  Zoltan Varga  <vargaz@gmail.com>
1276
1277         * object.c (mono_class_compute_gc_descriptor): Make this non-static.
1278
1279         * domain-internals.h (struct _MonoJitInfo): Add a 'gc_info' field.
1280
1281         * gc-internal.h (MonoGCCallbacks): New stucture containing the callback
1282         functions supplied by the JIT for the SGEN GC.
1283
1284         * sgen-gc.c: Call the callbacks supplied by the JIT to do stack marking.
1285         
1286 2009-04-06  Massimiliano Mantione  <massi@ximian.com>
1287
1288         monitor.c (mono_monitor_try_enter_internal):
1289         Added calls to profile monitor contentions.
1290         Also duplicated a small piece of code (the "get the monitor" logic)
1291         from the fast path to the slow path, and changed the relevant goto
1292         statements, so that monitor acquisition events can be emitted from the
1293         slow path (this is by Paolo Molaro).
1294
1295 2009-04-06  Massimiliano Mantione  <massi@ximian.com>
1296
1297         * profiler.c, profiler.h, profiler-private.h:
1298         Added support for profiling monitor contentions.
1299
1300 2009-04-03 Rodrigo Kumpera  <rkumpera@novell.com>
1301
1302         * metadata-verify.c: Verify the modules table.
1303
1304 2009-04-02 Rodrigo Kumpera  <rkumpera@novell.com>
1305
1306         * verify.c (mono_generic_param_is_constraint_compatible): Inflate the candidate
1307         using the context of the method been verifier and not of the method been called.
1308
1309         * verify.c: Add verifier_inflate_type and mono_type_is_valid_type_in_context to
1310         safely inflate generic types. 
1311
1312 2009-04-02  Sebastien Pouliot  <sebastien@ximian.com>
1313
1314         * security-core-clr.c: Change the strategy for checking the 
1315         "reflection using delegates optimization" to avoid unneeded 
1316         attributes in multiple class libraries.
1317
1318 2009-04-02  Mark Probst  <mark.probst@gmail.com>
1319
1320         * sgen-gc.c: Remove object element in the disappearing link struct
1321         by storing the object pointer in the link.
1322
1323 2009-03-31 Rodrigo Kumpera  <rkumpera@novell.com>
1324
1325         * pedump.c (dump_verify_info): Don't crash if signature decoding fails.
1326
1327 2009-03-31 Rodrigo Kumpera  <rkumpera@novell.com>
1328
1329         * verify.c (verifier_load_field): Fail if the field parent could not be loaded.
1330
1331         * verify.c (mono_method_verify): Do proper bounds checking of exception
1332         clause ranges.
1333
1334 2009-03-31 Rodrigo Kumpera  <rkumpera@novell.com>
1335
1336         * loader.c (mono_field_from_token): Don't crash if the field parent could
1337         not be decoded.
1338
1339 2009-03-31  Mark Probst  <mark.probst@gmail.com>
1340
1341         * sgen-gc.c: Execute critical finalizers after ordinary
1342         finalizers.
1343
1344         * class-internals.h, domain.c: Add CriticalFinalizerObject to
1345         mono_defaults.
1346
1347 2009-03-31 Jb Evain <jbevain@novell.com>
1348
1349         * verify.c (do_ldstr): don't check if a string is in the user strings
1350         heap if the current image is dynamic.
1351
1352 2009-03-31  Mark Probst  <mark.probst@gmail.com>
1353
1354         * sgen-gc.c: Wait until the last finalizer has executed when
1355         returning from WaitForPendingFinalizers.
1356
1357 2009-03-31  Martin Baulig  <martin@ximian.com>
1358
1359         * mono-debug-debugger.h (MonoDebuggerEvent): Add
1360         `MONO_DEBUGGER_EVENT_CREATE_APPDOMAIN' and
1361         `MONO_DEBUGGER_EVENT_UNLOAD_APPDOMAIN'.
1362         (mono_debugger_event_create_appdomain): New function.
1363         (mono_debugger_event_unload_appdomain): New function.
1364
1365         * appdomain.c (mono_domain_create_appdomain_internal): Call
1366         mono_debugger_event_create_appdomain().
1367
1368 2009-03-31  Martin Baulig  <martin@ximian.com>
1369
1370         * mono-debug-debugger.c
1371         (mono_debugger_register_class_init_callback): Also register the
1372         class init callback if the class is already initialized to make
1373         things work with shadow copied assemblies.
1374
1375 2009-03-31  Sebastien Pouliot  <sebastien@ximian.com>
1376
1377         * security-core-clr.c
1378         (mono_security_core_clr_ensure_reflection_access_field): Let 
1379         critical code access the field (just like we do for methods). Use
1380         check_field_access helper.
1381         (mono_security_core_clr_ensure_reflection_access_method): Use 
1382         check_field_access helper.
1383
1384 2009-03-31  Mark Probst  <mark.probst@gmail.com>
1385
1386         * sgen-gc.c: Remove data (callback) element from FinalizeEntry and
1387         call the run-finalize function directly.
1388
1389         * gc.c, gc-internal.h: Make run_finalize() non-static.
1390
1391 2009-03-31  Mark Probst  <mark.probst@gmail.com>
1392
1393         * sgen-gc.c: Use a separate struct for disappearing links.
1394
1395 2009-03-31 Gonzalo Paniagua Javier <gonzalo@novell.com>
1396
1397         * socket-io.c: don't fail if the SocketOptionsFlag has Partial or
1398         * MaxIOVectorLength enabled, just ignore them.
1399         Fixes bug #349688.
1400
1401 2009-03-30 Rodrigo Kumpera  <rkumpera@novell.com>
1402
1403         * metadata-verify.c: Fix eglib build.
1404
1405 2009-03-30  Zoltan Varga  <vargaz@gmail.com>
1406
1407         * threads-types.h: Fix the win32 build.
1408
1409 2009-03-28  Sebastien Pouliot  <sebastien@ximian.com>
1410
1411         * class.c: move coreclr inheritance/override checks to 
1412         security-core.clr.c
1413         * security-core.clr.c|h: add code from class.c with additional
1414         documentation. Fix override check when the method is not critical.
1415
1416 2009-03-28  Zoltan Varga  <vargaz@gmail.com>
1417
1418         * debug-helpers.c (mono_method_desc_match): Make '*' match anything.
1419         (match_class): Ditto.
1420
1421 2009-03-27 Rodrigo Kumpera  <rkumpera@novell.com>
1422
1423         * metadata-verify.c: Rename bounds_check_offset to bounds_check_datadir.
1424
1425         * metadata-verify.c: Implement table layout row size calculation. Verify
1426         the total size of the tables.
1427
1428 2009-03-27 Rodrigo Kumpera  <rkumpera@novell.com>
1429
1430         * metadata-verify.c: Verify heap sizes and size to decode row counts. 
1431
1432 2009-03-27 Gonzalo Paniagua Javier <gonzalo@novell.com>
1433
1434         * appdomain.c:
1435         * console-io.[ch]: added new mono_console_init() to make sure that
1436         file descriptors 0, 1 and 2 are opened.
1437         Bug #489019 fixed.
1438
1439 2009-03-27  Sebastien Pouliot  <sebastien@ximian.com> 
1440
1441         * appdomain.h: Export a new callback type and a new function to
1442         set this callback. This allow a mono host to provide it's own
1443         definition for "platform code".
1444         * metadata-internals.h: Add a core_clr_platform_code flag on 
1445         _MonoImage to (cache and) know if it is representing platform 
1446         code.
1447         * image.c (do_mono_image_open): Set core_clr_platform_code flag 
1448         on platform code images.
1449         * security-core-clr.c|h 
1450         (mono_security_set_core_clr_platform_callback): Allow the host
1451         to provide it's own platform check definition.
1452         (mono_security_core_clr_determine_platform_image): Detect if an 
1453         image is platform code (using the specified callback).
1454         (mono_security_core_clr_is_platform_image): Return cached value 
1455         for platform code.
1456
1457 2009-03-27  Zoltan Varga  <vargaz@gmail.com>
1458
1459         * threads.c (mono_create_thread): New helper function to wrap CreateThread
1460         which has different parameter types for the 'tid' argument in windows and
1461         the io-layer.
1462
1463         * appdomain.c attach.c threads.c: Use the new helper.
1464
1465 2009-03-26 Rodrigo Kumpera  <rkumpera@novell.com>
1466
1467         * metadata-verify.c: Verify valid table bits.
1468
1469 2009-03-26 Rodrigo Kumpera  <rkumpera@novell.com>
1470
1471         * metadata-verify.c (verify_metadata_header): Store size in the size field.
1472
1473         * metadata-verify.c: Add initial table schema verification.
1474
1475 2009-03-26  Zoltan Varga  <vargaz@gmail.com>
1476
1477         * icall.c (ves_icall_get_parameter_info): Add a 'member' argument, used to
1478         obtain the refclass argument needed by mono_param_get_objects (). Fixes
1479         #488383.
1480
1481         * reflection.c (mono_param_get_objects_internal): Add a 'refclass' argument.
1482
1483         * appdomain.c (MONO_CORLIB_VERSION): Bump this.
1484
1485 2009-03-26  Sebastien Pouliot  <sebastien@ximian.com>
1486
1487         * security-core-clr.c: Add/update documentation
1488
1489 2009-03-26  Zoltan Varga  <vargaz@gmail.com>
1490
1491         * marshal.c (emit_marshal_object): Generate code to throw an exception
1492         instead of throwing it. Fixes #488670.
1493
1494 2009-03-25  Sebastien Pouliot  <sebastien@ximian.com>
1495
1496         * appdomain.c: Bump MONO_CORLIB_VERSION to 73.
1497         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Add
1498         an extra 'throwOnBindFailure' parameter to the icall. Remove FIXME
1499         and add a call to mono_security_core_clr_ensure_delegate_creation
1500         to do the extra checks required by CoreCLR.
1501         * security-core-clr.c|h: Add function to check delegate creation,
1502         both in the binding and accessibility, under CoreCLR.
1503
1504 2009-03-25  Sebastien Pouliot  <sebastien@ximian.com> 
1505
1506         * reflection.c (mono_reflection_create_dynamic_method): when 
1507         coreclr is enabled make sure that every resolved object are
1508         checked (e.g. field and method access).
1509         * security-core-clr.c|h: Add function to check objects resolved
1510         when a dynamic method is created.
1511
1512 2009-03-24 Rodrigo Kumpera  <rkumpera@novell.com>
1513
1514         * metadata-verify.c: Cache directory rva translations.
1515
1516         * metadata-verify.c: Add cli-header and streams verification.
1517
1518 2009-03-24 Rodrigo Kumpera  <rkumpera@novell.com>
1519
1520         * image.c (load_metadata_ptrs): We decode MonoImage::md_version_minor at
1521         the wrong offset (8 instead of 6).
1522
1523 2009-03-23  Zoltan Varga  <vargaz@gmail.com>
1524
1525         * marshal.c (mono_delegate_to_ftnptr): For delegates wrapping pinvoke
1526         methods, return the native function address itself. Fixes
1527         #487758.
1528
1529 2009-03-23 Gonzalo Paniagua Javier <gonzalo@novell.com>
1530
1531         * console-io.c: some of the values for control characters might not be
1532         present.
1533
1534 2009-03-21  Sebastien Pouliot  <sebastien@ximian.com>
1535
1536         * exception.c|h: Add helpers to create [Field|Method]AccessException
1537         * icall.c: Add required coreclr check calls for field reflection.
1538         Move the existing (method) check logic into security-core-clr.c
1539         * security-core-clr.c: Add functions to check if the access of a
1540         field or method is allowed when reflecting under coreclr. This is
1541         mostly done using a stack walk to find the "real" caller: i.e. the
1542         code that is calling the reflection
1543
1544 2009-03-20  Zoltan Varga  <vargaz@gmail.com>
1545
1546         * gc-internal.h: Change location of gc_wrapper.h
1547
1548 2009-03-20  Sebastien Pouliot  <sebastien@ximian.com> 
1549
1550         * class.c: Simplification to coreclr checks for overrides that
1551         makes it easier to set breakpoints.
1552
1553 2009-03-20  Sebastien Pouliot  <sebastien@ximian.com>
1554
1555         * security-core-clr.c|h: (mono_security_core_clr_class_level, 
1556         mono_security_core_clr_method_level): Avoid potential 
1557         MonoCustomAttrInfo allocation for transparent assemblies (e.g. 
1558         user/application code) and make it easier to set breakpoints
1559
1560 2009-03-19 Rodrigo Kumpera  <rkumpera@novell.com>
1561
1562         * metadata-verify.c: Reject cli header tables that mono don't handle.
1563
1564 2009-03-19 Rodrigo Kumpera  <rkumpera@novell.com>
1565
1566         * pedump.c: Fix CLI header dumping.
1567
1568 2009-03-19 Rodrigo Kumpera  <rkumpera@novell.com>
1569
1570         * metadata-verify.c: More CLI header verification.
1571
1572 2009-03-19  Zoltan Varga  <vargaz@gmail.com>
1573
1574         * locales.c (get_current_locale_name): Use g_malloc instead of malloc.
1575
1576 2009-03-18 Rodrigo Kumpera  <rkumpera@novell.com>
1577
1578         * metadata-verify.c: Initial verification of the CLI header.
1579
1580 2009-03-18 Rodrigo Kumpera  <rkumpera@novell.com>
1581
1582         * metadata-verify.c (verify_resources_table): Fix verification of zero
1583         sized resource section and id entries count.
1584
1585 2009-03-18  Zoltan Varga  <vargaz@gmail.com>
1586
1587         * icall.c: Handle user types in many Type icalls. Fixes #486303.
1588
1589 2009-03-17  Jb Evain  <jbevain@novell.com>
1590
1591         * profiler.c: call mono_gc_base_init from mono_profiler_load.
1592
1593 2009-03-17  Zoltan Varga  <vargaz@gmail.com>
1594
1595         * sgen-gc.c (mono_gc_make_descr_for_object): Fix 64 bit support.
1596         (mono_gc_make_descr_for_array): Ditto.
1597
1598 2009-03-17  Sebastien Pouliot  <sebastien@ximian.com>
1599
1600         * verify.c (mono_verifier_is_class_full_trust): Add support for
1601         CoreCLR security mode where trusted assemblies are defined as
1602         "platform code".
1603
1604 2009-03-16 Rodrigo Kumpera  <rkumpera@novell.com>
1605
1606         * metadata-verify.c: Add minimal PECOFF resource verification.
1607
1608 2009-03-16 Rodrigo Kumpera  <rkumpera@novell.com>
1609
1610         * metadata-verify.c: Be less restrictive with some coff fields.
1611
1612 2009-03-16 Rodrigo Kumpera  <rkumpera@novell.com>
1613
1614         * verify.c (init_stack_with_value_at_exception_boundary): Init generic
1615         params as boxed values on stack. Fixes #485706.
1616
1617 2009-03-16 Gonzalo Paniagua Javier <gonzalo@novell.com>
1618
1619         * console-io.c: the termios values may vary in different flavors of unix.
1620
1621 2009-03-16 Gonzalo Paniagua Javier <gonzalo@novell.com>
1622
1623         * console-io.[ch]: return the entire set of control characters when
1624         initializing the terminal.
1625         * appdomain.c: bump corlib version.
1626
1627 Mon Mar 16 11:11:26 CET 2009 Paolo Molaro <lupus@ximian.com>
1628
1629         * mono-perfcounters.c: added support for in-process custom
1630         performance counters.
1631
1632 2009-03-13 Rodrigo Kumpera  <rkumpera@novell.com>
1633
1634         * metadata-verify.c: Small cleanup and add comment for IAT directory entry. 
1635
1636 2009-03-13 Rodrigo Kumpera  <rkumpera@novell.com>
1637
1638         * metadata-verify.c: Verify the data pointed by the import table. 
1639
1640 2009-03-13 Rodrigo Kumpera  <rkumpera@novell.com>
1641
1642         * metadata-verify.c (load_data_directories): Store data
1643         directory contents.
1644
1645         * metadata-verify.c: Verify the import table. 
1646
1647 2009-03-12 Rodrigo Kumpera  <rkumpera@novell.com>
1648
1649         * metadata-verify.c: Verify data directories.
1650
1651 2009-03-12 Rodrigo Kumpera  <rkumpera@novell.com>
1652
1653         * metadata-verify.c: Check section header flags.
1654
1655 2009-03-12 Gonzalo Paniagua Javier <gonzalo@novell.com>
1656
1657         * appdomain.c: if the assembly name is a shadow-copied file, return
1658         TRUE from mono_is_shadow_copy_enabled but don't actually do anything
1659         in mono_make_shadow_copy.
1660         * icall.c: if the assembly name is a shadow-copied file, replace it
1661         with the original assembly path.
1662
1663         Bug #484244 fixed. NUnit tests for corlib can be run without
1664         --noshadow now.
1665
1666 2009-03-12  Zoltan Varga  <vargaz@gmail.com>
1667
1668         * sgen-gc.c (add_to_global_remset): Fix the handling of root global remset
1669         entries when the table is reallocated.
1670
1671         * icall.c: Allocate the memory used by the mono_ptr_array macros using
1672         mono_gc_alloc_fixed () since it contains GC refs.
1673
1674 2009-03-10  Zoltan Varga  <vargaz@gmail.com>
1675
1676         * reflection.c (ensure_complete_type): New helper function to call
1677         type resolve handlers for unfinished dynamic types.
1678         (resolve_object): Call it for MonoClassFields. Fixes #483852.
1679
1680 2009-03-09  Zoltan Varga  <vargaz@gmail.com>
1681
1682         * reflection.c (mono_custom_attrs_has_attr): Handle interfaces. Fixes
1683         #483247.
1684
1685 2009-03-08 Rodrigo Kumpera  <rkumpera@novell.com>
1686
1687         * appdomain.c (get_shadow_assembly_location): Fix memleak.
1688
1689 2009-03-08  Zoltan Varga  <vargaz@gmail.com>
1690
1691         * domain-internals.h (struct _MonoDomain): Add new hash tables mapping
1692         between GCHandles of type WeakTrackResurrection and the objects they
1693         point to.
1694
1695         * gc.c: Partly implement the sematics of GCHandles of type 
1696         WeakTrackResurrection: these handles should only be cleared after the
1697         finalizer of the object they are pointing to has ran.
1698
1699 2009-03-06  Mark Probst  <mark.probst@gmail.com>
1700
1701         * icall.c: Partially revert r126631 because using the jump
1702         trampolines for generic shared methods makes it superfluous.
1703
1704 2009-03-06  Zoltan Varga  <vargaz@gmail.com>
1705
1706         * threads.c (handle_store): Create the 'threads' hash table with the proper
1707         MONO_HASH_VALUE_GC type.
1708
1709 2009-03-05  Zoltan Varga  <vargaz@gmail.com>
1710
1711         * domain-internals.h (struct _MonoDomain): Move 'typeof_void' before
1712         FIRST_GC_TRACKED.
1713
1714         * domain.c (mono_domain_create): Register the fields between FIRST_GC_TRACKED
1715         and LAST_GC_TRACKED as a GC root.
1716
1717         * gc-internal.h: Fix the comment of mono_gc_alloc_fixed.
1718
1719         * object.c (mono_class_create_runtime_vtable): Create a GC descriptor for
1720         the static data even if it consists of 1 reference.
1721
1722         * boehm-gc.c (mono_gc_alloc_fixed): Allocate using GC_MALLOC_EXPLICITLY_TYPED
1723         if there is a GC descriptor.
1724
1725         * reflection.c (ALLOC_REFENTRY): Allocate ReflectedEntry-es using malloc
1726         instead of through the GC since they contain no object references.
1727
1728 2009-03-05  Mark Probst  <mark.probst@gmail.com>
1729
1730         * generic-sharing.c (instantiate_other_info): Always return a jump
1731         trampoline for method code.
1732
1733 2009-03-05  Marek Habersack  <mhabersack@novell.com>
1734
1735         * culture-info-tables.h: generated to include the en-tt culture.
1736
1737 2009-03-04 Rodrigo Kumpera  <rkumpera@novell.com>
1738
1739         * domain-internals.h (MonoDomain): Add two fields to cache invoke wrappers to
1740         capture the thread context.
1741
1742         * object.c (mono_async_result_new): Cache the invoke wrappers to
1743         ExecutionContext::Capture.
1744
1745 2009-03-04 Rodrigo Kumpera  <rkumpera@novell.com>
1746
1747         * marshal.h: Add a prototype for what mono_compile_method returns
1748         for invoke wrappers.
1749
1750         * gc.c: Use the new prototype declaration.
1751
1752 2009-03-04  Geoff Norton  <gnorton@novell.com>
1753
1754         * boehm-gc.c: Add some MONO_LOG tracing for the GC
1755         * gc-internal.h:
1756         * mono-gc.h: Expose mono_gc_invoke_finalizers in the embedding api.
1757
1758 2009-03-04  Martin Baulig  <martin@ximian.com>
1759
1760         * mono-debug.h
1761         (mono_debugger_runtime_invoke): Removed.
1762
1763         * mono-debug-debugger.c
1764         (mono_runtime_invoke): Moved into ../mini/debug-mini.c.
1765
1766 2009-03-02  Martin Baulig  <martin@ximian.com>
1767
1768         * mono-debug.h
1769         (mono_debugger_unhandled_exception): Removed.
1770         (mono_debugger_handle_exception): Removed.
1771         (mono_debugger_throw_exception): Removed.
1772
1773         * mono-debug.c
1774         (mono_debug_debugger_version): Bump to 5.
1775
1776         * mono-debug-debugger.c: Moved the exception handling code to
1777         ../mini/debug-mini.c
1778
1779 2009-03-03  Zoltan Varga  <vargaz@gmail.com>
1780
1781         * domain-internals.h (struct _MonoDomain): Add a separate lock for the
1782         finalize_objects_hash.
1783
1784         * gc.c: Use the separate lock to access the finalize_objects_hash field.
1785         
1786         * domain-internals.h (struct _MonoDomain): Add finalize_runtime_invoke
1787         field.
1788
1789         * metadata-internals.h (struct _MonoImage): Add runtime_invoke_vcall_cache
1790         cache.
1791
1792         * image.c (mono_image_close): Free it.
1793         
1794         * marshal.c (mono_marshal_get_runtime_invoke): Add a 'virtual' argument
1795         allowing a creation of a wrapper which invokes its method using a CALLVIRT
1796         on the this argument.
1797
1798         * gc.c (run_finalize): Optimize the calling of the finalizers.
1799
1800 2009-03-03  Martin Baulig  <martin@ximian.com>
1801
1802         * mono-debug.h (MONO_DEBUGGER_MAJOR_VERSION): Bump to 81 because
1803         of the `MonoGenericInst' changes.
1804
1805 2009-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
1806
1807         * icall.c (ves_icall_MonoType_GetGenericArguments): Use
1808         mono_array_class_get_cached to reduce locking contention. Extract
1809         a domain var.
1810
1811         * icall.c (ves_icall_Type_GetFields_internal): Avoid allocating
1812         intermediary managed arrays. Use caching version of mono_array_new
1813         to allocate the result array.
1814
1815         * icall.c (ves_icall_Type_GetEvents_internal): Same.    
1816
1817         * icall.c (ves_icall_Type_GetNestedTypes): Same.        
1818
1819         * locales.c (create_names_array_idx):  Use mono_array_new_cached
1820         to reduce locking contention.
1821
1822 2009-03-03  Zoltan Varga  <vargaz@gmail.com>
1823                 
1824         * object.c (mono_method_add_generic_virtual_invocation): Put back the
1825         thunk builder code for the non-interface case.
1826
1827 2009-03-02  Zoltan Varga  <vargaz@gmail.com>
1828
1829         * object.c (get_generic_virtual_entries): New helper function to collect
1830         the virtual generic method instances which need to be added to an IMT
1831         thunk.
1832         (mono_method_add_generic_virtual_invocation): Add a 'vtable' argument.
1833         Instead of creating a new IMT thunk, reset the vtable slot to the
1834         trampoline, the thunk will be created the next time the trampoline is called.
1835         (build_imt_slots): Add support for virtual generic methods in interfaces by
1836         adding to the IMT thunk all the methods registered using 
1837         mono_method_add_generic_virtual_invocation ().
1838
1839         * object-internals.h (_MonoImtBuilderEntry): Add a 'has_target_code' field.
1840         (struct _MonoIMTCheckItem): Ditto.
1841
1842         * object.c (mono_method_add_generic_virtual_invocation): Take a
1843         MonoMethod argument instead of a MonoGenericInst. Fix the construction of
1844         the IMT thunk to include all items.
1845         
1846         * object.c (mono_class_create_runtime_vtable): Add a missing
1847         mono_loader_unlock ().
1848
1849 2009-03-02 Rodrigo Kumpera  <rkumpera@novell.com>
1850
1851         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1852
1853         * object-internals.h (MonoReflectionEvent): Add cached_add_event.
1854
1855 2009-03-02 Rodrigo Kumpera  <rkumpera@novell.com>
1856
1857         * object-internals.h: Rename _MonoReflectionEvent to
1858         MonoReflectionMonoEvent so it reflects the right managed type.
1859         Add a MonoReflectionEvent that correctly represents System.EventInfo.
1860
1861         * icall.c:
1862         * reflection.c: Adjust code to use the new MonoReflectionMonoEvent
1863         type.
1864
1865 2009-03-02 Rodrigo Kumpera  <rkumpera@novell.com>
1866
1867         * icall.c (ves_icall_Type_GetMethodsByName): Avoid allocating
1868         intermediary managed arrays. Use caching version of mono_array_new
1869         to allocate the result array.
1870
1871 2009-03-01 Rodrigo Kumpera  <rkumpera@novell.com>
1872
1873         * reflection.c: Use cached version of mono_array_new alongside
1874         the mono_reflection_get_custom_attrs_by_type call path.
1875
1876 2009-03-01 Rodrigo Kumpera  <rkumpera@novell.com>
1877
1878         * icall.c (ves_icall_Type_GetInterfaces): Avoid allocating
1879         intermediary managed arrays. Use caching version of mono_array_new
1880         to allocate the result array.
1881
1882         * icall.c (ves_icall_Type_GetConstructors_internal): Same.
1883
1884 2009-03-01 Rodrigo Kumpera  <rkumpera@novell.com>
1885
1886         * icall.c: Add small implementation of a growable stack bound array.
1887
1888         * icall.c (ves_icall_System_Enum_get_hashcode): Fix warning.
1889
1890         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid allocating
1891         intermediary managed arrays. Use caching version of mono_array_new
1892         to allocate the result array.
1893
1894 2009-02-27 Rodrigo Kumpera  <rkumpera@novell.com>
1895
1896         * icall.c: New icall ves_icall_System_Enum_compare_value_to that
1897         helps Enum::CompareTo to be implemented without reboxing all enums
1898         to their underlying type.
1899 2009-02-27  Zoltan Varga  <vargaz@gmail.com>
1900
1901         * domain.c (SET_APPDOMAIN): Avoid calling TlsSetValue () on some platforms,
1902         since it acquires a global lock leading to scalability problems.
1903
1904         * profiler.c: Make the stat profiler work with multiple appdomains, this
1905         currently only works when no appdomains are unloaded.
1906
1907 2009-02-26 Gonzalo Paniagua Javier <gonzalo@novell.com>
1908
1909         * appdomain.c: make the check to avoid copying when the assembly is
1910         already shadow copied actually work.
1911
1912 2009-02-26  Zoltan Varga  <vargaz@gmail.com>
1913
1914         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1915
1916         * object-internals.h (struct _MonoReflectionGenericClass): Sync with
1917         changes to the managed side.
1918
1919 2009-02-25  Zoltan Varga  <vargaz@gmail.com>
1920
1921         * metadata-internals.h (struct _MonoImage): Add a new cache for szarray
1922         classes + a separate lock for it, as it is used frequently at runtime, not
1923         just during metadata loading/JIT compilation.
1924
1925         * class.c (mono_bounded_array_class_get): Use the separate cache + lock
1926         for szarrays.
1927         
1928         * object-internals.h (mono_class_from_name_cached): New macro to cache
1929         the results of the lookup locally without having to declare a static
1930         variable to hold it.
1931         (mono_class_get_field_from_name_cached): Ditto.
1932         (mono_array_class_get_cached): Ditto.
1933
1934         * threadpool.c threads.c locales.c icall.c reflection.c socket-io.c: Use
1935         the new macros.
1936         
1937         * object.c (mono_get_delegate_invoke): Call setup_methods () to avoid the
1938         slower search in metadata.
1939
1940         * pedump.c: Fix a warning.
1941
1942 2009-02-23  Zoltan Varga  <vargaz@gmail.com>
1943
1944         * reflection.c (encode_locals): Add checks for user types.
1945         (method_encode_clauses): Ditto.
1946         (method_encode_code): Ditto.
1947         (mono_image_create_token): Ditto.
1948
1949         * object-internals.h: Change the type of more fields from MonoReflectionType*
1950         to MonoObject*.
1951
1952 2009-02-22  Zoltan Varga  <vargaz@gmail.com>
1953
1954         * threads.c (mono_thread_suspend_all_other_threads): Handle the case when
1955         the a thread does not suspend within 100ms.
1956
1957         * monitor.c (mono_monitor_try_enter_internal): Handle SuspendRequested
1958         in addition to StopRequested as well.
1959
1960         * mono-debug.c: Call _mono_debug_get_image () while holding the debug lock.
1961
1962         * debug-mono-symfile.c (mono_debug_symfile_lookup_method): Actually
1963         search the method_hash before inserting a new entry, to avoid crashes when
1964         the same method is inserted multiple times, causing the old 
1965         MonoDebugMethodInfo structure to be freed by the value dtor function.
1966
1967 2009-02-22 Gonzalo Paniagua Javier <gonzalo@novell.com>
1968
1969         * socket-io.c: support SO_MAXCONN, SO_USELOOPBACK and
1970         SO_EXLUSIVEADDRUSE where available.
1971
1972 2009-02-21  Zoltan Varga  <vargaz@gmail.com>
1973
1974         * marshal.c (mono_marshal_get_runtime_invoke): Fix _another_ bug sharing
1975         runtime invoke wrappers, this time it is string ctor wrappers, which
1976         pass a dummy string as 'this' instead of their obj argument. Fixes
1977         #478473.
1978
1979 2009-02-21  Jb Evain  <jbevain@novell.com>
1980
1981         * icall.c (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
1982         only get create_culture once.
1983
1984 2009-02-20  Zoltan Varga  <vargaz@gmail.com>
1985
1986         * reflection.c (mono_reflection_setup_internal_class): Move the user type
1987         check before the locking.
1988         
1989         * reflection.c (mono_reflection_setup_internal_class): Check for user types.
1990         (mono_reflection_create_runtime_class): Ditto.
1991         (mono_reflection_sighelper_get_signature_local): Ditto.
1992         (mono_reflection_sighelper_get_signature_field): Ditto.
1993
1994         * object-internals.h (CHECK_MONOTYPE): New macro to check that a Type object
1995         is a System.MonoType object or similar.
1996         (monotype_cast): New helper function to cast a MonoObject to a 
1997         MonoReflectionType object.
1998
1999         * object-internals.h: Change MonoReflectionType* members in structures to
2000         MonoObject* members to force the usage of the monotype_cast () function.
2001
2002         * reflection.c icall.c: Use monotype_cast () for accessing Type members of
2003         structures/arrays. This causes us to assert instead of crashing when 
2004         instances of user defined subclasses of System.Type are encountered.
2005
2006 2009-02-20 Gonzalo Paniagua Javier <gonzalo@novell.com>
2007
2008         * cil-coff.h:
2009         * icall-def.h:
2010         * icall.c: add new GetUnmanagedResourcePtr that returns a pointer to a
2011         win32 resource loaded from a PE file.
2012
2013         * image.c: fix mono_image_lookup_resource.
2014
2015 2009-02-20 Gonzalo Paniagua Javier <gonzalo@novell.com>
2016
2017         * icall-def.h:
2018         * threads-types.h:
2019         * threads.c: added internal call for WaitHandle.SignalAndWait.
2020
2021 2009-02-19  Bill Holmes  <billholmes54@gmail.com>
2022
2023         * cominterop.c : Adding cominterop_type_from_handle and 
2024           registering it as an icall.  Replacing all references
2025           to type_from_handle.
2026
2027         Code is contributed under MIT/X11 license.
2028
2029 2009-02-19 Rodrigo Kumpera  <rkumpera@novell.com>
2030
2031         * Makefile.am: Add lock-tracer.h and lock-trace.c.
2032
2033         * appdomain.c: Call the tracer init function.
2034
2035         * domain-internals.h: Enable the tracer for the domain locks.
2036
2037         * image.c: Enable the tracer for image locks.
2038
2039         * loader.c: Enable the trace for the loader lock.
2040
2041         * lock-tracer.h:
2042         * lock-tracer.c: Initial implementation of the lock trace utility.
2043         The tracer requires a compile time define to be enabled and a env var
2044         to be enabled at runtime.
2045
2046 2009-02-19 Rodrigo Kumpera  <rkumpera@novell.com>
2047
2048         * domain.c (mono_domain_code_foreach): Improve documentation.
2049
2050 2009-02-19 Rodrigo Kumpera  <rkumpera@novell.com>
2051
2052         * appdomain.c:
2053         * generic-sharing.c:
2054         * object.c:
2055         * reflection.c:  Adjust locking order to the new semantics where the loader lock
2056         comes first.
2057
2058 2009-02-18 Rodrigo Kumpera  <rkumpera@novell.com>
2059
2060         * domain.c: Add mono_domain_code_* functions that perform locking
2061         around the domain codeman.
2062
2063         * domain-internals.h: Export those functions.
2064
2065         * object.c: Use new functions instead of acquiring the domain lock.
2066
2067 2009-02-19  Zoltan Varga  <vargaz@gmail.com>
2068
2069         * marshal.c (mono_ftnptr_to_delegate): Convert a NULL ftnptr to a null
2070         delegate. Fixes #477396.
2071
2072 2009-02-18  Zoltan Varga  <vargaz@gmail.com>
2073
2074         * reflection.c (create_custom_attr): Get rid of alloca.
2075
2076 2009-02-18  Bill Holmes  <billholmes54@gmail.com>
2077
2078         * cominterop.c (cominterop_get_managed_wrapper_adjusted) :
2079           Adding exception handling for all CCW calls.
2080
2081         Code is contributed under MIT/X11 license.
2082
2083 2009-02-18  Zoltan Varga  <vargaz@gmail.com>
2084
2085         * reflection.c (mono_reflection_init): Remove the unused reflection mutex.
2086
2087         * marshal.c (emit_marshal_boolean): Add null checks to the new 
2088         native->managed marshalling code. Fixes #476247.
2089
2090 2009-02-17  Zoltan Varga  <vargaz@gmail.com>
2091
2092         * class.c (mono_class_get_vtable_entry): Move the addition of
2093         static rgctx invoke wrappers for vtable methods here, this simplifies
2094         a lot of code and causes fewer rgctx wrappers to be created.
2095
2096         * marshal.c (mono_marshal_get_static_rgctx_invoke): Change the
2097         name of the statistics to begin with an uppercase.
2098
2099 2009-02-17 Rodrigo Kumpera  <rkumpera@novell.com>
2100
2101         * reflection.c: Revert previous change as it breaks the build.
2102         
2103 2009-02-17 Rodrigo Kumpera  <rkumpera@novell.com>
2104
2105         * verify.c: Properly handle SZARRAY element type.
2106
2107         Fixes #474271.
2108
2109 2009-02-17 Rodrigo Kumpera  <rkumpera@novell.com>
2110
2111         * reflection.c (mono_image_create_method_token): Correctly encode
2112         MethodDef MemberRefParent token.
2113
2114         Fixes #472845.
2115
2116 2009-02-17  Zoltan Varga  <vargaz@gmail.com>
2117
2118         * image.c (mono_image_close): Delete the critical section before
2119         freeing the memory holding it.
2120
2121 2009-02-16 Rodrigo Kumpera  <rkumpera@novell.com>
2122
2123         * verify.c (mono_method_verify): rethrow opcode doesn not fall through.
2124         Fixes #476257.
2125
2126 2009-02-16 Rodrigo Kumpera  <rkumpera@novell.com>
2127
2128         * pedump.c (main): Call mono_marshal_init so pedump
2129         doesn't crash.
2130
2131 2009-02-16 Rodrigo Kumpera  <rkumpera@novell.com>
2132
2133         * loader.c (method_from_memberref): Properly fix #474271 and
2134         don't break the runtime bad.
2135
2136 2009-02-16  Zoltan Varga  <vargaz@gmail.com>
2137
2138         * domain.c (mono_domain_alloc): Add locking so the caller doesn't have to.
2139         (mono_domain_alloc0): Ditto.
2140
2141 2009-02-16 Rodrigo Kumpera  <rkumpera@novell.com>
2142
2143         * loader.c (method_from_memberref): Don't abort if the array
2144         method is not found. A regular loader failure is more informative
2145         and correct.
2146
2147         Fixes #474271.
2148
2149 2009-02-16 Rodrigo Kumpera  <rkumpera@novell.com>
2150
2151         *loader.c: Guard MonoImage::method_cache/methodref_cache
2152         using the image lock instead of the loader lock.
2153
2154         * metadata.h: Add comments about which fields are protected by
2155         the image lock.
2156
2157 2009-02-16  Zoltan Varga  <vargaz@gmail.com>
2158
2159         * appdomain.c (mono_set_private_bin_path_from_config): Fix a warning.
2160
2161         * generic-sharing.c (mono_method_construct_object_context): Remove the
2162         wrapper_type == NONE assert, it is not needed.
2163
2164 2009-02-15  Zoltan Varga  <vargaz@gmail.com>
2165
2166         * reflection.c (clear_cached_object): New helper function.
2167         (mono_method_clear_object): New function to clear the cached reflection
2168         objects for a dynamic method.
2169
2170         * object.c (mono_runtime_free_method): Call mono_method_clear_object ().
2171         Partly fixes # 463323.
2172         
2173 2009-02-14 Rodrigo Kumpera  <rkumpera@novell.com>
2174
2175         * class.c:
2176         * loader.c:
2177         * reflection.c: Remove all explicit uses of MonoImage::property_hash.
2178
2179 2009-02-14 Rodrigo Kumpera  <rkumpera@novell.com>
2180
2181         * image.c: Add mono_image_property_(lookup,insert,remove) functions that
2182         take the image lock instead of the loader lock.
2183
2184         * metadata-internals.h: Export new functions.
2185
2186 2009-02-12  Miguel de Icaza  <miguel@novell.com>
2187
2188         * domain.c (app_config_parse): Remove another use of stat that is
2189         not necessary as g_file_get_contents already does the presence
2190         check. 
2191
2192 2009-02-13  Zoltan Varga  <vargaz@gmail.com>
2193
2194         * cominterop.c icall-def.h: Fix the DISABLE_COM build.
2195
2196         * marshal.c: Move the bstr handling code to cominterop.c.
2197
2198         * marshal.c: Remove some COM interop code missed previously.
2199
2200 2009-02-12  Miguel de Icaza  <miguel@novell.com>
2201
2202         More Paolo patches from the Wii port:
2203         
2204         * security.c: Remove ves_icall_System_Environment_get_UserName
2205         from here.
2206
2207         * icall.c: And put ves_icall_System_Environment_get_UserName
2208         here. 
2209
2210         * appdomain.c (mono_set_private_bin_path_from_config): Remove
2211         redundant call to stat that was only used to test for the file
2212         existence.   Patch from Paolo.
2213
2214         * gc.c (run_finalize): If COM is disabled, do not link in
2215         mono_marshal_free_ccw.
2216
2217         * generic-sharing.c: Use alloca.h here as well.
2218
2219 2009-02-13 Rodrigo Kumpera  <rkumpera@novell.com>
2220
2221         * reflection.c (mono_reflection_lookup_dynamic_token): Do the locking properly.
2222
2223 2009-02-13  Zoltan Varga  <vargaz@gmail.com>
2224
2225         * cominterop.c cominterop.h: New files.
2226
2227         * marshal.c: Move the COM interop related code to cominterop.c. Make a few
2228         function/typedefs which are needed by cominterop.c global.
2229
2230 2009-02-12  Mark Probst  <mark.probst@gmail.com>
2231
2232         * generic-sharing.c: Don't take the loader lock to guard image
2233         mempool allocs.
2234
2235 2009-02-12 Rodrigo Kumpera  <rkumpera@novell.com>
2236
2237         * reflection.c (mono_reflection_lookup_dynamic_token): This function might be
2238         called without the loader lock which is required to guard MonoImage:tokens.
2239
2240 2009-02-12 Rodrigo Kumpera  <rkumpera@novell.com>
2241
2242         * class.c:
2243         * metadata.c:
2244         * method-builder.c:
2245         * marshal.c:
2246         * reflection.c: Don't take the loader lock to alloc memory from the image mempool.
2247
2248 2009-02-12 Rodrigo Kumpera  <rkumpera@novell.com>
2249
2250         * metadata.c: Remove mono_image_alloc_lock and mono_image_alloc0_lock.
2251         Rework the code to use regular mono_image_alloc/0.
2252
2253         * loader.c: Rework the code to use regular mono_image_alloc/0.
2254
2255         * metadata-internals.h: Remove mono_image_alloc_lock and mono_image_alloc0_lock.
2256
2257 2009-02-12  Bill Holmes  <billholmes54@gmail.com>
2258
2259         * object-internals.h : Fixing a typo in the 
2260           MonoReflectionComVisibleAttribute struct.
2261
2262         * marshal.c (cominterop_com_visible): Check the implemented 
2263           interfaces for ComImport.
2264
2265         * marshal.c (cominterop_get_native_wrapper_adjusted): For COM calls 
2266           assume that bools should be treated as VARIANTBOOLs.
2267
2268         * marshal.c (emit_marshal_boolean): Adding cases for 
2269           MARSHAL_ACTION_MANAGED_CONV_IN and MARSHAL_ACTION_MANAGED_CONV_OUT.
2270
2271         * marshal.c (mono_marshal_emit_managed_wrapper): Adding calls to 
2272           emit_marshal MARSHAL_ACTION_MANAGED_CONV_IN and OUT for bools.
2273
2274         * marshal.c (cominterop_get_ccw): For COM calls assume that bools
2275           should be treated as VARIANTBOOLs.    
2276
2277         Code is contributed under MIT/X11 license.
2278
2279 2009-02-12 Rodrigo Kumpera  <rkumpera@novell.com>
2280
2281         * image.c (mono_image_alloc, mono_image_alloc0, mono_image_strdup): Guard mempool
2282         allocation with the image lock.
2283
2284 2009-02-12 Rodrigo Kumpera  <rkumpera@novell.com>
2285
2286         This patch is the last of a series to remove explicit reference of MonoImage::mempool
2287         and use mono_image_alloc set of functions instead. This time we finish with reflection.c
2288
2289         * object.c: Add mono_string_to_utf8_image.
2290
2291         * object-internals.h: Export mono_string_to_utf8_image.
2292
2293         * reflection.c: Rework all explicit references to the the image mempool to go thought
2294         the mono_image_alloc set of functions.
2295
2296 2009-02-12 Rodrigo Kumpera  <rkumpera@novell.com>
2297
2298         This patch is the third of a series to remove explicit reference of MonoImage::mempool
2299         and use mono_image_alloc set of functions instead. This time we finish with marshal.c
2300         and generics-sharing.c.
2301
2302         * generics-sharing.c (set_other_info_templates): Take a MonoImage instead of a MonoMemPool
2303         as first argument. Note that this function remains broken as it doesn't perform locking around the
2304         mempool allocation.
2305
2306         * generics-sharing.c (rgctx_template_set_other_slot): Pass the image and not the mempool.
2307
2308         * image.c: Add g_slist_append_image.
2309
2310         * metadata.c (mono_metadata_field_info_with_mempool): Remove the mempool argument and use
2311         the supplied image for allocation. Move code into mono_metadata_field_info_full.
2312
2313         * metadata.c (mono_metadata_parse_marshal_spec_full): Take a MonoImage instead of a MonoMemPool.
2314         Fix all related code to do the same.
2315
2316         * marshal.c (mono_marshal_load_type_info): Pass the image instead of the mempool.
2317
2318         * metadata-internals.h: Fix the signatures.
2319
2320 2009-02-12 Rodrigo Kumpera  <rkumpera@novell.com>
2321
2322         This patch is the second of a series to remove explicit reference of MonoImage::mempool
2323         and use mono_image_alloc set of functions instead. This time we rework mono_metadata_type_dup
2324         and similar to work using MonoImage.
2325
2326         * class.c (mono_mempool_dup): Rename to mono_image_memdup and take a MonoImage instead of a
2327         MonoMemPool.
2328
2329         * class.c (mono_dup_array_type): Take a MonoImage instead of a MonoMemPool as first argument.
2330
2331         * class.c (mono_metadata_signature_deep_dup): Same.
2332
2333         * class.c (inflate_generic_type): Same.
2334
2335         * class.c (mono_class_inflate_generic_type_with_mempool): Same.
2336
2337         * metadata.c (mono_metadata_signature_dup_full): Same.
2338
2339         * metadata.c: Add mono_metadata_signature_dup_mempool and extract common functionality from 
2340         mono_metadata_signature_dup_full.
2341
2342         * metadata.c (mono_metadata_type_dup): Same.
2343
2344         * marshal.c: Pass the image to calls to mono_metadata_type_dup.
2345
2346         * reflection.c: Same.
2347
2348         * generic-sharing.c: Pass the image to calls to mono_class_inflate_generic_type_with_mempool.
2349
2350         * metadata-internals.h: Fix the signatures.
2351
2352         * class-internals.h: Same.
2353
2354 2009-02-11 Rodrigo Kumpera  <rkumpera@novell.com>
2355
2356         This patch is the first of a series to remove explicit reference of MonoImage::mempool
2357         and use mono_image_alloc set of functions instead. 
2358
2359         * class.c (mono_class_inflate_generic_type_with_mempool_no_copy):
2360         Rename to mono_class_inflate_generic_type_no_copy and take a MonoImage instead
2361         of a MonoMemPool.
2362
2363         * class.c (mono_class_setup_fields): Adapt to mono_class_inflate_generic_type_no_copy.
2364
2365         * class.c (g_list_prepend_mempool): Removed.
2366
2367         * class.c (mono_class_get_nested_types): Use g_list_prepend_image instead of g_list_prepend_mempool.
2368
2369         * image.c: Add g_list_prepend_image.
2370
2371         * metadata-internals.h (struct MonoImage): Fix comment. Export g_list_prepend_image as internal.
2372
2373         * reflection.c (mono_reflection_create_runtime_class): Use g_list_prepend_image instead of g_list_prepend_mempool.
2374
2375
2376 2009-02-11 Rodrigo Kumpera  <rkumpera@novell.com>
2377
2378         * metadata-internals.h (struct MonoImage): Add lock field. Export mono_image_lock and
2379         mono_image_unlock.
2380
2381         * image.c (mono_image_init): Init the lock field.
2382  
2383         * image.c (mono_image_init): Cleanup the lock field.
2384
2385         * image.c: Add mono_image_(un)lock functions.
2386
2387 2009-02-11  Mark Probst  <mark.probst@gmail.com>
2388
2389         * class.c, class-internals.h: mono_method_get_context_general()
2390         combines the functionality of mono_method_get_context() and
2391         mini_method_get_context().
2392
2393         * generic-sharing.c, domain-internals.h:
2394         mono_method_construct_object_context() and
2395         mono_domain_lookup_shared_generic() moved from mini.
2396
2397         * icall.c (ves_icall_InternalInvoke): Handle the case where the
2398         method doesn't have the correct instantiation because it's shared
2399         generic code.  Fixes #473999.
2400
2401 2009-02-11  Zoltan Varga  <vargaz@gmail.com>
2402
2403         * loader.c (mono_method_get_wrapper_data): Handle inflated methods as well.
2404
2405         * loader.c (mono_loader_lock): Add a comment pointing to the locking document.
2406         
2407 2009-02-11 Rodrigo Kumpera  <rkumpera@novell.com>
2408
2409         * metadata.c: Make mono_image_alloc_lock and mono_image_alloc0_lock non static.
2410
2411         * metadata-internals.h: Export mono_image_alloc_lock and mono_image_alloc0_lock.
2412
2413         * loader.c (mono_get_method_full): Drop the loader lock while constructing the method
2414         and recheck the cache for dups after it.
2415
2416         * loader.c (mono_get_method_from_token): Use _lock version of mono_image_alloc0.
2417
2418         Fixes one of the deadlocks found in #473150.
2419
2420 2009-02-11  Bill Holmes  <billholmes54@gmail.com>
2421
2422         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Accept_internal):
2423           For Win32, add additional break conditions for accept.
2424
2425         Code is contributed under MIT/X11 license.
2426
2427 2009-02-10  Zoltan Varga  <vargaz@gmail.com>
2428
2429         * marshal.c (mono_marshal_get_native_func_wrapper): Use get_cache to
2430         lazily initialize the native wrapper cache.
2431         (mono_marshal_get_native_wrapper): Put aot-ed native wrappers into a separate
2432         cache, since they are different from the normal wrappers.
2433
2434         * image.c (mono_image_init): Initialize native_wrapper_cache lazily as well.
2435
2436         * metadata-internals.h (struct _MonoImage): Add a new wrapper for
2437         AOT compiled native wrappers.
2438
2439 2009-02-09  Geoff Norton  <gnorton@novell.com>
2440
2441         * appdomain.h:
2442         * security-core-clr.c: Allow enabling core-clr from the embedding
2443         API.
2444
2445 2009-02-07 Gonzalo Paniagua Javier <gonzalo@novell.com>
2446
2447         * socket-io.c: when requesting all the local ips, if there are no
2448         interfaces up and running, MS returns 127.0.0.1.
2449
2450 2009-02-07 Gonzalo Paniagua Javier <gonzalo@novell.com>
2451
2452         * mono-perfcounters-def.h: processor time is an inverse time.
2453         Fixes bug #468625.
2454
2455 2009-02-07 Gonzalo Paniagua Javier <gonzalo@novell.com>
2456
2457         * socket-io.c: an empty host name returns the list of local IPs.
2458         Fixes bug #386637 part 1/2.
2459
2460 2009-02-07  Zoltan Varga  <vargaz@gmail.com>
2461
2462         * verify.c (mono_class_interface_implements_interface): Call
2463         mono_class_setup_interfaces ().
2464         (merge_stacks): Ditto.
2465
2466 2009-02-06  Zoltan Varga  <vargaz@gmail.com>
2467
2468         * class.c (mono_class_setup_interfaces): New function to lazily initalize
2469         klass->interfaces.
2470         (mono_generic_class_get_class): Don't initalize klass->interfaces.
2471         (mono_generic_class_get_class): Ditto.
2472
2473 2009-02-06  U-QUACK\miguel  <miguel@quack>
2474
2475         * icall-defs.h: Include also the Encrypt/Decrypt string methods as
2476         they live in security.c
2477
2478         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Integrated
2479         another bit from Paolo's code.
2480
2481 2009-02-06  Zoltan Varga  <vargaz@gmail.com>
2482
2483         * object.c (build_imt_slots): Add a small optimization to avoid inflating
2484         methods which will be discarded by add_imt_builder_entry ().
2485
2486         * marshal.c (get_runtime_invoke_type): Avoid sharing enum types since they
2487         need to be boxed.
2488
2489         * loader.c: Add a statistics for the size of the memberref signature cache.
2490         
2491         * loader.c (find_cached_memberref_sig): New helper function.
2492         (cache_memberref_sig): Ditto.
2493
2494         * loader.c: Cache the result of parsing memberref signatures, since otherwise
2495         they will be parsed again for every generic instantiation, leading to unbounded
2496         memory growth.
2497
2498 2009-02-05  Zoltan Varga  <vargaz@gmail.com>
2499
2500         * loader.c (mono_get_method_from_token): Avoid creating class for the generic
2501         parameters of generic methods.
2502
2503         * class.c (mono_class_inflate_generic_method_full): Set is_mb_open again
2504         after the original method is copied to the inflated method.
2505         (mono_class_get_vtable_entry): Handle rgctx invoke wrappers more efficiently.
2506
2507         * class-internals.h (struct _MonoMethodInflated): Move the is_mb_open
2508         field to MonoMethod since it only consumes 1 bit there, and 4/8 bytes here.
2509
2510         * class.c metadata.c: Update after the changes above.
2511
2512 2009-02-05 Rodrigo Kumpera  <rkumpera@novell.com>
2513
2514         * metadata-verify.c: Simplified error handling and added
2515         section table validation.
2516
2517 2009-02-05  Zoltan Varga  <vargaz@gmail.com>
2518
2519         * class-internals.h (MonoClassExt): New structure containing rarely used
2520         fields of MonoClass.
2521         (struct _MonoClass): Move rarely used fields to MonoClassExt, accessed
2522         through a new 'ext' field.
2523
2524         * class.c (mono_class_alloc_ext): New helper function to allocate 
2525         class->ext.
2526
2527         * class.c metadata.c reflection.c: Update after MonoClass structure changes.
2528
2529 2009-02-05  Mark Probst  <mark.probst@gmail.com>
2530
2531         * object.c (mono_object_get_virtual_method): Properly inflate
2532         generic methods.  Fixes #472692.
2533
2534 2009-02-05 Rodrigo Kumpera  <rkumpera@novell.com>
2535
2536         * class.c (mono_class_create_from_typedef): The CLR supports SystemF
2537         recursive types such as List<T>:Cons<T,List<T>> so when doing the lookup
2538         for the parent type, the created type must be ready to be used on a generic
2539         instantiation.
2540         We fill this_arg/byval_arg if the parent is a generic instance to make sure
2541         we won't have duplicated entries in generic_inst_cache.
2542
2543         Fixes #469553.
2544
2545 2009-02-05  Miguel De Icaza  <miguel@novell.com>
2546
2547         * threadpool.c (socket_io_add_poll): Remove the BSD6 define and
2548         replace with plain BSD per the comments on the bug MONO77637.
2549
2550 2009-02-05  Zoltan Varga  <vargaz@gmail.com>
2551
2552         * class.c (mono_class_get_generic_class): New accessor function.
2553         (mono_class_get_generic_container): Ditto.
2554
2555         * class-internals.h (struct _MonoClass): Add 'is_generic' and 'is_inflated'
2556         fields, similar to the ones in MonoMethod.
2557
2558         * class.c (mono_generic_class_get_class): Set klass->is_inflated.
2559         (mono_class_create_from_typedef): Set klass->is_generic if needed.
2560
2561         * reflection.c (mono_reflection_create_generic_class): Set klass->is_generic.
2562         
2563         * class-internals.h (struct _MonoClass): Remove enum_basetype, it contains
2564         the same information as element_class->byval_arg.
2565
2566         * class.c reflection.c: Remove references to class->byval_arg.
2567
2568         * class.c marshal.c: Use mono_class_enum_basetype () instead of accessing 
2569         klass->enum_basetype directly.
2570
2571         * verify.c metadata.c object.c icall.c reflection.c: Use 
2572         mono_class_enum_basetype () instead of accessing klass->enum_basetype 
2573         directly.
2574
2575 2009-02-04  Miguel de Icaza  <miguel@novell.com>
2576
2577         * icall-def.h: Remove internal calls for sockets when
2578         DISABLE_SOCKET is defined, file system writing features when the
2579         OS only support reading and not writing data and Policy support if
2580         the Policy is disabled.
2581         
2582         * image.c (do_mono_image_open): Apply Paolo's patches for using
2583         mono_file_map_ APIs here.
2584
2585         * assembly.c: Add support for platforms to avoid prefix
2586         auto-detection. 
2587
2588 2009-02-04  Zoltan Varga  <vargaz@gmail.com>
2589
2590         * generic-sharing.c (mono_method_fill_runtime_generic_context): Fix a
2591         warning.
2592
2593         * class.c (mono_class_inflate_generic_class): New helper function.
2594
2595         * class.c: Use mono_class_inflate_generic_class in a few places. Add
2596         statistics for inflated methods/classes.
2597
2598         * loader.c (inflate_generic_header): Use mono_class_inflate_generic_class.
2599
2600         * icall.c (ves_icall_Type_GetMethodsByName): Optimize the case when
2601         the call is made from Delegate.CreateDelegate () for the invoke method of
2602         a delegate.
2603
2604         * loader.c: Add a statistics for the memory occupied by inflated signatures.
2605
2606         * metadata.c (mono_metadata_signature_size): New helper function.
2607
2608         * class.c (mono_class_get_method_from_name_flags): Add an optimization for
2609         generic instances.
2610
2611         * metadata.c (inflated_method_in_image): Avoid calling 
2612         mono_method_signature () if the method does not already have a signature.
2613
2614 2009-02-03 Rodrigo Kumpera  <rkumpera@novell.com>
2615
2616         * verify.c (is_compatible_boxed_valuetype): When checking if the boxed 
2617         valuetype is compatible with target type, check by inheritance as a
2618         VT is not really compatible with System.ValueType, for example.
2619
2620         * verify.c (do_invoke_method): Improve error message.
2621
2622         * verify.c (do_box_value): If boxing a nullable, use the type argument
2623         on stack instead.
2624
2625         * verify.c (do_newobj): Improve error message.  
2626
2627         Fixes #469549.
2628
2629 2009-02-03  Miguel de Icaza  <miguel@novell.com>
2630
2631         * appdomain.c: Add support for DISABLE_SOCKETS and DISABLE_SHADOW_COPY
2632
2633 2009-02-03  Mark Probst  <mark.probst@gmail.com>
2634
2635         * generic-sharing.c: Don't hold domain lock when calling
2636         instantiate_other_info().  Fixes #471958.
2637
2638         * domain-internals.h, loader.c: Describe locking policy of domain
2639         lock vs loader lock.
2640
2641 2009-02-03 Rodrigo Kumpera  <rkumpera@novell.com>
2642
2643         * verify.c (mono_delegate_signature_equal): Make it possible to check
2644         first-arg-bound delegates to static method.
2645
2646         * verify.c (verify_delegate_compatibility): Correctly verify delegates to
2647         static methods with the first arg bound.
2648
2649         Fixes #469529.
2650
2651 2009-02-03 Rodrigo Kumpera  <rkumpera@novell.com>
2652
2653         * verify.c: Added stack_slot_full_name to provide decent and more meanfull
2654         errors.
2655
2656         * verify.c (is_compatible_boxed_valuetype): Be less restrictive when not
2657         under strict mode. Any type, when boxed can be seen as a reference type.
2658
2659         Fixes #469528.
2660
2661 2009-02-03 Rodrigo Kumpera  <rkumpera@novell.com>
2662
2663         * object.h: The lower bound of an array is a signed integer value.
2664         Introduce mono_array_lower_bound_t typedef. It should be used instead of
2665         gint32 as under MONO_BIG_ARRAYS it will be a gint64.
2666
2667         * icall.c: Cast MonoArrayBounds::length to a signed value so correctly
2668         calculate the upper bound.
2669         
2670         Fixes #471252.
2671
2672 2009-02-02  Miguel de Icaza  <miguel@novell.com>
2673
2674         From Paolo's work, refactored, cleared up:
2675         
2676         * threadpool.c, icall.c: ifdef code that requires a working socket
2677         stack.
2678
2679         * metadata.c (mono_metadata_field_info): Do not attempt to return
2680         a value from a function declared as void.
2681
2682         * console-io.c: Use MONO_NULL_TTYDRIVER to remove the tty driver
2683         from the console stack.
2684
2685         * assembly.c: use strrchr instead of rindex.
2686
2687         * class.c, object.c, marshal.c, icall.c, reflection.c: include
2688         alloca.h on systems that have it.
2689
2690         * environment.c: Avoid code that uses stuff from
2691         HAVE_SYS_UTSNAME_H
2692         
2693         * appdomain.c: Include sys/time.h.
2694
2695         * console-io.c: include sys/ioctl.h if it is available.
2696
2697 2009-02-03  Zoltan Varga  <vargaz@gmail.com>
2698
2699         * method-builder.h (_MonoMethodBuilder): Add a 'skip_visibility' flag.
2700
2701         * method-builder.c (mono_mb_create_method): Set method->skip_visibility from
2702         the method builder.
2703
2704         * marshal.c: Set mb->skip_visibility instead of setting it on the method
2705         after it was created and cached, as the later is not thread safe.
2706         
2707 2009-02-02  Zoltan Varga  <vargaz@gmail.com>
2708
2709         * mono-debug.c (mono_debug_print_stack_frame): Avoid crashes when this is
2710         called while the debugging module is not initialized. Fixes #471669.
2711
2712 2009-02-02 Rodrigo Kumpera  <rkumpera@novell.com>
2713
2714         * icall.c (type_from_name): Ignore reflection frames to find out the real caller.
2715
2716         Fixes #471255.
2717
2718 2009-02-02  Mark Probst  <mark.probst@gmail.com>
2719
2720         * generic-sharing.c (lookup_or_register_other_info): Make sure the
2721         loader lock is not taken while the templates lock is held.  Fixes
2722         #471089.
2723
2724 2009-02-02  Mark Probst  <mark.probst@gmail.com>
2725
2726         * metadata.c (type_in_image): Added a check to fix a monodis
2727         crash.
2728
2729 2009-02-02  Zoltan Varga  <vargaz@gmail.com>
2730
2731         * marshal.c (mono_marshal_get_runtime_invoke): Add support for byref
2732         nullable arguments.
2733
2734         * object.c (mono_runtime_invoke_array): Ditto.
2735         
2736         * marshal.c (mono_marshal_free_dynamic_wrappers): New function for
2737         freeing wrappers of dynamic methods.
2738
2739         * loader.c (mono_free_method): Call it. Fixes #463323.
2740         
2741         * marshal.c (mono_marshal_get_runtime_invoke): Disable sharing for
2742         methods taking vtype/byref arguments, to fix yet another bug caused by
2743         the sharing of runtime invoke wrappers. Partly fixes #471259.
2744
2745 2009-02-01  Zoltan Varga  <vargaz@gmail.com>
2746
2747         * debug-mono-symfile.c (check_line): Return NULL instead of returning
2748         <first file in file table>:1 when the IL offset does not have an associated
2749         line number.
2750
2751 2009-01-31  Zoltan Varga  <vargaz@gmail.com>
2752
2753         * mono-debug.c (mono_debug_lookup_locals): New function to return local
2754         variable info for a method.
2755
2756         * debug-mono-symfile.c (mono_debug_symfile_lookup_locals): Ditto.
2757         
2758 2009-01-30  Jb Evain  <jbevain@novell.com>
2759
2760         * pedump.c: reuse code from monodis to make sure pedump honors
2761         MONO_PATH, which is needed to verify net_2_1 assemblies.
2762
2763 2009-01-29  Zoltan Varga  <vargaz@gmail.com>
2764
2765         * mono-debug.c (mono_debug_print_stack_frame): Print the IL offset even when
2766         there is no line number info.
2767
2768 2009-01-29  Raja R Harinath  <harinath@hurrynot.org>
2769
2770         Avoid some MonoType allocations
2771         * reflection.c (mono_reflection_initialize_generic_parameter):
2772         Reuse MonoType from param->pklass rather than allocating one.
2773         (mono_dynamic_image_free): Update to changes.
2774
2775 2009-01-28  Raja R Harinath  <harinath@hurrynot.org>
2776
2777         Rearrange some code to improve consistency
2778         * reflection.c (mono_reflection_setup_generic_class): Move body ...
2779         (mono_reflection_initialize_generic_parameter): ... here.
2780
2781 2009-01-28  Zoltan Varga  <vargaz@gmail.com>
2782
2783         * generic-sharing.c (has_constraints): Enable gshared for methods/classes
2784         with type constraints as an experiment.
2785
2786         * boehm-gc.c (on_gc_notification): Update mono_stats.
2787
2788 2009-01-28  Raja R Harinath  <harinath@hurrynot.org>
2789
2790         Avoid some allocations
2791         * class-internals.h (_MonoGenericInst::type_argv): Convert from
2792         pointer to tail array to avoid extra allocation.
2793         * metadata.c (free_generic_inst): Update to changes.
2794         (mono_metadata_get_generic_inst): Likewise.  Use alloca instead of
2795         on-stack struct.
2796
2797 2009-01-27  Zoltan Varga  <vargaz@gmail.com>
2798
2799         * icall.c (ves_icall_System_Type_EqualsInternal): For user-defined types,
2800         return TRUE if the two type objects are the same.
2801
2802 2009-01-26  Zoltan Varga  <vargaz@gmail.com>
2803
2804         * marshal.c (mono_marshal_load_type_info): Fill out info->min_align.
2805         (mono_class_native_size): Use klass->marshal_info->min_align instead of
2806         klass->min_align, since klass->min_align contains the managed alignment,
2807         while the native alignment can be different, like for longs on x86.
2808         Fixes #469135.
2809
2810         * class-internals.h (MonoMarshalType): Add a min_align field.
2811
2812 2009-01-26 Rodrigo Kumpera  <rkumpera@novell.com>
2813
2814         * assembly.c (mono_assembly_try_decode_skip_verification): Add a hack to check
2815         the 1.0 format.
2816
2817 2009-01-26  Zoltan Varga  <vargaz@gmail.com>
2818
2819         * domain-internals.h (struct _MonoJitInfo): Add a 'from_aot' field plus
2820         some comments about the usage of the used_regs field.
2821
2822         * marshal.c (emit_marshal_ptr): Allow pointers to blittable structures.
2823         Fixes #469217.
2824
2825 2009-01-24 Gonzalo Paniagua Javier <gonzalo@novell.com>
2826
2827         * appdomain.c: return NULL instead of throwing FileNotFoundException
2828         when LoadAssembly() fails.
2829
2830 2009-01-23  Mark Probst  <mark.probst@gmail.com>
2831
2832         * metadata.c (mono_metadata_generic_param_equal): Only compare the
2833         image if the owner is NULL.  Fixes the AOT failures.
2834
2835 2009-01-23  Zoltan Varga  <vargaz@gmail.com>
2836
2837         * metadata.c (mono_metadata_load_generic_params): Initialize the 
2838         MonoGenericParam structure using memset so the image field is initialized
2839         as well.
2840
2841 2009-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
2842
2843         * appdomain.c (mono_domain_unload): Change the InterlockedIncrement to
2844         a plain store.
2845
2846 2009-01-21  Zoltan Varga  <vargaz@gmail.com>
2847
2848         * class.c (mono_class_setup_vtable_general): In the generic instance
2849         optimization, set method->slot for abstract virtual methods. Fixes part of
2850         #467834.
2851
2852 2009-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
2853
2854         * domain-internals.h: Add new appdomain state MONO_APPDOMAIN_UNLOADING_START
2855         which signals that the unloading has started but all appdomain services must
2856         remain operational.
2857
2858         * appdomain.c (mono_domain_unload): The initial state for unloading now
2859         is unloading_start and we switch to unloading after the managed call to
2860         AppDomain::DomainUnload has finished.
2861
2862         The new unloading state has to be created because managed code in the
2863         DomainUnload event can depend on things like the threadpool still working.
2864         The domain must remain fully functional while the event executes.
2865
2866         This shown as an issue due to Process::WaitForExit, which waits for
2867         async reads of stdout and stderr to complete. Since those are processed
2868         in the threadpool the code deadlocks because the DomainUnload callback 
2869         waits for the async read finished event, which should have been set by a
2870         threadpool job but has been discarded due to the domain been in unload
2871         state.
2872
2873 2009-01-21  Mark Probst  <mark.probst@gmail.com>
2874
2875         * metadata.c (mono_metadata_generic_param_equal): Owner as well as
2876         image must match.
2877
2878 2009-01-21  Mark Probst  <mark.probst@gmail.com>
2879
2880         * reflection.c (resolve_object): For fields, inflate the class and
2881         then get the field in the inflated class.
2882
2883 2009-01-20  Mark Probst  <mark.probst@gmail.com>
2884
2885         * object-internals.h (struct _MonoException): Added a comment
2886         explaining the new use of trace_ips.
2887
2888 2009-01-20  Mark Probst  <mark.probst@gmail.com>
2889
2890         * generic-sharing.c (inflate_other_data): Inflate array methods
2891         correctly.
2892
2893         * loader.c, class-internals.h: Rename search_in_array_class() to
2894         mono_method_search_in_array_class() and make it non-static.
2895
2896 2009-01-19  Zoltan Varga  <vargaz@gmail.com>
2897
2898         * metadata.c (inflated_signature_in_image): Call signature_in_image as well.
2899         Hopefully fixes #458168.
2900
2901 2009-01-19  Christian Hergert  <christian.hergert@gmail.com>
2902
2903         * object.c (mono_raise_exception): Remove call to InterlockedIncrement
2904         as it is performed elsewhere.
2905
2906         Code is contributed under MIT/X11 license
2907
2908 2009-01-19  Christian Hergert  <christian.hergert@gmail.com>
2909
2910         * mono-perfcounters-def.h: Add counters for asp.net requests total and
2911         requests queued.
2912         * object.c (mono_raise_exception): Increment the exceptions total
2913         counter when an exception is thrown.
2914         * class-internals.h: Add a location for storing the total number of
2915         asp.net requests served.
2916         * mono-perfcounters.c: Implement update support for asp.net counters
2917         from the class libraries. Implement read support for asp.net counters
2918         and exceptions total counter.
2919
2920 2009-01-19  Zoltan Varga  <vargaz@gmail.com>
2921
2922         * loader.c (search_in_array_class): Call mono_class_setup_methods () before
2923         accessing klass->methods. Fixes #467385.
2924
2925 2009-01-18  Zoltan Varga  <vargaz@gmail.com>
2926
2927         * marshal.c (emit_marshal_custom): Avoid calling MarshalNativeToManaged
2928         for byval arguments without an [Out] attribute. Fixes #467212.
2929
2930         * attach.c: Applied patch from Koushik Dutta (koush@koushikdutta.com). 
2931         Fix compilation under android.
2932         
2933         * sgen-gc.c: Instead of scanning gray objects after all roots have been 
2934         processed, scan them directly after they are copied, to achieve better locality
2935         and cache usage.
2936
2937         * socket-io.c: Applied patch from Koushik Dutta
2938         (koush@koushikdutta.com). Disable IPV6 when running under android.
2939
2940 2009-01-18  Zoltan Varga  <vargaz@gmail.com>
2941
2942         * icall.c (ves_icall_InternalExecute): Add write barriers.
2943
2944         * marshal.c (mono_marshal_get_write_barrier): Remove, this is now done in
2945         the GC code.
2946
2947         * sgen-gc.c: Implement write barriers in IL code.
2948
2949 2009-01-17  Geoff Norton  <gnorton@novell.com>
2950
2951         * image.c: Avoid trying to walk the reference table of dynamic assemblies.
2952
2953 2009-01-17  Geoff Norton  <gnorton@novell.com>
2954
2955         * image.c: When unloading the image->references table, there can be gaps
2956         in it.  Ensure that we iterate every entry to avoid leaking assembly references
2957         when unloading an appdomain.
2958
2959 2009-01-16  Zoltan Varga  <vargaz@gmail.com>
2960
2961         * sgen-gc.c: Add support for allocating a nursery at an aligned address, to
2962         speed up ptr-in-nursery checks.
2963
2964         * threads.c (mono_threads_abort_appdomain_threads): Abort threads outside the
2965         threads_lock () to prevent deadlocks.
2966
2967         * sgen-gc.c gc-internal.h: Add a new root type root-with-wbarrier, which
2968         does not need to be scanned during minor collections, since writes to it
2969         must use write barriers.
2970
2971 2009-01-15 Rodrigo Kumpera  <rkumpera@novell.com>
2972
2973         * metadata-verify.c: Add pe nt header verification.
2974         
2975 2009-01-15  Zoltan Varga  <vargaz@gmail.com>
2976
2977         * gc.c: Fix a few warnings when using SGEN.
2978
2979 2009-01-14 Rodrigo Kumpera  <rkumpera@novell.com>
2980
2981         * metadata-verify.c: Add pe optional header verification.
2982
2983 2009-01-15  Zoltan Varga  <vargaz@gmail.com>
2984
2985         * sgen-gc.c: Add support for user defined marker functions, used by
2986         MonoGHashTable to avoid registering a GC root for every hash node.
2987
2988 2009-01-14  Zoltan Varga  <vargaz@gmail.com>
2989
2990         * sgen-gc.c: Fix warnings. Optimize copy_object () a bit. Split pinned/
2991         non-pinned roots into separate hashes to avoid having to traverse them
2992         in functions which are only interested in one kind.
2993
2994 2009-01-13 Rodrigo Kumpera  <rkumpera@novell.com>
2995
2996         * metadata-verify.c: Add pe header machine field verification.
2997         
2998 2009-01-13 Rodrigo Kumpera  <rkumpera@novell.com>
2999
3000         * metadata-verify.c: Add pe header size verification.
3001
3002 2009-01-14  Zoltan Varga  <vargaz@gmail.com>
3003
3004         * reflection.c (ALLOC_REFENTRY): Don't allocate the ReflectionEntry structures
3005         using the GC, they don't contain references.
3006
3007         * domain.c (mono_domain_create): Create ldstr_table using MONO_HASH_KEY_VALUE_GC.
3008
3009 2009-01-13  Geoff Norton  <gnorton@novell.com>
3010
3011         * appdomain.c|h: Expose mono_domain_unload to the embedding api so that 
3012         AppDomains created on the native side can be cleaned up on the native side.
3013
3014 2009-01-13  Geoff Norton  <gnorton@novell.com>
3015
3016         * appdomain.c: Ensure that we call mono_context_init for the embedding api
3017         as well as the managed api.
3018
3019 2009-01-13  Geoff Norton  <gnorton@novell.com>
3020
3021         * appdomain.h|c: New API for creating a MonoDomain in the embedding api
3022         with a MonoAppDomain initialized against it.
3023
3024 2009-01-13  Zoltan Varga  <vargaz@gmail.com>
3025
3026         * reflection.c (MOVING_GC_REGISTER): Fix a warning.
3027         
3028         * reflection.c (mono_image_get_generic_param_info): Use MOVING_GC_REGISTER.
3029
3030         * marshal.c: Avoid setting the exception clauses after a method has been entered 
3031         into the wrapper caches. Fixes #465700.
3032
3033         * method-builder.c (mono_mb_set_clauses): New function to set the clauses of the
3034         method builder.
3035         (mono_mb_create_method): Set the clauses from the method builder.
3036
3037 2009-01-13 Gonzalo Paniagua Javier <gonzalo@novell.com>
3038
3039         * threadpool.c: include sys/socket.h. Fixes compilation on FreeBSD.
3040         Patch from Makoto Kishimoto.
3041
3042 2009-01-13  Zoltan Varga  <vargaz@gmail.com>
3043
3044         * sgen-gc.c (mono_gc_make_descr_from_bitmap): Handle large bitmaps by 
3045         encoding them as ROOT_DESC_COMPLEX.
3046         (precisely_scan_objects_from): Implement support for ROOT_DESC_COMPLEX.
3047
3048 2009-01-12  Zoltan Varga  <vargaz@gmail.com>
3049
3050         * sgen-gc.c (scan_from_remsets): Clear the global remset of pointers which
3051         no longer point to the nursery.
3052
3053         * sgen-gc.c: Add a few comments/FIXMEs.
3054         
3055         * sgen-gc.c: Implement scanning of the alloc_pinned objects.
3056
3057         * marshal.c (mono_marshal_get_synchronized_wrapper): Make the 
3058         initialization of the various _method variables thread safe. Fixes
3059         #465377.
3060
3061 2009-01-12  Mark Probst  <mark.probst@gmail.com>
3062
3063         * domain.c, domain-internals.h: Remove the shared_generics_hash
3064         and its lookup functions.
3065
3066 2009-01-12  Bill Holmes  <billholmes54@gmail.com>
3067
3068         * socket-io.c:  Fixing the MSVC build. 
3069
3070         Code is contributed under MIT/X11 license.
3071
3072 2009-01-12 Rodrigo Kumpera  <rkumpera@novell.com>
3073
3074         * metadata-verify.c: Add pe header watermark verification.
3075
3076 2009-01-09 Rodrigo Kumpera  <rkumpera@novell.com>
3077
3078         * metadata-verify.c: Add lfanew verification.
3079
3080 2009-01-12  Jb Evain  <jbevain@novell.com>
3081
3082         * tabldefs.h: rename METHOD_ATTRIBUTE_CHECK_ACCESS_ON_OVERRIDE to
3083         METHOD_ATTRIBUTE_STRICT to match the ECMA terminology.
3084
3085 2009-01-10  Zoltan Varga  <vargaz@gmail.com>
3086
3087         * socket-io.c: Fix the build.
3088
3089         * environment.c: Fix an #ifdef.
3090
3091 2009-01-09  Zoltan Varga  <vargaz@gmail.com>
3092
3093         * threadpool.c (async_invoke_thread): Handle the wait function returning
3094         WAIT_IO_COMPLETION as well.
3095         (async_invoke_io_thread): Ditto.
3096
3097 2009-01-09  Bill Holmes  <billholmes54@gmail.com>
3098
3099         * threads.c: Fixing the Windows build.
3100
3101         Code is contributed under MIT/X11 license.
3102
3103 2009-01-09  Zoltan Varga  <vargaz@gmail.com>
3104  
3105         * threads.c (signal_thread_state_change): Call wapi_interrupt_thread () to
3106         interrupt a wait.
3107         (mono_thread_execute_interruption): Call wapi_clear_interruption () to enable
3108         the thread to wait again.
3109
3110 2009-01-09 Rodrigo Kumpera  <rkumpera@novell.com>
3111
3112         * metadata-verify.c: Initial skeleton of the metadata verifier.
3113
3114         * pedump.c: Add support for the metadata verifier.
3115
3116         * verify-internal.h: Export the whole assembly metadata verifier function.
3117
3118 2009-01-09 Rodrigo Kumpera  <rkumpera@novell.com>
3119
3120         * gc.c (mono_gc_init): Fix the comments about deadlock on windows.
3121
3122 2009-01-09  Zoltan Varga  <vargaz@gmail.com>
3123
3124         * Makefile.am: Upgrade dtrace-prelink.sh location.
3125
3126 2009-01-08 Rodrigo Kumpera  <rkumpera@novell.com>
3127
3128         * gc.c (mono_gc_init): Wait for finalizer thread to init on windows as
3129         well. Otherwise the shutdown deadlock that happens on unix will can happen
3130         as well.
3131         If the main thread code finishes too fast it's possible that the finalizer
3132         thread won't have executed yet, won't record itself as the finalizer thread
3133         and the shutdown sequence will wait on it forever.
3134
3135 2009-01-08 Rodrigo Kumpera  <rkumpera@novell.com>
3136
3137         * threads.c (mono_thread_current): Make THREAD_DEBUG work on windows
3138         with MSVC.
3139
3140 2009-01-08  Miguel de Icaza  <miguel@novell.com>
3141
3142         * appdomain.c: Initialize the mono_strtod_mutex here, thanks to
3143         Robert Jordan for pointing this out.
3144
3145 2009-01-08  Christian Prochnow  <cproch@seculogix.de>
3146
3147         * icall.c
3148         * icall-def.h: added internal calls ves_icall_System_IO_DriveInfo_GetDiskFreeSpace,
3149         ves_icall_System_IO_DriveInfo_GetDriveType.
3150
3151 2009-01-07  Miguel de Icaza  <miguel@novell.com>
3152
3153         * icall.c: Wrap calls to mono_strtod in CriticalSection
3154         invocations when using eglib, to work around #464316.
3155
3156 2009-01-07 Rodrigo Kumpera  <rkumpera@novell.com>
3157
3158         * file-io.c (ves_icall_System_IO_MonoIO_GetCurrentDirectory): Double check the
3159         return value of GetCurrentDirectory to never access unitialized memory.
3160
3161 2009-01-07 Rodrigo Kumpera  <rkumpera@novell.com>
3162
3163         * file-io.c (ves_icall_System_IO_MonoIO_GetCurrentDirectory): Properly check the
3164         return value of GetCurrentDirectory and expand the buffer if needed.
3165
3166         Fixes #459094.
3167
3168 2009-10-07 Tom Hindle  <tom_hindle@sil.org>
3169
3170         * marshal.c (GetIUnknownForObjectInternal, GetIUnknownForObjectInternal) : 
3171           Adding a call to mono_init_com_types.
3172
3173         Code is contributed under MIT/X11 license.
3174
3175 2009-01-07  Geoff Norton  <gnorton@novell.com>
3176
3177         * socket-io.c: ioctlsocket(FIONREAD) returns the size of the UDP header as well on 
3178         darwin.  Use getsockopt SO_NREAD instead to get the right values for TCP and UDP.
3179         ai_canonname can be null in some cases on darwin, where the runtime assumes it will 
3180         be the value of the ip buffer.
3181
3182 2009-01-06 Rodrigo Kumpera  <rkumpera@novell.com>
3183
3184         * verify.c (mono_class_interface_implements_interface): Verify parents as we can't rely on
3185         interfaces_packed here.
3186
3187         Fixes part of #463294.
3188
3189 2009-01-06 Rodrigo Kumpera  <rkumpera@novell.com>
3190
3191         * verify.c (is_array_type_compatible): Ignore bounds and sizes when checking array compatibility.
3192
3193         Fixes part of #463294.
3194
3195 2009-01-06 Rodrigo Kumpera  <rkumpera@novell.com>
3196
3197         * verify.c (stack_slot_is_complex_type_not_reference_type): Check if the type
3198         is a boxed complex as well.
3199
3200         Fixes part of #463294.
3201
3202 2009-01-06 Rodrigo Kumpera  <rkumpera@novell.com>
3203
3204         * reflection.c (mono_image_get_methodref_token): Add an extra create_typespec parameter to
3205         control if a methodspec should be created for the generic method definition from external assemblies.
3206         Caching of methodspec is done using the handleref hash table.
3207
3208         Fixes #462592.
3209
3210 2009-01-05 Rodrigo Kumpera  <rkumpera@novell.com>
3211
3212         * loader.c (find_method): When searching the interfaces of a class
3213         check the transitive closure of implemented interfaces.
3214
3215         Fixes #463303.
3216
3217 2009-01-03 Rodrigo Kumpera  <rkumpera@novell.com>
3218
3219         * class.c (get_implicit_generic_array_interfaces): Improve debugging code.
3220         
3221 2009-01-03 Rodrigo Kumpera  <rkumpera@novell.com>
3222
3223         * class.c (get_implicit_generic_array_interfaces): Extract valuetype
3224         interfaces calculation to fill_valuetype_array_derived_types.
3225
3226         * class.c (get_implicit_generic_array_interfaces): Valuetypes need IList /
3227         ICollection / IEnumerator interfaces for their extra twin type - sbyte for byte
3228         for example.
3229
3230         * class.c (get_implicit_generic_array_interfaces): InternalEnumerator gets
3231         interfaces for valuetypes if needed.    
3232
3233         * class.c (fill_valuetype_array_derived_types): Enums should have interfaces
3234         for their basetype as well. Types are array expanded if rank is > 0.
3235
3236         Fixes #400716.
3237
3238 2008-12-30  Bill Holmes  <billholmes54@gmail.com>
3239
3240         * socket-io.h : Changing the signature of
3241           ves_icall_System_Net_Sockets_Socket_Accept_internal to pass
3242           the blocking state.
3243
3244         * icall-def.h :  Changing the signature of
3245           System.Net.Sockets.Socket.Accept_internal to pass the blocking state.
3246
3247         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Accept_internal) :
3248           For Windows only.  Avoid blocking when calling accept by
3249           querying for a connection via select.  The loop also queries
3250           the thread state every 1000 micro seconds for the thread
3251           stop state.  This will avoid the process hanging on shutdown
3252           when using a TcpChannel that is never connected to.
3253
3254         Code is contributed under MIT/X11 license.
3255
3256 2008-12-30  Marek Safar  <marek.safar@gmail.com>
3257
3258         * tabledefs.h: Add METHOD_ATTRIBUTE_CHECK_ACCESS_ON_OVERRIDE.
3259
3260 2008-12-26 Rodrigo Kumpera  <rkumpera@novell.com>
3261
3262         * class.c (get_implicit_generic_array_interfaces): Extract common
3263         code to a helper function making it a lot easier on the eyes.
3264
3265 2008-12-26 Rodrigo Kumpera  <rkumpera@novell.com>
3266
3267         * class.c (get_implicit_generic_array_interfaces): If the internal
3268         enumerator is an interface inflate System.Object instead of itself.
3269
3270         Fixes #461261.
3271
3272 2008-12-24 Rodrigo Kumpera  <rkumpera@novell.com>
3273
3274         * object.c (mono_runtime_invoke_array): Don't assert with
3275         byref nullable types.
3276
3277         * marshal.c (mono_marshal_get_runtime_invoke): To handle
3278         byref nullables we unbox the object and store it on the
3279         stack. 
3280         We can't use the boxed object since it is the T of Nullable<T>
3281         and the boxed representation of a nullable it's underlying type
3282         or null.
3283         We could cheat and create a boxed nullable and use the same
3284         machinery of other byref VTs but this feels like a hack and
3285         using the stack has the bonus of reducing heap pressure.
3286
3287         Fixes #461941.
3288
3289 2008-12-23 Rodrigo Kumpera  <rkumpera@novell.com>
3290
3291         * marshal.c (mono_marshal_emit_managed_wrapper): Handle char
3292         return value.
3293
3294         Fixes #461867.
3295
3296 2008-12-19  Bill Holmes  <billholmes54@gmail.com>
3297
3298         * icall-def.h : Adding an internal call definition for 
3299           System.Environment.internalBroadcastSettingChange.
3300
3301         * icall.c : Adding a Windows only implementation to broadcast a 
3302           WM_SETTINGCHANGE when an environment variable has changed.
3303
3304         Code is contributed under MIT/X11 license.
3305
3306 2008-12-19  Mark Probst  <mark.probst@gmail.com>
3307
3308         * class.c, class-internals.h: Made
3309         mono_class_has_parent_and_ignore_generics() non-static.
3310
3311 Thu Dec 18 16:35:22 CET 2008 Paolo Molaro <lupus@ximian.com>
3312
3313         * image.c: deal with the mmap failing when loading an image.
3314
3315 2008-12-17  Geoff Norton  <gnorton@novell.com>
3316
3317         * threadpool.c: Ensure that the io_queue_lock is initialized
3318         in all circumstances, as we always attempt to cleanup against it.
3319
3320 2008-12-17  Miguel de Icaza  <miguel@novell.com>
3321
3322         * icall.c (ves_icall_System_Environment_get_Platform): For
3323         compatibility reasons for existing client code we will keep
3324         returning 4 for a while.   
3325
3326         For how long will depend on the documentation being updated, and
3327         for us to give client code a chance to be updated.
3328
3329         This reverts the original decison on #433108 since we did not
3330         catch roughly 33 instances of the broken code in our own source
3331         code base, we did not catch failures on the buildbots, and QA did
3332         not bring this as a problem.
3333
3334         Only today I found some customer's code breaking due to our own
3335         class libraries not being fully updated and tracked it down to
3336         this change.  I am reverting it because if we could not even get
3337         our story straight in our own code base, how can we hope that our
3338         end user code be fixed?
3339
3340         As of this morning, our Wiki page that documents how to detect
3341         Unix had not been fixed.    
3342
3343 2008-12-16  Zoltan Varga  <vargaz@gmail.com>
3344
3345         * metadata.c (inflated_method_in_image): Add a workaround for #458168.
3346
3347         * class.c (mono_class_get_fields): Handle loading errors.
3348
3349 2008-12-12 Mark Mason <mmason@upwardaccess.com>
3350
3351         * 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.
3352         
3353 2008-12-12 Gonzalo Paniagua Javier <gonzalo@novell.com>
3354
3355         * mono-perfcounters.c: avoid warning.
3356
3357 2008-12-12 Rodrigo Kumpera  <rkumpera@novell.com>
3358
3359         * reflection.c (ensure_runtime_vtable): Work on generic instances and
3360         make sure all interfaces have MonoClass::interface_id set.
3361
3362         * reflection.c (ensure_generic_class_runtime_vtable): Ensure the
3363         method table is property set.
3364
3365 2008-12-12 Rodrigo Kumpera  <rkumpera@novell.com>
3366
3367         * class.c: New function mono_class_setup_interface_id that setup
3368         MonoClass::interface_id if needed.
3369
3370         * class-internals.h: Export new function.
3371
3372 2008-12-12 Rodrigo Kumpera  <rkumpera@novell.com>
3373
3374         * class.c: Add code to sanity check the vtable after setup_vtable_general
3375         has done it's work.
3376
3377 2008-12-11 Gonzalo Paniagua Javier <gonzalo@novell.com>
3378
3379         * icall.c: make Assembly.GetExecutingAssembly work properly when
3380         reflection is used to invoke the method.
3381         Bug #321781 fixed.
3382
3383 2008-12-11  Mark Probst  <mark.probst@gmail.com>
3384
3385         * metadata/generic-sharing.c: Look for constraints in all type
3386         arguments, not just the first one.
3387
3388 2008-12-10 Gonzalo Paniagua Javier <gonzalo@novell.com>
3389
3390         * appdomain.c: return the correct CodeBase for an Assembly instance
3391         that was loaded from the shadow-copy directories.
3392         Bug #458190 fixed.
3393
3394 2008-12-10  Zoltan Varga  <vargaz@gmail.com>
3395
3396         * sgen-gc.c (build_nursery_fragments): Clear nursery_next/nursery_frag_real_end.
3397
3398         * sgen-gc.c (check_object): New debugging helper function.
3399
3400         * object.c: Fix calls to mono_value_copy_array ().
3401
3402 2008-12-10 Rodrigo Kumpera  <rkumpera@novell.com>
3403
3404         * class.c (mono_class_setup_fields): If working on an inflated class
3405         first check if the generic definition did init with success.
3406
3407         Fixes #445361.
3408
3409 2008-12-10 Rodrigo Kumpera  <rkumpera@novell.com>
3410
3411         pedump.c (main): Fix a warning.
3412
3413 2008-12-10  Bill Holmes  <billholmes54@gmail.com>
3414
3415         * object-internals.h : Adding a definition for 
3416           MonoReflectionComVisibleAttribute.
3417
3418         * marshal.c (cominterop_com_visible) :  Method added to check the 
3419           ComVisible attribute of a class.
3420
3421         * marshal.c (cominterop_raise_hr_exception, cominterop_get_interface) :  
3422           cominterop_raise_hr_exception added to consolidate common code 
3423           to raise hr exceptions.
3424
3425         * marshal.c (cominterop_can_support_dispatch) :  Method added to determine 
3426           if a managed class should support IDispatch.
3427
3428         * marshal.c 
3429           (cominterop_get_idispatch_for_objec, cominterop_ccw_queryinterfacet) :  
3430           Added additional checks for managed object when getting 
3431           an IDispatch interface.
3432
3433         Code is contributed under MIT/X11 license.
3434
3435 2008-12-10 Rodrigo Kumpera  <rkumpera@novell.com>
3436
3437         pedump.c (main): Handle mono_get_method () returning NULL. 
3438
3439 2008-12-09  Zoltan Varga  <vargaz@gmail.com>
3440
3441         * marshal.h: Fix a warning.
3442
3443 2008-12-09  Bill Holmes  <billholmes54@gmail.com>
3444
3445         * marshal.c : Adding cominterop_release_all_rcws to release all
3446           runtime callable wrappers held by the runtime.
3447
3448         * marshal.h : Adding declaration for cominterop_release_all_rcws.
3449           
3450         Code is contributed under MIT/X11 license.
3451
3452 2008-12-09  Zoltan Varga  <vargaz@gmail.com>
3453
3454         * metadata.c (mono_image_alloc_lock): New helper function.
3455         (mono_image_alloc0_lock): Ditto.
3456
3457         * metadata.c: Use the alloc_lock () helper functions for allocating
3458         memory from the image mempool.
3459
3460 2008-12-08 Rodrigo Kumpera  <rkumpera@novell.com>
3461
3462         * class.c (mono_class_from_generic_parameter): Document it's
3463         locking behavior. Fix double checked locking here, we stored in
3464         param->pklass a partially initialized MonoClass and no membar was used.
3465
3466 2008-12-05  Marek Habersack  <mhabersack@novell.com>
3467
3468         * sysmath.c (ves_icall_System_Math_Round2): if round (3) and rint
3469         (3) functions are present in the C library use them to do the
3470         job. If they are absent, make sure that the sum of int_part and
3471         dec_part is rounded before returning. This is necessary due to the
3472         division of dec_part by the power of 10 before the final addition
3473         is performed - if the result is not rounded in some cases it will
3474         yield invalid results.
3475
3476 2008-12-04  Zoltan Varga  <vargaz@gmail.com>
3477
3478         * marshal.c (mono_marshal_emit_native_wrapper): Add AOT support for pinvoke
3479         wrappers by emitting the function address using a CEE_MONO_ICALL_ADDR 
3480         instruction instead of a pointer constant.
3481
3482 2008-12-03  Zoltan Varga  <vargaz@gmail.com>
3483
3484         * loader.c (mono_method_get_header): Do most of the work outside the
3485         loader lock, to avoid assembly load hook deadlocks.
3486
3487         * metadata.c (mono_metadata_parse_mh_full): Use finer-grained locking.
3488         (mono_metadata_parse_type_full): Ditto.
3489
3490 2008-12-02 Rodrigo Kumpera  <rkumpera@novell.com>
3491
3492         * mempool.c (mono_backtrace): Take the number of allocated bytes as argument.
3493         Make the stack depth fixed. Ensure proper argument passing to the backtrace
3494         funtions. Finally, use a lock to produce well ordered output.
3495
3496         The lock looks silly, as all calls to the corlib mempool should be guarded
3497         with the loader lock, but for some reason this fact doesn't help. 
3498
3499         * mempool.c (mono_mempool_alloc0): Add support for TRACE_ALLOCATIONS.
3500
3501 2008-12-02  Mark Probst  <mark.probst@gmail.com>
3502
3503         * socket-io.c: 64 bit big-endian fixes.
3504
3505 2008-12-01 Rodrigo Kumpera  <rkumpera@novell.com>
3506
3507         * verify.c (is_compatible_boxed_valuetype): Rewrite function to work properly with
3508         targets that require strict compatibility between the types.
3509
3510         * verify.c (verify_stack_type_compatibility_full): Boxed values are not compatible
3511         to unboxed types. All cases that this is true are checked by is_compatible_boxed_valuetype.
3512         Kill the strict argument and create a new one valuetype_must_be_boxed.
3513
3514         * verify.c (verify_delegate_compatibility): Use verify_stack_type_compatibility_full to
3515         state that all valuetypes must be boxed.
3516
3517         Fixes #448560.
3518
3519 2008-11-29  KornĂ©l PĂ¡l  <kornelpal@gmail.com>
3520
3521         * coree.c (MonoFixupExe): Use sizeof(IMAGE_BASE_RELOCATION) instead of
3522         IMAGE_SIZEOF_BASE_RELOCATION as newer Vista SDKs no longer define the latter.
3523
3524         Contributed under MIT/X11 license.
3525
3526 2008-11-28 Rodrigo Kumpera  <rkumpera@novell.com>
3527
3528         * class.c (mono_class_setup_fields): Don't copy MonoType::attrs as
3529         the inflate_generic_type machinery should handle it.
3530
3531         This avoids a crash when the field's flags is zero and it's type is
3532         a primitive.
3533         What happens is that mono_metadata_parse_type_full will see that opt_attrs
3534         is zero and will return one of the cached built-in primitive types. Since
3535         those types live in read-only memory, the code that copies it crashes.  
3536
3537 2008-11-28  Mark Probst  <mark.probst@gmail.com>
3538
3539         * object.c: Don't put function descriptors into generalized IMT
3540         thunks.
3541
3542 2008-11-28  Mark Probst  <mark.probst@gmail.com>
3543
3544         * class.c: Enable generic code sharing on PPC64.
3545
3546 2008-11-27  Mark Probst  <mark.probst@gmail.com>
3547
3548         * mempool.c, mempool-internals.h: Added g_slist_append_mempool()
3549         from mini/mini.c.
3550
3551         * generic-sharing.c: Allocate the method template slists from the
3552         image mempool so it doesn't leak.
3553
3554 2008-11-27 Rodrigo Kumpera  <rkumpera@novell.com>
3555
3556         * class.c (generic_array_methods): Release the linked list.
3557
3558 2008-11-27  Mark Probst  <mark.probst@gmail.com>
3559
3560         * marshal.c (mono_string_builder_to_utf8): Fixed a wrong
3561         invocation to g_utf16_to_utf8().
3562
3563 2008-11-26  Mark Probst  <mark.probst@gmail.com>
3564
3565         * icall.c (mono_ArgIterator_IntGetNextArg): Handle sub-word sized
3566         arguments on big endian archs.
3567
3568 2008-11-25 Gonzalo Paniagua Javier <gonzalo@novell.com>
3569
3570         * reflection.c: (_mono_reflection_parse_type) skip leading spaces in
3571         the type name (test added in corlib).
3572
3573 2008-11-25 Gonzalo Paniagua Javier <gonzalo@novell.com>
3574
3575         * pedump.c: initialize perf. counters. Fixes a segv.
3576
3577 2008-11-25  Martin Baulig  <martin@ximian.com>
3578
3579         * mono-debug-debugger.c
3580         (mono_debugger_runtime_invoke): Return the exception object if an
3581         exception was thrown.  Visual Studio displays the exception object
3582         in the locals window.
3583
3584 2008-11-24  Mark Probst  <mark.probst@gmail.com>
3585
3586         * mini-trampolines.c (mono_delegate_trampoline): Don't return a
3587         ftnptr.
3588
3589 2008-11-24  Mark Probst  <mark.probst@gmail.com>
3590
3591         * marshal.c (mono_type_native_stack_size): MONO_TYPE_I and
3592         MONO_TYPE_U are sizeof (gpointer), too.
3593
3594 2008-11-24  Mark Probst  <mark.probst@gmail.com>
3595
3596         * marshal.c (mono_type_native_stack_size): Fixed size and
3597         alignment for reference types.
3598
3599 2008-11-23  Mark Probst  <mark.probst@gmail.com>
3600
3601         * class.c (mono_class_generic_sharing_enabled): Disable generic
3602         code sharing for PPC64.
3603
3604 2008-11-21 Rodrigo Kumpera  <rkumpera@novell.com>
3605
3606         * icall.c (mono_method_get_equivalent_method): Make sure
3607         method->klass->methods is inited before looping over it.
3608
3609 2008-11-20 Gonzalo Paniagua Javier <gonzalo@novell.com>
3610
3611         * object.c: when calling ExecuteAssembly in a newly created domain,
3612         the configuration file and application base are already set up.
3613         Bug #446353 take 2 fixed.
3614
3615 2008-11-20  Zoltan Varga  <vargaz@gmail.com>
3616
3617         * marshal.c: Add support for MONO_TYPE_GENERICINST to some functions.
3618         Fixes #444715. Fix a warning.
3619
3620 2008-11-18 Gonzalo Paniagua Javier <gonzalo@novell.com>
3621
3622         * appdomain.c: write the full path of the assembly to the .ini file
3623         created when "shadow-copying"
3624         Bug #446353 fixed.
3625
3626 2008-11-18  Zoltan Varga  <vargaz@gmail.com>
3627
3628         * debug-helpers.c (mono_method_full_name): Stringify wrapper types even
3629         if signature==FALSE.
3630
3631 2008-11-17  Bill Holmes  <billholmes54@gmail.com>
3632
3633         * marshal.h : Fix the cygwin build.
3634            marshal.c:12442: undefined reference to `_IID_IMarshal'
3635           
3636         Code is contributed under MIT/X11 license.
3637
3638 2008-11-17  Bill Holmes  <billholmes54@gmail.com>
3639
3640         * marshal.h : cominterop_ccw_getfreethreadedmarshaler added to return the
3641           free threaded marshaler when QueryInterface is called on a COM callable
3642           wrapper requesting the IMarshal interface.
3643           
3644         Code is contributed under MIT/X11 license.
3645
3646 2008-11-14  Zoltan Varga  <vargaz@gmail.com>
3647
3648         * domain-internals.h (MonoDomain): Update MONO_DOMAIN_LAST_GC_TRACKED.
3649
3650         * reflection.c (mono_type_get_object): Special case the very common
3651         void type.
3652
3653         * domain-internals.h (struct _MonoDomain): Add 'typeof_void' field to
3654         hold typeof(void).
3655
3656 2008-11-13  Bill Holmes  <billholmes54@gmail.com>
3657
3658         * process.h : Adding method declaration for
3659           ves_icall_System_Diagnostics_Process_WaitForInputIdle_internal.
3660           
3661         * process.c : Adding implementation for
3662           ves_icall_System_Diagnostics_Process_WaitForInputIdle_internal.
3663           
3664         * icall-def.h : Registering ICALL Processs.WaitForInputIdle_internal
3665           to ves_icall_System_Diagnostics_Process_WaitForInputIdle_internal.
3666
3667         Code is contributed under MIT/X11 license.
3668
3669 2008-11-10  Rodrigo Kumpera  <rkumpera@novell.com>
3670
3671         * appdomain.c (unload_thread_main): Clean up threadpool by
3672         calling mono_thread_pool_remove_domain_jobs.
3673
3674         * domain-internals.h (struct _MonoDomain): Add new fields to
3675         help coordinate the cleanup of the threadpool.
3676
3677         * threadpool.c (mono_thread_pool_remove_domain_jobs): New fuction
3678         that cleans up the threadpool of all jobs associated with an appdomain.
3679         It does that by cleaning up the queues and making sure all active
3680         threads are accounted.
3681
3682         * threadpool.c (async_invoke_io_thread): Ignore job if its domain is
3683         unloaded or in the process of. Take this is such way that there is
3684         no race condition between another thread starting the unload and the
3685         current thread acknowledging it.
3686
3687         * threadpool.c (async_invoke_thread): Same.
3688
3689         * threadpool.c (start_io_thread_or_queue): Increment threadpool_jobs before
3690         firing the new thread.
3691
3692         * threadpool.c (start_tpthread): Same.
3693
3694         * theadpool.c (append_job): Increment threadpool_jobs before queueing.
3695
3696         * threadpool.h: Add mono_thread_pool_remove_domain_jobs.
3697
3698 2008-11-06  Jonathan Chambers  <joncham@gmail.com>
3699
3700         * file-io.c (ves_icall_System_IO_MonoIO_DuplicateHandle): 
3701         Add support for DuplicateHandle.
3702         
3703         * file-io.h (ves_icall_System_IO_MonoIO_DuplicateHandle): 
3704         Add support for DuplicateHandle.
3705         
3706         * icall-def.h (ves_icall_System_IO_MonoIO_DuplicateHandle): 
3707         Add support for DuplicateHandle.
3708
3709         Code is contributed under MIT/X11 license.
3710
3711 2008-11-06  Mark Probst  <mark.probst@gmail.com>
3712
3713         * class-internals.h: Make min_align into a whole byte.
3714
3715         * class.c: Set min_align for SIMD types to 16.
3716
3717 2008-11-05  Geoff Norton  <gnorton@novell.com>
3718
3719         * attach.c: Default the attacher to enabled for all cases including
3720         embedded.
3721
3722 Wed Nov 5 16:33:41 CET 2008 Paolo Molaro <lupus@ximian.com>
3723
3724         * monitor.c, class-internals.h, wrapper-types.h: revert incorrect
3725         change r117650.
3726
3727 2008-11-04  Mark Probst  <mark.probst@gmail.com>
3728
3729         * monitor.c, monitor.h: New function for querying offsets of
3730         members of MonoThreadsSync.
3731
3732 2008-11-04  Zoltan Varga  <vargaz@gmail.com>
3733
3734         * marshal.c (mono_marshal_get_runtime_invoke): Use runtime_invoke_direct_cache
3735         to speed up this function and to avoid the boundless memory growth caused by
3736         the signature_dup () calls.
3737
3738 2008-11-02  Zoltan Varga  <vargaz@gmail.com>
3739
3740         * monitor.c (mono_monitor_get_fast_enter_method): Add a proper type for the
3741         wrapper.
3742
3743         * class-internals.h (struct _MonoMethod): Increase the size of 'wrapper_type'
3744         by 1 bit.
3745
3746         * wrapper-types.h: Add MONO_WRAPPER_MONITOR_FAST_ENTER/EXIT.
3747
3748 2008-10-31 Gonzalo Paniagua Javier <gonzalo@novell.com>
3749
3750         * appdomain.c:
3751         * domain-internals.h: made mono_set_private_bin_path_from_config()
3752         "internal".
3753         * object.c: call the above function after setting the configuration
3754         file path for the root domain.
3755         Fixes bug #314478.
3756
3757 2008-10-31 Gonzalo Paniagua Javier <gonzalo@novell.com>
3758
3759         * assembly.c: when the assembly is loaded from an absolute path, end
3760         basedir with a directory separator.
3761         Bug #440781 fixed.
3762
3763 2008-10-30  Mark Probst  <mark.probst@gmail.com>
3764
3765         * monitor.c (mono_monitor_get_fast_enter_method): If
3766         CompareExchange is not available, don't create the fastpath
3767         instead of asserting.  (The method is missing in the 1.1 profile.)
3768
3769 2008-10-30  Mark Probst  <mark.probst@gmail.com>
3770
3771         * marshal.c, marshal.h: Rename signature_no_pinvoke() and make it non-static.
3772
3773         * monitor.c, monitor.h: Code for generating Monitor.Enter and
3774         Monitor.Exit IL fastpaths.
3775
3776 2008-10-28  Rodrigo Kumpera  <rkumpera@novell.com>
3777
3778         * class.c (mono_class_create_from_typedef): Added Vector2ul.
3779
3780 2008-10-28  Rodrigo Kumpera  <rkumpera@novell.com>
3781
3782         * class.c (mono_class_create_from_typedef): Added Vector2l.
3783
3784 2008-10-27  Rodrigo Kumpera  <rkumpera@novell.com>
3785
3786         * class.c (mono_class_create_from_typedef): Added Vector2d.
3787
3788 2008-10-27 Gonzalo Paniagua Javier <gonzalo@novell.com>
3789
3790         * appdomain.c: translate \ into / for cache_path.
3791         * domain-internals.h: new mono_is_shadow_copy_enabled().
3792         * icall.c: (fill_reflection_assembly_name) do the same path
3793         manipulations that get_code_base does.
3794         (get_code_base) use mono_is_shadow_copy_enabled.
3795
3796 2008-10-26 Gonzalo Paniagua Javier <gonzalo@novell.com>
3797
3798         * appdomain.c: shadow-copied assemblies go to CachePath +
3799         ApplicationName when both are set. DynamicBase has nothing to do with
3800         shadow copies.
3801         Bug #406877 fixed.
3802
3803 2008-10-26  Zoltan Varga  <vargaz@gmail.com>
3804
3805         * reflection.c (encode_locals): Use a cache to avoid duplicate entries in the
3806         STANDALONESIG table.
3807
3808         * metadata-internals.h (struct _MonoDynamicImage): Add cache for
3809         standalone signatures.
3810
3811         * marshal.c (mono_marshal_get_runtime_invoke): Rewrite the signature 
3812         comparison code: instead of comparing the signatures using a custom
3813         equals function, transform them to a common signature and compare that. This
3814         works better with AOT.
3815
3816 2008-10-25  Zoltan Varga  <vargaz@gmail.com>
3817
3818         * Reapply r116521 with (!mono_debug_using_mono_debugger ()) checks.
3819
3820         * class.c (mono_class_init): Remove unneccesary mono_class_setup_properties ()
3821         call for generic instances.
3822         (mono_class_setup_properties): Call setup_properties () before accessing
3823         gklass->properties.
3824
3825         * class.c (mono_class_get_virtual_methods): New helper function to iterate
3826         over the virtual methods of a class using metadata if possible, avoiding the
3827         creation of MonoMethod's for non-virtual methods.
3828         
3829         * class.c (mono_class_setup_vtable_general): Rewrite this to use 
3830         get_virtual_methods () to iterate over the virtual methods of classes.
3831
3832 2008-10-25  Martin Baulig  <martin@ximian.com>
3833
3834         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_DEAD): New #define.
3835
3836 2008-10-24  Rodrigo Kumpera  <rkumpera@novell.com>
3837
3838         * class.c (mono_class_create_from_typedef): Added Vector4i.
3839
3840 2008-10-24  Mark Probst  <mark.probst@gmail.com>
3841
3842         * marshal.c (mono_marshal_get_synchronized_wrapper): Emit
3843         ldtoken+GetTypeFromHandle instead of i4+icall so that the JIT
3844         special-casing applies to eliminate the call completely.
3845
3846 2008-10-24  Rodrigo Kumpera  <rkumpera@novell.com>
3847
3848         * class.c (mono_class_create_from_typedef): Added Vector8s.
3849
3850 2008-10-23  Rodrigo Kumpera  <rkumpera@novell.com>
3851
3852         * class.c (mono_class_create_from_typedef): Added Vector16sb.
3853
3854 2008-10-23 Gonzalo Paniagua Javier <gonzalo@novell.com>
3855
3856         * icall.c: get rid of annoying warning.
3857
3858 2008-10-23 Gonzalo Paniagua Javier <gonzalo@novell.com>
3859
3860         * threadpool.c: in 1.x, if you change the background status of the
3861         threadpool thread, it's not reset.
3862         Remove unnecessary calls to SetState.
3863
3864 2008-10-22 Gonzalo Paniagua Javier <gonzalo@novell.com>
3865
3866         * threadpool.c: asynchronously create a set of idle threads upon first
3867         use of the threadpool. SetMinThreads will now start the appropriate
3868         number of idle threads if they are not already running. The default is
3869         1 threadpool thread per CPU. Increased the maximum number of threads
3870         per CPU to 10.
3871
3872 2008-10-22  Martin Baulig  <martin@ximian.com>
3873
3874         Revert r116521 from Zoltan, it breaks the debugger:
3875
3876         * class.c (mono_class_get_virtual_methods): New helper function to iterate
3877         over the virtual methods of a class using metadata if possible, avoiding the
3878         creation of MonoMethod's for non-virtual methods.
3879         
3880         * class.c (mono_class_setup_vtable_general): Rewrite this to use 
3881         get_virtual_methods () to iterate over the virtual methods of classes.
3882
3883 2008-10-22 Gonzalo Paniagua Javier <gonzalo@novell.com>
3884
3885         * threads.c: when creating a threadpool thread, set its state to
3886         'background'.
3887         * threadpool.c: reset the background state of a threadpool thread
3888         after finishing each work item
3889         Bug #437888 fixed.
3890
3891 2008-10-22  Zoltan Varga  <vargaz@gmail.com>
3892
3893         * class.c (mono_class_get_vtable_entry): Add an optimization for szarrays.
3894         
3895         * class.c (mono_class_setup_vtable_general): Add an optimized version for
3896         generic instances which works by inflating the methods in the container
3897         class's vtable.
3898
3899         * class.c (mono_class_inflate_generic_type_with_mempool_no_copy): New
3900         variant which doesn't make a copy if no inflation was done.
3901         (mono_class_setup_fields): Use it.
3902
3903         * metadata.c (mono_metadata_get_shared_type): New helper function to
3904         return a shared instance of a given MonoType.
3905
3906         * class.c (mono_class_inflate_generic_type_with_mempool): Avoid making
3907         a copy of most non-generic types.
3908
3909 Wed Oct 22 18:00:46 CEST 2008 Paolo Molaro <lupus@ximian.com>
3910
3911         * threadpool.c: remove one more GetSystemInfo () call.
3912
3913 Wed Oct 22 17:45:48 CEST 2008 Paolo Molaro <lupus@ximian.com>
3914
3915         * mono-perfcounters.c, icall-def.h, environment.c, environment.h:
3916         use the code in mono-proclib.h to get processor information.
3917
3918 2008-10-22 Gonzalo Paniagua Javier <gonzalo@novell.com>
3919
3920         * appdomain.c: fixed the logic that determines whether assemblies in a
3921         directory are "shadow-copied" or not. Bug #433483 fixed.
3922
3923 2008-10-22  Zoltan Varga  <vargaz@gmail.com>
3924
3925         * process.c (ves_icall_System_Diagnostics_Process_GetProcessData): Fix a
3926         warning.
3927
3928 2008-10-21  Zoltan Varga  <vargaz@gmail.com>
3929
3930         * marshal.c (runtime_invoke_signature_equal): Don't shared wrappers
3931         returning a vtype.
3932
3933         * class.c debug-helpers.c object.c class-internals.h marshal.c icall.c
3934         reflection.c: Use mono_field_get_name () for accessing a field's name.
3935
3936         * class-internals.h (MONO_CLASS_HAS_STATIC_METADATA): Move this here from
3937         class.c
3938
3939         * class.c (mono_field_get_rva): Fix crash if this is called on a dynamic
3940         field.
3941
3942         * loader.c (find_method_in_class): Reenable the metadata optimization by
3943         not using it for generic instances.
3944
3945         * class-internals.h (MonoFieldDefaultValue): Extract the rarely used 
3946         data/def_type fields from MonoClassField into a separate structure.
3947         (struct MonoClassField): Remove data/def_type fields.
3948         (struct _MonoClass): Add a 'field_def_values' array to store the default
3949         values/RVA for fields.
3950
3951         * class.c reflection.c: Update after the changes.
3952         
3953         * object.c (mono_class_create_runtime_vtable): Use mono_field_get_data ()
3954         for accessing field->data.
3955
3956         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_InitializeArray): Ditto.
3957
3958         * loader.c (find_method_in_class): Revert the last change for now as
3959         it breaks Mono.C5 unit tests.
3960
3961         * class-internals.h (struct _MonoDynamicGenericClass): Add fields
3962         'field_generic_types' and 'field_objects' which contain the information
3963         previously stored in MonoInflatedField.
3964         (MonoInflatedField): Delete.
3965         (struct _MonoClassField): Delete 'generic_info' field.
3966
3967         * reflection.c: Store the information which was previously in 
3968         field->generic_info in MonoDynamicGenericClass instead.
3969
3970         * metadata.c (free_generic_class): Update after MonoDynamicGenericClass/
3971         MonoClassField changes.
3972
3973 Tue Oct 21 17:07:55 CEST 2008 Paolo Molaro <lupus@ximian.com>
3974
3975         * marshal.c, method-builder.c: get rid of wrapper_hash and instead
3976         store the value inside the data array of the MonoMethodWrapper.
3977         This saves memory, is faster and fixes the lifetime issues (methods
3978         were never removed from the hash previously). May also fix bug#436996.
3979
3980 2008-10-21  Zoltan Varga  <vargaz@gmail.com>
3981
3982         * reflection.c (mono_image_get_fieldref_token): For fields of non-dynamic 
3983         generic instances, compute the type from the generic definition instead of
3984         looking in field->generic_info.
3985
3986         * class.c (mono_class_setup_fields): Don't create a MonoInflatedField
3987         for inflated fields, the only user was get_fieldref_token () which no
3988         longer needs it.
3989
3990         * class.c (mono_class_init): Revert the last change as it seems to cause
3991         crashes.
3992
3993         * class-internals.h (struct _MonoClassField): Reorder fields to save 4
3994         bytes on 64 bit platforms.
3995
3996         * object.c (mono_class_create_runtime_vtable): Fix a warning.
3997         
3998         * object.c (mono_class_create_runtime_vtable): Don't initalize
3999         field->data/field->def_type here, it is done lazily by 
4000         mono_class_get_field_default_value ().
4001
4002         * icall.c (ves_icall_get_enum_info): Call 
4003         mono_class_get_field_default_value () instead of directly accessing
4004         field->data and field->def_type.
4005
4006         * object.c (get_default_field_value): Ditto.
4007
4008         * class.c (mono_field_get_data): Ditto.
4009         
4010         * class.c (mono_class_init): Remove unneccesary mono_class_setup_methods ()
4011         call for generic instances.
4012
4013         * loader.c (find_method_in_class): If klass != from_class, then inflate
4014         the method with the context of from_class, since the caller assumes this.
4015
4016 2008-10-20  Zoltan Varga  <vargaz@gmail.com>
4017
4018         * class.c (mono_method_get_vtable_index): Use mono_method_get_vtable_slot ()
4019         for accessing method->slot.
4020
4021 2008-10-20  Cedric Vivier  <cedricv@neonux.com>
4022
4023         * icall-def.h, icall.c: Add icall for Debugger.IsAttached.
4024
4025 2008-10-19  Zoltan Varga  <vargaz@gmail.com>
4026
4027         * class.c (mono_method_get_vtable_index): Use
4028         mono_method_get_vtable_slot () for accessing method->slot.
4029
4030         * object.c (build_imt_slots): Use mono_class_get_method_by_index () for
4031         accessing klass->methods.
4032
4033         * class.c (mono_method_get_vtable_slot): New helper function.
4034         (mono_class_get_vtable_entry): Ditto.
4035         (mono_class_setup_vtable_general): Use mono_method_get_vtable_slot () for
4036         accessing method->slot.
4037
4038         * generic-sharing.c (mono_class_get_method_generic): Pass the declaring
4039         method to get_inflated_method ().
4040
4041         * class.c (mono_class_get_inflated_method): New helper method to obtain
4042         a method of an inflated class without calling setup_methods ().
4043         (mono_class_get_cctor): Use get_inflated_method.
4044
4045         * generic-sharing.c (mono_class_get_method_generic): Ditto.
4046         
4047         * marshal.c image.c: Lazily create all the marshal caches.
4048
4049         * image.c (mono_image_init): Move initialization of runtime_invoke
4050         caches to marshal.c.
4051
4052         * marshal.c (get_cache): New helper function to lazily initialize a 
4053         wrapper cache.
4054         (mono_marshal_get_runtime_invoke): Share more runtime invoke wrappers.
4055
4056         * debug-helpers.c (mono_method_full_name): Include generic arguments.
4057
4058 Fri Oct 17 10:51:32 CEST 2008 Paolo Molaro <lupus@ximian.com>
4059
4060         * loader.c: fixed check for interface type.
4061
4062 Thu Oct 16 20:59:11 CEST 2008 Paolo Molaro <lupus@ximian.com>
4063
4064         * appdomain.c: check for NULL setup before it's referenced.
4065
4066 p
4067 Thu Oct 16 16:12:23 CEST 2008 Paolo Molaro <lupus@ximian.com>
4068
4069         * class.c: remove the unused old vtable setup code.
4070
4071 Thu Oct 16 12:53:29 CEST 2008 Paolo Molaro <lupus@ximian.com>
4072
4073         * class.c: don't depend on interface order in
4074         setup_interface_offsets (bug #435777).
4075         * reflection.c: sort the InterfaceImpl table (patch from
4076         Jb Evain  <jbevain@novell.com>).
4077
4078 2008-10-13  Zoltan Varga  <vargaz@gmail.com>
4079
4080         * assembly.c (mono_assembly_open_full): Avoid loading images while holding
4081         the low level assemblies lock.
4082
4083 Mon Oct 13 16:35:26 CEST 2008 Paolo Molaro <lupus@ximian.com>
4084
4085         * domain-internals.h, domain.c, icall.c, image.c, marshal.c,
4086         object.c, reflection.c, socket-io.c, threads.c: introduced
4087         mono_framework_version () to return the major framewrok version,
4088         changed the code that was using more complex patterns to use it.
4089         Return the correct value for PlatformID for OSX.
4090
4091 Mon Oct 13 14:38:01 CEST 2008 Paolo Molaro <lupus@ximian.com>
4092
4093         * icall-def.h, process.h, process.c: added an icall to get info about
4094         processes using mono-proclib.
4095
4096 Mon Oct 13 11:14:44 CEST 2008 Paolo Molaro <lupus@ximian.com>
4097
4098         * mono-perfcounters.c: use the mono-proclib functions to
4099         access process information.
4100
4101 Mon Oct 13 11:00:49 CEST 2008 Paolo Molaro <lupus@ximian.com>
4102
4103         * domain.c, assembly.c, debug-mono-symfile.c, debug-mono-symfile.h,
4104         monosn.c, Makefile.am, pedump.c, image.c, metadata-internals.h,
4105         reflection.c: remove rawbuffer usage: mmap support is more sanely
4106         provided by utils/mono-mmap.
4107
4108 Sat Oct 11 19:46:19 CEST 2008 Paolo Molaro <lupus@ximian.com>
4109
4110         * gc.c: use posix semaphores when possible so that
4111         mono_gc_finalize_notify() is signal safe.
4112
4113 2008-10-11  Zoltan Varga  <vargaz@gmail.com>
4114
4115         * reflection.c: Implement DISABLE_REFLECTION_EMIT, remove some
4116         #ifdef DISABLE_REFLECTION_SAVE stuff, only the exported functions need to
4117         be #ifdef-ed out, the linker will remove the rest.
4118
4119         * marshal.c: Implement DISABLE_COM.
4120
4121         * reflection.c: Implement DISABLE_REFLECTION_EMIT_SAVE.
4122
4123 2008-10-11  Miguel de Icaza  <miguel@novell.com>
4124
4125         * locales.c (string_invariant_compare_char): Optimization: do not
4126         call g_unichar_type unless we actually need the information.
4127
4128 2008-10-10  Mark Probst  <mark.probst@gmail.com>
4129
4130         * object.c, class-internals.h: Also create remoting trampolines
4131         for generic methods.  Pass the domain to the remoting trampoline
4132         creation function, too.
4133
4134 2008-10-10  Zoltan Varga  <vargaz@gmail.com>
4135
4136         * class.c (mono_class_init): Fix+re-enable the finalize optimization.
4137
4138 2008-10-10  Rodrigo Kumpera  <rkumpera@novell.com>
4139
4140         * class.c (mono_class_create_from_typedef): Vector4u was renamed to
4141         Vector4ui.
4142
4143 2008-10-10 Gonzalo Paniagua Javier <gonzalo@novell.com>
4144
4145         * assembly.c:
4146         * locales.c: remove the use of g_strdown. Fixes bug #322313.
4147
4148 Fri Oct 10 17:01:42 CEST 2008 Paolo Molaro <lupus@ximian.com>
4149
4150         * assembly.c: in mono_assembly_load_friends() take the assemblies lock
4151         for the least possible amount of time (extending the fix in r113458).
4152
4153 2008-10-10  Rodrigo Kumpera  <rkumpera@novell.com>
4154
4155         * class.c (mono_class_create_from_typedef): Retrofit to new type names.
4156
4157 2008-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
4158
4159         * class.c (mono_class_create_from_typedef): Added Vector8u and Vector16u
4160         as possible simd intrinsic types.
4161         Optimized the test to check for the common prefix first.
4162
4163 Thu Oct 9 17:38:24 CEST 2008 Paolo Molaro <lupus@ximian.com>
4164
4165         * class.c: back out part of a broken optimization committed on
4166         May 23th (bug #433908).
4167
4168 2008-10-09  Mark Probst  <mark.probst@gmail.com>
4169
4170         * profiler.c (simple_shutdown): Don't call mono_thread_attach() on
4171         Win32.  Should fix #432388 for most cases until we have the new
4172         profiler on Win32.
4173
4174 2008-10-08  Zoltan Varga  <vargaz@gmail.com>
4175
4176         * metadata.c (mono_metadata_generic_context_hash): Call generic_inst_hash
4177         instead of using inst->id so the hash is stable for AOT.
4178
4179 2008-10-07 Gonzalo Paniagua Javier <gonzalo@novell.com>
4180
4181         * appdomain.c:
4182         * icall.c: create a .ini file for shadow-copied assemblies that
4183         contains the location of the original assembly. Use this to return the
4184         proper CodeBase for shadow-copied assemblies. Fixes bug #323606.
4185         Also fix the number of '/' for windows when returning the CodeBase.
4186         Fixes bug #430920.
4187
4188 2008-10-07  Bill Holmes  <billholmes54@gmail.com>
4189
4190         * marshal.c (cominterop_get_ccw) : Fixing a copy paste error from r115126.
4191
4192         Code is contributed under MIT/X11 license.
4193
4194 2008-10-07  Bill Holmes  <billholmes54@gmail.com>
4195
4196         * marshal.c (cominterop_get_native_wrapper) : Adding a call to mono_class_setup_vtable
4197           if if the class vtable needs initialized.
4198
4199         Code is contributed under MIT/X11 license.
4200
4201 2008-10-07  Bill Holmes  <billholmes54@gmail.com>
4202
4203         * marshal.c (cominterop_get_native_wrapper_adjusted, cominterop_get_ccw) : 
4204           Adding default MonoMarshalSpecs for COM methods.  OBJECT->STRUCT,
4205           STRING->BSTR, and CLASS->INTERFACE.
4206
4207         Code is contributed under MIT/X11 license.
4208
4209 2008-10-07  Marek Habersack  <mhabersack@novell.com>
4210
4211         * sysmath.h: changed the declaration of the
4212         ves_icall_System_Math_Round2 icall by adding an extra
4213         away_from_zero parameter.
4214
4215         * sysmath.c (ves_icall_System_Math_Round2): added support for
4216         away from zero rounding. The icall now takes an extra boolean
4217         parameter to signal that away from zero operation is requested.
4218
4219 2008-10-06  Zoltan Varga  <vargaz@gmail.com>
4220
4221         * marshal.c (mono_marshal_get_delegate_begin_invoke): Put the wrapper in
4222         the delegate klass so it can work with full-aot.
4223         (mono_marshal_get_delegate_end_invoke): Ditto.
4224         (mono_marshal_get_delegate_invoke): Ditto.
4225
4226 Mon Oct 6 16:10:02 CEST 2008 Paolo Molaro <lupus@ximian.com>
4227
4228         * gc.c, attach.h, attach.c: remove a bad pattern:
4229         add_finalizer_callback () is not implemented correctly, it can't
4230         without adding more overhead to the finalizer loop and it's not
4231         even needed, since we know exactly what we need to call, so there is
4232         no need to do so through an expensive function pointer.
4233
4234 2008-10-04  Zoltan Varga  <vargaz@gmail.com>
4235
4236         * gc.c: Define a dummy version of mono_gc_add_finalizer_thread_callback ()
4237         for the no-gc case.
4238         * attach.c (mono_attach_init): Remove the #ifdef.
4239
4240 2008-10-04  Andreas Färber  <andreas.faerber@web.de>
4241
4242         * attach.c (mono_attach_init): Don't use
4243         mono_gc_add_finalizer_thread_callback when compiling without GC.
4244         Fixes #432306.
4245         
4246         Code is contributed under MIT/X11 license.
4247
4248 2008-10-03  Zoltan Varga  <vargaz@gmail.com>
4249
4250         * class.c (mono_class_create_from_typedef): Remove the 
4251         #ifndef DISABLE_SIMD stuff.
4252
4253 2008-10-03  Rodrigo Kumpera  <rkumpera@novell.com>
4254
4255         * class-internals.h (MonoClass): Added simd_type bit field.
4256
4257         * class.c (mono_class_create_from_typedef): Check if type is a simd
4258         intrinsic.
4259
4260 2008-10-03  Mark Probst  <mark.probst@gmail.com>
4261
4262         * object.c (mono_method_add_generic_virtual_invocation): Only add
4263         instantiations to the thunk whose count is at least as large as
4264         the threshold.
4265
4266 2008-10-02 Gonzalo Paniagua Javier <gonzalo@novell.com>
4267
4268         * icall.c: changed the Type of the exception thrown when trying to
4269         invoke a constructor on an abstract class. Part of the fix for bug
4270         #324185.
4271
4272 2008-10-02  Mark Probst  <mark.probst@gmail.com>
4273
4274         * class.c, class-internals.h (mono_method_get_vtable_index): New
4275         function which returns the index into the vtable and properly
4276         handles inflated virtual generic methods.
4277
4278 2008-10-01  Mark Probst  <mark.probst@gmail.com>
4279
4280         * object.c, domain.c, object-internals.h, domain-internals.h:
4281         Generalize IMT thunk machinery to also handle thunks for virtual
4282         generic method invokes.  When a virtual generic method is invoked
4283         more than a number of times we insert it into the thunk so that it
4284         can be called without lookup in unmanaged code.
4285
4286         * generic-sharing.c, class-internals.h: Fetching a
4287         MonoGenericInst* for a method from an (M)RGCTX.
4288
4289 2008-10-01  Zoltan Varga  <vargaz@gmail.com>
4290
4291         * marshal.c (emit_marshal_string): Applied a variant of a patch by
4292         tom hindle <tom_hindle@sil.org>. Fix byref native-to-managed string
4293         marshalling. Fixes #431304.
4294
4295 2008-10-01  Bill Holmes  <billholmes54@gmail.com>
4296
4297         * marshal.c (emit_marshal_variant) : Change the attribute checks to 
4298           handle when ref is specified without In or Out.
4299
4300         Code is contributed under MIT/X11 license.
4301
4302 2008-09-30  Mark Probst  <mark.probst@gmail.com>
4303
4304         * loader.c (mono_get_method_constrained): Don't expand method with
4305         the class's context, because it's already a method of that class.
4306
4307 2008-09-30  Atsushi Enomoto  <atsushi@ximian.com>
4308
4309         * attach.c : should be correct build fix.
4310
4311 2008-09-29  Zoltan Varga  <vargaz@gmail.com>
4312
4313         * attach.c: Fix the previous change.
4314
4315 2008-09-29  Atsushi Enomoto  <atsushi@ximian.com>
4316
4317         * attach.c : quick w32 build fix.
4318
4319 2008-09-27  Miguel de Icaza  <miguel@novell.com>
4320
4321         * Turn off MONO_GENERIC_SHARING=all and go back to corlib as it
4322         crashes MonoDevelop: #430455.
4323
4324 2008-09-27  Zoltan Varga  <vargaz@gmail.com>
4325
4326         * domain-internals.h (struct _MonoDomain): Move most fields used only by
4327         the JIT do MonoJitDomainInfo in ../mini/mini.h.
4328
4329         * domain.c: Remove initialization/cleanup of the removed fields.
4330
4331 2008-09-27  Mark Probst  <mark.probst@gmail.com>
4332
4333         * class.c (mono_class_generic_sharing_enabled): Enable generic
4334         code sharing for PPC.
4335
4336 2008-09-26  Bill Holmes  <billholmes54@gmail.com>
4337
4338         * attach.c : Fixing the Windows builds.
4339
4340         Code is contributed under MIT/X11 license.
4341
4342 2008-09-25  Zoltan Varga  <vargaz@gmail.com>
4343
4344         * class.c (mono_class_generic_sharing_enabled): Experimentally change 
4345         the default generic sharing mode to 'all'.
4346
4347 2008-09-25  Mark Probst  <mark.probst@gmail.com>
4348
4349         * generic-sharing.c, class-internals.h: New function for checking
4350         whether a method needs a static RGCTX invoke wrapper.  A few
4351         funtions moved from mini/generic-sharing.c.
4352
4353         * icall.c: New function used.
4354
4355 2008-09-25  Mark Probst  <mark.probst@gmail.com>
4356
4357         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal):
4358         Static RGCTX invoke wrapping applies to value type methods, too.
4359
4360         * class.c (mono_class_setup_vtable_general): In generic-shared
4361         value types, wrap methods with a static RGCTX invoke wrapper.
4362
4363 2008-09-25  Zoltan Varga  <vargaz@gmail.com>
4364
4365         * attach.c (ipc_connect): Use AF_UNIX instead of AF_FILE to fix the
4366         osx build.
4367
4368 2008-09-24  Zoltan Varga  <vargaz@gmail.com>
4369
4370         * gc.c (mono_gc_add_finalizer_thread_callback): New function to
4371         register a callback which is called when the finalizer thread is woken
4372         up.
4373         (finalizer_thread): Call the callback if it exists.
4374
4375         * attach.h attach.c: New files, implementing the attach mechanism.
4376
4377         * appdomain.c: Init/cleanup the attach mechanism on startup/shutdown.
4378         
4379         * object.c (mono_object_get_virtual_method): Fix an assertion introduced
4380         by the previous change.
4381
4382 Tue Sep 23 15:24:03 CEST 2008 Paolo Molaro <lupus@ximian.com>
4383
4384         * class.c, domain-internals.h, domain.c, generic-sharing.c, image.c,
4385         loader.c, marshal.c, metadata-internals.h, metadata.c,
4386         method-builder.c, object.c, reflection.c: introduced specific functions
4387         to allocate from the domain and image mempools and cleaned up most of
4388         the code to use them (still missing a few in reflection.c).
4389         Keep the loader bytes counter updated.
4390
4391 Mon Sep 22 17:33:12 CEST 2008 Paolo Molaro <lupus@ximian.com>
4392
4393         * domain.c, monitor.c, boehm-gc.c, gc.c: update some of the GC and
4394         loader-related counters.
4395
4396 Mon Sep 22 17:29:54 CEST 2008 Paolo Molaro <lupus@ximian.com>
4397
4398         * mono-perfcounters-def.h, mono-perfcounters.c, class-internals.h:
4399         added more MS-compatible counters.
4400
4401 2008-09-22  Zoltan Varga  <vargaz@gmail.com>
4402
4403         * class.c (mono_class_setup_fields): Call setup_fields before accessing
4404         class->blittable. Fixes #428217.
4405
4406 2008-09-21  Zoltan Varga  <vargaz@gmail.com>
4407
4408         * reflection.c (mono_image_get_field_on_inst_token): Call 
4409         field_encode_signature () since that handles custom modifiers too.
4410         Fixes #424663.
4411
4412 2008-09-20  Zoltan Varga  <vargaz@gmail.com>
4413
4414         * reflection.c (add_custom_modifiers): New helper function to merge custom
4415         modifiers stored in objects to a MonoType.
4416         (fieldref_encode_signature): Encode custom modifiers.
4417         (mono_image_get_generic_field_token): Call add_custom_modifiers ().
4418         (fieldbuilder_to_mono_class_field): Ditto. Fixes #424663.
4419
4420 2008-09-19  KornĂ©l PĂ¡l  <kornelpal@gmail.com>
4421
4422         * coree.c (_CorValidateImage): Some 64-bit IL only images have entry point
4423         calling _CorDllMain imported from mscoree.dll. Set entry point RVA to 0 for
4424         64-bit IL only images because imports are not resolved for IL only images.
4425         Special thanks to Bill Holmes for finding this bug and testing the patch.
4426         Also fail for 64-bit images marked as CLI_FLAGS_32BITREQUIRED.
4427
4428         Contributed under MIT/X11 license.
4429
4430 2008-09-19  Miguel de Icaza  <miguel@novell.com>
4431
4432         * mono-config.c (dllmap_start): Add support for the bits keyword
4433         on dllentry and dllmap to easily detect 32 vs 64 bit systems.
4434
4435 2008-09-19  Mark Probst  <mark.probst@gmail.com>
4436
4437         * reflection.c (inflate_mono_method): When the class the method is
4438         to be inflated for is itself not inflated, just return the method.
4439
4440 Fri Sep 19 11:51:36 CEST 2008 Paolo Molaro <lupus@ximian.com>
4441
4442         * mono-perfcounters.c: use more user friendly process instance names.
4443
4444 2008-09-18  Bill Holmes  <billholmes54@gmail.com>
4445
4446         * marshal.c (emit_marshal_variant) : Change the attribute checks to 
4447           handle "[in] ref" and "[in][out] ref" cases.
4448
4449         * marshal.c (cominterop_get_ccw) : The wrong signature was being passed
4450           to mono_mb_create_method.  This was causing problems calling native to
4451           managed passing Variants by value.
4452
4453         Code is contributed under MIT/X11 license.
4454
4455 2008-09-18  Zoltan Varga  <vargaz@gmail.com>
4456
4457         * class.c (can_access_internals): Call mono_assembly_load_friends ()
4458         before accessing the friend_assembly_names field.
4459
4460         * assembly.c (mono_assembly_load_friends): Make this callable multiple
4461         times.
4462         (mono_assembly_load_from_full): Avoid calling load_friends (), it is
4463         called lazily when it is needed.
4464
4465         * metadata-internals.h (struct _MonoAssembly): Add 
4466         'friend_assembly_names_inited' flag.
4467
4468 Thu Sep 18 18:18:47 CEST 2008 Paolo Molaro <lupus@ximian.com>
4469
4470         * mono-perfcounters-def.h: fix the types of a few counters.
4471         * mono-perfcounters.c: implemented the instance names getter
4472         and a few bugfixes.
4473
4474 2008-09-18  Atsushi Enomoot  <atsushi@ximian.com>
4475
4476         * culture-info-table.h : regenerated.
4477
4478 2008-09-17  Robert Jordan  <robertj@gmx.net>
4479
4480         * marshal.c (mono_marshal_get_ldflda_wrapper): Add support for
4481         context bound objects. Fixes #415577.
4482
4483         Code is contributed under MIT/X11 license.
4484
4485 Tue Sep 16 21:03:58 CEST 2008 Paolo Molaro <lupus@ximian.com>
4486
4487         * icall-def.h, threads-types.h, threads.c: fixed SpinWait()
4488         implementation (bug #423582).
4489
4490 2008-09-16  Zoltan Varga  <vargaz@gmail.com>
4491
4492         * object.c (mono_object_get_virtual_method): Handle the case method->slot
4493         is not set. Fixes #426309.
4494
4495 2008-09-16  Jb Evain  <jbevain@novell.com>
4496
4497         * class.c (mono_class_from_name): fix the exported type look up
4498         when the type is defined in a referenced assembly.
4499
4500 2008-09-16  Jb Evain  <jbevain@novell.com>
4501
4502         * reflection.c (mono_image_fill_export_table_from_type_forwarders):
4503         increment the next index counter on each iteration to make that work
4504         for more than one type forwarder. Unmanaged part to fix #422929.
4505
4506 2008-09-15  Mark Probst  <mark.probst@gmail.com>
4507
4508         * object-internals.h: enum ComInterfaceType in
4509         MonoInterfaceTypeAttribute is guint32, not guint16.
4510
4511 2008-09-12  Mark Probst  <mark.probst@gmail.com>
4512
4513         * cil-coff.h, image.c, reflection.c: Endianness fixes in image
4514         writing code.
4515
4516 2008-09-11  Mark Probst  <mark.probst@gmail.com>
4517
4518         * icall.c: Boolean arguments to a runtime invoke are MonoBoolean,
4519         not gboolean.
4520
4521 2008-09-11  Mark Probst  <mark.probst@gmail.com>
4522
4523         * debug-mono-symfile.c (mono_debug_symfile_lookup_location):
4524         Endianness fixes for MonoSymbolFileOffsetTable.
4525
4526 2008-09-10  Bill Holmes  <billholmes54@gmail.com>
4527
4528         * process.c (complete_path) : Removing quotes from the 
4529           input path.  The glib file routines do not handle file paths
4530           that have quotes around them.
4531
4532         Code is contributed under MIT/X11 license.
4533
4534 2008-09-10  Bill Holmes  <billholmes54@gmail.com>
4535
4536         * socket-io.h : Adding a comment to provide locations where 
4537           changes to MonoSocketAsyncResult need to be synced.
4538
4539         Code is contributed under MIT/X11 license.
4540
4541 2008-09-10  Zoltan Varga  <vargaz@gmail.com>
4542
4543         * marshal.c (emit_marshal_custom): Call NativeToManaged for non-out 
4544         parameters as well. Fixes #425001.
4545
4546 2008-09-08  Miguel de Icaza  <miguel@novell.com>
4547
4548         * console-io.c (ves_icall_System_ConsoleDriver_TtySetup): Fix
4549         windows build.
4550
4551 2008-09-07  Miguel de Icaza  <miguel@novell.com>
4552
4553         * console-io.c: Add support for tracking the window size if it
4554         changes.
4555
4556         The setup is very simple: the TtySetup function will now return a
4557         pointer to a location in memory that tracks the current console
4558         size.  The managed code checks its current value every time its
4559         queried against the last value set, and updates accordingly.
4560
4561         With this setup we can work with multiple consoles, and we do not
4562         require to poke into managed code from a signal handler.
4563
4564         Additionally, the environment for COLUMNS and LINES is now handled
4565         in unmanaged code.
4566
4567         (ves_icall_System_ConsoleDriver_GetTtySize): This is now gone.
4568
4569 2008-09-07  Mark Probst  <mark.probst@gmail.com>
4570
4571         * marshal.c (mono_type_native_stack_size): Treat
4572         MONO_TYPE_TYPEDBYREF like MONO_TYPE_VALUETYPE.
4573
4574 2008-09-04  Jb Evain  <jbevain@novell.com>
4575
4576         * class.c (mono_class_is_assignable_from): fix assignability of nullables
4577         to nullables.
4578
4579 2008-09-03 Rodrigo Kumpera  <rkumpera@novell.com>
4580
4581         * verify.c (verify_type_compatibility_full): Revert change
4582         to allow converting a native int to unmanaged pointer be verifiable
4583         under non-strict mode.
4584         It turns out that "(IntPtr)null" is indeed unverifiable, go figure.
4585
4586         * verify.c: Added some TODOs.
4587
4588 2008-09-02  Bill Holmes  <billholmes54@gmail.com>
4589
4590         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi,
4591           ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni) :
4592           Changed to use GlobalAlloc for the memory returned on Windows platforms.
4593
4594         Code is contributed under MIT/X11 license.
4595
4596 2008-09-02  Jb Evain  <jbevain@novell.com>
4597
4598         * object.c (mono_ldstr_metdata_sig): renamed to mono_ldstr_metadata_sig.
4599
4600 2008-09-02 Rodrigo Kumpera  <rkumpera@novell.com>
4601
4602         reflection.c (typebuilder_setup_fields): Handle classes with
4603         explicit size.
4604
4605 2008-09-01 Rodrigo Kumpera  <rkumpera@novell.com>
4606
4607         class.c (mono_class_setup_events): Add memory barrier due to
4608         double checked locking.
4609         
4610         class.c (mono_class_setup_properties): Same.
4611
4612 2008-08-31  Zoltan Varga  <vargaz@gmail.com>
4613
4614         * class.c (mono_class_is_assignable_from): Fix the build.
4615         
4616         * class.c (mono_class_is_assignable_from): Call mono_class_setup_vtable ()
4617         before accessing klass->interface_bitmap. Fixes #421744.
4618
4619 2008-08-28  Zoltan Varga  <vargaz@gmail.com>
4620
4621         * appdomain.c (mono_runtime_set_no_exec): New internal function setting
4622         the runtime into no-exec mode, useful when running the AOT compiler.
4623
4624         * appdomain.c gc.c object.c: Avoid executing managed code when running
4625         in no-exec mode.
4626         
4627         * rawbuffer.c (mono_raw_buffer_load_mmap): Disable this on the iphone.
4628
4629         * reflection.c (_mono_reflection_get_type_from_info): Handle the 
4630         special case when the mono_assembly_loaded () returns NULL because the 
4631         search hook is not installed.
4632
4633 2008-08-25  Zoltan Varga  <vargaz@gmail.com>
4634
4635         * marshal.c: Applied patch from tom hindle (tom_hindle@sil.org) to fix
4636         crashes in bstr marshalling on linux.
4637
4638 2008-08-24  Zoltan Varga  <vargaz@gmail.com>
4639
4640         * debug-helpers.c (mono_type_get_desc): Fix printing of generic instances
4641         with more than one parameter.
4642
4643 2008-08-24  Miguel de Icaza  <miguel@novell.com>
4644
4645         * console-io.c (ves_icall_System_ConsoleDriver_TtySetup): Disable
4646         start/stop flow control as well when turning off ICANON (allows
4647         C-s and C-q to be read by Console.ReadKey).
4648
4649 2008-08-24  Zoltan Varga  <vargaz@gmail.com>
4650
4651         * class.c (mono_class_init): Move the initialization of nested classes
4652         into mono_class_get_nested_types (). Fixes #418433.
4653
4654         * class-internals.h (struct _MonoClass): Add a new 'nested_classes_inited'
4655         flag.
4656
4657         * class.c reflection.c icall.c: Use mono_class_get_nested_types () for 
4658         iterating tough the nested classes of a class.
4659
4660 2008-08-23  Zoltan Varga  <vargaz@gmail.com>
4661
4662         * class.c (mono_class_generic_sharing_enabled): Enable generic sharing
4663         on arm.
4664
4665 2008-08-22  Miguel de Icaza  <miguel@novell.com>
4666
4667         * console-io.c (sigcont_handler): Support signal chaining for
4668         SIGCONT.
4669
4670         (console_set_signal_handlers): Use best practices with sigaction,
4671         clear the structure before using it. 
4672
4673 2008-08-22  Robert Jordan  <robertj@gmx.net>
4674
4675         * console-io.c (ves_icall_System_ConsoleDriver_TtySetup):
4676         Fix the Windows build.
4677
4678 2008-08-22  Zoltan Varga  <vargaz@gmail.com>
4679
4680         * class.c (mono_class_generic_sharing_enabled): Make the default
4681         sharing mode 'corlib'.
4682
4683 2008-08-21  Zoltan Varga  <vargaz@gmail.com>
4684
4685         * console-io.c (console_set_signal_handlers): Fix a warning.
4686
4687         * marshal.c (mono_marshal_get_synchronized_wrapper): Call the wrapper
4688         method normally, the JIT will take care of avoiding recursion.
4689
4690 2008-08-20  Bill Holmes  <billholmes54@gmail.com>
4691
4692         * console-io.c : Fixing builds for platforms that do not have <termios.h>.
4693
4694         Code is contributed under MIT/X11 license.
4695
4696 2008-08-20  Miguel de Icaza  <miguel@novell.com>
4697
4698         * console-io.c (sigcont_handler): We need to restore the entire
4699         termios state, not only the original settings, as things like echo
4700         can be controlled after this (Booish exposes this issue with its
4701         own ReadLine implementation).
4702
4703         Additionally, we need to set the terminal back into keypad_xmit
4704         mode.
4705         
4706         (ves_icall_System_ConsoleDriver_TtySetup): Take the keypad xmit
4707         string as a paramter as well.   Otherwise we get different
4708         keyboard sequences.
4709
4710 2008-08-20  Zoltan Varga  <vargaz@gmail.com>
4711
4712         * marshal.c (emit_marshal_object): Avoid managed-to-native marshalling of
4713         delegates with byref out parameter passing. Fixes #351520.
4714
4715         * debug-helpers.c (mono_context_get_desc): New helper function to stringify
4716         a generic context.
4717         (mono_type_get_desc): Add the type arguments for GENERICINST.
4718         (mono_method_full_name): Stringify the class name using mono_type_full_name
4719         so it picks up generic arguments.
4720
4721 2008-08-19  Gert Driesen  <drieseng@users.sourceforge.net>
4722
4723         * console-io.c: Removed debug output.
4724
4725 2008-08-19 Rodrigo Kumpera  <rkumpera@novell.com>
4726
4727         reflection.c (mono_reflection_create_runtime_class): Alloc
4728         the nested classes linked list using the dynamic image mempool.
4729         Fixes leak in corlib compilation.
4730
4731 2008-08-19  Miguel de Icaza  <miguel@novell.com>
4732
4733         * console-io.c: Fix incredibly annoying behavior on the console
4734         after resuming execution after control-z.   This affected every
4735         console application.
4736
4737 2008-08-18 Rodrigo Kumpera  <rkumpera@novell.com>
4738
4739         * mempool-internals.h: Header for mono private mempool functions. The first
4740         two function are for allocating glib linked lists using pools.
4741
4742         * mempool.c: Added g_list_prepend_mempool and g_slist_prepend_mempool.
4743
4744         * Makefile.am: Added mempool-internals.h.
4745
4746 2008-08-16  Zoltan Varga  <vargaz@gmail.com>
4747
4748         * domain.c (mono_domain_create): Call the JIT domain hook if installed.
4749         (mono_domain_free): Ditto.
4750
4751         * domain-internals.h (struct _MonoDomain): Add 'runtime_info' field, this could
4752         be used by the JIT to store its domain-specific information, instead of putting
4753         it directly into MonoDomain.
4754
4755         * domain.c (mono_install_create_domain_hook): New helper function to install
4756         a hook which initializes domain->runtime_info.
4757
4758         * domain.c (mono_install_free_domain_hook): Ditto.
4759         
4760 2008-08-15  Zoltan Varga  <vargaz@gmail.com>
4761
4762         * marshal.c (mono_delegate_end_invoke): Raise an exception instead of
4763         asserting if the ares parameter is null.
4764
4765         * mono-perfcounters.c: Fix warnings.
4766
4767         * marshal.c (mono_marshal_get_delegate_begin_invoke): Don't set save_lmf, it
4768         is not needed, don't check for interruptions either.
4769         (mono_marshal_get_delegate_end_invoke): Ditto.
4770
4771 2008-08-15  Marek Habersack  <mhabersack@novell.com>
4772
4773         * mono-perfcounters.c (predef_readonly_counter): added support for
4774         reading the ASP.NET Requests Queued counter from another process.
4775
4776 2008-08-12  Zoltan Varga  <vargaz@gmail.com>
4777
4778         * metadata-internals.h: Move the 'aot_module' field from MonoAssembly to
4779         MonoImage to simplify the AOT code.
4780
4781 2008-08-10  Zoltan Varga  <vargaz@gmail.com>
4782
4783         * marshal.c (emit_marshal_object): Implement native-to-managed StringBuilder
4784         marshalling. Fixes #416078.
4785
4786 2008-08-08  Zoltan Varga  <vargaz@gmail.com>
4787         
4788         * marshal.c (mono_marshal_get_native_wrapper): Add an 'aot' argument, when
4789         it is set, looking up the icall address is deferred to the JIT, since 
4790         in embedded scenarios, the icall might not be registered in the runtime
4791         doing the AOT compilation. Backported from the 2.0 branch.
4792
4793 2008-08-08  Zoltan Varga  <vargaz@gmail.com>
4794
4795         * marshal.c (mono_remoting_wrapper): Handle nullable types correctly.
4796         Fixes #415621.
4797
4798 2008-08-05  Marek Habersack  <mhabersack@novell.com>
4799
4800         * Makefile.am: added support for cross-compilation.
4801
4802 2008-08-04  Zoltan Varga  <vargaz@gmail.com>
4803
4804         * socket-io.c (get_socket_assembly): Make 'moonlight' variable static.
4805
4806 Fri Aug 1 18:47:48 CEST 2008 Paolo Molaro <lupus@ximian.com>
4807
4808         * mono-perfcounters.c: jitted methods and jitted bytes counters.
4809
4810 Fri Aug 1 16:07:09 CEST 2008 Paolo Molaro <lupus@ximian.com>
4811
4812         * class-internals.h, icall-def.h, mono-perfcounters-def.h,
4813         mono-perfcounters.c: performance counters implementation.
4814
4815 2008-07-31  Zoltan Varga  <vargaz@gmail.com>
4816
4817         * metadata-internals.h (struct _MonoAssembly): Change the type of 'aot_module'
4818         to gpointer, letting the AOT code decide what to store in it.
4819
4820 2008-07-31  Bill Holmes  <billholmes54@gmail.com>
4821
4822         * marshal.c (cominterop_get_native_wrapper) : Adding a call to 
4823           mono_class_setup_methods if the methods are not initialized.
4824
4825         Code is contributed under MIT/X11 license.
4826
4827 2008-07-30 Rodrigo Kumpera  <rkumpera@novell.com>
4828
4829         * verify.c: Remove some debug code I commited by accident.
4830
4831         * verify.c (mono_method_is_valid_in_context): Change the return value
4832         to make possible to distinguish between invalid and unverifiable.
4833
4834         * verify.c (verifier_load_method): Don't return NULL for unverifiable
4835         methods.
4836
4837 2008-07-30 Rodrigo Kumpera  <rkumpera@novell.com>
4838
4839         * verify.c (mono_generic_param_is_constraint_compatible): Inflate type
4840         constraints. Fixes regression in gtest-253.
4841
4842 2008-07-30 Rodrigo Kumpera  <rkumpera@novell.com>
4843
4844         * verify.c (mono_verifier_verify_class): Don't allow generic types
4845         with explicit layout.
4846
4847         * verify.c (mono_method_verify): Check locals and argument types.
4848
4849 2008-07-29  Zoltan Varga  <vargaz@gmail.com>
4850
4851         * monitor.c (mono_monitor_try_enter_internal): Allow nterruption of the
4852         wait if the thread is in StopRequested state.
4853
4854         * class.c (mono_class_from_name): Refactor the module searching code into
4855         a separate function so it can be reused in the AOT case too.
4856
4857 2008-07-28 Rodrigo Kumpera  <rkumpera@novell.com>
4858
4859         * verify.c (mono_type_is_valid_in_context): Improve the error message.
4860         Check both the type and it's generic type definition for loader errors.
4861         
4862         * verify.c (mono_method_is_valid_in_context): Don't generate another
4863         error when a type errors occur, this leads to the wrong exception been
4864         thrown.
4865
4866 2008-07-28  Dick Porter  <dick@ximian.com>
4867
4868         * icall-def.h
4869         * process.c
4870         (ves_icall_System_Diagnostics_Process_ProcessHandle_duplicate):
4871         New internal calls to duplicate and close a process handle.
4872
4873 2008-07-27  Andreas Färber  <andreas.faerber@web.de>
4874
4875         * object.c (CHECK_ADD_OVERFLOW_UN): Add missing bracket. Fixes #412499.
4876
4877 2008-07-27  Zoltan Varga  <vargaz@gmail.com>
4878
4879         * appdomain.c (unload_thread_main): Attach the unload thread to the runtime.
4880
4881 2008-07-27  Robert Jordan  <robertj@gmx.net>
4882
4883         * class.c (mono_class_init): Don't compute class.has_finalize for
4884         valuetypes. Fixes #412477.
4885
4886 2008-07-25 Rodrigo Kumpera  <rkumpera@novell.com>
4887
4888         * verify.c: Implement constraint equivalence checking.
4889         This is required when a generic parameter is used as
4890         argument to a constrained one.
4891
4892         Fixes #410637.
4893
4894 2008-07-24  Zoltan Varga  <vargaz@gmail.com>
4895
4896         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4897
4898         * domain-internals.h (struct _MonoDomain): Add 'method_code_hash' field.
4899
4900         * object-internals.h (struct _MonoDelegate): Add 'method_code' field,
4901         synch with managed object layout.
4902
4903 2008-07-24 Rodrigo Kumpera  <rkumpera@novell.com>
4904
4905         * verify.c (do_branch_op): Handle valuetypes and generic
4906         arguments properly.
4907
4908         * verify.c (do_cmp_op): Same.
4909
4910         Fixes #410383.
4911
4912 2008-07-24  Mark Probst  <mark.probst@gmail.com>
4913
4914         * generic-sharing.c: Fix memory leaks.
4915
4916         * class.c, class-internals.h: Make
4917         mono_class_inflate_generic_type_with_mempool() non-static.
4918
4919 2008-07-24 Rodrigo Kumpera  <rkumpera@novell.com>
4920
4921         * pedump.c (dump_verify_info): Dump full class name.
4922
4923 2008-07-24  Mark Probst  <mark.probst@gmail.com>
4924
4925         * generic-sharing.c: Removed some old code that didn't do anything.
4926
4927 2008-07-24  Massimiliano Mantione  <massi@ximian.com>
4928         * profiler.c: Added runtime_initialized_event,
4929         mono_profiler_install_runtime_initialized and
4930         mono_profiler_runtime_initialized. This new hook tells the profiler
4931         when the runtime is sufficiently initialized to be able to call
4932         mono_thread_attach on the root appdomain.
4933         * profiler.h, profiler-private.h: Likewise.
4934
4935 2008-07-23 Rodrigo Kumpera  <rkumpera@novell.com>
4936
4937         * verify.c (do_cast): Do boxing for generic arguments as well.
4938
4939         * class.c (is_nesting_type): Drop generic instantiations before
4940         checking for nesting.
4941
4942         * class.c (can_access_instantiation): Allow access to generic
4943         arguments.
4944
4945 2008-07-23 Rodrigo Kumpera  <rkumpera@novell.com>
4946
4947         * verify.c (verify_class_for_overlapping_reference_fields):
4948         On some cases, the field size might be zero, guard against that.
4949         Fix the explicit layout check to work as expected.
4950
4951 2008-07-23  Zoltan Varga  <vargaz@gmail.com>
4952
4953         * threads.c (ves_icall_System_Threading_Thread_Abort): Avoid calling 
4954         mono_thread_resume () during shutdown, since the thread we want to abort
4955         might be suspended.
4956
4957 2008-07-22  Zoltan Varga  <vargaz@gmail.com>
4958
4959         * mono-debug-debugger.c (mono_debugger_check_breakpoints): Fix a 
4960         warning.
4961
4962         * debug-mono-symfile.c: Fix a warning.
4963
4964         * mono-perfcounters.c (get_cpu_times): Fix a warning.
4965
4966         * object.c (mono_class_vtable): Check if exception_type is set, and return
4967         NULL as defined by the function comments.
4968
4969 2008-07-22  Mark Probst  <mark.probst@gmail.com>
4970
4971         * mempool.c: Use malloc for every single mempool allocation if the
4972         configure option is set.  This makes it easier to track mempool
4973         allocations with tools like Valgrind.
4974
4975 2008-07-22  Jb Evain  <jbevain@novell.com>
4976
4977         * reflection.c (create_dynamic_mono_image): emit the same
4978         metadata version that SL2 does when creating a SL2 image.
4979
4980 2008-07-21 Rodrigo Kumpera  <rkumpera@novell.com>
4981
4982         * icall-def.h:
4983         * icall.c: New icall System.Enum:get_hashcode. This function
4984         avoids the overhead of boxing the enum to the underlying type.
4985
4986 2008-07-21  Mark Probst  <mark.probst@gmail.com>
4987
4988         * reflection.c (mono_method_get_object): Don't let static RGCTX
4989         invoke wrappers get into MonoReflectionMethods.
4990
4991 2008-07-17 Rodrigo Kumpera  <rkumpera@novell.com>
4992
4993         * object-internals.h:
4994         * object.c: New mono_runtime_class_init_full function
4995         that makes throwing the exception optinal.
4996
4997         * class-internals.h: New exception type MONO_EXCEPTION_OBJECT_SUPPLIED
4998         for the case where the exception object is supplied.
4999
5000 2008-07-16  KornĂ©l PĂ¡l  <kornelpal@gmail.com>
5001
5002         * coree.h: Define __ImageBase as _image_base__ on cygwin that fixes build with
5003         old ld versions.
5004
5005         Contributed under MIT/X11 license.
5006
5007 2008-07-16 Rodrigo Kumpera  <rkumpera@novell.com>
5008
5009         * string-icalls.c (ves_icall_System_String_InternalSplit):
5010         Optimize array allocation by caching the MonoClass of the
5011         array type.
5012
5013         * icall.c (ves_icall_Type_GetMethodsByName): Same.
5014
5015         * reflection.c (mono_param_get_objects): Same.
5016
5017 2008-07-16 Rodrigo Kumpera  <rkumpera@novell.com>
5018
5019         * icall-def.h:
5020         * icall.c: New ves_icall_MonoGenericClass_InflateType icall.
5021         It inflates the given type using the class context.
5022
5023 2008-07-15 Rodrigo Kumpera  <rkumpera@novell.com>
5024
5025         * object.c (mono_class_try_get_vtable): New function. Tries to fetch
5026         the vtable if it already exists.
5027
5028         * object-internals.h: Add mono_class_try_get_vtable as part of the
5029         internal API.
5030
5031         * reflection.c (mono_type_get_object): Use the MonoObject from the
5032         vtable when possible. Reduces locking contention on reflection heavy
5033         code.
5034
5035 2008-07-15  Zoltan Varga  <vargaz@gmail.com>
5036
5037         * decimal.c (my_g_bit_nth_msf): Implement this directly without calling
5038         g_bit_nth_msf () since that macro is not implemented in eglib.
5039
5040 2008-07-13  Zoltan Varga  <vargaz@gmail.com>
5041
5042         * class.c (mono_class_generic_sharing_enabled): Always disable generic sharing
5043         on platforms which do not support it.
5044
5045 2008-07-12  Zoltan Varga  <vargaz@gmail.com>
5046
5047         * marshal.c (mono_signature_to_name): Encode sig->hasthis as well.
5048
5049 2008-07-11  Martin Baulig  <martin@ximian.com>
5050
5051         * mono-debug-debugger.h
5052         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_INTERRUPTION_REQUEST'.
5053
5054         * mono-debug-debugger.c
5055         (_mono_debugger_interruption_request): New global volatile variable.
5056         (mono_debugger_check_interruption): New public function.
5057
5058         * threads.c
5059         (mono_thread_current_check_pending_interrupt): Call
5060         mono_debugger_check_interruption().
5061         (mono_thread_interruption_checkpoint_request): Likewise.
5062
5063 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
5064
5065         * verify.c: Add more type checks for loaded types. Verify the result
5066         handle from ldtoken.
5067
5068 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
5069
5070         * loader.c (field_from_memberref): Don't crash if the field
5071         wasn't found.
5072
5073 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
5074
5075         * verify.c: Verify if type and method instantiations
5076         don't have invalid VAR or MVAR arguments.
5077
5078 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
5079
5080         * verify.c: Fix double free of function pointer list.
5081
5082 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
5083
5084         * object.c (mono_string_to_utf8): Comment the new code as it
5085         breaks under eglib.
5086
5087 2008-07-08 Rodrigo Kumpera  <rkumpera@novell.com>
5088
5089         * object.c (mono_string_to_utf8): Avoid allocating a temp array.
5090
5091 2008-07-07  Bill Holmes  <billholmes54@gmail.com>
5092
5093         * threads.c : Thread.Interrupt changes to ensure that ThreadInterruptedException
5094           is not throw too many times.
5095
5096         Code is contributed under MIT/X11 license.
5097
5098 2008-07-07  Zoltan Varga  <vargaz@gmail.com>
5099
5100         * mono-debug.c (mono_debug_find_method): Allow this to be called even when
5101         debugging is turned off.
5102
5103 2008-07-06  Zoltan Varga  <vargaz@gmail.com>
5104
5105         * generic-sharing.c (mono_method_lookup_rgctx): Fix a warning.
5106
5107 2008-07-04  Mark Probst  <mark.probst@gmail.com>
5108
5109         * class-internals.h, class.c: Added new generic sharing option:
5110         Share only stuff in System.Collections.Generic, which is now the
5111         default.
5112
5113 2008-07-04  Mark Probst  <mark.probst@gmail.com>
5114
5115         * generic-sharing.c, class-internals.h: New function for getting a
5116         generic method in a generic class given the corresponding method
5117         for a different instantiation of the class.  Partly refactored
5118         from mini-trampolines.c.
5119
5120         * class.c: Make sure generic methods have a class_inst if they are
5121         part of a generic class.
5122
5123         * metadata.c (mono_type_stack_size_internal): Handle type
5124         variables.
5125
5126 2008-07-04  Mark Probst  <mark.probst@gmail.com>
5127
5128         * domain-internals.h: New field (has_this) in MonoGenericJitInfo.
5129         Signifies whether information on the this/vtable/mrgctx variable
5130         is available.
5131
5132 2008-07-04  Mark Probst  <mark.probst@gmail.com>
5133
5134         * object.c, object-internals.h, icall.c: New function
5135         mono_delegate_ctor_with_method(), which does the same as
5136         mono_delegate_ctor(), but takes an explicit method argument
5137         instead of taking the method from the jit info.
5138
5139         * marshal.c: When creating a delegate with an inflated method take
5140         the "this" argument as the target class for the castclass.
5141
5142 2008-07-03  Mark Probst  <mark.probst@gmail.com>
5143
5144         * domain.c (mono_jit_info_table_find): Fixed a bug that caused
5145         mono_jit_info_table_find() to perform very badly in some cases.
5146
5147 2008-07-02  Zoltan Varga  <vargaz@gmail.com>
5148
5149         * icall.c (type_from_typename): Handle 'string'.
5150
5151         * marshal.c (mono_marshal_get_runtime_invoke): Don't insert runtime invoke
5152         wrappers into the wrapper_hash, since the key is not a MonoMethod.
5153
5154 2008-07-01  Zoltan Varga  <vargaz@gmail.com>
5155
5156         * icall.c (mono_get_jit_icall_info): New function to return the jit icall hash table.
5157
5158         * *-gc.c (mono_gc_get_managed_allocator_types): New function to return the
5159         number of available managed allocator types.
5160
5161         * marshal.c (mono_marshal_init): Register Thread:ResetAbort as an icall ().
5162         (mono_marshal_get_runtime_invoke): Call ResetAbort as an icall.
5163
5164 2008-06-30  Zoltan Varga  <vargaz@gmail.com>
5165
5166         * domain-internals.h (struct _MonoDomain): Add 'jit_code_hash_lock' field,
5167         which is a low level lock protecting just the 'jit_code_hash' hash table.
5168
5169         * domain.c: Initialize+cleanup jit_code_hash_lock.
5170         
5171 2008-06-30  KornĂ©l PĂ¡l  <kornelpal@gmail.com>
5172
5173         * coree.c (mono_load_coree): Set coree_module_handle global variable only
5174         after initialization.
5175
5176         * coree.h: Make MonoFixupExe internal.
5177
5178         Contributed under MIT/X11 license.
5179
5180 2008-06-30  KornĂ©l PĂ¡l  <kornelpal@gmail.com>
5181
5182         * coree.c (_CorValidateImage): Retain IMAGE_DIRECTORY_ENTRY_SECURITY
5183         because that is platform independent. Check NumberOfRvaAndSizes in PE32
5184         as well.
5185         (MonoLoadImage): New wrapper function around LoadLibrary to ensure that the
5186         image being loaded is a CLI image and _CorValidateImage gets called.
5187
5188         * coree.h: Add MonoLoadImage.
5189
5190         * image.c (mono_image_open_full): Load CLI images using MonoLoadImage
5191         instead of LoadLibrary.
5192
5193         Contributed under MIT/X11 license.
5194
5195 2008-06-29 Rodrigo Kumpera  <rkumpera@novell.com>
5196
5197         * icall.c (ves_icall_System_ValueType_Equals): Avoid allocating objects
5198         for any primitive type.
5199
5200 2008-06-29  Zoltan Varga  <vargaz@gmail.com>
5201
5202         * object.c (mono_array_new_specific): Optimize this and the other allocation
5203         functions a bit.
5204         
5205         * object.c (mono_class_create_runtime_vtable): Use typed allocation in other
5206         domains too if mono_dont_free_domains is set.
5207
5208         * domain-internals.h (mono_dont_free_domains): New internal option controlling
5209         whenever to free appdomain data after it has been unloaded.
5210
5211         * domain.c (mono_domain_free): Don't free appdomain data if the option is set.
5212         
5213 2008-06-28  Zoltan Varga  <vargaz@gmail.com>
5214
5215         * icall.c (ves_icall_System_Enum_get_underlying_type): New icall.
5216         (mono_method_get_equivalent_method): Fix a warning.
5217
5218         * object.c (mono_message_init): Avoid looking up array types for each call.
5219
5220 2008-06-27  Zoltan Varga  <vargaz@gmail.com>
5221
5222         * object.c (mono_message_invoke): Avoid looking up the object[] type for each
5223         call.
5224
5225         * icall.c (ves_icall_System_ValueType_Equals): Optimize the comparison of enums
5226         even more.
5227
5228         * class.c (mono_class_get_fields): Avoid calling setup_fields_locking () for
5229         each iteration.
5230
5231         * icall.c (ves_icall_System_ValueType_Equals): Avoid traversing all the static
5232         fields of an enum.
5233
5234 2008-06-26 Rodrigo Kumpera  <rkumpera@novell.com>
5235
5236         * object.c (mono_value_box): Fix boxing of nullables.
5237
5238 2008-06-26  KornĂ©l PĂ¡l  <kornelpal@gmail.com>
5239
5240         * assembly.c (mono_set_rootdir): Use __ImageBase instead of
5241         mono_module_handle that is defined by the linker; no initialization required.
5242         * coree.h: Remove mono_module_handle, add __ImageBase, update
5243         mono_image_open_from_module_handle.
5244         * coree.c (_CorValidateImage): Convert platform independent PE32 images to
5245         PE32+ on 64-bit Windows that makes the OS able to load CIL images as modules.
5246         (MonoFixupCorEE): Export Address Table RVAs are 32-bit unsigned integers so
5247         memory has to be allocated for trampolines (x64) or procedure labels (IA64) up
5248         to 4 GB away from image base address. IA64 version is not tested but was very
5249         easy to implement and should work if we ever need it.
5250         * domain.c (mono_init_internal): Avoid system error message boxes.
5251         * image.c (mono_image_open_from_module_handle): Replace ref_count argument
5252         with has_entry_point. Handle do_mono_image_load fauilre correctly.
5253         (mono_image_open_full, mono_image_close): Use has_entry_point instead of
5254         coff_attributes that is a more reliable way to detect if _CorDllMain was called.
5255         * metadata-internals.h: Add has_entry_point to _MonoImage on Windows.
5256
5257         Contributed under MIT/X11 license.
5258
5259 2008-06-25 Rodrigo Kumpera  <rkumpera@novell.com>
5260
5261         * class.c, class-internals.h: Export mono_class_get_generic_type_definition
5262         as part of the private mono API.
5263         
5264         * loader.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandleInternalType):
5265         Do proper argument checking for methods that belong to generic classes.
5266         Do proper type resolution for GMFH/2.
5267         Fixes #377324.
5268         
5269 2008-06-25 Rodrigo Kumpera  <rkumpera@novell.com>
5270
5271         * verify.c (do_switch): Fix a memory corruption bug with
5272         the jump index is out of bound.
5273
5274 2008-06-25 Rodrigo Kumpera  <rkumpera@novell.com>
5275
5276         * verify.c: Disable debug code.
5277
5278 2008-06-25 Rodrigo Kumpera  <rkumpera@novell.com>
5279
5280         * reflection.c (mono_image_get_methodbuilder_token): Use
5281         mono_image_get_methodspec_token_for_generic_method_definition
5282         instead of mono_image_get_memberref_token. We cache more memberef
5283         entries now.
5284
5285 2008-06-24 Rodrigo Kumpera  <rkumpera@novell.com>
5286
5287         * verify.c: Inflate exception clause types.
5288         Fixes #402606.
5289         
5290 2008-06-24 Rodrigo Kumpera  <rkumpera@novell.com>
5291
5292         * reflection.c (mono_image_get_methodbuilder_token): Don't leak
5293         name.
5294
5295         * reflection.c (mono_image_get_ctorbuilder_token): Same.
5296
5297         * reflection.c (mono_image_create_method_token): Same.
5298
5299 2008-06-24 Rodrigo Kumpera  <rkumpera@novell.com>
5300
5301         * reflection.c: Added mono_image_get_methodref_token_for_methodbuilder.
5302         It does the same as mono_image_get_methodref_token but works on
5303         MethodBuilder.
5304
5305         * reflection.c: Use mono_image_get_methodspec_token_for_generic_method_definition
5306         and always generate a methodspec. This follows the old behavior and fixes
5307         the regressions in System.Core. 
5308
5309 2008-06-24  Zoltan Varga  <vargaz@gmail.com>
5310
5311         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Collect exceptions for classes where 
5312         don't event mono_class_get () succeeds. Fixes #402182.
5313
5314 2008-06-20 Rodrigo Kumpera  <rkumpera@novell.com>
5315
5316         * metadata-internals.h: Added MonoDynamicImage::methodspec
5317         hashtable to store methodspec tokens created for MethodBuilders.
5318
5319         * reflection.c (mono_image_get_methodbuilder_token): Encode generic
5320         MethodBuilders as open instantiations if a methodspec was requested.
5321
5322         * reflection.c (fixup_method): Skip MethodBuilder with methodspec tokens.
5323
5324         * reflection.c (create_dynamic_mono_image): Create the methodspec hashtable.
5325
5326         * reflection.c (mono_dynamic_image_free): Release the methodspec hashtable.
5327
5328         Fixes bug #349190.
5329
5330 2008-06-20 Rodrigo Kumpera  <rkumpera@novell.com>
5331
5332         * loader.c (method_from_methodspec): Avoid crashing if the
5333         method lookup fails.
5334
5335 2008-06-20  Dick Porter  <dick@ximian.com>
5336
5337         * socket-io.c (get_socket_assembly): Cope with Moonlight network
5338         classes being in a different assembly.  Fixes bug 399184.
5339
5340 2008-06-20  Zoltan Varga  <vargaz@gmail.com>
5341
5342         * loader.c (mono_loader_init): Make this callable multiple times.
5343         (mono_dllmap_insert): Call mono_loader_init () so this works even before
5344         the runtime is initialized. Fixes #401755.
5345
5346 2008-06-19  Dick Porter  <dick@ximian.com>
5347
5348         * socket-io.c (convert_socketflags): Ignore SocketFlags.Partial.
5349         Fixes bug 349688.
5350
5351 2008-06-19  Dick Porter  <dick@ximian.com>
5352
5353         * socket-io.c:
5354         * icall-def.h: Implement Socket generic Send() and Receive()
5355         methods.  Fixes bug 395168.
5356
5357 2008-06-19  KornĂ©l PĂ¡l  <kornelpal@gmail.com>
5358
5359         * icall-def.h, icall.c: Add ves_icall_System_Reflection_Module_GetHINSTANCE.
5360
5361         Contributed under MIT/X11 license.
5362
5363 2008-06-18  Martin Baulig  <martin@ximian.com>
5364
5365         * mono-debug.h (MONO_DEBUGGER_VERSION): Split into
5366         `MONO_DEBUGGER_MAJOR_VERSION' and `MONO_DEBUGGER_MINOR_VERSION';
5367         set to 80.0.  The debugger <-> runtime interface is now frozen as
5368         well.   
5369
5370         * mono-debug.c
5371         (mono_debug_debugger_version): Bump to 4.
5372
5373 2008-06-18  Martin Baulig  <martin@ximian.com>
5374
5375         * debug-mono-symfile.c
5376         (load_symfile): Don't check the minor version.
5377
5378         * debug-mono-symfile.h: Bump the version number to 50.0.
5379
5380 2008-06-18  Martin Baulig  <martin@ximian.com>
5381
5382         * debug-mono-symfile.c
5383         (load_symfile): Treat `MONO_SYMBOL_FILE_MINOR_VERSION' as a
5384         minimum required version.
5385
5386 2008-06-17 Rodrigo Kumpera  <rkumpera@novell.com>
5387
5388         * reflection.c (mono_custom_attrs_from_property): Fix support for
5389         retriveving cattrs of dynamic inflated generic types.
5390
5391         * reflection.c (mono_custom_attrs_from_event): Same.
5392
5393         * reflection.c (mono_custom_attrs_from_field): Same;
5394
5395         * reflection.c (typebuilder_setup_events): Same cattrs of events.
5396
5397         * loader.c (-mono_metadata_get_corresponding_field_from_generic_type_definition):
5398         Moved to metadata.c.
5399
5400         * metadata.c: New functions to retrive the equivalent field, event
5401         of property from the generic type definition.
5402
5403         * metadata-internals.h: Added new functions from metadata.c.
5404
5405 2008-06-17 Rodrigo Kumpera  <rkumpera@novell.com>
5406
5407         * reflection.c (mono_custom_attrs_from_builders): Mark MonoCustomAttrInfo
5408         to cached in a mempool is used.
5409
5410         * metadata.c (free_generic_class): In some situations field generic_info type
5411         is not properly dup'ed and leads to double free'ing.
5412
5413         Fixes #400643.
5414
5415 2008-06-17  Mark Probst  <mark.probst@gmail.com>
5416
5417         * marshal.c (mono_marshal_get_static_rgctx_invoke): Also handle
5418         this arguments (will be needed later for generic methods).
5419         Collect stats.
5420
5421 2008-06-17  Mark Probst  <mark.probst@gmail.com>
5422
5423         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal):
5424         Create a static RGCTX invoke wrapper for methods which require it.
5425
5426 2008-06-17  Mark Probst  <mark.probst@gmail.com>
5427
5428         * object.c, class-internals.h: New function for checking whether
5429         an individual field is special static.
5430
5431 2008-06-15  Zoltan Varga  <vargaz@gmail.com>
5432
5433         * metadata.c (mono_metadata_get_generic_param_row): Use bsearch instead of
5434         linear search since the table is sorted.
5435
5436         * gc.c (mono_gc_cleanup): Abort the finalizer thread more gracefully.
5437         Fixes #324180.
5438
5439 2008-06-14  Zoltan Varga  <vargaz@gmail.com>
5440
5441         * appdomain.c (unload_thread_main): Applied patch from Tim Howard 
5442         (timh@ict.om.org). Remove the timeouts when waiting for appdomains to unload.
5443
5444         * gc.c (mono_domain_finalize): Allow an infinite timeout.
5445
5446         * threads.c (mono_threads_abort_appdomain_threads): Ditto.
5447         
5448         * threads.c (mono_thread_request_interruption): Get rid of locking, use
5449         InterlockedCompareExchange to query and modify 
5450         thread->interruption_requested.
5451
5452         * object-internals.h (struct _MonoThread): Change interruption_requested
5453         to a gint32 so it can be modified by atomic operations. Add 
5454         'critical_region_level' from the managed side, change small_id to a guint32,
5455         add new set of 'unused' fields.
5456
5457         * appdomain.c: Bump corlib version.
5458
5459 2008-06-13  Zoltan Varga  <vargaz@gmail.com>
5460
5461         * class.c (mono_class_from_name): Search modules as well. Fixes
5462         #322332.
5463
5464 2008-06-13  Mark Probst  <mark.probst@gmail.com>
5465
5466         * generic-sharing.c: Code for maintaining the MRGCTX and MRGCTX
5467         templates.  Templates are generalized with an additional type_argc
5468         argument.  RGCTX templates have type_argc==0, MRGCTX templates
5469         have type_argc>0.
5470
5471         * domain-internals.h, domain.c: New hash table for looking up
5472         MRGCTXs.
5473
5474         * metadata.c, metadata-internals.h: Rename hash and equal
5475         functions for MonoGenericInst's and make them public.
5476
5477         * class-internals.h: New data structures for the MRGCTX.  Macros
5478         for distinguishing slots in the RGCTX and the MRGCTX.
5479
5480 2008-06-13  Mark Probst  <mark.probst@gmail.com>
5481
5482         * object.c (mono_method_get_imt_slot): Put the same methods of
5483         different instantiations of the same generic interface in the same
5484         IMT slots, to make generic sharing simpler.
5485
5486 2008-06-12 Rodrigo Kumpera  <rkumpera@novell.com>
5487
5488         * metadata-internals.h: Added mono_metadata_field_info_with_mempool.
5489
5490         * metadata.c (mono_metadata_field_info_with_mempool): Added.
5491         This function works just like mono_metadata_field_info, but
5492         accept a mempool as argument to be used allocating memory.
5493
5494         * marshal.c (mono_marshal_load_type_info): Use new function
5495         to load marshal data into image mempool.
5496
5497 2008-06-12 Rodrigo Kumpera  <rkumpera@novell.com>
5498
5499         * class.c (mono_class_inflate_generic_type_with_mempool):
5500         This function allows to inflate a generic type using
5501         a mempool.
5502
5503         * class.c (inflate_generic_type): Take a mempool as argument
5504         and use it to do type dup'ing.
5505
5506         * class.c (mono_class_setup_fields): Field type for generic
5507         generic classes are allocated from the image mempool.
5508
5509         * metadata.c (free_generic_class): Inflated field type is
5510         now allocated in the image mempool.
5511
5512 2008-06-12 Rodrigo Kumpera  <rkumpera@novell.com>
5513
5514         * threads.c (thread_cleanup): Free MonoThread::name.
5515
5516 2008-06-12  Marek Habersack  <mhabersack@novell.com>
5517
5518         * appdomain.c (ensure_directory_exists): avoid unnecessary
5519         mkdir(2) calls when the shadow directory already exists.
5520         (mono_make_shadow_copy): copy also satellite assemblies from the
5521         private bin directories.
5522
5523 2008-06-11  Zoltan Varga  <vargaz@gmail.com>
5524
5525         * threads.c (mono_thread_get_stack_bounds): Align the stack in all cases.
5526         
5527         * threads.c (mono_thread_get_stack_bounds): Align the stack address to
5528         a page boundary. Fixes #396219.
5529
5530 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
5531
5532         * marshal.c (mono_marshal_load_type_info): Add a memory barrier
5533         due to double-checked locking.
5534
5535 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
5536
5537         * assembly.c (build_assembly_name): Release memory on failure.
5538
5539         * assembly.c (mono_assembly_name_parse_full): Release memory on failure.
5540
5541 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
5542
5543         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Release
5544         memory on failure.
5545
5546 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
5547
5548         * icall.c (ves_icall_System_Reflection_AssemblyName_ParseName): Release
5549         memory on failure.
5550
5551 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
5552
5553         * loader.c (field_from_memberref): Check if field signature type is equal
5554         to the non-inflated type of the field. Fixes #398980.
5555
5556 2008-06-11  Zoltan Varga  <vargaz@gmail.com>
5557
5558         * assembly.c (mono_assembly_load_from_full): Call 
5559         mono_assembly_load_friends () outside the assemblies lock, since it can
5560         acquire the loader lock. Fixes #323696.
5561
5562         * reflection.c (resolve_object): Inflate the inst with the context for
5563         FieldOnTypeBuilderInst. Fixes #399010.
5564
5565 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
5566
5567         * reflection.c (mono_image_get_field_on_inst_token): Don't
5568         inflate the field to encode it's signature. If it's a
5569         VAR or MVAR it should stay that way in the signature.
5570         Fixes #399047.
5571
5572 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
5573
5574         * reflection.c (resolve_object): Release memory of inflated types.
5575
5576 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
5577
5578         * loader.c (mono_method_get_signature_full): Remove assert about
5579         loading a methodspec to a generic method. We have such methods, such as
5580         System.Threading.Interlocked::CompareExchange<T>.
5581         This assert was removed since it crashes the verifier when it checks
5582         methods calling CompareExchange<T>.
5583
5584 2008-06-10  Marek Safar  <marek.safar@gmail.com>
5585
5586         * icall.c (ves_icall_MonoMethod_GetGenericArguments): Creates an instance
5587         of Type array and not MonoType.
5588
5589 2008-06-10  Marek Habersack  <mhabersack@novell.com>
5590
5591         * profiler.c: fix a segfault on shutdown. Patch from Paolo Molaro
5592         <lupus@ximian.com>
5593
5594 2008-06-10  Martin Baulig  <martin@ximian.com>
5595
5596         * debug-mono-symfile.h
5597         (MONO_SYMBOL_FILE_MINOR_VERSION): Bump to 6.  There were no
5598         changes to the file format, but we were generating incorrect
5599         source file indices in the line number table due to a bug, which
5600         made backtraces report an incorrect source file.
5601
5602 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
5603
5604         * mono-debug.c: Moved mono_debug_free_method_jit_info from
5605         mini/debug-mini.c to here.
5606
5607         * mono-debug.c (il_offset_from_address): Free memory from find_method.
5608
5609         * mono-debug.h: Export mono_debug_free_method_jit_info, users should
5610         use it to release structs returned by mono_debug_find_method.
5611
5612 2008-06-10  Zoltan Varga  <vargaz@gmail.com>
5613
5614         * class.c (mono_class_setup_vtable): Call setup_methods even for interfaces
5615         since it needs to set method->slot for all interface methods.
5616
5617 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
5618
5619         * class-internals.h: Forgot to add.
5620
5621 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
5622
5623         * class-internals.h: Added MONO_PROP_DYNAMIC_CATTR.
5624
5625         * reflection.c (lookup_custom_attr): Added a MonoImage argument.
5626         Lookup the custom attributes from property_hash.
5627
5628         * reflection.c (mono_save_custom_attrs): Save the custom attributes
5629         in property_hash. Allocate all data using the image mempool.
5630
5631         * reflection.c: Removed dynamic_custom_attrs. Changed all checks
5632         for dynamic_custom_attrs to checks if the image is dynamic.
5633
5634 2008-06-09  Zoltan Varga  <vargaz@gmail.com>
5635
5636         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Free the
5637         assemblies array.
5638         
5639         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Avoid calling
5640         runtime functions while holding the domain assemblies lock.
5641
5642 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
5643
5644         * verify.c: Reapplied the last bit of the reverted changes.
5645
5646 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
5647
5648         * verify.c: Reapplied more of the reverted changes.
5649
5650 2008-06-09  Martin Baulig  <martin@ximian.com>
5651
5652         * debug-mono-symfile.c (load_symfile): Check the major version
5653         first; if it's wrong, don't print the minor version in the error message.
5654
5655 2008-06-09  Zoltan Varga  <vargaz@gmail.com>
5656
5657         * appdomain.c (set_domain_search_path): Make this use the domain assemblies
5658         lock instead of the domain lock to avoid deadlocks, since the thread might
5659         already hold the loader lock.
5660
5661         * threads.c (start_wrapper): Call mono_monitor_init_tls ().
5662         (mono_thread_attach): Ditto.
5663
5664         * monitor.c: Use a TLS variable for holding the current thread id instead
5665         of calling pthread_self ().
5666         (mono_monitor_init_tls): New internal function to initialize the TLS
5667         variable.
5668         (mono_monitor_try_enter_internal): Put the owner == id check after the
5669         owner == 0 check.
5670
5671         * object-internals.h (_G_BOOLEAN_EXPR): Redefine this glib macro to avoid
5672         missed optimizations when using gcc-4.3.
5673
5674 2008-06-08 Rodrigo Kumpera  <rkumpera@novell.com>
5675
5676         * reflection.c (mono_dynamic_image_free): Free the memory
5677         used by MonoGenericParam in MonoDynamicImage::gen_param.
5678
5679         * reflection.c (mono_reflection_setup_generic_class): Allocate
5680         container from mempool.
5681
5682         * reflection.c (mono_reflection_initialize_generic_parameter): Allocate
5683         container from mempool.
5684
5685 2008-06-07  Zoltan Varga  <vargaz@gmail.com>
5686
5687         * threads.c (mono_set_pending_exception): New internal function to set the
5688         pending exception of the current thread.
5689         (mono_thread_get_and_clear_pending_exception): Check for 
5690         thread->pending_exception as well.
5691
5692         * object-internals.h (struct _MonoThread): Add 'pending_exception' field.
5693
5694         * boehm-gc.c (mono_gc_base_init): Set GC_no_dls before calling GC_init () since
5695         it can trigger a collection.
5696
5697 2008-06-06  Martin Baulig  <martin@ximian.com>
5698
5699         Merged the `debugger-kahalo' branch.
5700
5701         * mono-debug.h
5702         (MONO_DEBUGGER_VERSION): Bumped to 72.
5703
5704         * debug-mono-symfile.h
5705         (MonoSymbolFileMethodIndexEntry): Removed.
5706         (MonoSymbolFileMethodEntry): New public typedef.
5707         (MonoSymbolFileOffsetTable): Added `_is_aspx_source'.
5708         (MonoSymbolFileSourceEntry): Remove everything except `index' and
5709         `data_offset'.
5710         (MonoSymbolFileMethodEntry): Removed.
5711         (MonoSymbolFileLexicalBlockEntry): Removed.
5712         (MonoSymbolFileLineNumberEntry): Removed.
5713         (MonoDebugLexicalBlockEntry): Removed.
5714         (MonoDebugMethodInfo): Replaced `entry' by `guint32 entry_offset';
5715         removed `num_il_offsets' and `il_offsets'.
5716         (MonoSymbolFile): Replace `version' with `major_version' and
5717         `minor_version'.
5718         (MONO_SYMBOL_FILE_VERSION): Replace with
5719         `MONO_SYMBOL_FILE_MAJOR_VERSION' and
5720         `MONO_SYMBOL_FILE_MINOR_VERSION'.
5721
5722         * debug-mono-symfile.c
5723         (mono_debug_symfile_lookup_location): Add support for the new line
5724         number table format.
5725
5726 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
5727
5728         * metadata.c (free_generic_class): Release the inflated
5729         MonoClass of dynamic generic classes if it's not a generic
5730         type definition.
5731
5732 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
5733
5734         * verify.c: Reapplied more of the reverted changes.
5735
5736 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
5737
5738         * reflection.c (lookup_custom_attr): Clean the cached flag or
5739         nobody will free it. Fixes a memleak in MonoCustomAttrs::IsDefinedInternal
5740         for SRE types.
5741
5742 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
5743
5744         * verify.c: Reapplied a small part of the reverted changes.
5745
5746 2008-06-07  Zoltan Varga  <vargaz@gmail.com>
5747
5748         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5749
5750         * monitor.c (mono_monitor_try_enter_internal): Add NULL check which was 
5751         previously in managed code.
5752         (mono_monitor_exit): Ditto.
5753         (ves_icall_System_Threading_Monitor_Monitor_exit): Removed, not needed anymore.
5754
5755         * icall-def.h: Rename the Enter/Exit icalls to simply Enter/Exit to match
5756         the managed definition.
5757
5758 2008-06-06 Rodrigo Kumpera  <rkumpera@novell.com>
5759
5760         * verify.c: Revert changes to see if it helps with weird buildbot crashes.
5761
5762 2008-06-06  Zoltan Varga  <vargaz@gmail.com>
5763
5764         * monitor.c: Redefine GetCurrentThreadId () with a macro on !win32.
5765         
5766         * monitor.c: Add some micro optimizations.
5767
5768         * icall.c (type_from_typename): Handle 'bool'.
5769
5770 2008-06-06 Rodrigo Kumpera  <rkumpera@novell.com>
5771
5772         * verify.c: Implement constructor verification per P III 1.8.1.4.
5773         Fixes #396716.
5774
5775 2008-06-06  Zoltan Varga  <vargaz@gmail.com>
5776
5777         * assembly.c (mono_assembly_loaded_full): Avoid calling the search hooks while
5778         holding the assemblies lock here too.
5779
5780 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
5781
5782         * verify.c: Kill stack_top function.
5783
5784 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
5785
5786         * verify.c: Kill stack_get function.
5787
5788 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
5789
5790         * verify.c (mono_method_verify): Last change broke the build. Fixed.
5791
5792 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
5793
5794         * verify.c (verify_type_compatibility_full): Make SZARRAY checks
5795         more reliable.
5796
5797         * verify.c (mono_method_verify): Inflate params and locals to avoid
5798         mismatch when checking for compatibility.
5799
5800 2008-06-05  Jonathan Chambers  <joncham@gmail.com>
5801
5802         * metadata.c (mono_string_from_bstr): Fix BSTR marshalling.
5803         Length prefix should be size in bytes. Fix bug #339530.
5804         
5805         * metadata.c (mono_string_to_bstr): Fix BSTR marshalling.
5806         Length prefix should be size in bytes. Fix bug #339530.
5807
5808         Code is contributed under MIT/X11 license.
5809
5810 2008-06-05  Bill Holmes <billholmes54@gmail.com>
5811
5812         * decimal.c:  Adding MSVC implementation to my_g_bit_nth_msf.
5813
5814         Contributed under MIT/X11 license.
5815
5816 2008-06-05  Martin Baulig  <martin@ximian.com>
5817
5818         * mono-debug-debugger.c
5819         (mono_debugger_check_breakpoints): Reflect latest runtime changes.
5820
5821 2008-06-05  Zoltan Varga  <vargaz@gmail.com>
5822
5823         * assembly.c (mono_assembly_load_from_full): Avoid calling the search hooks
5824         while holding the assemblies lock to prevent deadlocks. Handle the case
5825         where the search hook returns NULL but the assembly was still loaded.
5826         Fixes #323696.
5827
5828         * appdomain.c (set_domain_search_path): Acquire the domain lock since we
5829         modify domain state.
5830
5831 2008-06-05  Andreas Färber  <andreas.faerber@web.de>
5832
5833         * boehm-gc.c: Add DTrace probes gc-{begin,end}.
5834         * Makefile.am (pedump_LDADD): Post-process object files and
5835         add dtrace-generated object file, if necessary.
5836
5837         Code is contributed under MIT/X11 license.
5838
5839 2008-06-04 Rodrigo Kumpera  <rkumpera@novell.com>
5840
5841         * reflection.c (mono_dynamic_image_free): Free MonoDynamicImage::public_key.
5842
5843 2008-06-04 Rodrigo Kumpera  <rkumpera@novell.com>
5844
5845         * class.c (mono_type_get_full): Add a work-around for generic type definitions.
5846
5847 2008-06-04  Mark Probst  <mark.probst@gmail.com>
5848
5849         * threads.c: Try to free everything from the delayed free table
5850         when shutting down threads, and set the variable to NULL after the
5851         table is freed so that calling
5852         mono_thread_hazardous_try_free_all() when shutting down the root
5853         domain doesn't crash.
5854
5855 2008-06-04 Rodrigo Kumpera  <rkumpera@novell.com>
5856
5857         * class.c (mono_type_retrieve_from_typespec): Add an argument to inform
5858         the caller if resulting type was inflated.
5859
5860         * class.c (mono_class_create_from_typespec): Free the MonoType if it
5861         was inflated.
5862
5863         * class.c (mono_type_get_full): Free the MonoType if it was inflated.
5864
5865
5866 2008-06-04  Zoltan Varga  <vargaz@gmail.com>
5867
5868         * decimal.c (rescale128): Rework the code a bit so it no longer crashes the
5869         class library tests.
5870
5871         * icall.c (ves_icall_InternalInvoke): Applied patch from Andy Hume 
5872         (andyhume32@yahoo.co.uk). Add more useful exception messages. Fixes
5873         #396989.
5874
5875 2008-06-04  Mark Probst  <mark.probst@gmail.com>
5876
5877         * domain.c, domain-internals.h: The JIT infos are now freed by the
5878         JIT info table code.  They are freed immediately if there only a
5879         single JIT info table in circulation.  If there is more, the free
5880         is delayed via a queue.
5881
5882         * threads.c, threads-types.h: New hazard pointer function for
5883         freeing all freeable delayed items in one sitting.
5884
5885 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
5886
5887         * reflection.c (typebuilder_setup_fields): Use mempool for allocations.
5888
5889         * reflection.c (typebuilder_setup_properties): Same.
5890
5891         * reflection.c (typebuilder_setup_events): Same.
5892
5893 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
5894
5895         * reflection.c (mono_custom_attrs_from_builders): Receive a MonoMemPool
5896         and use it for allocating memory.
5897
5898         * reflection.c (mono_marshal_spec_from_builder): Same.
5899
5900         * reflection.c: Change code to use new signatures.
5901
5902         * metadata.c (mono_metadata_type_dup): Add a FIXME note.
5903
5904 2008-06-03  Zoltan Varga  <vargaz@gmail.com>
5905
5906         * decimal.c (rescale128): Put back one line which was accidently commented
5907         out.
5908         
5909         * decimal.c (rescale128): Disable the code added by the last patch, as it seems
5910         to cause crashes.
5911
5912 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
5913
5914         * reflection.c (mono_reflection_generic_class_initialize): Name must
5915         be always malloc'ed so we can free it later on. Do this for field, property
5916         and event.
5917
5918         * metadata.c (free_generic_class): Free field, property and event names.
5919
5920 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
5921
5922         * reflection.c (fieldbuilder_to_mono_class_field): Use mono_metadata_type_dup
5923         instead of g_memdup.
5924
5925         * reflection.c (typebuilder_setup_fields): Same.
5926
5927 2008-06-03  Zoltan Varga  <vargaz@gmail.com>
5928
5929         * decimal.c (rescale128): Optimize this function a bit more.
5930
5931 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
5932
5933         * metadata.c (free_generic_class): Release some memory from
5934         SRE generic classes.
5935
5936 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
5937
5938         * reflection.c (mono_image_get_generic_field_token): No reference
5939         to name is kept, free it.
5940
5941         * reflection.c (mono_reflection_generic_class_initialize): Free
5942         more memory of the inflated field.
5943
5944 2008-06-03  Zoltan Varga  <vargaz@gmail.com>
5945
5946         * decimal.c (mono_decimalDiv): Moved equality checks here from managed
5947         code.
5948
5949 2008-06-02 Rodrigo Kumpera  <rkumpera@novell.com>
5950
5951         * reflection.c (mono_dynamic_image_free): Release memory used by
5952         MonoDynamicImage::array_methods elements.
5953
5954         * reflection.c (assembly_add_win32_resources): Release memory after
5955         encoding.
5956
5957 2008-06-02  Zoltan Varga  <vargaz@gmail.com>
5958
5959         * decimal.c (log2_32): Use an optimized version for this function too.
5960         
5961         * decimal.c (log2_64): Fix this on 32 bit machines.
5962
5963 2008-06-02 Rodrigo Kumpera  <rkumpera@novell.com>
5964
5965         * class.c (mono_dup_array_type): Implement allocation using a mempool.
5966
5967         * class.c (mono_metadata_signature_deep_dup): Same.
5968
5969         * metadata.c (mono_metadata_signature_dup_full): Added, allow dup'ng with
5970         a mempool.
5971
5972         * metadata.c (mono_metadata_signature_dup): Delegate to the _full version.
5973
5974         * metadata.c (mono_metadata_type_dup): Remove asserts and FIXME.
5975
5976         * metadata-internals.h: Added mono_metadata_signature_dup_full.
5977
5978         * class-internals.h: Update signatures to take a MonoMemPool.
5979
5980 2008-06-02  Dick Porter  <dick@ximian.com>
5981
5982         * icall.c (ves_icall_System_ComponentModel_Win32Exception_W32ErrorMessage): 
5983         * icall-def.h: Add
5984         System.ComponentModel.Win32Exception.W32ErrorMessage, using the
5985         FormatMessage API to get the error text.  Fixes bug 321827.
5986
5987 2008-06-02  Zoltan Varga  <vargaz@gmail.com>
5988
5989         * decimal.c: Add some micro optimizations to make decimal operations faster.
5990
5991 2008-06-01 Rodrigo Kumpera  <rkumpera@novell.com>
5992
5993         * reflection.c (method_encode_clauses): Take a mempool
5994         as parameter and use it to allocate the clause array.
5995
5996         * reflection.c (mono_image_get_field_on_inst_token): Free
5997         the inflated type after encoding it.
5998
5999         * reflection.c (mono_dynamic_image_free): Free each element
6000         of MonoDynamicImage::gen_params.
6001
6002         * reflection.c (reflection_methodbuilder_to_mono_method):
6003         Allocate the generic param array from the mempool.
6004         Allocate signature params from the mempool.
6005
6006         * reflection.c (mono_reflection_generic_class_initialize):
6007         Free inflated fields after been used.
6008
6009 2008-05-30 Rodrigo Kumpera  <rkumpera@novell.com>
6010
6011         * icall.c: Reapply the memory leak fixes as they no
6012         longer make mono crash.
6013
6014 2008-05-30 Rodrigo Kumpera  <rkumpera@novell.com>
6015
6016         * reflection.c (mono_type_get_object): Don't store the suplied
6017         MonoType with type_hash. A caller which pass a type that
6018         was mono_metadata_type_dup'ed cannot free it reliably, as type_hash
6019         might end with a pointer to freed memory.
6020         The solution is to use byval_arg or this_arg from the associated
6021         MonoClass of the supplied type.
6022
6023 2008-05-29  Zoltan Varga  <vargaz@gmail.com>
6024
6025         * icall.c: Revert the rest of the last change as it breaks the build too.
6026
6027 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
6028
6029         * icall.c: Revert a leak fix as it's breaking the build.
6030
6031 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
6032
6033         * appdomain.c (mono_make_shadow_copy): Fix another leak of dir_name.
6034
6035 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
6036
6037         * appdomain.c (mono_make_shadow_copy): We leaked dir_name.
6038
6039 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
6040
6041         * icall.c: Fix some memory leaks.
6042
6043 2008-05-29  Dick Porter  <dick@ximian.com>
6044
6045         * threadpool.c (mono_thread_pool_remove_socket): Always remove the
6046         async socket operations from the pending list when a socket
6047         closes.  Leaving it until the threadpool services the event
6048         exposes a race condition when a socket descriptor is reused.
6049         Fixes bug 377589.
6050
6051 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
6052
6053         * object.c: Fix negative index check for array alocation.
6054
6055 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
6056
6057         * icall.c, marshal.c: Delegate wrappers should skip visibility.
6058         This check is performed by the verifier for IL created delegates
6059         and by Delegate::CreateDelegate for programatically created ones.
6060         Fixes #372406.
6061
6062 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
6063
6064         * sockey-io.c (ves_icall_System_Net_Sockets_Socket_Select_internal):
6065         Fix code to use mono_array_size_t instead of int.
6066
6067         Based on patch by Luis F. Ortiz.
6068         Contributed under X11 license.
6069         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
6070
6071 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
6072
6073         * icall.c: Added ves_icall_System_Array_GetLongLength and
6074         ves_icall_System_Array_CreateInstanceImpl64. Both allow handling big
6075         arrays.
6076
6077         * icall.h: Export both new functions.
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-28  Martin Baulig  <martin@ximian.com>
6084
6085         The debugger now requires exactly r103463.
6086
6087         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 71.
6088         This version is not supported by the debugger, wait for 72.
6089
6090 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
6091
6092         * object.h: Changed array related functions to use
6093         mono_array_size_t instead of guint32. Forgot to commit this file.
6094
6095         Patch by Luis F. Ortiz.
6096         Contributed under X11 license.
6097         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
6098
6099
6100 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
6101
6102         * object.h: Don't use G_MAXINT32 or G_MAXUINT32 as old glibs
6103         don't define it. Use the number literal instead.
6104
6105 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
6106
6107         * icall.c: Changed array related functions to use
6108         mono_array_size_t instead of guint32.
6109
6110         * icall.c (ves_icall_System_Array_GetLength): Check for length
6111         overflow under MONO_BIG_ARRAYS.
6112
6113         Based on patch by Luis F. Ortiz.
6114         Contributed under X11 license.
6115         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
6116
6117 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
6118
6119         * object.c: Add 64bits bounds check for arrays under MONO_BIG_ARRAYS.
6120
6121         Based on patch by Luis F. Ortiz.
6122         Contributed under X11 license.
6123         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
6124
6125 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
6126
6127         * object.c, object.h: Changed array related functions to use
6128         mono_array_size_t instead of guint32.
6129
6130         Patch by Luis F. Ortiz.
6131         Contributed under X11 license.
6132         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
6133
6134 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
6135
6136         * object.h: Introduced mono_array_size_t typedef. This must be used
6137         in all places an array length is expected. This is 64bits wide if
6138         MONO_BIG_ARRAYS is enabled.
6139
6140         Patch by Luis F. Ortiz.
6141         Contributed under X11 license.
6142         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
6143
6144 2008-05-27  Zoltan Varga  <vargaz@gmail.com>
6145
6146         * security-manager.c class.c: Set the class exception info by calling
6147         mono_class_set_failure ().
6148
6149         * class.c (mono_class_get_exception_data): New accessor function.
6150         (mono_class_set_failure): Store exception_data in the property hash.
6151
6152         * class-internals.h (struct _MonoClass): Store 'exception_data' outside
6153         the struct as a property.
6154
6155         * loader.c (mono_get_method_full): Store the lookup result for method
6156         tokens in method_cache, the others in methodref_cache to decrease the memory
6157         usage of hash tables.
6158
6159         * image.c (mono_image_close): Destroy method_cache and methodref_cache.
6160         (mono_image_init): method_cache is lazy inited now.
6161
6162         * metadata-internals.h (struct _MonoImage): Change method_cache to
6163         a MonoValueHashTable, add a separate methodref_cache.
6164
6165 2008-05-27  Eyal Alaluf <eyala@mainsoft.com>
6166
6167         * number-formatter.h: Fix tables to avoid arithemtic overflow in
6168           Double.ToString as exposed by Bug #383531.
6169
6170 2008-05-26  Zoltan Varga  <vargaz@gmail.com>
6171
6172         * number-formatter.h: Make some tables static.
6173
6174         * class.c (mono_method_set_generic_container): New accessor function.
6175         (mono_method_get_generic_container): Ditto.
6176
6177         * class-internals.h (struct _MonoMethod): Remove rarely used 
6178         'generic_container' field, store it in the property hash instead. Add 
6179         'is_generic' boolean field instead.
6180
6181         * image.c (mono_image_init): Initialize property_hash.
6182         (mono_image_close): Destroy property_hash.
6183
6184         * metadata-internals.h (struct _MonoImage): Add 'property_hash' hash table to
6185         hold rarely used fields of runtime structures belonging to this image.
6186
6187         * class.c loader.c verify.c icall.c reflection.c: Use the new accessor functions
6188         to get/set method->generic_container.
6189
6190         * loader.c (mono_get_method_from_token): Avoid loading the method header for
6191         generic methods.
6192
6193 2008-05-25  Zoltan Varga  <vargaz@gmail.com>
6194
6195         * class.c (mono_class_inflate_generic_method_full): Don't increase
6196         mono_stats.inflated_method_count for methods found in the cache.
6197
6198         * threads.c (mono_thread_request_interruption): Add a comment about 
6199         QueueUserAPC ().
6200
6201 2008-05-24  Zoltan Varga  <vargaz@gmail.com>
6202
6203         * class.c (setup_interface_offsets): Use sizeof (guint16) when allocating the
6204         interface_offsets_packed table.
6205         
6206         * class.c (mono_class_init): Remove some dead code.
6207
6208         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Call
6209         mono_class_setup_vtable () when CAS is active to detect security problems.
6210
6211 2008-05-23 Rodrigo Kumpera  <rkumpera@novell.com>
6212
6213         * verify.c (mono_delegate_type_equal): Handle VAR, MVAR and GENERICINST.
6214
6215         * verify.c (mono_delegate_signature_equal): Don't compar number of generic
6216         parameters as it's irrelevant for delegate checking.
6217
6218 2008-05-23  Zoltan Varga  <vargaz@gmail.com>
6219
6220         * class-internals.h class.c: Correct the name of the 'mono_no_setup_vtable_in_class_init' variable.
6221
6222         * class.c (mono_class_init): Control the creation of a generic vtable using
6223         a global which is true by default, but set to false by the runtime startup code.
6224         
6225         * class.c (mono_class_init): Avoid constructing a generic vtable in most cases.
6226         Disabled for now since it breaks the embedding API.
6227         Move the setup of class->methods for arrays to mono_class_setup_methods ().
6228         (mono_class_setup_methods): Add a memory barrier.
6229
6230         * object.c (mono_class_create_runtime_vtable): Add code to handle the case
6231         when mono_class_init () doesn't compute the generic vtable.
6232         
6233 2008-05-23  Massimiliano Mantione  <massi@ximian.com>
6234         * profiler.c: Added mono_profiler_install_statistical_call_chain,
6235         mono_profiler_stat_get_call_chain_depth and mono_profiler_stat_call_chain
6236         to support call chains (backtrace) in the stat profiler.
6237         * profiler.c, profiler-private.h: Likewise.
6238
6239 2008-05-22  Mark Probst  <mark.probst@gmail.com>
6240
6241         * generic-sharing.c: Init generic class when a method of it is
6242         requested via a runtime generic context.
6243
6244 2008-05-22  Zoltan Varga  <vargaz@gmail.com>
6245
6246         * class.c (mono_class_init): Add a comment about trying to avoid calling this.
6247
6248         * reflection.c (mono_type_get_object): Add a FIXME.
6249
6250         * loader.c (find_method_in_class): Use mono_class_get_method_by_index ().
6251
6252         * class.c (mono_class_get_method_by_index): New helper function, returning an
6253         entry in the class->methods array.
6254
6255 2008-05-21  Zoltan Varga  <vargaz@gmail.com>
6256
6257         * class.c (mono_class_init): Only do the array optimization for szarrays. 
6258         Avoid creating a generic vtable for generic instances as well.
6259         (mono_class_get_method_from_name_flags): Don't search in the metadata for
6260         generic instances.
6261
6262 2008-05-21 Rodrigo Kumpera  <rkumpera@novell.com>
6263
6264         * loader.c (mono_get_method_constrained): Inflate the signature
6265         with class context. Fix #325283.
6266
6267 2008-05-21  Zoltan Varga  <vargaz@gmail.com>
6268
6269         * object.c (mono_class_create_runtime_vtable): Add a comment.
6270
6271         * class.c (get_implicit_generic_array_interfaces): Call mono_class_init ()
6272         where needed.
6273         (setup_interface_offsets): Handle the case when this is called twice for arrays.
6274         (mono_class_setup_vtable_general): Add an assert.
6275         (mono_class_init): Avoid creating a generic vtable for arrays.
6276
6277         * class.c (mono_generic_class_get_class): Don't call setup_interface_offsets ()
6278         here, let mono_class_init () do that.
6279
6280         * class.c (mono_class_init): Avoid calling mono_class_setup_methods () for
6281         interfaces in mscorlib.
6282
6283         * class.c (mono_class_setup_vtable): Avoid calling setup_methods () for
6284         interfaces. Add some comments.
6285         (mono_class_init): Call mono_class_setup_methods () here since it is no
6286         longer called by mono_class_setup_vtable ().
6287
6288         * object.c (mono_class_proxy_vtable): Null out entries in pvt->vtable which are
6289         not set in class->vtable.
6290         (mono_class_create_runtime_vtable): Reenable the disabled code.
6291
6292         * object.c (mono_class_create_runtime_vtable): Disable the last change for
6293         now as it causes some test failures.
6294
6295         * object.c (mono_class_create_runtime_vtable): Avoid creating a generic vtable
6296         if using the vtable trampoline. Also remove some strange code which put the
6297         generic methods themselves into the vtable slots. Remove the AOT init_vtable
6298         stuff as it is no longer needed.
6299
6300 2008-05-19 Rodrigo Kumpera  <rkumpera@novell.com>
6301
6302         * pedump.c: Give make --verify all option check code as well.
6303         Using --verify code won't check for metadata now.
6304
6305 2008-05-19  Martin Baulig  <martin@ximian.com>
6306
6307         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 70.
6308
6309         * mono-debug.c
6310         (_mono_debug_using_mono_debugger): New global variable; it's set
6311         directly by the debugger, so mono_debug_using_mono_debugger() also
6312         works after attaching.
6313
6314 2008-05-18 Rodrigo Kumpera  <rkumpera@novell.com>
6315
6316         * object.c (mono_class_create_runtime_vtable): Use memory barriers
6317         as we do double checked locking on MonoClass::runtime_info and
6318         MonoClassRuntimeInfo::domain_vtables.
6319
6320 2008-05-18  Zoltan Varga  <vargaz@gmail.com>
6321
6322         * debug-helpers.c (print_field_value): Fix a warning.
6323
6324 2008-05-16  Zoltan Varga  <vargaz@gmail.com>
6325
6326         * object.c (mono_object_get_virtual_method): Fix a crash if method->slot is not
6327         set in the AOT case.
6328
6329 2008-05-16 Rodrigo Kumpera  <rkumpera@novell.com>
6330
6331         * class.c (mono_class_setup_vtable_general): Use memory barriers
6332         as we do double checked locking on MonoClass::vtable.
6333
6334 2008-05-16 Rodrigo Kumpera  <rkumpera@novell.com>
6335
6336         * reflection.c (resolve_object): Inflate only if the generic context
6337         is not null. Fixes #389886.
6338
6339 2008-05-15  Jonathan Chambers  <joncham@gmail.com>
6340
6341         * metadata.c (emit_marshal_string): Free return strings using mono_marshal_free
6342         instead of g_free.
6343
6344         Code is contributed under MIT/X11 license.
6345
6346 2008-05-14 Rodrigo Kumpera  <rkumpera@novell.com>
6347
6348         * class.c: Revert unrelated change.
6349
6350 2008-05-14 Rodrigo Kumpera  <rkumpera@novell.com>
6351
6352         * verify.c (check_is_valid_type_for_field_ops): Type on stack can be
6353         a generic instantiation, use mono_class_from_mono_type instead of playing
6354         with MonoType directly.
6355
6356 2008-05-14 Rodrigo Kumpera  <rkumpera@novell.com>
6357
6358         * class.c: Added mono_class_has_parent_and_ignore_generics. Visibility
6359         checks must ignore generic instantiations, so mono_class_has_parent is not
6360         suitable. Fixes #390128.
6361
6362 2008-05-14  Zoltan Varga  <vargaz@gmail.com>
6363
6364         * reflection.c (mono_image_create_token): Add a 'register_token' argument, and use
6365         it to avoid registering tokens during metadata generation. Fixes #390023.
6366
6367 2008-05-14  KornĂ©l PĂ¡l  <kornelpal@gmail.com>
6368
6369         * coree.c: Rename dwOldProtect to OldProtect that makes naming convention
6370         consistent.
6371
6372         Contributed under MIT/X11 license.
6373
6374 2008-05-14  KornĂ©l PĂ¡l  <kornelpal@gmail.com>
6375
6376         * domain.c (mono_init_internal): Enable LoadLibrary support. Load EXE image
6377         even when get_runtimes_from_exe didn't load it that allows mono_fixup_exe_image
6378         to fixup the EXE image.
6379         (mono_cleanup): Use mono_close_exe_image.
6380         (mono_close_exe_image): New function.
6381         * image.c: Include "marshal.h".
6382         (mono_image_open_from_module_handle): Add ref_count argument. Return the image.
6383         (mono_image_open_full, mono_image_close): Fix LoadLibrary/FreeLibrary reference
6384         counting when the image is loaded outside of mono_image_open_full. Set status
6385         based on GetLastError.
6386         * coree.c: Include required headers. Add init_from_coree.
6387         (_CorDllMain): Support fix in mono_image_open_full, mono_image_close. Call
6388         mono_assembly_open only when the image has vtfixups. Set init_from_coree.
6389         (_CorExeMain): Set init_from_coree.
6390         (CorExitProcess): Only call ExitProcess for now.
6391         (CorBindToRuntimeEx): New stub implementation.
6392         (CorBindToRuntime): New function.
6393         (MonoFixupCorEE): Fixup CorBindToRuntime and CorBindToRuntimeEx.
6394         (MonoFixupExe): ILONLY executables require no fixups.
6395         (mono_set_act_ctx): New function to set activation context.
6396         (mono_load_coree): Use init_from_coree. Call mono_set_act_ctx.  
6397         * coree.h: Move STATUS_SUCCESS and STATUS_INVALID_IMAGE_FORMAT to header.
6398         Declare mono_module_handle, coree_module_handle, mono_get_module_file_name,
6399         mono_load_coree, mono_fixup_exe_image and mono_image_open_from_module_handle
6400         as MONO_INTERNAL.
6401         * domain-internals.h: Add mono_close_exe_image.
6402
6403         Contributed under MIT/X11 license.
6404
6405 2008-05-13 Rodrigo Kumpera  <rkumpera@novell.com>
6406
6407         * metadata.c (mono_metadata_compute_size): Correctly calculate field
6408         size for generic param and event tables. Fixes #388977.
6409
6410 2008-05-13  Zoltan Varga  <vargaz@gmail.com>
6411
6412         * loader.c (mono_method_signature): Use memory barriers because of the double
6413         checked locking pattern.
6414
6415         * threads.c (remove_and_abort_threads): Stop and wait for threads which are
6416         aborting or aborted as well. Fixes #376391.
6417         
6418         * threads.c (mono_thread_execute_interruption): Avoid depending on no longer
6419         existing runtime state in the Suspend handler during shutdown.
6420
6421 2008-05-12  Zoltan Varga  <vargaz@gmail.com>
6422
6423         * threads.c (mono_thread_request_interruption): Add some FIXMEs.
6424
6425         * threads.c (mono_thread_suspend_all_other_threads): Add support for threads 
6426         which are starting up or shutting down.
6427
6428         * threads.c (mono_threads_set_shutting_down): Don't return a value since
6429         this function never returns if the runtime is already shutting down.
6430
6431         * icall.c (ves_icall_System_Environment_Exit): Update after 
6432         mono_threads_set_shutting_down () signature change.
6433         
6434 2008-05-09 Rodrigo Kumpera  <rkumpera@novell.com>
6435
6436         * class.c: Added can_access_instantiation to verify if the instantiation
6437         is visible. Fix access check for nested types as they returned TRUE
6438         before doing type and generic instantiation visibility checks.
6439
6440 2008-05-08 Rodrigo Kumpera  <rkumpera@novell.com>
6441
6442         * reflection.c (mono_reflection_create_generic_class): The created type
6443         must have a different container from its TypeBuilder. Otherwise they
6444         will end sharing generic arguments, which is wrong.
6445
6446         Due to the sharing, making a generic instance of the created type using
6447         the TypeBuider generic arguments resulted in the generic type definition
6448         been returned, which is wrong as well.
6449
6450         As a bonus the code was leaking the type_params array. This memory should
6451         be allocated from the image mempool.
6452
6453         This fixes bug #354047.
6454
6455 2008-05-08 Rodrigo Kumpera  <rkumpera@novell.com>
6456
6457         * metadata-internals.h: Move MONO_SECMAN_FLAG macros from mini/declsec.h
6458         to here         as they are now used in assembly.c new code.
6459         Added a skipverification flag to MonoAssembly.
6460         New internal function mono_assembly_has_skip_verification.
6461
6462         * assembly.c: New function mono_assembly_has_skip_verification. It checks
6463         if an assembly has a version 2.0 SkipVerification security attribute. Fixes
6464         part of #387274.
6465
6466 2008-05-07  Zoltan Varga  <vargaz@gmail.com>
6467
6468         * object.c (mono_object_get_virtual_method): Inflate the resulting method if
6469         needed. Fixes #387034.
6470
6471         * class.c (mono_class_inflate_generic_type): Avoid a crash if context is NULL.
6472
6473 2008-05-06  Miguel de Icaza  <miguel@novell.com>
6474
6475         * assembly.c (mono_assembly_load_reference): Prevent crash while
6476         disassembling Silverlight 2.0 executables while we still do not
6477         have GACed libraries.
6478
6479 2008-05-07  Zoltan Varga  <vargaz@gmail.com>
6480
6481         * reflection.c: Special case generic type definitions as well. Fixes #383444.
6482
6483 2008-05-06  Zoltan Varga  <vargaz@gmail.com>
6484
6485         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Fix handling
6486         of the dynamic case. Fixes #387404.
6487
6488 2008-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
6489
6490         *verify.c (mono_verifier_is_class_full_trust): If under
6491         verify_all and the verifier mode was not set, only
6492         gac and corlib types are fulltrust. This makes --verify-all
6493         usable to detect unverifiable code, which is the expected
6494         use case.
6495
6496 2008-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
6497
6498         * verify.h: Ops, commited the header with debug
6499         enabled.
6500
6501 2008-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
6502
6503         * verify.c (merge_stack): Use the new value on unverifiable
6504         stack merges.
6505
6506         * verify.c (verify_type_compatibility_full): Comparison
6507         of nullable types can't use mono_class_is_assignable_from.
6508
6509         * verify.c, verify.h: Added MONO_VERIFY_REPORT_ALL_ERRORS
6510         that makes all verification errors be reported.
6511
6512         * pedump.c: Pass MONO_VERIFY_REPORT_ALL_ERRORS to
6513         mono_method_verify.
6514
6515 2008-05-05  Robert Jordan  <robertj@gmx.net>
6516
6517         * marshal.c (mono_marshal_get_thunk_invoke_wrapper):
6518         support for value types. See #386415.
6519
6520         * object.c: comments.
6521
6522         Code is contributed under MIT/X11 license.
6523
6524 2008-05-05  Martin Baulig  <martin@ximian.com>
6525
6526         * debug-mono-symfile.h
6527         (MONO_SYMBOL_FILE_COMPATIBILITY_VERSION): Removed; dropped support
6528         for old pre-terrania symbol files.
6529
6530 2008-05-05  Andreas Färber  <andreas.faerber@web.de>
6531
6532         * mono-config.c: Add ppc64 architecture.
6533
6534         Code is contributed under MIT/X11 license.
6535
6536 2008-05-05  Andreas Färber  <andreas.faerber@web.de>
6537
6538         * object.c (mono_create_ftnptr, mono_get_addr_from_ftnptr):
6539           PPC64 uses function descriptors as well.
6540
6541         Code is contributed under MIT/X11 license.
6542
6543 2008-05-04  Zoltan Varga  <vargaz@gmail.com>
6544
6545         * object.c (compute_class_bitmap): Ignore literal static fields.
6546
6547         * sgen-gc.c (mono_gc_base_init): Print some help when the MONO_GC_DEBUG env
6548         var has an invalid format.
6549         (describe_ptr): Add some sanity checks for the vtable.
6550         (add_nursery_frag): Clear unused nursery fragments.
6551         (major_collection): Clear all remaining nursery fragments.
6552
6553 2008-05-03  Robert Jordan  <robertj@gmx.net>
6554
6555         * image.c, metadata-internals.h: add thunk_invoke_cache.
6556
6557         * marshal.c, marshal.h: implement
6558         mono_marshal_get_thunk_invoke_wrapper ().
6559
6560         * object.c, object.h: implement mono_method_get_unmanaged_thunk ().
6561
6562         Code is contributed under MIT/X11 license.
6563
6564 2008-05-02 Rodrigo Kumpera  <rkumpera@novell.com>
6565
6566         * verify.c (do_leave): Empty the stack.
6567
6568 2008-05-02 Rodrigo Kumpera  <rkumpera@novell.com>
6569
6570         * class.c (mono_class_is_assignable_from): Variance
6571         doesn't work between reference and value types. For example,
6572         given type C<T+>, C<int32> is not assignable to C<object>.
6573         Break the argument checking loop on first error. 
6574
6575 2008-05-02  Atsushi Enomoto  <atsushi@ximian.com>
6576
6577         * icall.c : base64_to_byte_array() needs some more strict
6578           check for sequence of '=' characters. Patch by Santa
6579           Marta (http://deee.g.hatena.ne.jp/santamarta).
6580
6581           Contributed under MIT/X11 license.
6582           (see http://www.lingr.com/room/mono-jp/archives/2008/04/20)
6583
6584 2008-05-02  Jonathan Chambers  <joncham@gmail.com>
6585
6586         * domain.c: Disable LoadLibrary support to fix Win32 build.
6587
6588         Code is contributed under MIT/X11 license.
6589
6590 2008-05-02  Zoltan Varga  <vargaz@gmail.com>
6591
6592         * sgen-gc.c: Add support for clearing nursery memory when a tlab is allocated,
6593         to help with cache behaviour.
6594
6595 2008-05-01  Miguel de Icaza  <miguel@novell.com>
6596
6597         * appdomain.c (mono_domain_from_appdomain): Add new accessor
6598         method. 
6599
6600 2008-05-01  Zoltan Varga  <vargaz@gmail.com>
6601
6602         * sgen-gc.c: Implement thread-local allocation and a managed allocation routine.
6603
6604 2008-05-01  Dick Porter  <dick@ximian.com>
6605
6606         * process.c (process_get_fileversion): Only pass 16 bits of
6607         language ID to VerLanguageName.  Fixes bug 381204.
6608
6609 2008-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
6610
6611         * verify.c (mono_method_verify): Fix the comparison
6612         operator for code bounds check.
6613
6614 2008-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
6615
6616         * verify.c (mono_method_verify): Check the bounds of
6617         all access of the code array.
6618
6619 2008-04-29  KornĂ©l PĂ¡l  <kornelpal@gmail.com>
6620
6621         * appdomain.c: Use HAVE_SYS_UTIME_H that fixes MSVC build.
6622
6623 2008-04-28  Zoltan Varga  <vargaz@gmail.com>
6624
6625         * image.c (mono_image_strong_name_position): Fix return value when the rva is
6626         not valid.
6627
6628 2008-04-28  KornĂ©l PĂ¡l  <kornelpal@gmail.com>
6629
6630         * loader.c (mono_get_method_from_token, mono_method_signature): Add
6631         support for METHOD_IMPL_ATTRIBUTE_NATIVE.
6632         * domain.c (mono_init_internal): Load and fixup mscoree.dll on startup and
6633         fixup main EXE images when using mono.exe for mixed-mode assembly support.
6634         * domain-internals.h: Add MonoLoadFunc, mono_install_runtime_load and
6635         mono_runtime_load.
6636         * appdomain.c: Add mono_install_runtime_load, mono_runtime_load to support
6637         runtime initialization from metadata.
6638         * assembly.c: Remove obsolete ceGetModuleFileNameA.
6639         (mono_set_rootdir): Use mono_get_module_file_name.
6640         (mono_assembly_load_from_full): Call mono_image_fixup_vtable for module
6641         handles.
6642         * cil-coff.h: Add MonoVTableFixup. Update mono_cli_rva_image_map signature.
6643         * metadata-internals.h: Add is_module_handle to _MonoImage on Windows.
6644         * image.c (mono_cli_rva_image_map): Use MonoImage instead of
6645         MonoCLIImageInfo. Add support for module handles.
6646         (load_cli_header): Update mono_cli_rva_image_map signature.
6647         (load_metadata_ptrs): Update mono_cli_rva_image_map signature.
6648         (mono_image_strong_name_position): Use mono_cli_rva_image_map.
6649         (mono_image_rva_map): Add support for module handles.
6650         (mono_image_ensure_section_idx): Add support for module handles.
6651         (mono_image_close): Add support for module handles.
6652         (do_load_header): Add support for module handles.
6653         (mono_image_open_from_module_handle): New function for internal use.
6654         (mono_image_open_full): Load normal images using LoadLibrary on Windows.
6655         (mono_image_load_module): Call mono_image_fixup_vtable for module handles.
6656         (mono_image_load_file_for_image): Call mono_image_fixup_vtable for module
6657         handles.
6658         (mono_image_fixup_vtable): New function for mixed-mode assembly support.
6659         * image.h: Add mono_image_fixup_vtable.
6660         * coree.c: New file for mscoree.dll functions and mixed-mode assembly
6661         support.
6662         * coree.h: New file.
6663         * marshal.c (mono_marshal_get_native_wrapper): Throw exception for
6664         unsupported native code.
6665         (mono_marshal_set_callconv_from_modopt): New function splitted from
6666         mono_marshal_get_managed_wrapper.
6667         (mono_marshal_get_managed_wrapper): Use
6668         mono_marshal_set_callconv_from_modopt.
6669         (mono_marshal_get_vtfixup_ftnptr): New function for mixed-mode assembly support.
6670         * marshal.h: Add mono_marshal_get_vtfixup_ftnptr.
6671         * gc.c (mono_gc_init): Don't wait for the finalizer thread on Windows because
6672         that results in a deadlock when the runtime is loaded in _CorDllMain.
6673         * Makefile.am: Add coree.c and coree.h.
6674
6675         Contributed under MIT/X11 license.
6676
6677 2008-04-28  Mark Probst  <mark.probst@gmail.com>
6678
6679         * generic-sharing.c: Search for type arguments in array element
6680         types as well.
6681
6682 2008-04-28  Mark Probst  <mark.probst@gmail.com>
6683
6684         * class-internals.h, generic-sharing.c: New, small runtime generic context.
6685
6686         * metadata-internals.h, domain.c, image.c: Less bookkeeping is required for the new RGCTX.
6687
6688         * object.c: Don't setup the RGCTX when the vtable is created,
6689         because we're setting it up lazily now.
6690
6691 2008-04-26  Zoltan Varga  <vargaz@gmail.com>
6692
6693         * sgen-gc.c: Make the 'desc' variables an mword instead of a guint32 to fix 
6694         64 bit support.
6695
6696 2008-04-24 Rodrigo Kumpera  <rkumpera@novell.com>
6697
6698         * verify.c (verify_class_for_overlapping_reference_fields): 
6699         If class is under fulltrust allow reference types to overllap
6700         if they have the same RVA.
6701
6702 2008-04-24 Rodrigo Kumpera  <rkumpera@novell.com>
6703
6704         * pedump.c: Added new flag valid-only, that makes the verifier
6705         behaves just like --security=validil. It won't fail type load
6706         due to unverifiable restrictions.
6707
6708 2008-04-23 Rodrigo Kumpera  <rkumpera@novell.com>
6709
6710         * class-internals.h (struct MonoMethod): Added a verification_success
6711         field to cache verifier executions. Reduced MonoMethod:slot size by
6712         one bit.
6713
6714 2008-04-23  Zoltan Varga  <vargaz@gmail.com>
6715
6716         * sgen-gc.c (OBJ_RUN_LEN_SIZE): Make this and other macros take a 'desc' argument
6717         instead of a 'vt' argument to save an indirection and to allow these to be used
6718         for valuetypes.
6719         (scan_vtype): New helper function to scan an area using a gc descriptor.
6720         (mono_gc_wbarrier_value_copy): Implement this.
6721         (handle_remset): Add support for REMSET_VTYPE.
6722         (find_in_remset_loc): Ditto.
6723         (mono_gc_base_init): Allow some debugging options to be controlled through the
6724         use of the MONO_GC_DEBUG env variable.
6725         (mono_gc_alloc_obj): Add support the 'collect-before-allocs' debug option.
6726         (collect_nursery): Add support for the 'check-at-minor-collection' debug option.
6727
6728 2008-04-23  Martin Baulig  <martin@ximian.com>
6729
6730         * domain.c (mono_domain_create): Move the call to
6731         mono_debug_domain_create() down, after allocating the domain id.
6732
6733 2008-04-23 Rodrigo Kumpera  <rkumpera@novell.com>
6734
6735         verify.c (verify_class_for_overlapping_reference_fields): Skip
6736         static fields while verifying for overlapping fields as they
6737         don't matter at all.
6738
6739 2008-04-23  Marek Habersack  <mhabersack@novell.com>
6740
6741         * domain-internals.h: added a declaration of
6742         mono_make_shadow_copy.
6743
6744         * assembly.c (mono_assembly_open_full): shadow copying of
6745         assemblies moved to here, so that all the assemblies within the
6746         application domain's private binary directories can be
6747         processed. Fixes bug #380546
6748
6749         * appdomain.c (mono_make_shadow_copy): make_shadow_copy renamed to
6750         mono_make_shadow_copy and made non-static. The decision whether
6751         to shadow-copy an assembly is made based on its location - it's
6752         copied if it's in one of the private application domain binary
6753         directories and its different to the target file in the shadow
6754         directory. Fixes bug #380546
6755
6756 2008-04-22  Zoltan Varga  <vargaz@gmail.com>
6757
6758         * reflection.c (fixup_method): Handle {Method|Constructor}OnTypeBuilderInst.
6759
6760         * object-internals.h: Add MonoReflection{Method|Constructor}OnTypeBuilderInst
6761         types.
6762
6763         * reflection.c (mono_image_create_token): Handle 
6764         Method/ConstructorOnTypeBuilderInst.
6765         (resolve_object): Ditto.
6766         (inflate_mono_method): Receive the inflated class instead of a MonoGenericClass
6767         so it can be called from resolve_object. Also handle the case when the inflated
6768         class already has its methods setup.
6769
6770 2008-04-21  Martin Baulig  <martin@ximian.com>
6771
6772         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 69.
6773
6774 2008-04-20  Geoff Norton  <gnorton@novell.com>
6775
6776         * icall.c: Fix the _NSGetEnviron define to prevent an impropoer
6777         pointer dereference.
6778
6779 2008-04-15  Marek Habersack  <mhabersack@novell.com>
6780
6781         * appdomain.c (try_load_from): if IOMAP is in effect, call the
6782         portability API to look up the assembly file. Fixes behavior in
6783         situations when the application has a bin/ directory, but the
6784         assembly search patch refers to Bin/ (and thus the requested file
6785         name is Bin/SomeLibrary.dll). Fixes bug #379888
6786
6787 2008-04-15 Rodrigo Kumpera  <rkumpera@novell.com>
6788
6789         verify.c (mono_type_is_generic_argument): Extracted this check
6790         from a dozen places to here.
6791
6792         verify.c: Fixed all issues related to boxing generic arguments
6793         and their constraints.
6794
6795 2008-04-14 Rodrigo Kumpera  <rkumpera@novell.com>
6796
6797         verify.c (mono_class_interface_implements_interface): Fix win32 build.
6798
6799 2008-04-14  Zoltan Varga  <vargaz@gmail.com>
6800
6801         * reflection.c (mono_custom_attrs_construct): Fix crash when the cattr type
6802         isn't finished yet. Fixes #363447.
6803
6804 2008-04-13  Zoltan Varga  <vargaz@gmail.com>
6805
6806         * class.c (mono_bounded_array_class_get): Fix the name of bounded array types.
6807         Fixes #346419.
6808
6809 2008-04-13  Jb Evain  <jbevain@novell.com>
6810
6811         * domain.c: update the 2.1 profile versions.
6812         Merged from the Moonlight 2 branch.
6813
6814 2008-04-12  Zoltan Varga  <vargaz@gmail.com>
6815
6816         * assembly.c (mono_assembly_load_from_full): Do the check for loading other
6817         mscorlibs for the non-refonly case as well.
6818
6819         * image.c (do_mono_image_load): Remove the mscorlib check, it is already done
6820         in mono_assembly_load_from_full (). Fixes #378924.
6821
6822 2008-04-11  Geoff Norton  <gnorton@novell.com>
6823
6824         * icall.c: The global extern environ doesn't exist on Mac.  We
6825         need to call NSGetEnviron instead.
6826
6827 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
6828
6829         verify.c: Add generic method constraint verification.
6830
6831 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
6832
6833         class.c (mono_class_inflate_generic_method_full): Add a long
6834         explanation to the is_mb_open hack. Remove the FIXME.
6835
6836 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
6837
6838         * verify.c (mono_method_verify): Mark all unknown opcodes
6839         as invalid. Mark jmp as unverifiable.
6840
6841 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
6842
6843         * verify.c: Add code to do type constraint verification on class instances.
6844
6845         * verify.c (mono_verifier_verify_class): Use the type constraint 
6846         verification code.
6847
6848 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
6849
6850         * class.c (mono_class_get_field_default_value): Don't pass cindex
6851         as hint to mono_metadata_get_constant_index. The local is not initialized
6852         and should contain garbage most of the time. This could only work
6853         with a lot of luck.
6854
6855 2008-04-09 Rodrigo Kumpera  <rkumpera@novell.com>
6856
6857         * tokentype.h: Add MONO_TOKEN_GENERIC_PARAM.
6858
6859 2008-04-09 Rodrigo Kumpera  <rkumpera@novell.com>
6860
6861         * class-internals.h: Add generic_param_token to MonoClass::sizes union.
6862
6863         * class.c (mono_class_from_generic_parameter): Save the token of the
6864         generic param in MonoClass::sizes.generic_param_token.
6865
6866         * reflection.c (mono_custom_attrs_from_class): If the class type is
6867         VAR or MVAR retrieve the attributes of the generic param.
6868
6869 2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
6870
6871         * class.c (mono_class_init): Do class verification if the verifier
6872         is enabled.
6873
6874 2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
6875
6876         * verify-internal.h: Added mono_verifier_verify_class.
6877
6878         * verify.c: Added mono_verifier_verify_class. It checks for
6879         classes with explicit layout that have overlapping reference fields.
6880
6881         * pedump.c: Init the verifier state prior to verification. Fixed
6882         command line arguments.
6883
6884 2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
6885
6886         * Makefile.am: Added verify-internals.h, hopefully fix the build.
6887
6888 2008-04-08  Zoltan Varga  <vargaz@gmail.com>
6889
6890         * verify-internals.h: Fix a warning.
6891
6892 2008-04-07 Rodrigo Kumpera  <rkumpera@novell.com>
6893
6894         * verify-internals.h: New header with the verifier configuration
6895         extracted from mini.c.
6896
6897         * verify.c: Implemented the new functions exported by verify-internals.h.
6898
6899 2008-04-07 Rodrigo Kumpera  <rkumpera@novell.com>
6900
6901         * verify.c: Add proper verification of ckfinite.
6902
6903 2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
6904
6905         * verify.c (do_conversion): Improved error message to something
6906         more meanfull.
6907
6908         * verify.c (check_is_valid_type_for_field_ops): Fix to work
6909         with primitive types.
6910
6911 2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
6912
6913         * verify.c: Added tail prefix checking. Marked icall
6914         as unverifible.
6915
6916 2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
6917
6918         * verify.c: Fix the detection of branches to the middle
6919         of an instruction.
6920
6921 2008-04-03 Rodrigo Kumpera  <rkumpera@novell.com>
6922
6923         * verify.c: Implemented verification of volatile. and
6924         unaligned. prefix. Check if a type is valid after retrieving it.
6925
6926 2008-04-01  Dick Porter  <dick@ximian.com>
6927
6928         * process.c (process_get_fileversion): If there's no string block,
6929         set the file language to en_US.  Fixes the other new part of bug
6930         374600.
6931
6932 2008-03-29 Rodrigo Kumpera  <rkumpera@novell.com>
6933
6934         * class.c: New functions mono_method_can_access_field_full and
6935         mono_method_can_access_method_full. They perform type visibility
6936         and type site check.
6937
6938         * class-internal.h: Added exported functions.
6939
6940         * verify.c: Use new functions to implement proper visibility checks.
6941
6942 2008-03-29  Zoltan Varga  <vargaz@gmail.com>
6943
6944         * mono-config.h: Add missing G_BEGIN_DECLS/G_END_DECLS. Fixes #375188.
6945
6946 2008-03-28  Dick Porter  <dick@ximian.com>
6947
6948         * process.c (process_get_fileversion): Use the first language ID
6949         we see, rather than insisting on an invariant language.  Fixes bug
6950         374600.
6951
6952 2008-03-28  Zoltan Varga  <vargaz@gmail.com>
6953
6954         * reflection.c (calc_section_size): Use add_stream_zero to align the size of
6955         the streams to fix reading of invalid memory later.
6956
6957         * metadata.h (MonoType): Use 'MonoTypeEnum' instead of int for the 'type' field
6958         to ease debugging.
6959
6960 2008-03-26  Zoltan Varga  <vargaz@gmail.com>
6961
6962         * marshal.c (signature_dup): Use mono_metadata_signature_alloc ().
6963         (cominterop_method_signature): Ditto. Fix the size passed to memcpy.
6964
6965 2008-03-26  Massimiliano Mantione  <massi@ximian.com>
6966         * threads.h: Added MonoThreadManageCallback type and
6967         mono_thread_set_manage_callback prototype
6968         * object-internals.h: In _MonoThread, renamed unused6 to manage_callback
6969         (used to store the mono_thread_manage callback).
6970         * threads.c: Added mono_thread_set_manage_callback, and handle
6971         "MonoThread->manage_callback" in build_wait_tids.
6972
6973 2008-03-26  Dick Porter  <dick@ximian.com>
6974
6975         * process.c (process_get_fileversion): Set FileVersionInfo strings
6976         to Empty when the resource doesn't have the particular info.
6977         Fixes bug 355717.
6978
6979 2008-03-25 Rodrigo Kumpera  <rkumpera@novell.com>
6980
6981         * verify.c (mono_method_verify): Proper prefix validation.
6982
6983 2008-03-25  Zoltan Varga  <vargaz@gmail.com>
6984
6985         * icall.c (ves_icall_InternalInvoke): Return exceptions thrown by the icall
6986         itself in a separate argument instead of throwing them. Fixes #373448.
6987
6988         * appdomain.c: Bump corlib version.
6989
6990 2008-03-24 Rodrigo Kumpera  <rkumpera@novell.com>
6991
6992         * verify.c: Implemented readonly prefix and verify controled mutability pointers.
6993
6994 2008-03-20  KornĂ©l PĂ¡l  <kornelpal@gmail.com>
6995
6996         * file-io.c, filewatcher.c, threadpool.c, threads.c: Removed Windows
6997         version macros.
6998
6999 2008-03-20  Mark Probst  <mark.probst@gmail.com>
7000
7001         * generic-sharing.c, class-internals.h: Code for putting
7002         reflection types into the runtime generic context.
7003
7004 2008-03-19 Rodrigo Kumpera  <rkumpera@novell.com>
7005
7006         * icall.c (ves_icall_get_method_info): Return correct values for the call convention.
7007         Fixes #340662. 
7008
7009
7010 2008-03-17 Rodrigo Kumpera  <rkumpera@novell.com>
7011
7012         * verify.c (VerifyContext): Added instruction prefix data to the struct.
7013
7014         * verify.c (is_compatible_boxed_valuetype): Don't check if the type is a valuetype, been boxed is enough.
7015
7016         * verify.c (do_invoke): Support constrained callvirt form. Grouped similar checks together.
7017
7018         * verify.c (do_cast): Let the result value keep the boxed status.
7019
7020         * verify.c (mono_method_verify): Add proper support for prefixed and implement contrained.
7021
7022 2008-03-17  Jb Evain  <jbevain@novell.com>
7023
7024         * reflection.c: when running on a 2.0 runtime, emit
7025         unconditionally the #~ header version as 2.0, and the
7026         CLI header version as 2.5, for symmetry's sake with csc.
7027
7028 2008-03-16  Zoltan Varga  <vargaz@gmail.com>
7029
7030         * class.c: Remove the unused cache_interface_offsets stuff.
7031
7032         * class.c loader.c domain.c verify.c metadata.c debug-helpers.c threadpool.c
7033         profiler.c: Fix warnings.
7034
7035 2008-03-16  Mark Probst  <mark.probst@gmail.com>
7036
7037         * generic-sharing.c, class-internals.h: Support for putting
7038         methods into the runtime generic context.
7039
7040 2008-03-16  Zoltan Varga  <vargaz@gmail.com>
7041
7042         * class.c (mono_class_setup_fields): Ignore calls made to this function for
7043         classes which are generic instances of not-yet finished typebuilders. Fixes
7044         #351172.
7045
7046         * reflection.c (fixup_method): Add support for FieldOnTypeBuilderInst.
7047
7048 2008-03-15  Zoltan Varga  <vargaz@gmail.com>
7049
7050         * metadata-internals.h (MonoDynamicImage): Add 'generic_def_objects' hash table.
7051
7052         * class-internals.h (MonoMethodInflated): Remove the rarely used reflection_info
7053         field, replace it with a hash table in MonoDynamicImage.
7054
7055         * reflection.c (inflate_mono_method): Access the generic definition object from
7056         image->generic_def_objects instead of imethod->reflection_info.
7057
7058         * reflection.c (mono_reflection_bind_generic_method_parameters): Ditto. 
7059
7060         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition): Ditto.
7061         
7062         * image.c (mono_image_close): Move the dynamic image freeing code to a separate
7063         function in reflection.c so it is easier to keep in sync with the dynamic image
7064         creation code.
7065
7066         * reflection.c (mono_dynamic_image_free): New internal function, extracted from
7067         mono_image_close ().
7068
7069 2008-03-15  Mark Probst  <mark.probst@gmail.com>
7070
7071         * class.c (mono_class_generic_sharing_enabled): Disable generic
7072         sharing for all architectures except AMD64 and x86 to fix build.
7073
7074 2008-03-14 Rodrigo Kumpera  <rkumpera@novell.com>
7075
7076         * verify.c: Use the generic definition MonoGenericContext when available.
7077         Remove code for checking generics instance compatibility in favor of
7078         mono_class_is_assignable_from.
7079
7080 2008-03-14  Mark Probst  <mark.probst@gmail.com>
7081
7082         * marshal.c, marshal.h, metadata-internals.h, image.c,
7083         wrapper-types.h: New wrapper for invoking a shared static method
7084         without having to pass the runtime generic context argument.
7085
7086 2008-03-14 Rodrigo Kumpera  <rkumpera@novell.com>
7087
7088         * icall-def.h: Add missing function PerformanceCounterCategory::GetInstanceNames.
7089
7090 2008-03-14  Zoltan Varga  <vargaz@gmail.com>
7091
7092         * reflection.c (mono_image_get_field_on_inst_token): Add caching.
7093         
7094         * reflection.c (mono_image_get_field_on_inst_token): New helper function to
7095         create a token from a FieldOnTypeBuilderInst.
7096         (mono_image_create_token): Handle FieldOnTypeBuilderInst.
7097         (resolve_object): Ditto.
7098
7099         * object-internals.h (MonoReflectionFieldOnTypeBuilderInst): New structure
7100         mirroring System.Reflection.Emit.FieldOnTypeBuilderInst.
7101
7102 2008-03-14  Martin Baulig  <martin@ximian.com>
7103
7104         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 68.
7105
7106         * debug-mono-symfile.h
7107         (MONO_SYMBOL_FILE_VERSION): Bump to 41.
7108         (MONO_SYMBOL_FILE_COMPATIBILITY_VERSION): New #define.
7109
7110 2008-03-10  Martin Baulig  <martin@ximian.com>
7111
7112         * debug-mono-symfile.h
7113         (MonoSymbolFileMethodAddress): Removed `num_lexical_blocks' and
7114         `lexical_block_table_offset'.
7115         (MonoDebugMethodInfo): Removed `num_lexical_blocks' and
7116         `lexical_blocks'.
7117         (MonoSymbolFile): Added `version'.
7118
7119         * mono-debug.h
7120         (MonoDebugLexicalBlockEntry): Removed.
7121         (MonoDebugMethodJitInfo): Removed `num_lexical_blocks' and
7122         `lexical_blocks'.
7123
7124         * mono-debug.c (mono_debug_add_method): Don't compute lexical
7125         blocks here; the debugger now does this internally.
7126
7127 2008-02-27  Martin Baulig  <martin@ximian.com>
7128
7129         * object.c (mono_runtime_exec_main): Call
7130         `mono_debugger_event (MONO_DEBUGGER_EVENT_REACHED_MAIN)' and
7131         `mono_debugger_event (MONO_DEBUGGER_EVENT_MAIN_EXITED)' here.
7132
7133 2008-03-12 Rodrigo Kumpera  <rkumpera@novell.com>
7134
7135         * verify.c (verify_type_compatibility_full): Allow native int to be converted
7136         to native pointer in non-strict mode. Required to "(IntPtr)null" work.
7137
7138 2008-03-12 Rodrigo Kumpera  <rkumpera@novell.com>
7139
7140         * verify.c (verify_ldftn_delegate): Accept a sealed type when using
7141         ldftn with a virtual method.
7142
7143 2008-03-13  Geoff Norton  <gnorton@novell.com>
7144
7145         * decimal.c:  Only include memory.h if the platform has it.
7146
7147 Wed Mar 12 12:11:06 CET 2008 Paolo Molaro <lupus@ximian.com>
7148
7149         * assembly.c, class.c, metadata-internals.h: make sure public key
7150         tokesns are compared in a case-insensitive way. Also, all
7151         the lookups in the GAC use a lowercase public key token
7152         (gaacutil already does the lowercasing on install). Fixes
7153         bug #369541.
7154
7155 2008-03-11 Rodrigo Kumpera  <rkumpera@novell.com>
7156
7157         * verify.c (mono_delegate_signature_equal): Do proper variance check on arguments
7158         and return value.
7159
7160 Tue Mar 11 17:41:38 CET 2008 Paolo Molaro <lupus@ximian.com>
7161
7162         * image.c: when someone loads a mscorlib from a file, return the
7163         currently loaded mscorlib (fixes bug #369253).
7164
7165 Tue Mar 11 16:47:32 CET 2008 Paolo Molaro <lupus@ximian.com>
7166
7167         * class.c: handle types with no parents by forcing them to have
7168         System.Object as a parent and marking them as broken (this currently
7169         allows the first part of bug #369173 to work as well, likely because
7170         we don't check for typeload exceptions everywhere yet).
7171
7172 Tue Mar 11 15:23:54 CET 2008 Paolo Molaro <lupus@ximian.com>
7173
7174         * class.c: more complete check that types belong to corlib
7175         (fixes second part of bug #369173).
7176
7177 2007-03-10  Bill Holmes  <billholmes54@gmail.com>
7178
7179         * generic-sharing.c:  Including glib.h for the MSVC builds to define
7180           "inline" to "__inline" before including mono-membar.h.
7181           
7182         * mono-perfcounters.c:  Adding HAVE_SYS_TIME_H check for MSVC builds.
7183           Rename "Unknown" to "CatTypeUnknown" to avoid name collisions for 
7184           MSVC builds.
7185
7186         Contributed under MIT/X11 license.
7187
7188 2008-03-10 Rodrigo Kumpera  <rkumpera@novell.com>
7189
7190         * verify.c (do_invoke_method): Remove return type validation.
7191
7192         * verify.c (do_ret): Do return type validation at return site instead of
7193         call site.
7194
7195 2008-03-10 Rodrigo Kumpera  <rkumpera@novell.com>
7196
7197         * verify.c (do_invoke_method): Mark callvirt to static methods unverifiable.
7198
7199         * verify.c: Some todos cleaned and improved a few error messages.
7200
7201 2008-03-08  Zoltan Varga  <vargaz@gmail.com>
7202
7203         * class.c (mono_class_setup_mono_type): Improve the test for corlib.
7204
7205 2008-03-07  Zoltan Varga  <vargaz@gmail.com>
7206
7207         * class.c (mono_class_setup_mono_type): Handle types whose name clashes with
7208         system types correctly.
7209
7210         * exception.h exception.c (mono_exception_from_token_two_strings): New helper
7211         function.
7212
7213 2008-03-06  Zoltan Varga  <vargaz@gmail.com>
7214
7215         * assembly.c (build_assembly_name): Fix a warning.
7216
7217 Thu Mar 6 19:43:41 CET 2008 Paolo Molaro <lupus@ximian.com>
7218
7219         * marshal.c: ldfld_remote and stfld_remote needs just one wrapper as
7220         the called function takes an object type argument. Fixes storing or
7221         valuetypes across remoting as well as reducing memory usage.
7222         * image.c, metadata-internals.h: remove now unused ldfld_remote and
7223         stfld_remote wrapper caches.
7224
7225 2008-03-06  Zoltan Varga  <vargaz@gmail.com>
7226
7227         * icall.c (mono_lookup_internal_call): Update the exception message when an icall
7228         is not found.
7229
7230         * reflection.c (mono_image_register_token): New helper function to save
7231         a token->object mapping.        
7232
7233         * icall.c (ves_icall_ModuleBuilder_RegisterToken): New icall to access it from
7234         managed code.
7235
7236         * reflection.c (_mono_reflection_parse_type): Distinguish between vectors and
7237         one dimension arrays. Fixes #367670.
7238         (mono_reflection_get_type_internal): Ditto.
7239
7240 Tue Mar 4 19:04:02 CET 2008 Paolo Molaro <lupus@ximian.com>
7241
7242         * marshal.c: mono_load_remote_field_new() always returns object.
7243         so use the proper signature (fixes bug #366445).
7244
7245 2008-03-04  Zoltan Varga  <vargaz@gmail.com>
7246         
7247         * class-internals.h (MonoMethod): Remove unused uses_this flag, 
7248         add an 'inline_failure' flag instead.
7249
7250 2008-03-04  Mark Probst  <mark.probst@gmail.com>
7251
7252         * domain-internals.h, domain.c: Replaced MonoGenericSharingContext
7253         with a new structure, MonoGenericJitInfo, in the MonoJitInfo.  It
7254         contains the location of "this", used for exception handling.
7255
7256 2008-03-04  Zoltan Varga  <vargaz@gmail.com>
7257
7258         * class.c (mono_class_layout_fields): Set the min alignment of small structs to
7259         their size on all platforms for perf reasons.
7260
7261 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
7262
7263         * reflection.h: Move mono_reflection_is_valid_dynamic_token to
7264         object-internal.h
7265
7266         * object-internal.h: Same.
7267
7268 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
7269
7270         * reflection.h: Fix the build I just broke.
7271
7272 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
7273
7274         * reflection.c (mono_reflection_is_valid_dynamic_token): New function,
7275         Test if a token is valid, this remove explicit usage of 
7276         MonoDynamicImage::tokens from the verifier code.
7277
7278         * reflection.h: Added mono_reflection_is_valid_dynamic_token.
7279
7280         * verify.c (token_bounds_check): Use mono_reflection_is_valid_dynamic_token
7281         instead of direct access to MonoDynamicImage::tokens.
7282
7283 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
7284
7285         * verify.c (token_bounds_check): Fix the build I just broke.
7286
7287 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
7288
7289         * verify.c (token_bounds_check): Fix bounds check for dynamic images.
7290
7291         * verify.c (verifier_load_method): Fixed the errors message.
7292
7293         * verify.c (mono_method_verify): Fixed a debug message.
7294
7295 Thu Feb 28 19:49:45 CET 2008 Paolo Molaro <lupus@ximian.com>
7296
7297         * icall-def.h, domain.c, mono-perfcounters-def.h, mono-perfcounters.c,
7298         mono-perfcounters.h, class-internals.h: support for predefined
7299         writable counters, query of categories and counters, bugfixes.
7300
7301 2008-02-28 Rodrigo Kumpera  <rkumpera@novell.com>
7302
7303         * verify.c (do_refanytype): Verify the refanytype opcode.
7304
7305         * verify.c (mono_method_verify): Use do_refanytype.
7306
7307 2008-02-28 Rodrigo Kumpera  <rkumpera@novell.com>
7308
7309         * verify.c (do_mkrefany): Verify the mkrefany opcode.
7310
7311         * verify.c (mono_method_verify): Use do_mkrefany.
7312
7313 Wed Feb 27 19:49:16 CET 2008 Paolo Molaro <lupus@ximian.com>
7314
7315         * Makefile.am, icall-def.h, icall.c, mono-perfcounters-def.h,
7316         mono-perfcounters.c, mono-perfcounters.h: basic performance counter
7317         implementation.
7318
7319 2008-02-27  Zoltan Varga  <vargaz@gmail.com>
7320
7321         * marshal.c (mono_marshal_get_synchronized_wrapper): Fix the code which throws
7322         the type load exception.
7323
7324 2008-02-27 Rodrigo Kumpera  <rkumpera@novell.com>
7325
7326         * verify.c: Added a few FIXME for method signatures
7327
7328         * verify.c (do_invoke_method): Use mono_method_get_signature_full instead
7329         of mono_method_get_signature and get vararg call working. Removed unused
7330         checks for return value.
7331
7332         * verify.c (do_refanyval): Verify the refanyval opcode.
7333
7334         * verify.c (mono_method_verify): Implemented verification of arglist and
7335         use do_refanyval.
7336
7337 2008-02-27  Zoltan Varga  <vargaz@gmail.com>
7338
7339         * class.c (mono_class_setup_methods): Move the check for synchronized methods on
7340         vtypes to marshal.c.
7341
7342         * marshal.c (mono_marshal_get_synchronized_wrapper): Do the vtype check here so
7343         it works for AOT as well.
7344
7345 Tue Feb 26 17:46:32 CET 2008 Paolo Molaro <lupus@ximian.com>
7346
7347         * monitor.c, threads.c, threadpool.c: replace the use of GetTickCount ()
7348         with mono_msec_ticks () which is monotonic and doesn't cause bugs when
7349         the system time is adjusted.
7350
7351 Tue Feb 26 17:40:10 CET 2008 Paolo Molaro <lupus@ximian.com>
7352
7353         * icall.c, icall-def.h: use the new time functions (fixes the
7354         non-monotonic behaviour of TickCount).
7355
7356 2008-02-26  Zoltan Varga  <vargaz@gmail.com>
7357
7358         * reflection.c (mono_custom_attrs_from_builders): Revert the last change as
7359         it breaks the build.
7360         
7361         * reflection.c (mono_custom_attrs_from_builders): Assert instead of a crash if the
7362         cattr is not finished yet.
7363
7364 2008-02-25 Rodrigo Kumpera  <rkumpera@novell.com>
7365
7366         * verify.c: Proper token validation for field, method and type.
7367
7368 2008-02-25 Rodrigo Kumpera  <rkumpera@novell.com>
7369
7370         * loader.c (field_from_memberref): Generate a loader error if the type is not found.
7371
7372         * loader.c (method_from_memberref): Generate type load error instead of method missing
7373         if the type is not found.
7374
7375 2008-02-23  Zoltan Varga  <vargaz@gmail.com>
7376
7377         * marshal.c (mono_marshal_emit_managed_wrapper): Avoid generating invalid IL if
7378         some of the conversions caused the generation of a marshal directive exception.
7379
7380 2008-02-21 Rodrigo Kumpera  <rkumpera@novell.com>
7381
7382         verify.c: Report which exception should be thrown by the JIT.
7383         Added a lot of FIXME notes.
7384
7385 2008-02-22  Mark Probst  <mark.probst@gmail.com>
7386
7387         * generic-sharing.c: Runtime generic context slots are not
7388         instantiated on init anymore.  Instead, provide function to do the
7389         instantiating on demand.
7390
7391         * class-internals.h: Added vtable to runtime generic context.
7392         Macros for encoding direct and indirect slot offsets in one
7393         guint32.
7394
7395 2008-02-21  Mark Probst  <mark.probst@gmail.com>
7396
7397         * object.c, generic-sharing.c: Moved some generic sharing code
7398         from object.c to generic-sharing.c.
7399
7400         * generic-sharing.c: Added support for extensible runtime generic
7401         context.
7402
7403         * metadata-internals.h: Two new hash tables in MonoImage for
7404         extensible runtime generic context support.
7405
7406         * domain.c: Unregister generic vtables upon domain unloading.
7407
7408         * image.c: Destroy new hash tables upon image unloading.
7409
7410         * metadata.c: Unregister generic subclasses upon image unloading.
7411
7412         * class-internals.h: New data structure for runtime generic
7413         context template.  New fields in the runtime generic context for
7414         extensible part.
7415
7416         * Makefile.am: Added generic-sharing.c.
7417
7418 2008-02-21 Rodrigo Kumpera  <rkumpera@novell.com>
7419
7420         icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): If
7421         there is a pending loader exception, raise it.
7422
7423         icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
7424         same.
7425
7426         icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken): 
7427         same.
7428
7429         Fixes #363450.
7430
7431 2008-02-20  Zoltan Varga  <vargaz@gmail.com>
7432
7433         * icall.c (ves_icall_Type_GetPacking): Handle dynamic types.
7434
7435         * assembly.c (mono_assembly_load_from_full): Fix a leak in the previous patch.
7436         
7437         * assembly.c (mono_assembly_load_from_full): Return the non-refonly corlib for
7438         ref-only requests for compatibility with MS.
7439
7440 2008-02-20  Raja R Harinath  <harinath@hurrynot.org>
7441
7442         * reflection.c (mono_custom_attrs_from_method): Don't silently
7443         return an empty list for generic method instances.
7444         (mono_custom_attrs_from_param): Likewise.
7445
7446 2008-02-20  Rodrigo Kumpera  <rkumpera@novell.com>
7447             Raja R Harinath  <harinath@hurrynot.org>
7448
7449         Fix #354757
7450         * class-internals.h (struct _MonoMethodInflated.is_mb_open): Add.
7451         * class.c (mono_class_inflate_generic_method_full): Initialize it
7452         when a fully-open method is instantiated.
7453         * metadata.c (inflated_method_equal, inflated_method_hash): Update
7454         to new field.
7455         * reflection.c (inflate_mono_method): Don't create a temporary context.
7456
7457 2008-02-20  Raja R Harinath  <harinath@hurrynot.org>
7458
7459         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
7460         Compute correct value, to prepare for imethod->reflection_info going away.
7461
7462 2008-02-19  Zoltan Varga  <vargaz@gmail.com>
7463
7464         * class.c (mono_class_setup_vtable_general): Ignore static methods in interfaces.
7465
7466 2008-02-18 Rodrigo Kumpera  <rkumpera@novell.com>
7467
7468         * verify.c: Implement skip visibility flag.
7469
7470 2008-02-18 Rodrigo Kumpera  <rkumpera@novell.com>
7471
7472         * verify.h: Added MONO_VERIFY_SKIP_VISIBILITY and struct MonoVerifyInfoExtended
7473         which contains an extra field to tell the kind of exception that should be thrown.
7474
7475         * verify.c: Use MonoVerifyInfoExtended instead of MonoVerifyInfo.
7476
7477 2008-02-17  Raja R Harinath  <harinath@hurrynot.org>
7478
7479         * loader.c (mono_method_get_param_names): Initialize 'klass' after
7480         'method' is updated.
7481
7482 2008-02-11  Zoltan Varga  <vargaz@gmail.com>
7483
7484         * class.c (mono_class_layout_fields): Set class->min_align for classes using
7485         explicit layout as well. Fixes #360375.
7486
7487 2008-02-11  Geoff Norton  <gnorton@novell.com>
7488
7489         * loader.c: Guard and dereference against inflated generic methods
7490
7491 2008-02-10  Gert Driesen  <drieseng@users.sourceforge.net>
7492
7493         * class.c: Include Retargetable spec in assembly name.
7494         * assembly.c: Always include PublicKeyToken spec in assembly name
7495         (with value "null" if assembly is not signed), and include
7496         Retargetable spec.
7497         * icall-def.h: Added icall for Assembly.get_fullname.
7498         * icall.c: Added icall returning the fullname of an assembly.
7499
7500 2008-02-09  Zoltan Varga  <vargaz@gmail.com>
7501
7502         * class.c (mono_class_setup_vtable_general): Add a missing call to
7503         mono_class_setup_methods () which is needed in the AOT case.
7504
7505 2008-02-08 Rodrigo Kumpera  <rkumpera@novell.com>
7506
7507         * verify.c (mono_type_get_stack_name): Added. Return the name for the
7508         stack type of the given MonoType.
7509
7510         * verify.c (verify_type_compatibility_full): Handle the void type.
7511
7512         * verify.c (is_compatible_boxed_valuetype): Changed to fit the
7513         way stack merging works.
7514
7515         * verify.c (store_local): Improved verification message.
7516
7517         * verify.c (do_branch_op): If the merging is invalid, the method
7518         is unverifiable and not invalid. Improved error message.
7519
7520         * verify.c (merge_stacks): Properly merge a boxed valuetype and
7521         a reference type diferent than System.Object. Improved error
7522         message.
7523
7524 2008-02-07 Rodrigo Kumpera  <rkumpera@novell.com>
7525
7526         * verify.c (mono_type_is_enum_type): Added. Test if a type is an enum.
7527
7528         * verify.c (mono_type_get_underlying_type_any): Added. Return the underlying
7529         type of an enum even if the argument is byref.
7530
7531         * verify.c: Replace all explicit uses of enumtype and enum_basetype
7532         to calls to mono_type_is_enum_type and mono_type_get_underlying_type_any.
7533
7534         * verify.c: Check for an enum in all cases of MONO_TYPE_GENERICINST.
7535
7536         *verify.c (verify_type_compatibility_full): Make enum types
7537         compatible with their base types.
7538
7539         * verify.c (is_compatible_boxed_valuetype): Added. Check if both
7540         types are compatible for the special case of a boxed valuetype and
7541         System.Object.
7542
7543         * verify.c (verify_stack_type_compatibility): The function
7544         is_compatible_boxed_valuetype was extracted from here.
7545
7546         * verify.c (push_arg): Only set ctx->has_this_store if the method
7547         is not static.
7548
7549         * verify.c (do_ldelem): Fixed a typo in an error message and added
7550         strict check for mixing int32 and native int as the array type
7551         and ldelem type.
7552
7553         * verify.c (merge_stacks): Consider boxed valuetypes in the
7554         compatibility checks.
7555
7556 2008-02-07  Massimiliano Mantione  <massi@ximian.com>
7557         * profiler.h: (MonoGCEvent): Added start-stop the world events.
7558
7559 2008-02-06  Massimiliano Mantione  <massi@ximian.com>
7560         *class.c: use_new_interface_vtable_code: renamed the env var to have
7561         a "MONO_" prefix, and fix the logic to enable it by default.
7562
7563 2008-02-06  Massimiliano Mantione  <massi@ximian.com>
7564         *class.c:
7565         mono_class_setup_vtable_general: rewrote the way in which interface
7566         methods are added to vtables. Makes bug-77127.exe pass, and hopefully
7567         makes the code more maintainable.
7568         For now the old code is still there, and can be activated setting
7569         the env var "USE_NEW_INTERFACE_VTABLE_CODE".
7570
7571 2008-02-06 Rodrigo Kumpera  <rkumpera@novell.com>
7572
7573         * verify.c: guarded some debug functions around and #ifdef.
7574
7575         * verify.c (merge_stacks): implement proper PIII 1.8.1.3 stack state merging.
7576
7577 2008-02-06  Zoltan Varga  <vargaz@gmail.com>
7578
7579         * marshal.c (mono_marshal_get_runtime_invoke): Revert the direct_wrapper
7580         changes for now since they seem to break too many things.
7581
7582 2008-02-05  Mark Probst  <mark.probst@gmail.com>
7583
7584         * marshal.c, marshal.h (mono_marshal_find_bitfield_offset,
7585         mono_marshal_find_nonzero_bit_offset): Added macro and function
7586         for finding the byte- and bit-offset of a bitfield within a
7587         struct.
7588
7589 2008-02-05  Zoltan Varga  <vargaz@gmail.com>
7590
7591         * marshal.c (mono_marshal_get_ptr_to_struct): Make the signature non-pinvoke.
7592         (mono_marshal_get_struct_to_ptr): Ditto.
7593
7594         * marshal.c (mono_marshal_get_runtime_invoke): Fix the signature of 
7595         cctor_signature.
7596
7597 2008-02-03  Zoltan Varga  <vargaz@gmail.com>
7598
7599         * marshal.c (mono_marshal_get_runtime_invoke): Fix sharing of runtime wrappers
7600         between methods for non-corlib types.
7601
7602 2008-02-02  Geoff Norton  <gnorton@novell.com>
7603
7604         * loader.c (mono_method_get_param_names): Populate the parameter name for 
7605         generic parameters as well. (Fixes #342536)
7606
7607 2008-01-31 Rodrigo Kumpera  <rkumpera@novell.com>
7608
7609         * verify.c (is_valid_bool_arg): Allow boxed values and null literals as well.
7610
7611         * verify.c (do_invoke_method): Fix for calling with byref structs.
7612
7613         * verify.c (do_cast): push a boxed value type based on the type token and not
7614         the type of stack.
7615
7616 2008-01-31  William Holmes  <billholmes54@gmail.com>
7617
7618         * process.c (process_module_string_read): Check the size returned form 
7619           VerQueryValue to avoid out of memory exception. 
7620
7621 2008-01-30  Zoltan Varga  <vargaz@gmail.com>
7622
7623         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
7624         Handle properly modules which are not in the moduleref table. Fixes
7625         #356938.
7626
7627 2008-01-29  Zoltan Varga  <vargaz@gmail.com>
7628
7629         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Remove
7630         the dynamic case which is now in managed code.
7631         (ves_icall_System_Reflection_Assembly_GetTypes): Ditto.
7632
7633         * marshal.c (mono_string_to_bstr): Fix a warning.
7634         (init_com_provider_ms): Ditto.
7635
7636         * appdomain.c (ves_icall_System_AppDomain_createDomain): Add some FIXMEs.
7637
7638         * exception.c (mono_get_exception_out_of_memory): New helper function.
7639
7640 2008-01-28  Jonathan Chambers  <joncham@gmail.com>
7641
7642         * marshal.c: Add support for BSTR marshalling
7643         using other COM systems.
7644
7645         Code is contributed under MIT/X11 license.
7646
7647 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
7648
7649         * object.c (mono_runtime_invoke_array): reverted previous
7650         commit as it breaks the build.
7651
7652 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
7653
7654         * object.c (mono_runtime_invoke_array): Verify arguments for
7655         invalid types. Fixes #348522.
7656
7657 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
7658
7659         * verify.c: added IL_CODE_CALL_NONFINAL_VIRTUAL to track calls to
7660         non-final virtual calls using call. 
7661
7662         * verify.c (do_invoke): fixed some TODOs.
7663
7664         * verify.c (push_arg): set has_this_store for "ldarga 0".
7665
7666 2008-01-27  Zoltan Varga  <vargaz@gmail.com>
7667
7668         * reflection.c (reflection_methodbuilder_to_mono_method): Allow DynamicMethods
7669         which belong to an inflated class. Fixes #356531.
7670
7671 2008-01-26  Robert Jordan  <robertj@gmx.net>
7672
7673         * file-io.c: Implement and use wrappers for GetFileAttribute|Ex ()
7674         which resort to FindFirstFile when a certain error condition
7675         (ERROR_SHARING_VIOLATION) occured. Fixes bug #325212.
7676         Code is contributed under MIT/X11 license.
7677
7678 2008-01-24  Jonathan Chambers  <joncham@gmail.com>
7679
7680         * marshal.c (emit_marshal_string): Fix out string marshalling
7681         to use specified encoding. Fixes #323900.
7682
7683         Code is contributed under MIT/X11 license.
7684
7685 2008-01-24  Raja R Harinath  <harinath@hurrynot.org>
7686
7687         * class.c (mono_class_inflate_generic_method_full): Don't modify
7688         iresult->context after cache check.
7689
7690 2008-01-23  Zoltan Varga  <vargaz@gmail.com>
7691
7692         * class.c (mono_class_inflate_generic_method_full): Change the
7693         struct assignments to memcpy for better visibility and add some comments.
7694
7695 2008-01-23  Dick Porter  <dick@ximian.com>
7696
7697         * threads.c (mono_threads_set_shutting_down): Simplify shutdown
7698         procedure, and make it work on windows.
7699
7700 2008-01-22  Zoltan Varga  <vargaz@gmail.com>
7701
7702         * object-internals.h (MonoReflectionGenericClass): Make the 'generic_type' field
7703         a MonoReflectionTypeBuilder since it is always of that type.
7704
7705         * reflection.c (mono_type_get_object): Remove an unneccesary check.     
7706
7707         * reflection.c (mono_generic_class_get_object): Simplify this a bit.
7708
7709         * reflection.c (mono_reflection_bind_generic_parameters): Ditto.
7710         
7711         * icall.c (ves_icall_MonoGenericClass_GetParentType): Ditto.
7712
7713         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Ditto.
7714
7715         * reflection.c (mono_reflection_create_runtime_class): Remove already created
7716         instantiations from the type cache.
7717
7718 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
7719
7720         * verify.c (do_ldstr): fixed token verification. previous code was 100% broken.
7721
7722         * verify.c (do_unbox_value): push a controled mutability managed pointer.
7723
7724 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
7725
7726         * verify.c (do_ldstr): added, verifies if the #US token is valid.
7727
7728         * verify.c (mono_method_verify): removed old TODO
7729
7730 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
7731
7732         * verify.c (do_newobj): add visibility check.
7733
7734 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
7735
7736         * verify.c (do_load_function_ptr): add visibility check.
7737
7738 2008-01-21  Massimiliano Mantione  <massi@ximian.com>
7739         *class.c:
7740         mono_generic_class_get_class: hook profiler events.
7741         mono_field_get_offset: added to support heap-shot in the new profiler.
7742         *class.h: exported mono_field_get_offset.
7743         * reflection.c:
7744         mono_reflection_setup_internal_class: hook profiler events.
7745
7746 2008-01-20  Zoltan Varga  <vargaz@gmail.com>
7747
7748         * marshal.c (mono_marshal_emit_native_wrapper): Add a 'check_exceptions' 
7749         argument here too and use it to avoid checking for pending exceptions if 
7750         possible.
7751
7752 2008-01-20  Gert Driesen  <drieseng@users.sourceforge.net>
7753
7754         * assembly.c (build_assembly_name): add arg for passing the assembly
7755         flags. Do not consider a PublicKey with value "null" valid.
7756         (mono_assembly_name_parse_full): added boolean argument that will be
7757         set if the assembly name contains a PublicKeyToken spec. Added support
7758         for the Retargetable spec for which only Yes or No are allowed as valid
7759         value. Consider assembly name invalid if Retargetable spec is set, but
7760         either version, culture or public key (token) are not specified.
7761         * metadata-internals.h: sync signature of mono_assembly_name_parse_full
7762         with implementation in assembly.c.
7763         * icall.c (fill_reflection_assembly_name): also copy assembly flags
7764         from MonoAssemblyName.
7765         (ves_icall_System_Reflection_AssemblyName_ParseName): use newly
7766         introduced argument for mono_assembly_name_parse_full to know if the
7767         assembly name has a PublicKeyToken spec, and if it has instruct
7768         fill_reflection_assembly_name to use default value for keyToken (if
7769         PublicKeyToken is null).
7770
7771 2008-01-18  Rodrigo Kumpera  <rkumpera@novell.com>
7772
7773         * verify.c (mono_method_verify): fixed ovf ops with
7774         float values. They are unverifiable now.
7775
7776 2008-01-18  Rodrigo Kumpera  <rkumpera@novell.com>
7777
7778         * class.c (set_failure_from_loader_error): add BadImageException to the
7779         list of exceptions that can cause a type to fail to load.
7780
7781         * class.c (mono_class_get_exception_for_failure): same.
7782
7783 2008-01-17  Rodrigo Kumpera  <rkumpera@novell.com>
7784
7785         * verify.c (in_any_exception_block): added, check if offset
7786         is part of any exception handling clause.
7787
7788         * verify.c (get_stack_type): added VAR and MVAR types.
7789
7790         * verify.c (do_stobj): better error messages.
7791
7792         * verify.c (do_cpobj): added, check cpobj.
7793
7794         * verify.c (do_initobj): added, check initobj.
7795
7796         * verify.c (do_sizeof): added, check sizeof.
7797
7798         * verify.c (do_localloc): added, check localloc.
7799
7800         * verify.c: adde proper verification for cpobj, initobj, sizeof and localloc.
7801
7802 2008-01-17  Zoltan Varga  <vargaz@gmail.com>
7803
7804         * method-builder.c (mono_mb_emit_native_call): Get rid of the unused
7805         save_lmf/restore_lmf opcodes.
7806
7807         * threads.c (mono_threads_install_notify_pending_exc): New function to
7808         install a callback notifying the JIT there is a pending exception on a thread.
7809         (mono_thread_request_interruption): Call the new callback.
7810         (mono_thread_get_and_clear_pending_exception): New function to return the
7811         exception pending on a thread.
7812
7813         * marshal.c (mono_marshal_get_icall_wrapper): Add a check_exceptions argument
7814         to turn off checking for pending exceptions.
7815         (mono_marshal_get_native_wrapper): Ditto.
7816
7817 2008-01-16  Zoltan Varga  <vargaz@gmail.com>
7818
7819         * threads-types.h: Get rid of the unnecessary extern declarations.
7820
7821 2008-01-16  Gert Driesen  <drieseng@users.sourceforge.net>
7822
7823         * icall.c (ves_icall_Type_GetField): if NonPublic flag is set, only
7824         return field from parent class if not private.
7825         (ves_icall_Type_GetFields_internal): if NonPublic flag is set, only
7826         returns fields from parent class if they are not private.
7827         (method_nonpublic): added function to determine if a given method
7828         should be considered non-public. Returns false for private methods
7829         on parent class, and internal methods from parent on the 1.0 profile.
7830         (ves_icall_Type_GetMethodsByName): if NonPublic flag is set, then
7831         use method_nonpublic function to determine whether method should be
7832         returned.
7833         (property_accessor_public): use newly introduced method_nonpublic
7834         function to determine whether accessor is non-public. 
7835         (ves_icall_MonoType_GetEvent): If NonPublic flag is set, only return
7836         event from parent class if not private. Only return static event if
7837         Static flag is set, and only return static event from parent class if
7838         FlattenHierarchy flag is set.
7839         (ves_icall_Type_GetEvents_internal): If NonPublic flag is set, only
7840         include non-private events from parent class.
7841
7842 2008-01-16  Zoltan Varga  <vargaz@gmail.com>
7843
7844         * icall.c (ves_icall_System_NumberFormatter_GetFormatterTables): Fix a
7845         warning.
7846
7847 2008-01-16  Wade Berrier <wberrier@novell.com>
7848
7849         * security.c: Add assembly.h header to appease some warnings
7850
7851 2008-01-16  Dick Porter  <dick@ximian.com>
7852
7853         * process.c (process_module_string_read): Remove trailing null
7854         when saving string.
7855
7856 2008-01-16  Mark Probst  <mark.probst@gmail.com>
7857
7858         * class-internals.h: A new data structure describing the layout of
7859         a runtime generic context (MonoRuntimeGenericContextTemplate).
7860
7861         * metadata-internals.h: Added a hash table to MonoDomain that maps
7862         from open generic classes to their runtime generic context
7863         templates.
7864
7865         * object.c: Building of the runtime generic context, including
7866         proper handling of generic type arguments of superclasses.
7867         Building of the runtime generic context according to the template.
7868
7869 2008-01-15  Zoltan Varga  <vargaz@gmail.com>
7870
7871         * class.c (mono_class_setup_fields): Set field.count for generic instances.
7872         Fixes #350856.
7873
7874         * image.c (do_mono_image_open): Pass TRUE as last_exists to 
7875         mono_portability_find_file (). Fixes #325466.
7876         (mono_image_get_public_key): Fix a warning.
7877
7878 2008-01-14  Zoltan Varga  <vargaz@gmail.com>
7879
7880         * class.c (mono_class_from_name): Fix comments for NULL-ness of image parameter.
7881         Fixes #353550.
7882         (mono_class_from_name_case): Ditto.
7883
7884 2008-01-13  Eyal Alaluf <eyala@mainsoft.com>
7885
7886         * icall-def.h number-formatter.h icall.c: Implemented a cross app-domain
7887           common storage for the tables used in the System/NumberFormatter class.
7888
7889 2008-01-13  Zoltan Varga  <vargaz@gmail.com>
7890
7891         * marshal.c (mono_marshal_get_runtime_invoke): Fix a typo.
7892
7893 2008-01-11  Rodrigo Kumpera  <rkumpera@novell.com>
7894
7895         * verify.c (get_boxable_mono_type): check if the token is valid.
7896
7897         * verify.c (set_stack_value): changed to add an error if an
7898         invalid type is set on stack. Changed all callers due to signature change.
7899
7900         * verify.c (do_stobj): implement stobj validation.
7901
7902 2008-01-11  Zoltan Varga  <vargaz@gmail.com>
7903
7904         * reflection.c (reflection_methodbuilder_to_mono_method): No need to
7905         set container->is_method, it was set earlier.
7906
7907         * metadata.c (type_in_image): Handle MVARs which belong to not finished
7908         generic methods.
7909
7910         * reflection.c (mono_reflection_initialize_generic_parameter): Set
7911         is_method of the generic container to TRUE for methods.
7912
7913 2008-01-10  Zoltan Varga  <vargaz@gmail.com>
7914
7915         * metadata.c (type_in_image): Handle type parameters properly.
7916
7917         * class-internals.h (MonoGenericParam): Add an 'image' argument to track
7918         memory ownership of this structure.
7919
7920 2008-01-10  Rodrigo Kumpera  <rkumpera@novell.com>
7921
7922         * verify.c (get_boxable_mono_type): make typedref types been just
7923         unverifiable. check for void type.
7924
7925         * verify.c (do_unbox_any): added, verify opcode unbox.any.
7926
7927         * verify.c (do_load_function_ptr): accept method spec tokens.
7928
7929 2008-01-10  Zoltan Varga  <vargaz@gmail.com>
7930
7931         * marshal.c (mono_class_native_size): Always set *align even if this is called
7932         recursively.
7933
7934 2008-01-09  Zoltan Varga  <vargaz@gmail.com>
7935
7936         * verify.c (mono_verify_corlib): Remove this as it was not used and was 
7937         out-of-date.
7938
7939 2008-01-09  Rodrigo Kumpera  <rkumpera@novell.com>
7940
7941         * verify.c: removed some old unused tables. A huge bunch of small fixes
7942         to things found while testing the verifier with mono basic.
7943
7944         * verify.c (dump_stack_value): dump null literal flag to.
7945
7946         * verify.c (verify_type_compatibility_full): fix comparison
7947         for types that have a generic super type.
7948
7949         * verify.c (verify_stack_type_compatibility): fix compatibility
7950         between null literals and reference types. fix compatibility between
7951         boxed valuetypes and object. fix corner case test for enums.
7952
7953         * verify.c (do_cmp_op): proper verification of cgt.un in case
7954         of reference types.
7955
7956         * verify.c (do_invoke_method): fix error message.
7957
7958         * verify.c (do_store_indirect
7959
7960         * verify.c (check_is_valid_type_for_field_ops): proper verification
7961         of managed pointers to valuetypes and boxed valuetypes. proper verification
7962         of null literals.
7963
7964         * verify.c (do_unbox_value): expect valuetypes to be always boxed. don't
7965         allow token to be a reference type.
7966
7967         * verify.c (do_cast): proper handling of boxes valuetypes.
7968
7969         * verify.c (do_stelem): proper handling of storing a boxed valuetype
7970         in object[].
7971
7972         * verify.c (mono_method_verify): pass the opcode to do_cmp_op
7973         to handle cgt.un properly. Implement add/mul/sub ovf opcodes.
7974         fixed the decoding of unbox_any
7975
7976 2008-01-08  Zoltan Varga  <vargaz@gmail.com>
7977
7978         * boehm-gc.c (mono_gc_deregister_root): Fix the size passed to libgc.
7979
7980 2008-01-08  Rodrigo Kumpera  <rkumpera@novell.com>
7981
7982         * verify.c (do_newobj): do delegate verification.
7983
7984         * verify.c (verify_delegate_compatibility): perform delegate
7985         verification.
7986
7987         * verify.c (verify_ldftn_delegate): perform tests related to
7988         ldftn delegates.
7989
7990         * verify.c (mono_delegate_signature_equal): perform the
7991         slightly diferent signature comparison required by delegates.
7992
7993         * metadata.c (mono_metadata_type_equal_full): added and exported
7994         as MONO_INTERNAL. This is a version of mono_metadata_type_equal that
7995         allows signature only comparison.
7996
7997         * metadata-internal.h (mono_metadata_type_equal_full): added and exported
7998         as MONO_INTERNAL.
7999
8000 2008-01-07  Rodrigo Kumpera  <rkumpera@novell.com>
8001
8002         * verify.c: added a bunch of stack_slot_* functions to
8003         make access to stack slot type easier. This is required to
8004         allow optional flags, like null literal, boxed value and
8005         this pointer.
8006         All access paths to IlStackDesc::stype have been changed 
8007         to use these new funcions.
8008         Removed a bunch of unused functions and cleared all warnings.
8009         This patch introduces the usage of the this pointer and 
8010         boxed value flags.
8011
8012 2008-01-07  Zoltan Varga  <vargaz@gmail.com>
8013
8014         * boehm-gc.c (mono_gc_deregister_root): Fix win32 build.
8015
8016 2008-01-06  Zoltan Varga  <vargaz@gmail.com>
8017
8018         * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Change signature to
8019         match managed version.
8020
8021         * appdomain.c: Bump corlib version.
8022         
8023         * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Check for a null
8024         argument.
8025
8026 2008-01-06  Gert Driesen  <drieseng@users.sourceforge.net>
8027
8028         * icall.c (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies)
8029         Set public key token to zero-length byte array if assembly is not
8030         strongnamed.
8031
8032 2008-01-05  Zoltan Varga  <vargaz@gmail.com>
8033
8034         * icall.c (ves_icall_System_Array_SetValueImpl): Use a write barrier when
8035         writing a vtype array elem.
8036
8037 2007-01-05  Gert Driesen  <drieseng@users.sourceforge.net>
8038
8039         * assembly.c (build_assembly_name): return FALSE if length of token is
8040         not 16 (if not "null").
8041         (mono_assembly_name_parse_full): return FALSE if value of version,
8042         culture, token or key is 0.
8043         * icall.c (fill_reflection_assembly_name): add boolean arguments to
8044         specify whether public key and public key token must be set to default
8045         value (zero-length byte array) if not available. Set versioncompat to
8046         SameMachine. If public key is available or the default is set, then
8047         set PublicKey flag.
8048         (ves_icall_System_Reflection_Assembly_FillName): if no public key
8049         is available, use empty byte array as default value. On the 2.0
8050         profile, use default value for public key token if not set.
8051         (ves_icall_System_Reflection_InternalGetAssemblyName): on the 1.0
8052         profile, use default value for public key if not set. On the 2.0
8053         profile, use default value for public key token if not set.
8054         (ves_icall_System_Reflection_AssemblyName_ParseName): do not set
8055         default values for public key and public key token.
8056
8057 2008-01-05  Zoltan Varga  <vargaz@gmail.com>
8058
8059         * object-internals.h (MonoReflectionAssemblyName): Add 'processor_architecture'
8060         field to keep it in synch with the managed object.
8061
8062         * marshal.c (emit_marshal_object): Add support for byref marshalling of
8063         delegates. Fixes #351520.
8064
8065         * sgen-gc.c (conservatively_pin_objects_from): Tell valgrind that the pin queue
8066         contains defined memory.
8067         
8068         * sgen-gc.c: Fix 64 bit warnings. Fix some typos. Update GC stats in mono_stats.
8069
8070         * sgen-gc.c (build_nursery_fragments): Handle half-constructed objects correctly.
8071         
8072         * sgen-gc.c (check_consistency): New helper function to do a consistency check
8073         of the GC data structures.
8074
8075         * gc-internal.h: Moved the REGISTER/UNREGISTER macros here from os/gc_wrapper.h.
8076
8077         * *.c: Include metadata/gc-internal.h instead of os/gc_wrapper.h.
8078         
8079         * object.c (mono_array_full_copy): Fix detection of whenever to use a write
8080         barrier.
8081         (mono_array_clone_in_domain): Ditto.
8082         (mono_array_clone_in_domain): Ditto.
8083
8084         * threads.c (start_wrapper): Register the thread start argument as a GC root.
8085         (cache_culture): Use a write barrier.
8086
8087         * icall.c (ves_icall_System_Array_SetValueImpl): Call a write barrier.
8088         (ves_icall_get_property_info): Ditto.
8089
8090         * object.h (MONO_STRUCT_SETREF): New macro.
8091
8092         * class-internals.h (MonoStats): Add some GC statistics.
8093
8094         * boehm-gc.c null-gc.c: Define mono_gc_deregister_root ().
8095
8096 2008-01-04  Andreas Faerber  <andreas.faerber@web.de>
8097
8098         * exception.c (mono_exception_from_name_two_strings):
8099         Break from loop after method is found.
8100
8101 2008-01-04  Dick Porter  <dick@ximian.com>
8102
8103         * process.c (process_module_string_read): Rename variable to
8104         reflect correct usage, after fixing bug 345972.
8105
8106 2008-01-03  Rodrigo Kumpera  <rkumpera@novell.com>
8107
8108         * verify.c (mono_type_create_fnptr_from_mono_method): 
8109         created a MonoType function pointer instance to be used during
8110         verification. The verifier releases this memory at end.
8111
8112         * verify.c (mono_method_is_constructor): extracted repeated
8113         checks for constructor into a single class.
8114
8115         * verify.c (do_push_field): use new extracted method
8116         for constructor check.
8117
8118         * verify.c (do_newobj): same.
8119
8120         * verify.c (do_ldftn): renamed to do_load_function_ptr
8121         and make it verify ldvirtftn too.
8122
8123         * verify.c (mono_method_verify: proper verification
8124         of ldvirtftn. release created MonoMethod instances.
8125
8126 2007-12-31  Rodrigo Kumpera  <rkumpera@novell.com>
8127
8128         * verify.c (token_bounds_check): added.
8129
8130         * verify.c (do_ldftn): added.
8131
8132         * verify.c (mono_method_verify): proper verificartion of ldftn.
8133
8134 2007-12-31  Rodrigo Kumpera  <rkumpera@novell.com>
8135
8136         * metadata.c (mono_metadata_decode_row): Assert if index is bigger
8137         than the table row count. It's the resposibility of the caller to
8138         make the bounds check and raise the correct error.
8139
8140         * metadata.c (mono_metadata_decode_row_col): Same.
8141
8142         * loader.c (mono_get_method_from_token): perform bounds check
8143         on token for methoddef table.
8144
8145 2007-12-29  Miguel de Icaza  <miguel@novell.com>
8146
8147         * icall.c
8148         (ves_icall_System_CurrentSystemTimeZone_GetTimeZoneData): Turn the
8149         assert into a negative result, the managed code already coped with
8150         that.
8151
8152         Some folks on Windows reported this error. 
8153
8154 2007-12-28  Gert Driesen  <drieseng@users.sourceforge.net>
8155
8156         * appdomain.c: Bump corlib version.
8157         * icall.c:
8158         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies): Use
8159         CultureInfo.CreateCulture to create CultureInfo for name.
8160         (fill_reflection_assembly_name): Use CultureInfo.CreateCulture to
8161         create CultureInfo for name. Fixes bug #347174.
8162
8163 2007-12-27  Rodrigo Kumpera  <rkumpera@novell.com>
8164
8165         * verify.c: added IL_CODE_FLAG_STACK_INITED and IL_CODE_STACK_MERGED
8166         flags.
8167
8168         * verify.c (is_valid_branch_instruction): allow branching to the
8169         first instruction of the protected block.
8170
8171         * verify.c (is_valid_cmp_branch_instruction): same.
8172
8173         * verify.c (stack_init): use IL_CODE_FLAG_STACK_INITED flag to
8174         avoid double initialization.
8175
8176         * verify.c (merge_stacks): use IL_CODE_STACK_MERGED to
8177         detect which cases the eval stack should just be copied.
8178
8179         * verify.c (mono_method_verify): check if the eval stack
8180         is empty when entering a protected block.
8181
8182 2007-12-27  Rodrigo Kumpera  <rkumpera@novell.com>
8183
8184         * verify.c: added is_clause_in_range, is_clause_inside_range,
8185         is_clause_nested and verify_clause_relationship. They perform
8186         the verifications stated in P1 12.4.2.7.
8187
8188         * verify.c (mono_method_verify): remove some unused variables,
8189         add the new exception clause checks, add instruction border
8190         checks for protected block start/end, improved some error 
8191         messages and fixed a bug in the way invalid instruction access
8192         is detected.
8193
8194 2007-12-26  Zoltan Varga  <vargaz@gmail.com>
8195
8196         * boehm-gc.c (mono_gc_register_thread): Use the new GC_register_my_thread () routine
8197         from GC 7.0 if available.
8198
8199         * object.c: Remove an unused define.
8200         
8201         * object.c (mono_class_compute_gc_descriptor): Fix a warning.
8202
8203         * boehm-gc.c (mono_gc_make_descr_for_array): Implement.
8204
8205         * null-gc.c (mono_gc_make_descr_for_array): Implement.
8206
8207         * object.c (mono_class_compute_gc_descriptor): Remove an #ifdef SGEN_GC.
8208
8209         * gc-internal.h: Change the signature of mono_gc_make_descr_for_string ()
8210         to take the same arguments as the other make_descr functions.
8211
8212         * boehm-gc.c null-gc.c: Add implementation for make_descr functions.
8213
8214         * objects.c: Get rid of the MAKE_DESCRIPTOR macros, call make_descr functions
8215         directly.
8216
8217         * boehm-gc.c (mono_gc_base_init): Moved the setting of GC_stackbottom here from
8218         mini.c.
8219
8220         * object.c (mono_class_compute_gc_descriptor): Move the GC_init_gcj_malloc () 
8221         call to boehm-gc.c.
8222
8223         * boehm-gc.c (mono_gc_register_root): Fix a warning.
8224
8225         * null-gc.c (mono_gc_register_root): Fix a warning.
8226
8227         * reflection.c (ALLOC_REFENTRY): Use mono_gc_alloc_fixed for boehm as well.
8228
8229         * boehm-gc.c (mono_gc_register_root): Moved definition here from gc_wrapper.h.
8230         (mono_gc_base_init): Call GC_init ().
8231
8232         * null-gc.c: Define mono_gc_register_root () as a no-op.
8233
8234         * domain.c appdomain.c: Call mono_gc_base_init () instead of MONO_GC_PRE_INIT ().
8235
8236 2007-12-24  Rodrigo Kumpera  <rkumpera@novell.com>
8237
8238         * verify.c: add prototype for merge_stacks at top
8239
8240         * verify.c (do_switch): added.
8241
8242         * verify.c (merge_stacks): on some cases the stack merging
8243         was not happening properly. Unequal stack sizes at merge
8244         points should be invalid.
8245
8246         * verify.c (mono_method_verify): added more debug info on stack state.
8247         verify switch properly.
8248
8249 2007-12-24  Zoltan Varga  <vargaz@gmail.com>
8250
8251         * method-builder.h: New file, moved the mono_mb_ declarations here from 
8252         marshal.h.
8253
8254         * boehm-gc.c marshal.c: Include method-builder.h.
8255
8256         * marshal.c: Use mono_mb_emit_branch_label () in a few places.
8257
8258         * marshal.c: Remove some code which is now in method-builder.c.
8259
8260 2007-12-23  Zoltan Varga  <vargaz@gmail.com>
8261
8262         * method-builder.c: New file, extraction of the method builder functionality 
8263         from marshal.c.
8264
8265         * marshal.c: Move the mb functions into method-builder.c.
8266
8267         * marshal.h marshal.c: Export some mono_mb_... functions.
8268
8269         * marshal.c: Use mono_mb_get_label () and mono_mb_patch_branch () in all places.
8270
8271         * loader.c (field_from_memberref): Remove the dynamic case, it is handled in
8272         the caller.
8273
8274         * class.c (mono_class_get_full): Check the token type in the dynamic case.
8275
8276         * loader.c (mono_field_from_token): Ditto.      
8277
8278         * loader.c (mono_get_method_from_token): Change the check so it checks memberref
8279         type as well.
8280         
8281         * loader.c (mono_get_method_from_token): Check the token type in the dynamic case.
8282         Fixes #342565.
8283
8284         * class-internals.h: Add new loader error type MONO_EXCEPTION_BAD_IMAGE plus
8285         a helper function for setting it.
8286
8287         * loader.c (mono_loader_error_prepare_exception): Handle MONO_EXCEPTION_BAD_IMAGE.
8288
8289         
8290         * assembly.c: Significally simplify code now that referenced assemblies are 
8291         loaded lazily. Get rid of the 'loading' hashtables. Hopefully fixes #347629.
8292
8293         * threads.h: Don't include  the internal threads-types.h header file. Fixes
8294         #349952.
8295
8296 2007-12-21  Rodrigo Kumpera  <rkumpera@novell.com>
8297
8298         * verify.c: added enum value IL_CODE_FLAG_WAS_TARGET, to represent
8299         instructions that were target of branches or are at protected block boundaries.
8300
8301         * verify.c (in_same_block): handle filter clauses.
8302
8303         * verify.c (is_valid_branch_instruction): added. checks the target of
8304         instructions br or brtrue/false.
8305
8306         * verify.c (is_valid_cmp_branch_instruction): added. checks the target of
8307         binary branch instructions such as beq and bge.
8308
8309         * verify.c (init_stack_with_value): renamed to init_stack_with_value_at_exception_boundary
8310         and made it pin the instruction as been part of the exception block.
8311
8312         * verify.c (do_boolean_branch_op): use is_valid_branch_instruction instead
8313         of in_same_block.
8314
8315         * verify.c (do_branch_op): use is_valid_cmp_branch_instruction instead
8316         of in_same_block.
8317
8318         * verify.c (do_ret): ret from a protected block is unverifiable and
8319         not invalid.
8320
8321         * verify.c (do_static_branch): verify br and br.s instructions.
8322
8323         * verify.c (merge_stacks): add extra param to support detection
8324         of branches in the middle of instructions.
8325         
8326         * verify.c (mono_method_verify): verify branches and exception blocks
8327         that target the middle of instructions. Proper verification of br and br.s.
8328
8329 2007-12-21  Zoltan Varga  <vargaz@gmail.com>
8330
8331         * reflection.c (reflection_methodbuilder_from_ctor_builder): Initialize
8332         skip_visibility field.
8333         (reflection_methodbuilder_from_dynamic_method): Ditto.
8334
8335         * object.c (mono_class_compute_gc_descriptor): Remove more unused icall
8336         registrations. Fixes #348193.
8337
8338         * threads.h: Move the internal mono_thread_get_pending_exception () to
8339         threads-types.h and rename it to mono_thread_get_undeniable_exception ().
8340
8341 2007-12-20  Zoltan Varga  <vargaz@gmail.com>
8342
8343         * object.c (mono_class_compute_gc_descriptor): Remove unused GC_gcj_fast_malloc
8344         icall registration. Fixes #348193.
8345
8346         * marshal.c (mono_marshal_get_runtime_invoke): Put all runtime invoke wrappers
8347         for corlib classes into object. Fixes #349621.
8348
8349 2007-12-20  Gert Driesen  <drieseng@users.sourceforge.net>
8350
8351         * icall.c (property_accessor_nonpublic): new function to determine
8352         whether an accessor allows a property to be considered non-public.
8353         Returns false for private accessor(s) from parent class, and internal
8354         accessor(s) from parent on 2.0 profile (and higher).
8355         (ves_icall_Type_GetPropertiesByName): Use newly introduced function
8356         to determine whether property should be included if NonPublic flag
8357         is set. Fixes bug #349078.
8358
8359 2007-12-20  Rodrigo Kumpera  <rkumpera@novell.com>
8360
8361         * verify.c (init_stack_with_value): added.
8362
8363         * verify.c (mono_method_verify): extracted common
8364         code for exception initialization into init_stack_with_value.
8365
8366         * verify.c (mono_method_verify): initialize the exception
8367         for handler clauses as well.
8368
8369         * verify.c (mono_method_verify): fix the exception clause
8370         ordering rules, it should use handler end offset and not
8371         start offset.
8372
8373 Thu Dec 20 12:27:24 CET 2007 Paolo Molaro <lupus@ximian.com>
8374
8375         * rawbuffer.c: remove useless warning.
8376
8377 Thu Dec 20 12:10:38 CET 2007 Paolo Molaro <lupus@ximian.com>
8378
8379         * threads.h, threads-types.h: move functions to the correct header
8380         (fixes bug#349952).
8381
8382 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
8383
8384         * verify.c (mono_method_verify): proper verification
8385         of exception handling clauses ranges and fallthru in
8386         and out of protected blocks.
8387
8388 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
8389
8390         * verify.c (mono_method_verify): fixed compilation issue.
8391
8392 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
8393
8394         * verify.c (mono_method_verify): a printf slipped in, changed
8395         to use verifier debug macro.
8396
8397 2007-12-18  Rodrigo Kumpera  <rkumpera@novell.com>
8398
8399         * verify.c (is_correct_leave): check for filter clauses.
8400
8401         * verify.c (do_filter): added.
8402
8403         * verify.c (mono_method_verify): property verification of leave.
8404
8405
8406 2007-12-18  Mark Probst  <mark.probst@gmail.com>
8407
8408         * threads.c: Disable calls to _wapi_thread_signal_self() to fix
8409         Win32 build, until we figure out how to do the proper thing on
8410         Win32.
8411
8412 2007-12-17  Zoltan Varga  <vargaz@gmail.com>
8413
8414         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Fix a crash introduced
8415         by the previous patch.
8416         
8417         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Avoid calling
8418         the assembly resolve handler for refonly assemblies.
8419
8420 2007-12-17  Mark Probst  <mark.probst@gmail.com>
8421
8422         * threads.c, thread-types.h, icall.c: New shutdown safeguards.
8423         Make sure only one thread is allowed to commence shutdown, and
8424         don't allow new threads to be started once shutdown is in
8425         progress.
8426
8427 2007-12-14  Rodrigo Kumpera  <rkumpera@novell.com>
8428
8429         * verify.c (is_correct_endfilter): added.
8430
8431         * verify.c (is_unverifiable_endfilter): added.
8432
8433         * verify.c (do_endfilter): added.
8434
8435         * verify.c (mono_method_verify): property verification of endfilter
8436         and fixed a corner case or endfinally.
8437
8438 2007-12-13  Rodrigo Kumpera  <rkumpera@novell.com>
8439
8440         * verify.h: new flags to support fail fast of unverifiable code and
8441         do non-strict verification. Non-strict verification is required to
8442         have MS runtime compatibility. There are a huge amount of unverifiable
8443         code that it accepts as verifiable. The strict mode verifies the code
8444         as the specs says.
8445         Non-strict mode will be required in cases where code needs to be
8446         accepted as verifiable but fails under strict mode.
8447
8448         * pedump.c: added support to fail fast and non-strict verification.
8449
8450         * verify.c: added support for both fail fast and non-strict verification.
8451
8452 2007-12-12  Rodrigo Kumpera  <rkumpera@novell.com>
8453
8454         * verify.c (is_correct_endfinally): added.
8455
8456         * verify.c (mono_method_verify): property verification of endfinally.
8457
8458 2007-12-11  Rodrigo Kumpera  <rkumpera@novell.com>
8459
8460         * verify.c (in_any_block): check for filter clauses.
8461
8462         * verify.c (is_correct_rethrow): added.
8463
8464         * verify.c (mono_method_verify): property verification of rethrow.
8465
8466         * metadata.h: added MONO_OFFSET_IN_FILTER macro.
8467
8468 2007-12-11  Rodrigo Kumpera  <rkumpera@novell.com>
8469
8470         * verify.c (do_throw): added.
8471
8472         * verify.c (mono_method_verify): property verification of throw
8473
8474 2007-12-11  Zoltan Varga  <vargaz@gmail.com>
8475
8476         * assembly.c (mono_assembly_load_reference): Try an assembly resolve for ref-only
8477         assemblies. Fixes #346425.
8478
8479 2007-12-10  Zoltan Varga  <vargaz@gmail.com>
8480
8481         * reflection.c (mono_reflection_get_token): Call mono_image_create_token () for
8482         FieldBuilders.
8483
8484         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Fix a warning.
8485
8486         * class.c (mono_lookup_dynamic_token_class): Add a 'valid token' argument to
8487         prevent asserts when this is called with a token which might not be valid.
8488
8489         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Call
8490         lookup_dynamic_token_class with valid_token == FALSE.
8491
8492         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.       
8493
8494         * icall.c (ves_icall_System_Reflection_Module_ResolveStringToken): Ditto.
8495
8496         * icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
8497         
8498 2007-12-10  Mark Probst  <mark.probst@gmail.com>
8499
8500         * gc.c: Don't delay threadpool thread finalization unless Mono is
8501         shutting down.
8502
8503 Mon Dec 10 11:06:23 CET 2007 Paolo Molaro <lupus@ximian.com>
8504
8505         * threads.c: turn an assert into a non-fatal warning.
8506
8507 2007-12-09  Robert Jordan  <robertj@gmx.net>
8508
8509         * icall.c (GetVirtualMethod): Add missing argument validation.
8510
8511 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
8512
8513         * verify.c (do_cast): added.
8514
8515         * verify.c (mono_method_verify): property verification of castclass and isinst.
8516
8517
8518 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
8519
8520         * verify.c (mono_type_from_opcode): added opcodes for stelem.X.
8521
8522         * verify.c (do_stelem): added.
8523
8524         * verify.c (mono_method_verify): property verification of stelem.X.
8525
8526 2007-12-07  Mark Probst  <mark.probst@gmail.com>
8527
8528         * class.c, class-internals.h: Introduce an environment variable
8529         (MONO_GENERIC_SHARING) through which the extent of generic code
8530         sharing can be controlled (share all classes, share only corlib
8531         classes, or share nothing).
8532
8533         * object.c: Only create runtime generic context for classes for
8534         which sharing is enabled.
8535
8536 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
8537
8538         * verify.c (do_ldelem): refactor it to work with ldelem.any.
8539
8540         * verify.c (mono_method_verify): property verification of ldelem.any.
8541
8542 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
8543
8544         * verify.c (get_indirect_op_mono_type): renamed to mono_type_from_opcode,
8545         added ldelem.X opcodes.
8546
8547         * verify.c (do_ldelema): fixed possible invalid usage of MonoType.
8548
8549         * verify.c: proper verification of ldelem.X 
8550
8551 2007-12-06  Zoltan Varga  <vargaz@gmail.com>
8552
8553         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Allow interface cctors to be called too.
8554
8555 2007-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
8556
8557         * verify.c (mono_method_verify): null literal requires special handling,
8558         the value pushed on stack need to be flagged as so.
8559
8560         * verify.c (do_ldelema): Verify ldelema properly.
8561
8562 2007-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
8563
8564         * verify.c: Verify ldlen properly.
8565
8566 2007-12-05  Zoltan Varga  <vargaz@gmail.com>
8567
8568         * icall.c (ves_icall_MonoField_GetValueInternal): Check that the field belongs
8569         to the target object's type. Fixes #346160.
8570
8571 2007-12-05  Dick Porter  <dick@ximian.com>
8572
8573         * threadpool.c (socket_io_add_poll): Asynchronous connect() on
8574         Solaris needs the same workaround as BSD-derived systems.  Fixes
8575         bug 323524, patch by Burkhard Linke
8576         <burkhard.linke@CeBiTec.Uni-Bielefeld.DE>
8577
8578 2007-12-04  Gert Driesen  <drieseng@users.sourceforge.net>
8579
8580         * process.c: When ProcessStartInfo.ErrorDialog is true, pass window
8581         handle to use when error dialog is shown; otherwise, update mask
8582         to show no error dialog when an error occurs.
8583
8584 2007-12-03  Zoltan Varga  <vargaz@gmail.com>
8585
8586         * icall.c (ves_icall_MonoField_GetRawConstantValue): New icall.
8587
8588         * class.c (mono_class_get_field_default_value): New helper function to initialize
8589         field->def_type and field->data.
8590
8591 2007-11-30  Zoltan Varga  <vargaz@gmail.com>
8592
8593         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Use the delegate trampoline instead of
8594         the general one.
8595
8596         * object.c (mono_runtime_create_delegate_trampoline): New helper function.
8597
8598         * marshal.c: Avoid depending on delegate->method_info being set.
8599
8600         * object.c (mono_delegate_ctor): Avoid initializing delegate->method_info.
8601         
8602         * object.c (mono_delegate_ctor): Set delegate->method.
8603
8604         * object-internals.h (struct _MonoDelegate): Add 'method' field.
8605
8606         * appdomain.c: Bump corlib version.
8607
8608 2007-11-27  Raja R Harinath  <harinath@gmail.com>
8609
8610         * metadata.c (mono_generic_inst_equal_full): Short-circuit
8611         equality check if we're comparing canonicalized MonoGenericInsts.
8612
8613 2007-11-23  Zoltan Varga  <vargaz@gmail.com>
8614
8615         * class.c (generic_array_methods): Call mono_class_setup_methods () before
8616         accessing class->methods.
8617
8618 2007-11-22  Dick Porter  <dick@ximian.com>
8619
8620         * threads.c: Ensure that the synch_cs is set before trying to use
8621         it.
8622
8623 Thu Nov 22 12:34:04 CET 2007 Paolo Molaro <lupus@ximian.com>
8624
8625         * profiler.c: r89126 broke the statistial profiler, unbreak.
8626
8627 2007-11-22  Martin Baulig  <martin@ximian.com>
8628
8629         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 66.
8630
8631         * mono-debug.c
8632         (mono_debug_debugger_version): Bump to 3.
8633         (mono_debug_init): Hook `mono_debugger_class_loaded_methods_func'
8634         -> mono_debugger_class_initialized().
8635
8636         * mono-debug-debugger.c
8637         (mono_debugger_add_type): Renamed into mono_debugger_class_initialized().
8638
8639         * class.c
8640         (mono_debugger_start_class_init_func): Removed.
8641         (mono_debugger_class_loaded_methods_func): Added.
8642         (mono_class_setup_methods): Call it here.
8643
8644 2007-11-22  Martin Baulig  <martin@ximian.com>
8645
8646         * mono-debug.c
8647         (mono_debug_add_delegate_trampoline): New public method.
8648         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_DELEGATE_TRAMPOLINE'.
8649
8650         * mono-debug.h
8651         (MonoSymbolTable): Added `global_data_table'.
8652         (MonoDebuggerTypeKind): Removed.
8653
8654 2007-11-21  Zoltan Varga  <vargaz@gmail.com>
8655
8656         * marshal.c (mono_marshal_get_generic_array_helper): Skip visibility checks for
8657         these methods.
8658
8659         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
8660         
8661 Tue Nov 20 23:10:41 CET 2007 Paolo Molaro <lupus@ximian.com>
8662
8663         * object.c: some fields don't have a valid rva: ignore them (bug #343083).
8664
8665 2007-11-20  Martin Baulig  <martin@ximian.com>
8666
8667         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 65.
8668
8669         * mono-debug-debugger.c
8670         (mono_debugger_insert_method_breakpoint): Moved here from debug-mini.c
8671         (mono_debugger_remove_breakpoint): Likewise.
8672         (mono_debugger_check_breakpoints): Likewise.
8673         (mono_debugger_register_class_init_callback): New public method.
8674         (mono_debugger_remove_class_init_callback): Likewise.
8675         (mono_debugger_add_type): Likewise.
8676
8677         * mono-debug-debugger.h
8678         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_CLASS_INITIALIZED'.
8679
8680 Tue Nov 20 20:54:12 CET 2007 Paolo Molaro <lupus@ximian.com>
8681
8682         * class.c: more interface implementations needed for the
8683         array enumerator (fixes bug #341112).
8684
8685 2007-11-18  Gert Driesen  <drieseng@users.sourceforge.net>
8686
8687         * icall.c: Renamed arguments for ves_icall_System_Enum_ToObject to
8688         fix ParamName of ArgumentNullExceptions.
8689
8690 2007-11-17  Miguel de Icaza  <miguel@novell.com>
8691
8692         * reflection.c (mono_reflection_encode_sighelper): Generate the
8693         modopts and modreqs.   I have a useless test that crashes monodis,
8694         but that shows the code working.
8695
8696 2007-11-17  Zoltan Varga  <vargaz@gmail.com>
8697
8698         * boehm-gc.c (create_allocator): Fix size calculation for the string allocator.
8699         (mono_gc_get_managed_allocator): Enable the string allocator on amd64.
8700
8701 2007-11-15  Dick Porter  <dick@ximian.com>
8702
8703         * threads.c (ves_icall_System_Threading_Thread_Join_internal):
8704         When joining a thread, it's the thread that's calling Join that
8705         gets WaitSleepJoin state not the target.  Fixes the standalone
8706         test case in bug 334740, and hopefully the whole bug too.
8707
8708 2007-11-15  Dick Porter  <dick@ximian.com>
8709
8710         * process.c: Read file version info from the files pointed at by
8711         process modules, not the current process.  Fixes bug 315969.
8712
8713         Use windows typedef names in some places to fix warnings on the
8714         windows build.
8715
8716 2007-11-15  Mark Probst  <mark.probst@gmail.com>
8717
8718         * image.c, metadata-internals.h: Added a generic_class_cache hash
8719         to MonoImage for looking up generic classes when sharing generics.
8720
8721 Thu Nov 15 16:11:30 CET 2007 Paolo Molaro <lupus@ximian.com>
8722
8723         * sgen-gc.c: warning cleanups.
8724
8725 2007-11-15  Zoltan Varga  <vargaz@gmail.com>
8726
8727         * icall.c (ves_icall_Type_GetPropertiesByName): Implement proper hiding of
8728         inherited properties.
8729
8730 2007-11-14  Mark Probst  <mark.probst@gmail.com>
8731
8732         * object.c, class-internals.h: Added more information to the
8733         runtime generic context.
8734
8735 2007-11-13  Zoltan Varga  <vargaz@gmail.com>
8736
8737         * marshal.c (mono_marshal_get_delegate_invoke): Take a delegate as argument
8738         instead of just the target method. Generalize the abstract method handling to
8739         handle any non-static method.
8740
8741         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
8742         mono_marshal_get_delegate_invoke () signature change.
8743
8744 2007-11-13  Mark Probst  <mark.probst@gmail.com>
8745
8746         * class.c, class-internals.h: Made
8747         mono_type_get_basic_type_from_generic () public.  Fixed member
8748         access check for shared generics.
8749
8750         * loader.c: Don't insert field into field cache if it's part of a
8751         non-inflated generic class.
8752
8753         * domain.c, domain-internals.h: The generic sharing context is now
8754         part of the jit info data structure.  Added two accessor
8755         functions.
8756
8757 2007-11-12  Zoltan Varga  <vargaz@gmail.com>
8758
8759         * marshal.c (mono_marshal_get_runtime_invoke): Create a non-shared wrapper for
8760         the array Get/Set/Address methods, since the JIT inlines them.
8761
8762         * metadata-internals.h (MonoImage): Add 'runtime_invoke_direct_cache'.
8763
8764         * image.c (mono_image_close): Free runtime_invoke_direct_cache.
8765         (mono_image_init): Initialize runtime_invoke_direct_cache.      
8766
8767         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
8768         mono_marshal_get_delegate_invoke signature change.
8769
8770         * marshal.c (mono_marshal_get_delegate_invoke): Receive the target_method as
8771         an additional argument. Add support for invoking abstract methods.
8772
8773         * metadata-internals.h (MonoImage): Add 'delegate_abstract_invoke_cache'.
8774
8775         * image.c (mono_image_close): Free delegate_abstract_invoke_cache.      
8776
8777 2007-11-09  Mark Probst  <mark.probst@gmail.com>
8778
8779         * class.c: Do field layout for open generic classes as well.
8780
8781 2007-11-09  Mark Probst  <mark.probst@gmail.com>
8782
8783         * gc.c, gc-internal.h: Don't finalize threadpool threads with
8784         other objects, because the threadpool is still around.  Put them
8785         in a list instead and after finalizing all other objects in the
8786         root domain shut down the thread pool and then finalize the
8787         threads.  Fixes bug #337383.
8788
8789         * threads.c, thread-types.h: New mono_thread_create_internal()
8790         function for marking a thread with the threadpool flag before it
8791         started.  Set synch_cs to NULL after freeing it.
8792
8793         * threadpool.c: Mark threadpool threads before they start.
8794
8795 Thu Nov 8 15:31:21 CET 2007 Paolo Molaro <lupus@ximian.com>
8796
8797         * reflection.h, reflection.c: don't export random functions
8798         and lazy load dbnull and missing objects.
8799
8800 2007-11-07  Jonathan Chambers <joncham@gmail.com>
8801
8802         * class.c: Initialize COM types if COM interfaces
8803         are present (not just COM classes).
8804         
8805         Code is contributed under MIT/X11 license.
8806
8807 2007-11-07  Massimiliano Mantione  <massi@ximian.com>
8808         * reflection.c:
8809         create_dynamic_mono_image: hook module profiler events (dynamic case).
8810         mono_image_basic_init: hook assembly profiler events (dynamic case).
8811
8812 2007-11-07  Massimiliano Mantione  <massi@ximian.com>
8813         * profiler.c:
8814         simple_appdomain_unload: completely terminate the profiler
8815         instead of only processing the statistical samples.
8816         simple_shutdown: make sure this is really called exactly once,
8817         even in multithreaded applications, and always listen to
8818         appdomain events.
8819         * gc.c (mono_domain_finalize): don't call mono_profiler_appdomain_event
8820         here, the "[un]load" functions will do it.
8821         Fixes bugs #333791 and #325261.
8822
8823 2007-11-07  Geoff Norton  <gnorton@novell.com>
8824
8825         * socket-io.c:  Use the configure defines for HAVE_SOCKADDR_IN(6)_SIN_LEN
8826         rather than depend on __APPLE__.
8827
8828 2007-11-07  Mark Probst  <mark.probst@gmail.com>
8829
8830         * icall.c: Safety checks in InitializeArray.  Fixes bug #324535.
8831
8832 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com> 
8833
8834         * object.c: Fix mono_string_to_utf8 to handle NULL values inside the
8835         UTF16 MonoString. Fix the crash from bug #335488
8836
8837 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com>
8838
8839         * marshal.c: Correct (for non-Win32 OS) length != size in 
8840         mono_string_from_bstr. Fix #339530.
8841
8842 2007-11-06  Geoff Norton  <gnorton@novell.com>
8843
8844         * socket-io.c: Apple requires sin(6)_len to be set for getnameinfo
8845         to succeed
8846
8847 2007-11-05  KornĂ©l PĂ¡l  <kornelpal@gmail.com>
8848
8849         * process.c: Added run-time GetProcessId API detection for Windows.
8850
8851 2007-11-04  Miguel de Icaza  <miguel@novell.com>
8852
8853         * reflection.c  (mono_param_get_objects): If a parameter has the
8854         attribute [System.Runtime.InteropServices.Optional] we should
8855         set the DefaultValue of the ParameterInfo to be
8856         System.Reflection.Missing instead of DBNull.
8857
8858         See bug #339013.
8859
8860         (mono_get_reflection_missing_object): New method,
8861         returns the System.Reflection.Missing.Value singleton instance.
8862
8863 2007-11-03  Atsushi Enomoto  <atsushi@ximian.com>
8864
8865         * culture-info-table.h : regenerated.
8866
8867 2007-11-02  Jonathan Chambers <joncham@gmail.com>
8868
8869         * icall.c: Use GetEnvironmentStrings on windows
8870         so we are using the same environment block as 
8871         GetEnvironmentVariable/SetEnvironmentVariable. Fixes
8872         #333740.
8873         
8874         Code is contributed under MIT/X11 license.
8875
8876 2007-10-31  Martin Baulig  <martin@ximian.com>
8877
8878         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 64.
8879
8880         * mono-debug-debugger.h
8881         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_TRAMPOLINE'.
8882
8883 2007-10-30  Zoltan Varga  <vargaz@gmail.com>
8884
8885         * reflection.c (mono_custom_attrs_from_class): Add support for dynamic inflated 
8886         classes.
8887
8888 2007-10-30  Atsushi Enomoto  <atsushi@ximian.com>
8889
8890         * culture-info-table.h : regenerated.
8891
8892 2007-10-30  Robert Jordan  <robertj@gmx.net>
8893
8894         * icall-def.h, icall.c:
8895         Add ves_icall_Remoting_RemotingServices_GetVirtualMethod ().
8896
8897         Code is contributed under MIT/X11 license.
8898
8899 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
8900
8901         * class.c (mono_class_setup_vtable): Find the inflated methods in the
8902         inflated class instead of inflating them again.
8903         
8904         * class.c (mono_class_setup_vtable): Inflate the override methods in the 
8905         dynamic case.
8906
8907         * class.c (mono_generic_class_get_class): Set klass->property.count as well.
8908         Call setup_supertypes () after klass->parent is set.
8909         (mono_class_setup_properties): Enable this to work on dynamic generic classes.
8910
8911         * reflection.c (mono_type_get_object): Only return a MonoGenericClass object
8912         for inflated instances of not yet created dynamic generic classes.
8913         (ctorbuilder_to_mono_method): Handle the case when this is called multiple
8914         times from inflated_method.
8915         (methodbuilder_to_mono_method): Ditto.
8916
8917 Mon Oct 29 21:02:53 CET 2007 Paolo Molaro <lupus@ximian.com>
8918
8919         * gc.c: code cleanup and removed old untested option of not creating the
8920         finalizer thread.
8921
8922 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
8923
8924         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Avoid
8925         creating a jump trampoline for dynamic methods.
8926
8927 2007-10-29 Rodrigo Kumpera <rkumpera@novell.com>
8928
8929         * reflection.c (mono_image_create_token): Correctly encode methods and constructors of
8930         generic TypeBuilders when called from another method of the same type (bug #335131).
8931
8932
8933 2007-10-27  Zoltan Varga  <vargaz@gmail.com>
8934
8935         * reflection.c (methodbuilder_to_mono_method): Revert the last change as it
8936         doesn't seem to work perfectly.
8937         
8938         * reflection.c (ctorbuilder_to_mono_method): Handle the case when this is
8939         called multiple times.
8940         (methodbuilder_to_mono_method): Ditto.
8941         (resolve_object): Inflate FieldBuilder's.
8942
8943 Fri Oct 26 19:38:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
8944
8945         * string-icalls.c, string-icalls.h, appdomain.c: patch from
8946         Tyler Larson <mono-devel@tlarson.com> to fix the handling of
8947         RemoveEmptyEntries in the string.Split implementation (bug #322375).
8948
8949 2007-10-26  Dick Porter  <dick@ximian.com>
8950
8951         * appdomain.c (MONO_CORLIB_VERSION): Bump version because of
8952         Thread initialisation changes
8953
8954 2007-10-26 Rodrigo Kumpera <rkumpera@novell.com>
8955
8956         * verify.c: fix compatibility check between arrays and System.Array
8957
8958 2007-10-26  Zoltan Varga  <vargaz@gmail.com>
8959
8960         * reflection.c (mono_reflection_get_custom_attrs_info): Handle MonoGenericClass
8961         too. Fixes #336999.
8962
8963 2007-10-25  Zoltan Varga  <vargaz@gmail.com>
8964
8965         * object.c (mono_value_box): Use typed allocation here.
8966
8967 2007-10-23  Zoltan Varga  <vargaz@gmail.com>
8968
8969         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Create a jump
8970         trampoline instead of compiling the method right away.
8971
8972         * class-internals.h object.c: Add a JIT callback to create a jump trampoline.
8973
8974 2007-10-21  Zoltan Varga  <vargaz@gmail.com>
8975
8976         * class.c (mono_generic_class_get_class): Avoid setting klass->size_inited and
8977         related fields for dynamic classes. Fixes #334493.
8978
8979 2007-10-20  Zoltan Varga  <vargaz@gmail.com>
8980
8981         * class.c (mono_generic_class_get_class): Set klass->field.count as well.
8982         
8983         * class.c (mono_class_layout_fields): Use 1 instead of TRUE for consistency.
8984
8985         * class.c (mono_class_layout_fields): Set size_inited for generic classes as well.
8986         (mono_class_setup_vtable): Obtain overrides for dynamic generic classes correctly.
8987
8988         * class.c (mono_class_setup_methods): Handle dynamic inflated classes correctly.
8989
8990         * reflection.c (create_generic_typespec): Initialize klass->generic_container
8991         if needed.
8992         (reflection_methodbuilder_to_mono_method): Set container->is_method to TRUE.
8993
8994 2007-10-18  Jonathan Chambers <joncham@gmail.com>
8995
8996         * marshal.c: Use correct key when removing item
8997         from ccw_hash.
8998         
8999         Code is contributed under MIT/X11 license.
9000
9001 2007-10-17  William Holmes  <billholmes54@gmail.com>
9002
9003         *marshal.c: Adding a case to marshal booleans to U1
9004
9005         Code is contributed under MIT/X11 license.
9006
9007 2007-10-18  Zoltan Varga  <vargaz@gmail.com>
9008
9009         * class.c (mono_class_from_name): Search the modules compromising dynamic
9010         assemblies. Fixes #331601.
9011
9012 2007-10-16  Zoltan Varga  <vargaz@gmail.com>
9013
9014         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Throw an
9015         exception if the type name contains an assembly component. Fixes #334203.
9016
9017         * reflection.c (mono_reflection_get_type_with_rootimage): Search all the
9018         modules inside dynamic assemblies. Fixes #334200.
9019         
9020         * reflection.c: Set image->public_key and image->public_key_length;
9021
9022         * metadata-internals.h (MonoDynamicImage): Add public_key and public_key_len
9023         fields.
9024
9025         * image.c (mono_image_get_public_key): Handle dynamic assemblies. Fixes #334173.        
9026         
9027 2007-10-16  Mark Probst  <mark.probst@gmail.com>
9028
9029         * metadata.c: Implemented correct comparing of generic classes.
9030         An inflated generic class can be equal to a non-inflated one if it
9031         is inflated with generic type variables as type arguments.  Fixes
9032         bug #333798.
9033
9034 2007-10-15  Dick Porter  <dick@ximian.com>
9035
9036         * monitor.c (mono_monitor_try_enter_internal): Set thread state to
9037         WaitSleepJoin while it is waiting to acquire a lock.  Fixes bug
9038         81646.
9039
9040         * threads.c: Turn the thread synch_lock into a CRITICAL_SECTION,
9041         instead of a monitor lock.  This means that monitor_try_enter and
9042         co can set the thread state safely.
9043         (ves_icall_System_Threading_Thread_Interrupt_internal): Always set
9044         thread_interrupt_requested, so interrupt actually works.
9045
9046         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal,
9047         ves_icall_System_Net_Sockets_Socket_Select_internal): Use thread
9048         state accessor function
9049
9050 2007-10-15  Martin Baulig  <martin@ximian.com>
9051
9052         * mono-debug.h
9053         (MONO_DEBUGGER_VERSION): Bump to 63 to make it impossible to use
9054         the debugger with the current runtime.
9055
9056 Mon Oct 15 10:20:56 CEST 2007 Paolo Molaro <lupus@ximian.com>
9057
9058         * object.c, object-internals.h: added the ability to set a single
9059         trampoline for all the slots in a vtable.
9060
9061 Fri Oct 12 17:50:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
9062
9063         * marshal.c: deal with a possible race condition during multicast
9064         delegate invocation.
9065
9066 Fri Oct 12 13:31:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
9067
9068         * class.c: ensure value type methods don't have the synchronized
9069         flag set.
9070
9071 Fri Oct 12 08:10:59 CEST 2007 Paolo Molaro <lupus@ximian.com>
9072
9073         * string-icalls.c, string-icalls.h: reverted unapproved patch that
9074         breaks the build.
9075
9076 2007-10-11  Joel Reed  <joelwreed@comcast.com>
9077
9078         * string-icalls.c, string-icalls.h: modify System_String_InternalSplit
9079         to take an options parameter so that empty entries can be removed during
9080         the split procedure. Patch from: Tyler Larson <mono-devel@tlarson.com>
9081
9082 Thu Oct 11 20:16:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
9083
9084         * marshal.c: make sure we don't store the signature from a dynamic
9085         method into the runtime invoke cache (bug #327189).
9086
9087 Thu Oct 11 18:22:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
9088
9089         * marshal.c: make sure the wrapper methods are properly initialized.
9090
9091 2007-10-11  Mark Probst  <mark.probst@gmail.com>
9092
9093         * metadata.c, metadata-internals.h: Generalized
9094         mono_type_stack_size() to mono_type_stack_size_internal() which
9095         takes an additional argument specifying whether it allows open
9096         types.
9097
9098 2007-10-10  Rodrigo Kumpera  <rkumpera@novell.com>
9099
9100         * verify.c (do_invoke_method): handle typedbyref params
9101         correctly and check for unverifiable return values.
9102
9103         * verify.c (do_newobj): fix a warning.
9104
9105 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
9106
9107         * verify.c: don't tread typedbyref as allways unverifable,
9108         so uses, like (ld/st)loc.0 are valid. verify for the cases
9109         that it matters, like boxing related operations.
9110
9111 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
9112
9113         * verify.c: add verification of the newobj opcode. verification
9114         of delegate instantation still missing due ldftn and virldftn not
9115         pushing the function type on stack
9116
9117 2007-10-08  Mark Probst  <mark.probst@gmail.com>
9118
9119         * class-internals.h: Runtime generic context data structure
9120         definition.
9121
9122         * object.c: Initialization of runtime generic context at runtime
9123         vtable creation time.
9124
9125 2007-10-08  Massimiliano Mantione  <massi@ximian.com>
9126         * class.c (mono_class_create_from_typedef,
9127         mono_class_from_generic_parameter, mono_ptr_class_get,
9128         mono_fnptr_class_get, mono_bounded_array_class_get)
9129         * domain.c (mono_domain_create, mono_domain_free)
9130         * assembly.c (mono_assembly_load_from_full, mono_assembly_close)
9131         * image.c (do_mono_image_load, mono_image_close):
9132         Hooked up load-unload profiler events.
9133
9134 Mon Oct 8 11:38:04 CEST 2007 Paolo Molaro <lupus@ximian.com>
9135
9136         * domain.c: track statistics about the actual amount of native code
9137         allocated.
9138
9139 Sat Oct 6 10:01:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
9140
9141         * class.c: the valuetype enumerators don't have the additional
9142         supertypes interfaces.
9143
9144 Fri Oct 5 20:33:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
9145
9146         * class.c: need more interfaces setup for the IEnumerator<T>
9147         object created for arrays (tests/ienumerator-interfaces.2.cs).
9148
9149 2007-10-05  Zoltan Varga  <vargaz@gmail.com>
9150
9151         * class.c (mono_ldtoken): Handle methodspec tokens as well. Fixes #331097.
9152
9153 2007-10-05  Alp Toker  <alp@atoker.com>
9154
9155         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
9156         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
9157         #315863.
9158
9159 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
9160
9161         * verify.c (verify_type_compatibility_full): verification of
9162         compatibility improved, validates correctly non-strict checks between
9163         native int and I4 types different than (unsigned)int32.
9164
9165         * verify.c (do_store_indirect): added, do all verification of
9166         ldind.X opcodes. 
9167
9168         * verify.c (get_load_indirect_mono_type): renamed to
9169         get_indirect_op_mono_type, as it now returns the MonoType for 
9170         ldind.X and stind.X opcodes.
9171
9172 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
9173
9174         * reflection.c: Fix the encoding of generic type definition for
9175         TypeBuilders.
9176
9177         * reflection.c (mono_image_typedef_or_ref_full: do the same thing as
9178         mono_image_typedef_or_ref but allows to specify if typespec lookups should
9179         be made. Typespec check is done prior to typeref cache lookup.
9180
9181         * reflection.c (mono_image_typedef_or_ref): now just delegate to
9182         mono_image_typedef_or_ref_full.
9183
9184         * reflection.c (encode_generic_class): encode the generic class
9185         directly instead of calling encode_type.
9186
9187         * reflection.c (encode_type): encode the generic type definition
9188         MonoClass as a generic instantiation.
9189
9190         * reflection.c (create_typespec): cache typespec tokens in
9191         the assembly->typespec cache. Don't create typespec for a generic
9192         instance MonoClass. Create typespec for the generic type defintion.
9193
9194         * reflection.c (create_generic_typespec): encode the generic
9195         class directly instead of calling encode_type.
9196
9197         * reflection.c (mono_image_create_token): encode the generic
9198         type definition not using a typespec for MonoType instances.
9199
9200
9201 2007-10-04  Raja R Harinath  <rharinath@novell.com>
9202
9203         Fix #328812
9204         * class.c (mono_image_init_name_cache): Don't return nested
9205         'protected internal' classes.
9206         (mono_class_from_name_case): Likewise.
9207
9208 2007-10-04  Atsushi Enomoto  <atsushi@ximian.com>
9209
9210         * icall-def.h, icall.c : get_bundled_machine_config() is now the
9211           common function used by both DefaultConfig in System.dll and
9212           InternalConfigurationHost in System.Configuration.dll.
9213
9214 Wed Oct 3 17:26:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
9215
9216         * class.c: automatically add to vectors only a few essential explicit
9217         generic interfaces. The rest of the interfaces that arrays should
9218         provide are currently implicitly added (but still not lazily, see the
9219         design in the discussion of bug#325495 for the details of what is
9220         needed for that). Additionally, implicit interfaces are assigned the
9221         same vtable slot as the explicit interfaces (as they are compatible):
9222         this enables huge memory savings since we don't need to instantiate
9223         as many memthods and as large vtables anymore. Also, Since
9224         GetEnumerator<T> returns an instance of a type that is required to
9225         support a similarly large set of interfaces as arrays, we add
9226         implicit interfaces and interface offset sharing support to those
9227         types, too. This change adds all the required interfaces so that
9228         the anonarray.cs test case in the bug report works (we don't add
9229         all the interfaces to arrays of arrays 3-level deep and more because
9230         of the memory requirements explained in the bug and since they are much
9231         less common: the lazy-loading support will enabled them to work, too).
9232
9233 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
9234
9235         * verify.c (merge_stacks): major clean up, all type compatibility
9236         checks are done by verify_type_compatibility. This fix my earlier lack
9237         of understanding of the CLR type system and merge_stacks no longer looks
9238         scary.
9239
9240         * verify.c: fixed some bad spelling.
9241
9242 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
9243
9244         * verify.c (mono_type_from_stack_slot): added. returns the MonoType for
9245         a given stack slock.
9246         
9247         * verify.c: killed verify_type_compat in favor of verify_type_compatibility and
9248         verify_type_compatibility_full. This removed a near indentical function and fixed
9249         handling of Int32 and IntPtr across all opcodes.
9250
9251 Tue Oct 2 15:24:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
9252
9253         * class.c: only vectors have the additional generic interfaces.
9254
9255 2007-10-01  Jonathan Chambers <joncham@gmail.com>
9256
9257         * mono-config.c: Use g_strcasecmp instead of
9258         strcasecmp like everywhere else to fix
9259         compilation with MSVC.
9260         
9261         Code is contributed under MIT/X11 license.
9262
9263 Mon Oct 1 14:39:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
9264
9265         * object.c, object-internals.h: refactored the IMT code to enable
9266         building a single slot at a time and lazily creating the IMT trampolines
9267         and thunks.
9268
9269 2007-09-29  Zoltan Varga  <vargaz@gmail.com>
9270
9271         * loader.c (inflate_generic_signature): Allocate inflated signatures from the heap.
9272
9273         * metadata.c (mono_metadata_free_inflated_signature): Free the signature itself too.
9274         Fixes #328501.
9275         
9276 2007-09-29  Raja R Harinath  <harinath@gmail.com>
9277
9278         * loader.c (method_from_methodspec): Rearrange to avoid
9279         un-necessary exposition.  Don't assert out if the method's
9280         declaring type is a generic type definition.
9281
9282 2007-09-28  Martin Baulig  <martin@ximian.com>
9283
9284         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 61.
9285
9286 Fri Sep 28 20:15:47 CEST 2007 Paolo Molaro <lupus@ximian.com>
9287
9288         * class-internals.h: optimize field layout of MonoClass to
9289         requires less cachelines at runtime and save a few bytes on 64 bit
9290         systems.
9291
9292 2007-09-28  Jb Evain  <jbevain@novell.com>
9293
9294         * reflection.c: when encoding type names in custom attributes,
9295         if the type is a closed generic type, its generic arguments
9296         have to be serialized as AssemblyQualifiedName, so that when
9297         they are deserialized, it's possible to re-create them properly.
9298         Fixes #329450.
9299
9300
9301 Fri Sep 28 19:19:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
9302
9303         * object.c, class-internals.h: added delegate-creation counter.
9304
9305 Fri Sep 28 18:07:53 CEST 2007 Paolo Molaro <lupus@ximian.com>
9306
9307         * class.c: cleanup of the code that synthetizes interfaces for
9308         arrays in 2.0: saves quit a bit of corlib mempool memory.
9309         Code to fix bug #325495 ifdeffed out for now until the issues
9310         with memory usage and O(n^2) behaviour are fixed.
9311
9312 Fri Sep 28 17:19:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
9313
9314         * marshal.c: when possible, do not duplicate the name of the methods
9315         in the method builder and in the generated MonoMethod.
9316
9317 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
9318         * verify.c: added support for type checking ldind_* opcodes.
9319
9320 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
9321
9322         * class-internals.h (struct _MonoGenericClass): new field is_tb_open
9323         which is used to distinguish the fully open instantiation of a TypeBuilder
9324         with the rest. This temporary hack is required to restore the property that
9325         the fully open instantiation is the same type of the generic type definition.
9326
9327         * class-internals.h (mono_generic_class_is_generic_type_definition):
9328         new function as part of the internal API.
9329
9330         * class.c (inflate_generic_type): return NULL when the generic inst is
9331         fully open. The fully open generic type is now the same as the generic type
9332         definition for non TypeBuilder types.
9333
9334         * class.c (mono_generic_class_get_class): removed assert since it is
9335         no longer valid, gklass->cached_class can point to the generic type definition.
9336
9337         * class.c (mono_generic_class_is_generic_type_definition): new.
9338
9339         * metadata.c (mono_generic_class_hash): added is_tb_open field
9340         to the hash calculation.
9341
9342         * metadata.c (free_generic_class): if the generic class is associated
9343         with the generic type definition, its field will come from the mempool and
9344         must not be freed.
9345
9346         * metadata.c (mono_metadata_is_type_builder_generic_type_definition):
9347         new, this function identifies the corner case of a TypeBuilder fully open
9348         instantiation.
9349
9350         * metadata.c (mono_metadata_lookup_generic_class): use is_tb_open
9351         for lookup. Set gclass->cached_class to be the container class in case of
9352         the fully open instantiation of non TypeBuilder types.
9353
9354         * metadata.c (_mono_metadata_generic_class_equal): use is_tb_open
9355         to compare generic classes.
9356
9357         * reflection.c (method_encode_methodspec): remove assert that
9358         no longer is valid.
9359
9360         * reflection.c (mono_reflection_generic_class_initialize): add
9361         an aditional assert to ensure the proper type is used.
9362
9363 2007-09-26  Rodrigo Kumpera  <rkumpera@novell.com>
9364
9365         * verify.c: disabled all debug spew by default, define MONO_VERIFIER_DEBUG
9366         to enjoy it.
9367
9368 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
9369
9370         * verify.c (push_arg): Fixed support for ldarga
9371         * verify.c (set_stack_value): Removed superfluous parameter, fixed the
9372         MonoType used as first arg in case of instance calls.
9373
9374 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
9375
9376         * verify.c: Support for verifying VAR and MVAR types, 
9377
9378 2007-09-25  Zoltan Varga  <vargaz@gmail.com>
9379
9380         * icall.c (ves_icall_get_property_info): Set the reflected type of the
9381         accessors correctly.
9382
9383 Tue Sep 25 14:56:03 CEST 2007 Paolo Molaro <lupus@ximian.com>
9384
9385         * threads.c: support OSX and other systems in
9386         mono_thread_get_stack_bounds (bug #328026).
9387
9388 2007-09-25  Martin Baulig  <martin@ximian.com>
9389
9390         * mono-debug.h
9391         (MonoDebugVarInfo): Replace `MonoClass *klass' with `MonoType *type'.
9392
9393 2007-09-24  Martin Baulig  <martin@ximian.com>
9394
9395         * mono-debug.h
9396         (MonoDebugClassEntry): Moved the definition of this struct into
9397         mono-debug.c to make it private.
9398
9399         * mono-debug.c
9400         (MonoDebugClassEntry): Removed `symfile_id'; since we now use one
9401         type table per symbol file, we don't need to store the symfile id
9402         any longer.
9403
9404 2007-09-24  Martin Baulig  <martin@ximian.com>
9405
9406         Create one type table per symbol file, since a `MonoClass *' gets
9407         invalid when its image is unloaded.
9408
9409         * mono-debug.h (MonoSymbolTable): Removed `type_table'.
9410         (MonoDebugHandle): Added `type_table'.
9411
9412 Mon Sep 24 17:25:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
9413
9414         * mempool.c, mempool.h: added mono_mempool_new_size () API
9415         to be able to specify a smaller initial size for the pool.
9416         Adjusted the code to slowly increase pool size before using
9417         the previous default size.
9418         * image.c: use a small initial size for image mempools.
9419
9420 2007-09-23  Zoltan Varga  <vargaz@gmail.com>
9421
9422         * marshal.c (emit_marshal_array): Generate valid IL for byref array case.
9423         Fixes ##320990.
9424
9425         * icall.c (ves_icall_System_Reflection_Assembly_get_ManifestModuleInternal): 
9426         Rename this to ves_icall_System_Reflection_Assembly_GetManifestModuleInternal.
9427
9428 2007-09-22  Zoltan Varga  <vargaz@gmail.com>
9429
9430         * metadata.c (mono_type_create_from_typespec): Remove an invalid
9431         free. Fixes #327438.
9432
9433 2007-09-21  Raja R Harinath  <harinath@gmail.com>
9434
9435         * metadata.c (type_in_image) <MONO_TYPE_SZARRAY>: Handle arrays of
9436         generic instantiations, etc.
9437         <MONO_TYPE_ARRAY>: Likewise.
9438
9439 2007-09-21  Martin Baulig  <martin@ximian.com>
9440
9441         * mono-debug.h (MonoSymbolFilePriv, MonoDebugHandlePriv): Removed;
9442         these structs were never defined.
9443         (MonoDebugHandle): Removed the `_priv' field, it was never used.
9444
9445 2007-09-21  Martin Baulig  <martin@ximian.com>
9446
9447         * mono-debug.h (MonoDebugVarInfo): Add `MonoClass *klass'.
9448
9449 Fri Sep 21 14:39:45 CEST 2007 Paolo Molaro <lupus@ximian.com>
9450
9451         * image.c: removed the guid hash tables: we can get the same info
9452         without the additional memory usage hit (partially fixes also bug #327052).
9453
9454 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
9455
9456         * profiler.h, profiler-private.h, profiler.c: add a new profiler
9457         event to handle unloading methods. After the event is called, the
9458         corresponding MonoMethod* must be considered invalid.
9459         * loader.c (mono_free_method): call the new mono_profiler_method_free
9460         event.
9461
9462 2007-09-20  Mark Probst  <mark.probst@gmail.com>
9463
9464         * domain-internals.h: New flag in MonoJitInfo which marks shared
9465         generic methods.  New hash table (shared_generics_hash) in
9466         MonoDomain to keep track of shared generic methods.  Prototypes
9467         for functions to register and lookup shared generic methods.
9468
9469         * domain.c: Support for registering and looking up shared generic
9470         methods via a hash table (shared_generics_hash) in MonoDomain.
9471
9472         * class-internals.h: New exception to signal failure of shared
9473         compilation of a generic method.  New counters for generics
9474         sharing in MonoStats.
9475
9476 Thu Sep 20 16:59:36 CEST 2007 Paolo Molaro <lupus@ximian.com>
9477
9478         * image.c, metadata-internals.h: don't keep a file descriptor open
9479         for loaded assemblies (bug#325988).
9480
9481 2007-09-19  Raja R Harinath  <rharinath@novell.com>
9482
9483         * metadata.c (signature_in_image): New.  Carve out of type_in_image.
9484         (ginst_in_image, gclass_in_image): Simplify.  Change signature to
9485         use the corresponding datatypes.
9486         (type_in_image): Update to changes.
9487         (CleanForImageUserData): Simplify.
9488         (steal_gclass_in_image): Carved out of old 'gclass_in_image'.
9489         Avoid quadratic behaviour in handling the "stolen" list by
9490         separating the filter predicate out, and by prepending the stolen
9491         items rather than appending them.
9492         (steal_ginst_in_image): Likewise.
9493         (mono_metadata_clean_for_image): Update to changes.
9494
9495 2007-09-19  Martin Baulig  <martin@ximian.com>
9496
9497         * domain.c (mono_cleanup): Call mono_debug_cleanup() here.
9498
9499 2007-09-19  Martin Baulig  <martin@ximian.com>
9500
9501         * mono-debug.c (mono_debug_cleanup): Don't call
9502         mono_debugger_cleanup(); this is now called earlier from mini_cleanup().
9503
9504 2007-09-19  Raja R Harinath  <harinath@gmail.com>
9505
9506         Fix crash on 'make run-test' in mcs/errors
9507         * metadata.c (type_in_image): New.  Carve out of ginst_in_image.
9508         Avoid more potential allocations in mono_class_from_mono_type.
9509         (ginst_in_image): Update to changes.
9510         (gclass_in_image): Rearrange slightly.
9511
9512 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
9513
9514         * class.c (mono_class_init): Move the code that sets up class->methods to 
9515         mono_class_setup_methods () for inflated generic classes too. Ditto for properties.
9516
9517         * metadata.c (mono_metadata_get_inflated_signature): New function to return a
9518         canonical instance of an inflated generic signature.
9519         (mono_type_create_from_typespec): Remove an invalid free.
9520
9521         * loader.c (mono_method_get_signature_full): Use mono_metadata_get_inflated_signature.  
9522
9523 2007-09-18  Marek Habersack  <mhabersack@novell.com>
9524
9525         * domain-internals.h: added a declaration of the
9526         mono_assembly_load_full_nosearch internal function.
9527
9528         * assembly.c (mono_assembly_load_with_partial_name): use
9529         mono_try_assembly_resolve return value properly.
9530         (mono_assembly_load_full_nosearch): copied the function body from
9531         mono_assembly_load_full, without the code to invoke assembly
9532         search hooks.
9533         (mono_assembly_load_full): calls the above new function and if the
9534         assembly is not resolved, invokes the search hooks.
9535
9536         * appdomain.c (mono_runtime_init): restore the global postload
9537         assembly search handlers.
9538
9539 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
9540
9541         * class.c (mono_class_init): Make sure class->methods and class->properties
9542         are never NULL in the generics case.
9543
9544         * metadata.c (free_generic_class): Enable this again, skip the dynamic case.
9545
9546 2007-09-17  Zoltan Varga  <vargaz@gmail.com>
9547
9548         * metadata.c (free_generic_class): Disable some code to fix the build.
9549
9550         * domain.c (mono_cleanup): Fix a crash introduced by a previous patch.
9551
9552         * marshal.c (mono_marshal_get_xappdomain_dispatch): Allocate a piece of data
9553         from the image mempool.
9554
9555         * metadata.c (free_generic_class): Free more data from the inflated class.
9556
9557         * class.c (mono_class_from_generic_parameter): Allocate memory from the mempool.
9558
9559         * metadata.c (mono_metadata_parse_generic_param): Allocate memory from the image
9560         mempool.
9561         (mono_type_create_from_typespec): Ditto.
9562
9563         * domain.c (get_runtimes_from_exe): Add an out parameter to return the opened
9564         MonoImage to the caller.
9565         (mono_init_internal): Save the opened image in a global variable.
9566         (mono_cleanup): Close the image opened in get_runtimes_from_exe.
9567
9568         * reflection.c (resolve_object): Fix a leak.
9569
9570         * metadata.c: Fix the freeing of data in the generics caches.
9571         
9572         * metadata.c (free_generic_inst): Comment this out to fix the build.
9573         (free_generic_class): Ditto.
9574
9575         * metadata.c: Free cached generic methods, instantinations and classes when
9576         they are removed from the caches.
9577         (mono_metadata_free_type): Free the type itself.
9578
9579         * class.c: Free the result of mono_class_inflate_generic_type () in a few
9580         places.
9581
9582 Mon Sep 17 16:14:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
9583
9584         * boehm-gc.c: restrict managed allocs to __thread supporting
9585         architectures.
9586
9587 2007-09-16  Zoltan Varga  <vargaz@gmail.com>
9588
9589         * class.c (mono_class_inflate_generic_type): Add a comment describing memory ownership.
9590         (mono_generic_class_get_class): Fix a leak.
9591
9592         * metadata.c (do_mono_metadata_parse_type): Remove an unneccesary call to
9593         mono_metadata_free_type ().
9594         (mono_metadata_inflate_generic_inst): Fix a leak.
9595
9596 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
9597
9598         * mono-debug.c (free_header_data): Fix a leak missed earlier.
9599
9600         * metadata.c (mono_metadata_parse_array_full): Allocate memory from the image
9601         mempool.
9602
9603         * mono-debug.c (mono_debug_close_image): Fix call to 
9604         g_hash_table_remove ().
9605
9606 Fri Sep 14 19:36:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
9607
9608         * icall-def.h: redirect all the string ctor to the managed
9609         CreateString () methods.
9610         * string-icalls.c, string-icalls.h: removed dead code for string
9611         ctors and icalls.
9612
9613 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
9614
9615         * mono-debug.c: Fix memory leaks.
9616
9617 2007-09-14  Jonathan Chambers <joncham@gmail.com>
9618
9619         * threads-types.h: Implement mono_hazard_pointer_set and 
9620         mono_hazard_pointer_clear macros using do/while(0) to fix
9621         compilation with MSVC.
9622         
9623         Code is contributed under MIT/X11 license.
9624
9625 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
9626
9627         * gc.c (ves_icall_System_GCHandle_GetAddrOfPinnedObject): Use a return value of
9628         -2 to communicate to managed code that the handle is not pinned. Fixes #82848.
9629
9630 Fri Sep 14 14:04:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
9631
9632         * icall-def.h, string-icalls.c: get rid of old, no longer used, string
9633         icalls.
9634
9635 Fri Sep 14 11:41:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
9636
9637         * boehm-gc.c, gc-internal.h, object.c: allow strings to be
9638         managed-code allocated as well.
9639
9640 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
9641
9642         * class.c (mono_class_is_assignable_from): Add support for generic variance.
9643
9644 Thu Sep 13 11:55:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
9645
9646         * boehm-gc.c: fixed the build after the AOT changes.
9647
9648 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
9649
9650         * wrapper-types.h: Add an ALLOC wrapper type.
9651
9652         * gc-internals.h boehm-gc.c null-gc.c sgen-gc.c: Add functions needed by AOT to
9653         reference managed allocator methods.
9654
9655 2007-09-12  Marek Safar  <marek.safar@gmail.com>
9656
9657         * icall.c (ves_icall_MonoType_GetGenericArguments): Create an instance
9658         of Type array and not MonoType, a fix suggested by Hari.
9659         
9660 2007-09-12  Jonathan Chambers <joncham@gmail.com>
9661
9662         * domain-internals.h, domain.c : Remove delegate_invoke_impl_with_target_hash
9663         and delegate_invoke_impl_no_target_hash from _MonoDomain struct.
9664         
9665         Code is contributed under MIT/X11 license.
9666
9667 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
9668
9669         * domain.c, object.c, mono-config.c, object-internals.h: Fixed  #82416.
9670
9671 2007-09-12  Marek Habersack  <mhabersack@novell.com>
9672
9673         * image.c (do_mono_image_open): if assembly file fails to open and
9674         MONO_IOMAP is in effect, try to find the path in a
9675         case-insensitive way.
9676
9677         * appdomain.c (mono_runtime_init): do not install postload hooks -
9678         tests show that MS.NET doesn't use anything of that sort to
9679         trigger the AppDomain.AssemblyResolve event.
9680         (mono_try_assembly_resolve): renamed from try_assembly_resolve and
9681         made non-static.
9682         (mono_runtime_init): init portability helpers here.
9683
9684         * assembly.c (mono_assembly_load_with_partial_name): if other   
9685         attempts fail, trigger the AppDomain.AssemblyResolve event handler
9686         to resolve the assembly.
9687
9688         * domain-internals.h: added mono_try_assembly_resolve and marked
9689         it as internal.
9690
9691 2007-09-11  Jb Evain  <jbevain@novell.com>
9692
9693         * object-internals.h (MonoReflectionDynamicMethod): add
9694         a `MonoReflectionType *owner` field. The owner is used
9695         * reflection.c:
9696         (mono_reflection_create_dynamic_method): use the owner of the dynamic
9697         method as the class declaring the dynamic method.
9698         (reflection_methodbuilder_from_dynamic_method): copy the owner of the
9699         dynamic method to the declaring type of the methodbuilder.
9700
9701 2007-09-11  Mark Probst  <mark.probst@gmail.com>
9702
9703         * icall.c (ves_icall_InternalInvoke): Enforce CoreCLR security
9704         rules for calling methods via reflection.
9705
9706 2007-09-11  Zoltan Varga  <vargaz@gmail.com>
9707
9708         * reflection.c (resolve_object): Add support for MonoGenericClass. 
9709         Inflate MonoType's.
9710
9711 Tue Sep 11 16:08:08 CEST 2007 Paolo Molaro <lupus@ximian.com>
9712
9713         * gc-internal.h, boehm-gc.c, null-gc.c, sgen-gc.c: allow the GC to
9714         provide a managed method that does fast allocations without needing
9715         a managed->unmanaged transition. Boehm GC implementation currently
9716         enabled for ptrfree objects on sane architectures.
9717
9718 Tue Sep 11 16:00:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
9719
9720         * marshal.c, marshal.h: exported a couple of useful functions and
9721         added mono_mb_get_label () to easily handle backward branches.
9722
9723 2007-09-10  Zoltan Varga  <vargaz@gmail.com>
9724
9725         * reflection.c (resolve_object): Inflate generic methods. Fixes #82782.
9726
9727 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
9728
9729         * loader.c (find_method): Fixed the regression introduced while
9730         fixing bug #81466.
9731
9732 2007-09-09  Zoltan Varga  <vargaz@gmail.com>
9733
9734         * class.c (mono_lookup_dynamic_token_class): Pass along the context here as
9735         well.
9736         
9737         * class.c loader.c metadata.c object.c class-internals.h object-internals.h
9738         icall.c reflection.c: Pass a MonoGenericContext argument to 
9739         mono_lookup_dynamic_token ().
9740
9741         * reflection.c (resolve_object): Handle GenericTypeParameterBuilder. Fixes
9742         #82744.
9743         
9744 2007-09-09  Robert Jordan  <robertj@gmx.net>
9745
9746         * object.c (mono_class_proxy_vtable): Don't create remoting trampolines
9747         for generic methods.
9748
9749         * object.c (mono_object_get_virtual_method): Handle generic methods.
9750         Fixes bug #78882.
9751
9752         Code is contributed under MIT/X11 license.
9753
9754 Sat Sep 8 18:16:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
9755
9756         * image.c: fix locking in mono_image_load_file_for_image ().
9757
9758 Thu Sep 6 19:48:00 CEST 2007 Paolo Molaro <lupus@ximian.com>
9759
9760         * reflection.c, icall.c, icall-def.h: the methodinfos name field is
9761         used only as a cache: added an icall to fill it.
9762
9763 2007-09-16  Rodrigo Kumpera  <rkumpera@novell.com>
9764
9765         * reflection.h: exposed mono_reflection_free_type_info
9766         * reflection.c (mono_reflection_get_type_internal): type_args is always freed
9767         since mono_reflection_bind_generic_parameters makes a copy of it.
9768         * reflection.c (free_type_info): subinfos should be freed.
9769         * reflection.c (free_type_info): renamed to mono_reflection_free_type_info and 
9770         made non static.
9771         * icall.c (type_from_name and ves_icall_System_Reflection_Assembly_InternalGetType):
9772         replaced explicit cleanup of MonoTypeNameParse struct with a call to mono_reflection_free_type_info,
9773         this fixes #82695 and #81726.
9774    
9775
9776 2007-09-03  Atsushi Enomoto  <atsushi@ximian.com>
9777
9778         * process.h, process.c:  added support for user profile/info in
9779           ProcessStartInfo. For now only Windows works.
9780
9781 Fri Aug 31 17:30:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
9782
9783         * metadata.c: consider the generic arguments when comparing
9784         signatures (bug #82614).
9785
9786 Thu Aug 30 18:34:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
9787
9788         * cil-coff.h, image.c: updated assembly loader to cope with the
9789         PE32+ 64 bit file format.
9790
9791 Thu Aug 30 16:47:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
9792
9793         * assembly.c, class.c, domain.c, loader.c: remove useless
9794         inclusion of cil-coff.h.
9795
9796 2007-08-29  Jonathan Chambers  <joncham@gmail.com>
9797
9798         * marshal.c (cominterop_get_ccw): Walk up interface hierarchy
9799         if interface is marked with CoClassAttribute. 
9800    
9801         Code is contributed under MIT/X11 license.
9802
9803 Wed Aug 29 19:27:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
9804
9805         * sgen-gc.c: ensure no object from the to space is copied again or finalized
9806         if it's seen twice in major collections.
9807
9808 Wed Aug 29 18:46:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
9809
9810         * sgen-gc.c: big objects are not copied to the gray area, but they
9811         need to be considered for scanning, too, if they are brought alive
9812         by an object ready for finalizations or a survived one.
9813
9814 Wed Aug 29 18:43:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
9815
9816         * sgen-gc.c: properly account the number of disappearing links when
9817         they are nullified.
9818
9819 Wed Aug 29 18:37:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
9820
9821         * sgen-gc.c: share the code to scan the registered roots between the
9822         different types of collections.
9823
9824 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
9825
9826         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunModuleConstructor): New icall.
9827
9828 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
9829
9830         * object.c (mono_class_proxy_vtable): Use max_interface_id instead of
9831         class->max_interface_id in a one place. Fixes transparentproxy.exe test on ia64.
9832
9833 2007-08-28  Mark Probst  <mark.probst@gmail.com>
9834
9835         * security-manager.c (mono_security_manager_get_methods):
9836         LinkDemandSecurityException now has 2 arguments instead of 3.
9837
9838 2007-08-27  Zoltan Varga  <vargaz@gmail.com>
9839
9840         * class.c (mono_class_layout_fields): Only do the struct alignment hack on
9841         platforms which need it.
9842
9843 Mon Aug 27 18:29:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
9844
9845         * sgen-gc.c: unregister thread data structures with a pthread_key_t
9846         dtor.
9847
9848 Mon Aug 27 18:27:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
9849
9850         * threads.c: free the thread static data on thread exit.
9851
9852 Mon Aug 27 10:55:54 CEST 2007 Paolo Molaro <lupus@ximian.com>
9853
9854         * class.c: walk the hierarchy to find the generic definition for
9855         a class (fixes runtime part of bug #82498).
9856
9857 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
9858
9859         * assembly.c (mono_assembly_close): Move the closing of the referenced assemblies to
9860         ...
9861
9862         * image.c (mono_image_close): Here. Hopefully fixes #82510.
9863
9864 2007-08-24  Mark Probst  <mark.probst@gmail.com>
9865
9866         * monodiet.c (handle_cattrs): Fixed a custom attr leak.
9867
9868 2007-08-24  Robert Jordan  <robertj@gmx.net>
9869
9870         * appdomain.c: don't perform the ':'->';' substitution on Win32.
9871
9872 2007-08-24  Jb Evain  <jbevain@novell.com>
9873
9874         * class.c (mono_type_get_name_recurse): fix AssemblyQualifiedName
9875         for byref types.
9876
9877 2007-08-24  Mark Probst  <mark.probst@gmail.com>
9878
9879         * threads.c: Make sure a thread gets cleaned up only once.  Fixes
9880         #82286.
9881
9882 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
9883
9884         * assembly.c: Fix a warning.
9885         
9886 2007-08-23  Marek Habersack  <mhabersack@novell.com>
9887
9888         * appdomain.c: parse the <runtime> section looking for the probing
9889         element with the 'privatePath' attribute, which sets additional
9890         directories in which the runtime should look for assemblies.
9891
9892 2007-08-23  Robert Jordan  <robertj@gmx.net>
9893
9894         * marshal.c (Marshal_ReAllocHGlobal) : Fix GlobalReAlloc's flags.
9895         Fixes #82499.
9896
9897 2007-08-23  Martin Baulig  <martin@ximian.com>
9898
9899         * mono-debug.[ch]: Rename mono_debug_init_corlib() into
9900         _mono_debug_init_corlib() and remove it from the header file.
9901
9902 2007-08-23  Martin Baulig  <martin@ximian.com>
9903
9904         * mono-debug-debugger.c
9905         (mono_debugger_unhandled_exception): Ignore `ThreadAbortException';
9906         don't notify the debugger about it.
9907
9908         * mono-debug-debugger.h
9909         (MonoDebuggerEvent): Removed `THREAD_ABORT'.
9910
9911 2007-08-23  Robert Jordan  <robertj@gmx.net>
9912
9913         * icall-def.h, process.*: implemented Get|SetPriorityClass icalls.
9914         Code is contributed under MIT/X11 license.
9915
9916 Wed Aug 22 18:35:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
9917
9918         * sgen-gc.h, sgen-gc.c: abstracted most of the OS-specific code.
9919
9920 2007-08-22  Martin Baulig  <martin@ximian.com>
9921
9922         * mono-debug.c: Store debugging info on a per-domain basis and
9923         free it on domain unload.  Add support for unloading symbol files.
9924
9925         * mono-debug.h
9926         (MonoDebugList): New typedef.
9927         (MonoSymbolTable):
9928         - add `data_tables and `type_table'.
9929         - replace 'symbol_files' and `num_symbol_files' with a
9930           `MonoDebugList *'.
9931         (mono_debug_data_table): Removed.
9932         (mono_debug_list_add): New public function.
9933         (mono_debug_list_remove): New public function.
9934         (mono_debug_init_1): Renamed into mono_debug_init_corlib().
9935         (mono_debug_init_2_memory): Renamed into
9936         mono_debug_open_image_from_memory().
9937         (mono_debug_close_image): New public function.
9938         (mono_debug_domain_create): Likewise.
9939         (mono_debug_domain_unload): Likewise.
9940         (MONO_DEBUGGER_VERSION): Bump to 60.
9941
9942         * mono-debug-debugger.h
9943         (MonoDebuggerEvent):
9944         - remove `RELOAD_SYMTABS' and `METHOD_COMPILED'.
9945         - rename `ADD_MODULE' into `LOAD_MODULE'; add `UNLOAD_MODULE'.
9946         - add `DOMAIN_CREATE' and `DOMAIN_UNLOAD'.
9947         - rename `THREAD_CREATED' and `THREAD_EXITED' into
9948           `GC_THREAD_CREATED' and `GC_THREAD_EXITED'.
9949         - re-add `THREAD_CREATED' and `THREAD_EXITED'; with different
9950           meaning.
9951         (mono_debugger_add_symbol_file): Removed.
9952         (mono_debugger_add_type): Removed.
9953         (mono_debugger_lookup_type): Removed.
9954         (mono_debugger_lookup_assembly): Removed.
9955
9956         * domain.c
9957         (mono_domain_create): Call mono_debug_domain_create().
9958         (mono_init_internal): Call mono_debug_init_corlib().
9959
9960         * assembly.c
9961         (mono_assembly_close): Call mono_debug_close_image().
9962
9963 Wed Aug 22 17:26:02 CEST 2007 Paolo Molaro <lupus@ximian.com>
9964
9965         * sgen-gc.c: use the mono-mmap facilitites instead of hard-coding the
9966         mmap call.
9967
9968 Wed Aug 22 17:17:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
9969
9970         * sgen-gc.c: ensure section->pin_queue_end is initialized
9971         correctly when non pinning objects in the section have been found.
9972
9973 2007-08-22  Marek Habersack  <mhabersack@novell.com>
9974
9975         * appdomain.c (set_domain_search_path): cope with PrivateBinPath
9976         containing a list of directories separated by ':'. MSDN docs say
9977         the directories should be separated with ';'. Part of a bugfix for
9978         bug #81446
9979
9980 2007-08-21  Rodrigo Kumpera  <rkumpera@novell.com>
9981
9982         * class.c (mono_type_retrieve_from_typespec) : fixed the return type
9983         it should MonoType and not MonoClass.
9984
9985 2007-08-21  Atsushi Enomoto  <atsushi@ximian.com>
9986
9987         * culture-info-table.h : regenerated.
9988
9989 2007-08-20  William Holmes  <billholmes54@gmail.com>
9990
9991         *file-io.c: Added ves_icall_System_IO_MonoIO_ReplaceFile
9992          to call ReplaceFile Kernel32 on windows or in io-layer.
9993         *file-io.h: Added deceleration for ves_icall_System_IO_MonoIO_ReplaceFile
9994         *icall-def.h: Register ves_icall_System_IO_MonoIO_ReplaceFile
9995          as an internal call.
9996
9997         Code is contributed under MIT/X11 license.
9998
9999 2007-08-20  Jb Evain  <jbevain@novell.com>
10000
10001         * class-internals: add definitions for MONO_EXCEPTION_METHOD_ACCESS
10002         and MONO_EXCEPTION_FIELD_ACCESS.
10003
10004         * debug-helpers.[c|h]: new mono_field_full_name function.
10005
10006 2007-08-20  Mark Probst  <mark.probst@gmail.com>
10007
10008         * class.c: Removed class_security_level() and moved it to
10009         security-core-clr.c.
10010
10011         * security-core-clr.c, security-core-clr.h: class_security_level()
10012         is now public and renamed to mono_security_core_clr_class_level().
10013         It also looks for security attributes in the classes a class is
10014         nested in.
10015
10016 2007-08-20  Mark Probst  <mark.probst@gmail.com>
10017
10018         * security-core-clr.c, security-core-clr.h: CoreCLR security
10019         utility functions.
10020
10021         * Makefile.am: Added security-core-clr.[ch].
10022
10023         * security-manager.c, security-manager.h: Functions and enum for
10024         setting and getting the security mode.
10025
10026         * class.c: CoreCLR security checks.
10027
10028 Mon Aug 20 12:38:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
10029
10030         * icall-def.h, process.c, process.h: implemented icall to get
10031         user/system processor times.
10032
10033 2007-08-17  Mark Probst  <mark.probst@gmail.com>
10034
10035         * domain.c, threads.c, class-internals.h, domain-internals.h: New
10036         reader-lock-free jit_info_table.
10037
10038 2007-08-17  Zoltan Varga  <vargaz@gmail.com>
10039
10040         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_CUSTOM.
10041
10042         * marshal.c (mono_marshal_type_size): Ditto. Fixes #82465 and #82466.   
10043
10044         * object-internals.h (MonoException): Add missing _data member.
10045
10046 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
10047
10048         * loader.c (find_method, find_method_in_class): Fixed bug #81466,
10049         checking that only methods with matching qname or fqname are picked
10050         from implemented interfaces.
10051
10052 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
10053
10054         * verify.c (do_newarr):added, do type verification of
10055         newarr ops, push the right value on the eval stack.
10056         * verify.c (mono_method_verify): use do_newarr
10057
10058
10059 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
10060
10061         * verify.c (do_ldobj_value, do_unbox_value and do_box_value):
10062         factored the common code into get_boxable_mono_type, which
10063         is now using mono_type_get_full, this fixed byref related tests.
10064
10065 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
10066
10067         * class.c: added mono_type_get_full, this function has the same
10068         behavior of mono_class_get_full but the returned MonoType has
10069         all metadata of the associated token in case of a typespec token.
10070         * class.c: added mono_type_retrieve_from_typespec, used by 
10071         mono_type_get_full to retrieve the token type.
10072         * class.c (mono_class_create_from_typespec): changed to use
10073         mono_type_retrieve_from_typespec.
10074         * class.c (mono_ldtoken): changed to use mono_type_get_full
10075         for MONO_TOKEN_TYPE_(DEF|REF|SPEC).
10076         * class-internals.h: exported mono_type_get_full for internal use.
10077
10078 2007-08-16  Jb Evain  <jbevain@novell.com>
10079
10080         * domain.c (supported_runtimes): add entry for
10081         the 'moonlight' runtime version.
10082
10083 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
10084
10085         * verify.c (mono_method_verify): small typo sliped in.  
10086
10087 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
10088
10089         * verify.c (do_unbox_value): added, do type verification of
10090         unboxing ops
10091         * verify.c (mono_method_verify): use do_unbox_value
10092
10093
10094 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
10095
10096         * verify.c (dump_stack_value): fixed typo, was printing string
10097         instead of object on stack.
10098         * verify.c (do_box_value): moved the byref check up as it leads
10099         to invalid code and should be done earlier.
10100         * verify.c: improved error messages for and ldobj
10101
10102 2007-08-15  William Holmes  <billholmes54@gmail.com>
10103
10104         * marshal.c (emit_marshal_custom): Omit the call to 
10105           marshal_native_to_managed when calling native to managed 
10106           and the argument is specified as an out argument.
10107
10108         Code is contributed under MIT/X11 license.
10109
10110 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
10111
10112         * verify.c: fixed the type checks for generics, function pointers and vectors.
10113         Added type verification for ldobj and ldtoken. The verifier
10114         would segfault if header or signature of a method contained references
10115         to non-existant types.
10116
10117 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
10118
10119         * marshal.c (cominterop_get_ccw): Patch from
10120         Bill Holmes to no walk up interface hierarchy. 
10121         All parent methods should be present in the interface for COM.
10122    
10123         Code is contributed under MIT/X11 license.
10124
10125 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
10126
10127         * marshal.c (emit_marshal_com_interface): Patch from
10128         Bill Holmes to handle COM Interfaces as return values
10129         for native->managed calls.
10130    
10131         Code is contributed under MIT/X11 license.
10132
10133 2007-08-14  Jonathan Chambers  <joncham@gmail.com>
10134
10135         * marshal.c (cominterop_get_idispatch_for_object): Implement
10136         for runtime callable wrappers.
10137    
10138         Code is contributed under MIT/X11 license.
10139
10140 2007-08-13  Rodrigo Kumpera  <rkumpera@novell.com>
10141
10142         * pedump.c (main): changed from mono_init to mono_init_from_assembly
10143         so 2.0 types are accessible
10144
10145
10146 2007-08-13  Miguel de Icaza  <miguel@novell.com>
10147
10148         * domain.c (mono_init_internal): Call mono_assembly_load_friends
10149         once we load mscorlib.   Due to the order in which we initialize,
10150         the mono_assembly_load_full routine that loads mscorlib did not
10151         load friends.   We now load it once we load the
10152         mono_defaults.internals_visible_class class. 
10153
10154         * assembly.c: Expose the mono_load_friend_assemblies method.
10155
10156 2007-08-11  Rodrigo Kumpera  <rkumpera@novell.com>
10157
10158         * verify.c: improved the handling of boxing, better
10159         type checking for unary ops and conversion. Fix bug
10160         regarding managed pointer compatibility checking
10161
10162 2007-08-11  Zoltan Varga  <vargaz@gmail.com>
10163
10164         * icall.c (ves_icall_System_Array_SetGenericValueImpl): New icall.
10165
10166         * threads.c threads-types.h: Export mono_thread_get_stack_bounds.
10167
10168 2007-08-09  Raja R Harinath  <rharinath@novell.com>
10169
10170         * reflection.c (dup_type): Remove.
10171         * class.c (dup_type): Remove.
10172         (mono_metadata_signature_deep_dup): Use 'mono_metadata_type_dup'
10173         instead of the dodgy 'dup_type'.
10174         (inflate_generic_type): Likewise.  Fix the VAR/MVAR cases to
10175         handle the case where 'dup_type' needed the second argument.
10176
10177 2007-08-08  Zoltan Varga  <vargaz@gmail.com>
10178
10179         * domain.c: Fix a warning.
10180
10181 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
10182
10183         * class.c (mono_class_setup_vtable_general): Fixed bug #77127,
10184         checking that methods with the same fqname are not overridden
10185         with a method from an ancestor.
10186
10187 2007-08-07  Zoltan Varga  <vargaz@gmail.com>
10188
10189         * threads.c (free_thread_static_data_helper): Avoid a crash if
10190         thread->static_data is not yet set.
10191
10192 2007-08-07  Jonathan Chambers  <joncham@gmail.com>
10193
10194         * marshal.c: Use correct image when emitting
10195         native wrapper for COM calls.
10196    
10197         Code is contributed under MIT/X11 license.
10198
10199 2007-08-07  Atsushi Enomoto  <atsushi@ximian.com>
10200
10201         * icall-def.h, security.c, security.h :
10202           added icall wrapper to ProtectedMemory.[Unprotect|Protect]Data().
10203
10204 2007-08-07  Martin Baulig  <martin@ximian.com>
10205
10206         * mono-debug-debugger.h
10207         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD'.
10208
10209         * domain.c (mono_domain_free): Call
10210         `mono_debugger_event (MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD)'.
10211
10212 2007-08-06  Rodrigo Kumpera  <rkumpera@novell.com>
10213
10214         * verify.c (check_underflow, check_overflow): error message now returns IL offset
10215         * verify.c (in_same_block): code should test if either offset is inside the clauses
10216         * verify.c (mono_method_verify): push the exception into the eval stack of exception
10217         and filter blocks
10218
10219 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
10220
10221         * image.c (mono_image_close): Fix a leak.
10222
10223         * object.c (mono_runtime_invoke_array): Avoid using alloca.
10224
10225         * icall.c (ves_icall_FieldInfo_SetValueInternal): Ditto.        
10226
10227 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
10228
10229         * domain.c, threads.c, threads-types.h: fix memory retention issue
10230         with thread static variables not being cleared on domain unload.
10231         Reuse thread static slots after domain unload.
10232
10233 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
10234
10235         * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
10236         nullable type.
10237
10238         * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
10239         now done in mono_runtime_invoke_array.
10240
10241         * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the 
10242         receiver is a nullable type.
10243
10244         * class.c (mono_class_is_assignable_from): Handle the case when klass is a 
10245         generic parameter.
10246
10247 2007-08-03  Jonathan Chambers  <joncham@gmail.com>
10248
10249         * marshal.c: Implement COM Objects as return type for 
10250         managed->unmanaged calls. Added Release calls for COM Object
10251         out/return values in managed->unmanaged calls.
10252
10253         Code is contributed under MIT/X11 license.
10254
10255 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
10256
10257         * threads.h, threads-type.h: move the hazard pointer declarations
10258         to the private header.
10259
10260 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
10261
10262         * file-io.c, appdomain.c: memory leak fixes.
10263
10264 2007-08-02  Dick Porter  <dick@ximian.com>
10265
10266         * socket-io.c
10267         (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
10268         SO_REUSEADDR setting into io-layer/sockets.c.
10269
10270 2007-08-01  Zoltan Varga  <vargaz@gmail.com>
10271
10272         * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
10273         from Object when called on a generic parameter. Fixes #82211.
10274
10275 2007-08-01  Dick Porter  <dick@ximian.com>
10276
10277         * file-io.c (convert_share): Test FileShare values bit-by-bit.
10278         Fixes bug 79250 yet again.
10279
10280 2007-07-30  Martin Baulig  <martin@ximian.com>
10281
10282         Merged the `debugger-dublin' branch.
10283
10284         * mono-debug.h
10285         (MonoDebugDataTable): New typedef.
10286         (MonoDebugMethodAddressList): New typedef.
10287         (MonoDebugWrapperData): Removed.
10288         (MonoDebugSymbolTable): Removed `current_data_table',
10289         `current_data_table_size', `current_data_table_offset'.
10290         (MonoDebugDataItemType): Moved into mono-debug.c.
10291         (MonoDebugMethodJitInfo): Remove `address'.
10292         (mono_debug_data_table): New global variable.
10293         (mono_debug_lookup_method_addresses): New public function.
10294         (mono_debug_find_method): Take a `MonoMethod *', not a
10295         `MonoDebugMethodInfo *'.
10296
10297         * mono-debug.c: Drop support for the old symbol tables.
10298
10299 2007-06-28  Martin Baulig  <martin@ximian.com>
10300
10301         * mono-debug.c (mono_debug_debugger_version): New public variable.
10302
10303 2007-07-31  William Holmes  <billholmes54@gmail.com>
10304
10305         * metadata.c Changed mono_type_create_from_typespec to not insert
10306           the type into the hash map until after
10307           do_mono_metadata_parse_type has completed.
10308         Fixes Bug #82194
10309         Code is contributed under MIT/X11 license.
10310
10311 2007-07-31  Zoltan Varga  <vargaz@gmail.com>
10312
10313         * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
10314         generic parameter. Fixes #82211.
10315
10316 2007-07-27  Jb Evain  <jbevain@novell.com>
10317
10318         * pedump.c (dump_metadata, dump_metadata_header): dump
10319         versions contained in the metadata header.
10320
10321 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
10322
10323         * threads.c: register small_id_table with the GC.
10324
10325 2007-07-27  Mark Probst  <mark.probst@gmail.com>
10326
10327         * threads.c, threads.h, class-internals.h, object-internals.h:
10328         Hazard pointers, to be used by lock-free parallel algorithms.
10329
10330 2007-07-26  Dick Porter  <dick@ximian.com>
10331
10332         * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
10333         routine on non-windows platforms, as I've not managed to think of
10334         a non-kludgy way of doing this.  Finishes off bug 78739.
10335
10336 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
10337
10338         * object.c: properly setup interface_bitmap in proxy vtables.
10339
10340 2007-07-25  Marek Habersack  <mhabersack@novell.com>
10341
10342         * appdomain.c (get_shadow_assembly_location): do not use TickCount
10343         to create unique shadow copy target directories, use the domain's
10344         serial number instead. Each domain gets a unique target directory
10345         that way.
10346
10347         * domain.c (mono_domain_create): added code to increment domain
10348         shadow copy serial number and cache the value in the current
10349         domain structure.
10350
10351         * domain-internals.h (struct _MonoDomain): added a new field -
10352         shadow_serial to hold the serial number used in generation of
10353         shadow-copy directories. This is to make sure that the directory
10354         name is unique for each and every domain created. We avoid a race
10355         condition with overriding assemblies already in use by other app
10356         domains.
10357
10358 2007-07-24  Rodrigo Kumpera  <rkumpera@novell.com>
10359
10360         * class.c (mono_bounded_array_class_get): fixed memory leak when 
10361         binding generic parameters.
10362
10363 2007-07-24  Raja R Harinath  <rharinath@novell.com>
10364
10365         * metadata.c (do_mono_metadata_parse_generic_class): Use
10366         mono_metadata_lookup_generic_class.  Don't g_assert on a metadata
10367         error.
10368
10369 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
10370
10371         * loader.c, class-internals.h, reflection.c: removed the per-method
10372         generics hashtable: we use the global one through the call of
10373         mono_class_inflate_generic_method ().
10374
10375 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
10376
10377         * class.c, metadata.c, class-internals.h: introduce yet another
10378         generics global cache for inflated methods (fixes 98% of the perf
10379         issue in bug #81806).
10380
10381 2007-07-23  Raja R Harinath  <rharinath@novell.com>
10382
10383         Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
10384         * metadata.c (mono_metadata_lookup_generic_inst): Kill.
10385         (mono_metadata_get_generic_inst): New.  Given a list of MonoType*,
10386         return a MonoGenericInst containing (a copy) of those types.
10387         (mono_metadata_inflate_generic_inst): Update to changes.
10388         (mono_metadata_parse_generic_inst): Likewise.
10389         (mono_get_shared_generic_inst): Likewise.
10390         * reflection.c (mono_class_bind_generic_parameters): Likewise.
10391         (mono_reflection_bind_generic_method_parameters): Likewise.
10392         * metadata-internals.h: Likewise.
10393         * icall.c (free_generic_context): Kill.
10394         (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
10395
10396         * reflection.c (reflection_methodbuilder_to_mono_method): Use
10397         mono_metadata_type_dup.
10398         * marshal.c (mono_mb_create_method): Likewise.
10399
10400         * metadata.c (mono_metadata_type_dup): Rename from
10401         mono_metadata_type_dup_mp.  Take an optional mempool instead of a
10402         MonoImage.  Handle a few more cases, esp. when no mempool is given.
10403         * marshal.c, metadata-internals.h: Update to changes.
10404
10405 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
10406
10407         * class.c: fixed a small leak for array classes and removed warning.
10408
10409 2007-07-22  Zoltan Varga  <vargaz@gmail.com>
10410
10411         * loader.c (mono_method_get_param_token): Make this work on generic methods.
10412         Return 0x8000000 for return parameters. Fixes #82161.
10413
10414 2007-07-21  Marek Habersack  <grendello@gmail.com>
10415
10416         * appdomain.c (get_shadow_assembly_location): append the current
10417         ticks value to the path. Avoids overwriting the same assemblies by
10418         several threads at the same time.
10419
10420 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
10421         and Raja R Harinath  <rharinath@novell.com>
10422
10423         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
10424         Simplify slightly.
10425         (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
10426         property for testing if a method is a generic method definition.
10427
10428 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
10429
10430         * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
10431
10432 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
10433
10434         * verify.c: used function from private branch, reverted to the one in class.h 
10435
10436 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
10437
10438         * verify.c: a typo slipped in and the code wont compile
10439
10440 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
10441
10442         * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
10443         disabled box instruction as it is doing the wrong thing
10444         improved stack dump messages, now it is easier to debug type related issues
10445
10446
10447 2007-07-19  Juraj Skripsky  <js@hotfeet.ch>
10448
10449         * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak. 
10450
10451 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
10452
10453         * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from 
10454         TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
10455         grouped with class and valuetype. This change will simply 
10456         the code as it should be handled just like unmanaged pointers.
10457
10458 2007-07-19  Mark Probst  <mark.probst@gmail.com>
10459
10460         * class.c (concat_two_strings_with_zero): Fixed a silly bug.
10461
10462 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
10463
10464         * verify.c: several stack merge issues fixed, reference comparisons now
10465         check the type size. strict type check now works correctly.
10466         added more uses of IS_MANAGED_POINTER macro.
10467         fixed issues pointed by running the test suite against .net.
10468         
10469
10470 2007-07-19  Mark Probst  <mark.probst@gmail.com>
10471
10472         * class.c, loader.c, class-internals.h: Removed the
10473         MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
10474         defines.
10475
10476         * icall.c: Better error checking in some internal reflection
10477         methods.
10478
10479 2007-07-18  William Holmes  <billholmes54@gmail.com>
10480
10481         * filewatcher.c : removed unused variable 'filename' in 
10482           ves_icall_System_IO_FSW_SupportsFSW
10483
10484 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
10485
10486         * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
10487         obsolete, removed.
10488
10489 2007-07-15  Zoltan Varga  <vargaz@gmail.com>
10490
10491         * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
10492         
10493         * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
10494
10495 2007-07-14  Zoltan Varga  <vargaz@gmail.com>
10496
10497         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
10498         Implement generics support.
10499         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
10500
10501         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
10502         type_args and method_args arguments.
10503         (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
10504         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
10505         (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
10506
10507 2007-07-13  Rodrigo Kumpera  <rkumpera@novell.com>
10508
10509         * reflection.c: patch from Thong Nguyen to fix atribute resolution.
10510           It adds a rootimage parameter to mono_reflection_get_type_internal,
10511           adds new function mono_reflection_get_type_with_rootimage and use
10512           the rootimage to resolve the types instead of the current image
10513
10514 2007-07-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
10515
10516         * culture-info-table.h: Forgot to update after r78304.
10517
10518 2007-07-13  Raja R Harinath  <rharinath@novell.com>
10519
10520         * class.c (mono_class_is_open_constructed_type)
10521         <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
10522
10523 2007-07-12  Rodrigo Kumpera  <rkumpera@novell.com>
10524
10525         * class.c (mono_bounded_array_class_get):  method fails if used with
10526         an incomplete TypeBuilder enum (no basetype field), fixed it by 
10527         avoiding calculating the size for such array as it cannot be instantiated.
10528         Fix bug #82015
10529
10530 2007-07-12  Raja R Harinath  <rharinath@novell.com>
10531
10532         * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
10533         field.
10534         * metadata.c, reflection.c: Update to changes.
10535
10536 2007-07-11  Rodrigo Kumpera  <rkumpera@novell.com>
10537
10538         * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
10539         mono_class_is_valid_enum, they are used to valide a enum when loading.
10540         * reflection.c: used new functions to throw TypeLoadException when and
10541         invalid enum is build with TypeBuilder. Fixes #82018
10542   
10543 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
10544
10545         * object.c: forgot commit of mono_class_setup_methods () to access
10546         iface->methods.
10547         * object-internals.h: added a few more handy fields to
10548         MonoIMTCheckItem.
10549
10550 2007-07-11  Zoltan Varga  <vargaz@gmail.com>
10551
10552         * object.c (build_imt): Call mono_class_setup_methods () before accessing 
10553         iface->methods.
10554
10555 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
10556
10557         * class-internals.h, object-internals.h, object.c: IMT-based
10558         interface invocation core from Massimiliano Mantione
10559         (massi@ximian.com) with a reworked arch-specific interface,
10560         bsearch implementation and a few bugfixes and memory savings by me.
10561
10562 2007-07-10  Rodrigo Kumpera  <rkumpera@novell.com>
10563
10564         * class.c (mono_class_create_from_typedef): mono would segfault if 
10565         an enum did not have a __value field. It now throws a TypeLoadException
10566         for such cases. Fix bug #82022
10567
10568 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
10569
10570         * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
10571
10572 2007-07-09  Mark Probst  <mark.probst@gmail.com>
10573
10574         * class.c (mono_class_init): If a class is already inited but has
10575         an exception_type set, return FALSE, not TRUE.  Fixes: 82050.
10576
10577 2007-07-09  Mark Probst  <mark.probst@gmail.com>
10578
10579         * class.c: Properly handle the case of an unimplemented interface
10580         method.  Fixes: 81673.
10581
10582 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
10583
10584         * class-internals.h, object.c: cleanup patch from massi: use
10585         MonoVTable->interface_bitmap since the vtable interfaces offset array
10586         is going away.
10587
10588 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
10589
10590         * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
10591         GetMDStreamVersion icall instead.
10592
10593 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
10594
10595         * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
10596         not use mono_dl_build_path() with a full library name: makes
10597         fallbacks to libgaim and libfam work.
10598
10599 2007-07-06  William Holmes  <billholmes54@gmail.com>
10600
10601         * assembly.c: Added a continue statement in probe_for_partial_name when
10602          parse_assembly_directory_name fails.  Fixes : 82002
10603
10604 2007-07-06  Rodrigo Kumpera  <rkumpera@novell.com>
10605
10606         * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
10607         and added a verification  for TYPEDBYREF.
10608         * verify.c (verify_stack_type_compatibility): fix handling of byref types,
10609         make native int interchangeable with int32 and some small cleanup and formating.
10610         * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
10611         handle byref of byref.
10612         * verify.c (push_local): handle byref of byref.
10613         * verify.c (do_binop): invalid mix of values is unverifiable
10614         * verify.c (do_invoke_method): fixed the handling of bad params on stack and
10615         added visibility checks
10616         * verify.c (field related method): added visibility checks
10617         * verify.c (do_push_field): cannot take the address of a temporary valuetype field
10618
10619 2007-07-06  Zoltan Varga  <vargaz@gmail.com>
10620
10621         * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
10622         string.
10623
10624 2007-07-05  Zoltan Varga  <vargaz@gmail.com>
10625
10626         * profiler.c (mono_profiler_load): Fix an off-by-one error.
10627
10628         * marshal.c (emit_marshal_string): When returning a string from managed code,
10629         allways make a copy even for unicode strings. Fixes #81990.
10630
10631 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
10632
10633         * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
10634         of byref generic inst types (bug #81997).
10635
10636 2007-07-03  Rodrigo Kumpera  <rkumpera@novell.com>
10637
10638         * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
10639         * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
10640
10641 2007-07-02  Zoltan Varga  <vargaz@gmail.com>
10642
10643         * marshal.c (emit_marshal_string): Add support for unicode strings in
10644         MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
10645
10646 2007-07-02 Rodrigo Kumpera  <rkumpera@novell.com>
10647
10648         * verify.c: field load/store are now verified, missing only access checks now
10649
10650 2007-06-28  Martin Baulig  <martin@ximian.com>
10651
10652         * mono-debug.c (mono_debug_debugger_version): New public variable.
10653
10654 2007-06-24  Gert Driesen  <drieseng@users.sourceforge.net>
10655
10656         * locales.c: When constructing DateTimeFormat or NumberFormat for
10657         MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
10658         MonoCultureInfo contructed from the current locale is always
10659         read-only and has UseUserOverride set to true. All MonoCultureInfo
10660         instances returned for GetCultures have both IsReadOnly and
10661         UseUserOverride set to true. Fixes part of bug #81930.
10662
10663 2007-06-22  Jonathan Chambers  <joncham@gmail.com>
10664
10665        * icall-def.h: Update System.__ComObject icalls
10666        * marshal.c: Avoid managed transition (and object creation)
10667        when looking up COM interface in RCW.
10668        * marshal.h: Ditto.
10669        
10670        Code is contributed under MIT/X11 license.
10671
10672 2007-06-22  Zoltan Varga  <vargaz@gmail.com>
10673
10674         * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
10675         to avoid crashes during assembly unloading.
10676
10677 2007-06-22  Raja R Harinath  <rharinath@novell.com>
10678
10679         Fix MethodInfo.IsGenericMethodDefinition
10680         * reflection.c (mono_reflection_bind_generic_method_parameters):
10681         Rearrange code to ensure we always uses a generic method definition.
10682         * class.c (mono_class_inflate_generic_method_full): Set
10683         'generic_container' field only for generic method definitions.
10684         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
10685         Use presense of 'generic_container' field as indication of being a
10686         generic method definition.
10687
10688 2007-06-21  Zoltan Varga  <vargaz@gmail.com>
10689
10690         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
10691
10692         * object-internals.h: Reflect changes in the layout of the managed Delegate
10693         class.
10694         
10695         * object-internals.h reflection.c icall-def.h: Applied patch from Robert
10696         Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
10697         runtime memory used by the dynamic method. Fixes #77146.
10698
10699 2007-06-21  Dick Porter  <dick@ximian.com>
10700
10701         * file-io.h: 
10702         * file-io.c (convert_share): Cope with FileShare.Delete.  Patch
10703         from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
10704         81767.
10705
10706 2007-06-21  Raja R Harinath  <rharinath@novell.com>
10707
10708         * reflection.c (method_encode_methodspec): Add a tripwire.
10709         * class.c (inflate_generic_type): The fully open generic type is
10710         not the same as the generic type definition.
10711
10712 2007-06-21  Martin Baulig  <martin@ximian.com>
10713
10714         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
10715
10716         * mono-debug-debugger.h
10717         (MonoDebuggerBreakpointInfo): Removed.
10718         (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
10719         (mono_debugger_remove_breakpoint): Likewise.
10720         (mono_debugger_breakpoint_callback): Likewise.
10721         (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
10722
10723 2007-06-21  Raja R Harinath  <rharinath@novell.com>
10724
10725         * metadata.c (mono_metadata_lookup_generic_class): The fully open
10726         generic type is not the same as the generic type definition.
10727         * class.c (mono_generic_class_get_class): Likewise.
10728
10729 2007-06-20  Geoff Norton  <gnorton@customerdna.com>
10730
10731         * icall.c: The second argument to 
10732         System.Reflection.MethodBase.GetMethodFromHandleInternalType
10733         is a MonoType not a MonoClass.
10734
10735 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
10736
10737         * verify.c: support for function pointers in the verifier
10738
10739 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
10740
10741         * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
10742
10743 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
10744
10745         * assembly.c: removed Mono.Data.SqliteClient from the list of
10746         forward-compatible assemblies as it breaks the ABI (bug #81899).
10747
10748 2007-06-19  Raja R Harinath  <rharinath@novell.com>
10749
10750         * metadata.c (mono_metadata_lookup_generic_class): Protect cache
10751         lookup/update with the loader lock.
10752         * reflection.c (mono_class_bind_generic_parameters): No need to
10753         protect mono_metadata_lookup_* with the loader lock.
10754         * class.c (inflate_generic_type): Likewise.
10755         
10756         * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
10757         on a generic instantiated type.
10758
10759 2007-06-18  Rodrigo Kumpera <kumpera@gmail.com>
10760
10761         *verify.c: produce meanfull error messages on verification error
10762         *verify.c: fixed some cases of verification errors reported as validation errors
10763         *pedump.c: fixed the error name array, now it shows validation errors properly
10764         *verify.h: fixed the contant that should be used for verification errors
10765
10766 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
10767
10768         * metadata.c, image.c, metadata-internals.h: part of the fixes needed
10769         for bug #77596, 81858 and 80743 (generics data structures on domain
10770         unload).
10771
10772 2007-06-15  Raja R Harinath  <rharinath@novell.com>
10773
10774         Avoid allocating 'MonoGenericContext' on the heap.
10775         * class-internals (_MonoMethodInflated::context): Make field
10776         inline, not a pointer.
10777         * loader.c (method_from_methodspec): Allocate 'new_context' on the
10778         stack.  Use the context embedded within the inflated method as the
10779         hash key, rather than 'new_context'.
10780         * class.c (inflate_generic_context): Simplify.  Return a struct
10781         rather than allocating on the heap.
10782         (mono_class_inflate_generic_method_full): Update to changes.  Now,
10783         doesn't salt away a copy of the context -- simplifying the
10784         lifetime rules of a 'MonoGenericContext *'.
10785         (mono_method_get_context): Return pointer to embedded context.
10786         (setup_generic_array_ifaces): Allocate temporary context on stack.
10787         * reflection.c (inflate_mono_method): Likewise.
10788         (mono_reflection_bind_generic_method_parameters): Likewise.
10789         Use the context embedded within the inflated method as the hash key.
10790
10791         Avoid a source of allocation of 'MonoGenericContext'.
10792         * class-internals.h (_MonoGenericClass::context): Combine 'inst'
10793         and 'cached_context' fields into embedded 'MonoGenericContext' field.
10794         * class.c: Update to changes.
10795         (mono_generic_class_get_context): Simplify drastically.  Now just
10796         returns a pointer to the field.
10797         * metadata-internals.h (mono_metadata_generic_context_hash): Mark
10798         argument as a const pointer.
10799         (mono_metadata_generic_context_equal): Likewise.
10800         * metadata.c, loader.c, icall.c, reflection.c, verify.c:
10801         Update to changes.
10802
10803 2007-06-14  Rodrigo Kumpera  <kumpera@gmail.com>
10804
10805         * verify.c improved the handling of brtrue/brfalse, factored out common code
10806
10807 2007-06-14  Raja R Harinath  <rharinath@novell.com>
10808
10809         Kill MonoGenericMethod.
10810         * class-internals.h (MonoGenericContext::method_inst): Rename from
10811         'gmethod' and convert to a MonoGenericInst.
10812         (MonoGenericMethod): Remove.
10813         * metadata.h (MonoGenericMethod): Note that the name is obsolete.
10814         * loader.c (method_from_methodspec): Update to changes.  Use a
10815         MonoGenericContext as the key to the hashtable.
10816         * metadata.c (mono_metadata_generic_context_equal): Rename from 
10817         'mono_metadata_generic_method_equal' and take MonoGenericContext.
10818         (mono_metadata_generic_context_hash): Likewise from
10819         'mono_metadata_generic_method_hash'.  Change hash function.
10820         (mono_metadata_load_generic_params): Update to changes.
10821         (mono_get_shared_generic_method): Remove.
10822         * metadata-internals.h (mono_get_shared_generic_method): Remove.
10823         * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
10824         (inflate_generic_context): Likewise.
10825         (mono_class_inflate_generic_method_full): Likewise.
10826         (setup_generic_array_ifaces): Likewise.
10827         (mono_class_create_from_typespec): Likewise.
10828         * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
10829         (method_encode_methodspec): Update callsite.
10830         (reflection_methodbuilder_to_mono_method): Update to changes.
10831         (mono_reflection_bind_generic_method_parameters): Likewise.  Use a
10832         MonoGenericContext as the key to the hashtable.
10833         (inflate_mono_method): Update to changes.
10834
10835         * class-internals.h (MonoGenericMethod::container): Remove.
10836         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
10837
10838 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
10839
10840         * profiler-private.h, profiler.c, profiler.h: added API to profile
10841         exception events.
10842
10843 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
10844
10845         * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments 
10846
10847 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
10848
10849         * verify.c: method invocation is now validated, now we verify parameter types on stack.
10850         Fixed overflow and underflow not aborting the verification process.
10851
10852 2007-06-13  Mark Probst  <mark.probst@gmail.com>
10853
10854         * class-internals.h (MonoStats): Added stats entries for dynamic
10855         code allocations.
10856
10857 2007-06-12  Zoltan Varga  <vargaz@gmail.com>
10858
10859         * loader.c (mono_free_method): Free header->locals and header->clauses.
10860
10861         * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
10862         dynamic case.
10863
10864         * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
10865
10866         * class.c (setup_interface_offsets): Allocate memory from the image mempool.
10867
10868 2007-06-12  Raja R Harinath  <rharinath@novell.com>
10869
10870         * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
10871         the tables.
10872
10873 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
10874
10875         *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
10876
10877 2007-06-11  Raja R Harinath  <harinath@gmail.com>
10878
10879         MonoGenericMethod on a diet
10880         * class-internals.h (_MonoMethodInflated::reflection_info): Move
10881         here ...
10882         (_MonoGenericMethod::reflection_info): ... from here.
10883         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
10884         Update to changes.
10885         * reflection.c (inflate_mono_method): Likewise.
10886         (mono_reflection_bind_generic_method_parameters): Likewise.
10887
10888 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
10889
10890         *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
10891         *verify.c: factored long ldarg forms to share code with short forms
10892
10893 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
10894
10895         *verify.c: fixed code formating factored some duplicate code
10896         into a new function
10897
10898         *verify.h: fixed binary incompatibility introduced earlier
10899
10900         *pedump.c: fixed formating
10901
10902 2007-06-11  Raja R Harinath  <harinath@gmail.com>
10903
10904         Fix assertion when disassembling Mono.C5.dll
10905         * loader.c (method_from_methodspec): Avoid inflating a method
10906         twice with the same context.  If the methodref is inflated, use
10907         the declaring method instead.
10908
10909         * class.c (mono_class_from_generic_parameter): Fix case similar to
10910         bug #81830 handled below, but for method containers.
10911
10912 2007-06-10  Raja R Harinath  <harinath@gmail.com>
10913
10914         * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
10915         get_shared_generic_class.  Directly inflate the instance.
10916         [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
10917         (inflate_generic_class): Delete.
10918         (get_shared_generic_class): Delete.  Move setting of
10919         'cached_class' and 'cached_context' ...
10920         * metadata.c (mono_metadata_lookup_generic_class): ... here.
10921
10922         * metadata.c (mono_metadata_lookup_generic_class): Change
10923         signature to take the components of a MonoGenericClass rather than
10924         an allocated MonoGenericClass.  Change semantics to be intern-like.
10925         * reflection.c (mono_class_bind_generic_parameters): Update to
10926         changes.  Make locking region tighter.
10927         * class.c (inflate_generic_class): Update to changes.
10928         (get_shared_generic_class): Likewise.
10929         * metadata-internals.h: Likewise.
10930
10931         * reflection.c (mono_class_bind_generic_parameters): Take and
10932         return a MonoClass*, not a MonoType*.  Add 'is_dynamic' parameter.
10933         (mono_reflection_bind_generic_parameters): Use
10934         'mono_class_bind_generic_parameters' rather than duplicate the code.
10935         * class.c (mono_bounded_array_class_get): Update to changes.
10936         * object-internals.h: Likewise.
10937
10938         * reflection.c (mono_class_bind_generic_parameters): Only support
10939         parameterizing generic type definitions.  Remove support for other
10940         open types.
10941
10942 2007-06-08  Zoltan Varga  <vargaz@gmail.com>
10943
10944         * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
10945
10946         * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
10947         in the dynamic case.
10948
10949 2007-06-08  Gert Driesen  <drieseng@users.sourceforge.net>
10950
10951         * threads.c: When cleaning up thread, reset the Background bit.
10952         Fixes bug #81720.
10953
10954 2007-06-08  Jonathan Chambers  <joncham@gmail.com>
10955
10956        * metadata.c: Move variable declarations to top of scope.
10957        * verify.c: Move variable declarations to top of scope.
10958
10959        Code is contributed under MIT/X11 license.
10960
10961 2007-06-08  Raja R Harinath  <rharinath@novell.com>
10962
10963         * reflection.c (mono_class_bind_generic_parameters): Replace
10964         open-coded loop with mono_metadata_inflate_generic_inst.
10965
10966         * class.c (get_shared_generic_class): Don't call
10967         mono_get_shared_generic_inst.  Use the container's own
10968         'class_inst'.
10969
10970         * metadata.c (mono_metadata_load_generic_params): Move
10971         initialization of 'context' field here from ...
10972         * class.c (mono_class_create_from_typedef): ... here, and ...
10973         * loader.c (mono_get_method_from_token): ... here.
10974
10975         * class.c (get_shared_generic_class): Rename from
10976         mono_get_shared_generic_class and make static.
10977         (mono_get_shared_generic_inst): Move to metadata.c.
10978         * loader.c (mono_get_shared_generic_method): Likewise.
10979         * class-internals.h, metadata-internals.h: Update to changes.
10980
10981         Fix #81830
10982         * class.c (mono_class_from_generic_parameter): Don't assume a
10983         generic container owner exists.  Generic containers from monodis
10984         don't have any.
10985
10986 2007-06-06  Rodrigo Kumpera  <kumpera@gmail.com>
10987
10988         * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
10989         * verify.h: new typedefs to returns the non-verifiable status
10990         * verify.c: initial implementation of generics, stack merging and object compatibility check
10991
10992 2007-06-06  Mark Probst  <mark.probst@gmail.com>
10993
10994         * class.c, image.c, class-internals.h (MonoImage): class_cache is
10995         a MonoInternalHashTable again (fixed bug in internal hash table
10996         code).
10997
10998 2007-06-06  Mark Probst  <mark.probst@gmail.com>
10999
11000         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
11001         MonoInternalHashTable again (fixed bug in internal hash table
11002         code).
11003
11004 2007-06-06  Mark Probst  <mark.probst@gmail.com>
11005
11006         * class.c, image.c, class-internals.h, domain.c,
11007         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
11008         changes.  Have to figure out what makes them break the SWF
11009         regression.
11010
11011 2007-06-04  Mark Probst  <mark.probst@gmail.com>
11012
11013         * class.c, image.c, class-internals.h (MonoImage): class_cache is
11014         a MonoInternalHashTable now.
11015
11016 2007-06-04  Mark Probst  <mark.probst@gmail.com>
11017
11018         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
11019         MonoInternalHashTable now.
11020
11021 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
11022
11023         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
11024         invoke_impl code.
11025
11026         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
11027
11028         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
11029         dependent trampoline.
11030
11031         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
11032
11033         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
11034
11035 2007-05-29  Robert Jordan  <robertj@gmx.net>
11036
11037         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
11038
11039 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
11040
11041         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
11042
11043 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
11044
11045        * marshal.c: Fix interface lookup loops for
11046        cominterop_get_com_slot_for_method and 
11047        cominterop_get_method_interface. Only need to lookup
11048        if type is a class, else use interface type method is on.
11049
11050        Code is contributed under MIT/X11 license.
11051
11052 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
11053
11054         * reflection.c: HasSecurity can be present even if no specially 
11055         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
11056         SecurityAttribute). Fix CAS regression tests on buildbot.
11057
11058 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
11059
11060        * appdomain.c: Add configure checks for header files.
11061        * image.c: Add configure checks for header files.
11062        * file-io.c: Add configure checks for header files.
11063        * debug-mono-symfile.c: Add configure checks for header files.
11064        * threadpool.c: Add configure checks for header files.
11065        * console-io.c: Add configure checks for header files.
11066        * profiler.c: Add configure checks for header files.
11067        * rawbuffer.c: Add configure checks for header files.
11068        * icall.c: Add configure checks for header files.
11069        * rand.c: Add configure checks for header files.
11070        * socket-io.c: Add configure checks for header files.
11071
11072        Code is contributed under MIT/X11 license.
11073
11074 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
11075
11076         * reflection.c (mono_custom_attrs_from_builders): Remove the 
11077         assertion as it breaks the build.
11078         
11079         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
11080
11081         * reflection.c (lookup_custom_attr): Make a copy here too.
11082
11083         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
11084         dynamic images.
11085
11086         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
11087         images.
11088
11089         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
11090         info.
11091
11092 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
11093
11094         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
11095         (load_cattr_value): Ditto.
11096
11097 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
11098
11099         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
11100
11101 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
11102
11103         * threads.c: In "start_wrapper", set apartment_state to MTA if
11104         apartment_state is Unknown and we're running on 2.0 profile or
11105         higher.
11106         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
11107         to main method, then set apartment_state to Unknown on 1.0 profile,
11108         and MTA on 2.0 profile.
11109
11110 2007-05-16  Jb Evain  <jb@nurv.fr>
11111
11112         * class-internals.h (MonoDefaults): Add an attribute_class and
11113           customattribute_data_class.
11114         * domain.c (mono_init_internal): Populate them.
11115         * reflection.c: Use them to remove duplicates. Make a vew
11116         MonoClass variables `static'.
11117
11118 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
11119
11120         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
11121         step in implementing IMT, so that all isinst checks now can go
11122         through the bitmap.
11123         This was needed because vtables for TransparentProxy need to look
11124         like the vtable of the "target" class, so they need to point to
11125         its interface bitmap directly.
11126
11127         * object.c: inside "mono_class_create_runtime_vtable" and
11128         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
11129
11130 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
11131
11132         * object-internals.h
11133           culture-info.h : added territory field in MonoCulture and
11134           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
11135         * locales.c : fill territory field above too.
11136         * culture-info-table.h : regenerated.
11137
11138 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
11139
11140         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
11141         Fixes #81599.
11142
11143 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
11144
11145         * object.c: Always initialize apartment, even if 
11146         there is no custom attributes on entry point.
11147         
11148         Code is contributed under MIT/X11 license.
11149
11150 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
11151
11152         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
11153         * metadata.c: If no encoding is set, check for unicode
11154         on class.
11155         
11156         Code is contributed under MIT/X11 license.
11157
11158 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
11159
11160         * threads.c: Handle if mono_thread_current returns NULL 
11161         
11162         Code is contributed under MIT/X11 license.
11163
11164 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
11165
11166         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
11167         in start_wrapper. Added mono_thread_init_apartment_state and
11168         mono_thread_cleanup_apartment_state.
11169         * object.c: Initialize thread apartment state on main thread
11170         by checking for STAThreadAttribute on entry point.
11171         * object-internals.h: Add apartment_state field to MonoThread.
11172         * threads-types.h: Add unmanaged definition of 
11173         System.Threading.ApartmentState, MonoThreadApartmentState.
11174         
11175         Code is contributed under MIT/X11 license.
11176         
11177 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
11178
11179         * class.c: Fix windows build.
11180         * class-internals.h: Fix windows build.
11181         
11182         Code is contributed under MIT/X11 license.
11183
11184 2007-05-08  Robert Jordan  <robertj@gmx.net>
11185
11186         * process.c (CreateProcess_internal):
11187         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
11188         .CreateNoWindow was specified. Fixes #81496.
11189
11190 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
11191
11192         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
11193         step in implementing IMT, replaced it with two compact arrays
11194         (interfaces_packed and interface_offsets_packed) and a bitmap that
11195         is used for isinst checks (interface_bitmap).
11196
11197         * class.c: (compare_interface_ids): compare function to pass to
11198         bsearch when looking for an interface with a given id.
11199         (mono_class_interface_offset): reimplemented using bsearch on
11200         interfaces_packed, getting the offset from interface_offsets_packed.
11201         (print_implemented_interfaces): utility debugging function.
11202         (setup_interface_offsets): reworked to initialize interfaces_packed,
11203         interface_offsets_packed and interface_bitmap.
11204
11205         * object.c: replaced all accesses to "MonoClass.interface_offsets"
11206         with uses of interfaces_packed and interface_offsets_packed.
11207
11208 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
11209
11210         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
11211         mono_class_interface_offset prototype to wrap all accesses to
11212         "MonoClass.interface_offsets".
11213
11214         * class.c: Implemented mono_class_interface_offset, and wrapped all
11215         accesses to "MonoClass.interface_offsets".
11216
11217         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
11218         "MonoClass.interface_offsets".
11219
11220 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
11221
11222         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
11223         GetMethodFromHandle overloads (bug #78637).
11224
11225 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
11226
11227         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
11228         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
11229
11230 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
11231
11232         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
11233         #81498.
11234
11235         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
11236         gracefully.
11237         (mono_custom_attrs_from_index): Ditto.
11238
11239         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
11240         Fixes #81501.
11241
11242 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
11243
11244         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
11245         is now allocated from a mempool.
11246
11247 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
11248
11249         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
11250         caller holds threads_lock, leading to deadlocks. Fixes #81476.
11251
11252 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
11253
11254         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
11255         mono_loader_clear_error () too late. Fixes #81463.
11256
11257 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
11258
11259         * culture-info-table.h : regenerated.
11260
11261 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
11262
11263         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
11264         is missing.
11265
11266 2007-04-25  Dick Porter  <dick@ximian.com>
11267
11268         * Makefile.am: Put the mingw enforced-optimisation back into the
11269         PLATFORM_WIN32 section.
11270
11271 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
11272
11273         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
11274         patch.
11275
11276         * image.c (mono_image_load_module): New API function to load a module reference.
11277
11278         * image.c (load_modules): Load modules lazily. Fixes #80812.
11279
11280         * class.c (mono_class_from_typeref): Use mono_image_load_module.
11281         
11282         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
11283
11284         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
11285         to mono_image_load_module_dynamic.
11286
11287 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
11288
11289         * marshal.c: Fix calling convention for CCW on non-windows
11290         platforms. STDCALL on windows, CDECL everywhere else to work 
11291         with XPCOM and MainWin COM.
11292         
11293         Code is contributed under MIT/X11 license.
11294
11295 2007-04-23  Martin Baulig  <martin@ximian.com>
11296
11297         Fix #80969.
11298
11299         * loader.c
11300         (method_from_memberref): Added `gboolean *used_context' argument.
11301         (mono_get_method_from_token): Likewise.
11302         (mono_get_method_full): Don't insert the method in the cache when
11303         `used_context' is true.
11304
11305 2007-04-23  Raja R Harinath  <rharinath@novell.com>
11306
11307         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
11308
11309         * reflection.c (mono_reflection_bind_generic_parameters): Don't
11310         create new MonoTypes for returned types.
11311         * class.c (mono_generic_class_get_class): Export mono-internal.
11312         * class-internals.h: Update to changes.
11313
11314 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
11315
11316         * threadpool.c, threadpool.h, icall-def.h: patch from
11317         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
11318
11319 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
11320
11321         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
11322         
11323         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
11324
11325         * threads.c (mono_thread_get_stack_bounds): New helper function.
11326
11327         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
11328         Correctly compute stack bounds when attaching. Fixes #81394.
11329
11330 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
11331
11332         * reflection.c: fix handling of doubles in custom attributes
11333         for the arm-fpa format (bug #81368).
11334
11335 2007-04-18  Raja R Harinath  <rharinath@novell.com>
11336
11337         * reflection.c (assembly_add_win32_resources): Mildly relax an
11338         bounds check to let the end pointer point just past the end of the
11339         allocated buffer.  (may fix #81384)
11340
11341 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
11342
11343         * culture-info-table.h : regenerated.
11344
11345 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
11346
11347         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
11348         the thread is aborted early.
11349
11350 2007-04-05  Dick Porter  <dick@ximian.com>
11351
11352         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
11353         FindFirstFile()/FindNextFile() to find entries.  This lets the
11354         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
11355         81038.
11356
11357         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
11358         the parameters of
11359         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
11360
11361 2007-04-04  Martin Baulig  <martin@ximian.com>
11362
11363         * debug-helpers.c
11364         (mono_method_desc_full_match): Add support for nested classes.
11365
11366 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
11367
11368         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
11369
11370 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
11371
11372         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
11373         waiting for too many threads.
11374
11375 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
11376
11377         * environment.c: Fix return value check on uname so we can get the 
11378         executing version on Solaris operating systems.
11379
11380 2007-03-28  Jb Evain  <jbevain@gmail.com>
11381
11382         * class.c (mono_type_get_name_recurse): Complete the
11383         fix for the creation of assembly qualified names for
11384         pointer types. Fixes #81208.
11385
11386 2007-03-27  Dick Porter  <dick@ximian.com>
11387
11388         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
11389         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
11390         changed.
11391
11392         * threads.c
11393         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
11394         the value of ReleaseMutex().
11395
11396 2007-03-27  Dick Porter  <dick@ximian.com>
11397
11398         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
11399         in little-endian order, not network endian, so must be converted
11400         to host endian here.  Fixes bug 80593.
11401
11402 2007-03-22  Jb Evain  <jbevain@gmail.com>
11403
11404         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
11405         qualified names for pointer types. Fixes #81208.
11406
11407 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
11408
11409         * marshal.c: Add support for PreserveSigAttribute. 
11410         
11411         Code is contributed under MIT/X11 license.
11412
11413 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
11414
11415         * process.c: Fix endianness issues. Fixes #81126.
11416
11417         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
11418         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
11419
11420         * image.c (mono_image_lookup_resource): Make this work on big-endian
11421         machines.Change API contract so the caller needs to free the return value.
11422         
11423         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
11424         API change.
11425         
11426 2007-03-14  Martin Baulig  <martin@ximian.com>
11427
11428         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
11429         mono_type_get_desc() as well.
11430
11431 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
11432
11433         * icall.c:  Fix environ access in VS.  
11434         
11435 2007-03-13  Alp Toker  <alp@atoker.com>
11436
11437         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
11438         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
11439         #63841.
11440
11441 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
11442
11443         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
11444         circular references among dynamic methods. Fixes #81091.
11445
11446         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
11447
11448 2007-03-09  Martin Baulig  <martin@ximian.com>
11449
11450         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
11451
11452 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
11453
11454         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
11455         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
11456         
11457         Code is contributed under MIT/X11 license.
11458         
11459 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
11460
11461         * loader.c: Reapply patch for bug #79424.
11462
11463 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
11464
11465         * metadata.c (mono_type_to_unmanaged): Only convert object to
11466         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
11467
11468 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
11469
11470         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
11471         (and incorrectly set) is_reference field from MonoGenericInst.
11472
11473 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
11474
11475         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
11476         a little earlier.
11477
11478         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
11479
11480         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
11481
11482 2007-03-05  Miguel de Icaza  <miguel@novell.com>
11483
11484         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
11485         FileOptions.1 value to mean "temporary", map that to
11486         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
11487
11488         Fixes 80688
11489
11490 2007-03-03  Marek Habersack  <mhabersack@novell.com>
11491
11492         * appdomain.c: implement MS .Net style shadow copying. Copies of
11493         the assemblies are made in a subdirectory of the dynamic base
11494         directory, the assembly names are preserved.
11495         Copy .mdb and .config files along with the assemblies being shadowed.
11496
11497 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
11498
11499         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
11500         (emit_marshal_handleref): Ditto.
11501
11502         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
11503         on Visual C++. Fixes #80671.
11504
11505 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
11506
11507         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
11508         for clone operations.
11509
11510 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
11511
11512         * marshal.c: Fix warnings.
11513
11514 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
11515
11516         * loader.c: allow case-insensitive matching of the dll name
11517         in dllmap handling when prefixed with "i:".
11518
11519 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
11520
11521         * threads.c: Fix #ifdef for dummy_apc function for VS.
11522
11523 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
11524
11525         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
11526
11527 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
11528         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
11529         giving precedence to the methods with a fully qualified name
11530         (InterfaceName.MethodName) when building the interface sections
11531         of the vtable.
11532
11533 2007-02-16  Dick Porter  <dick@ximian.com>
11534
11535         * threadpool.c (append_job): Fix fast-path array handling, so it's
11536         less likely the array will grow exponentially when the load is
11537         heavy.
11538
11539 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
11540
11541         * metadata-internals.h, loader.c: fix dllmap lookup order
11542         for non-function maps, too, and prepare for fallback code.
11543
11544 2007-02-12  Robert Jordan  <robertj@gmx.net>
11545
11546         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
11547         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
11548         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
11549         GlobalFree. Fixes a part of bug #77075.
11550
11551 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
11552
11553         * loader.c: implemented typedef parent in field memberref.
11554
11555 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
11556
11557         * marshal.c: Fix warnings and remember to call Release on
11558         IUnknown of RCW.
11559         
11560         Code is contributed under MIT/X11 license.
11561
11562 2007-02-10  Miguel de Icaza  <miguel@novell.com>
11563
11564         * class-internals.h: Add MonoHandleRef definition, and
11565         handleref_class to mono_defaults. 
11566
11567         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
11568         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
11569
11570         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
11571         (do nothing on this stage)
11572         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
11573         (emit_marshal_handleref): New method, used for argument handling
11574         of HandleRefs. 
11575
11576 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
11577
11578         * class.c (mono_class_setup_parent): Lazily init com types.
11579         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
11580         init com types.
11581         * object.c (mono_remote_class_vtable): Lazily init com types.
11582         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
11583         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
11584         * domain-internals.h: Expose mono_init_com_types.
11585         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
11586         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
11587         Add support for COM Callable Wrapper marshalling.
11588         * marshal.h: Add icall definitions.
11589         * gc.c: Handle freeing of CCWs in finalizer code.
11590         
11591         Code is contributed under MIT/X11 license.
11592
11593 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
11594
11595         * reflection.c: changed all the signature encoding code to use
11596         a variable-sized buffer.
11597
11598 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
11599
11600         * marshal.c: locking fixes: never take the loader lock
11601         or other runtime locks when holding the marshal lock
11602         (fixes bug#80664).
11603
11604 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
11605
11606         * marshal.c: make the delegate function pointer mapping
11607         work for the moving GC.
11608
11609 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
11610
11611         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
11612         for bug #80618.
11613
11614 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
11615
11616         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
11617         gmodule.
11618
11619 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
11620
11621         * threadpool.c: made the code moving-GC safe.
11622
11623 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
11624
11625         * assembly.c, boehm-gc.c, class-internals.h, class.c,
11626         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
11627         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
11628         warning cleanup.
11629         * reflection.c: warning cleanup, some threading and moving GC fixes.
11630
11631 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
11632
11633         * class.c, loader.c: create the needed Set/Get/Address array methods
11634         as well as the .ctors in mono_class_init (), fixes bug #80567.
11635
11636 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
11637
11638         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
11639         we doesn't decrease its alignment. Should fix the sparc build.
11640
11641 2007-01-24  Dick Porter  <dick@ximian.com>
11642
11643         * socket-io.c
11644         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
11645         Create the returned object if we need to ignore an unsupported
11646         socket option.  Fixes a segfault reported by Atsushi.
11647
11648 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
11649
11650         * class.c, object.c: restrict GC-tracked fields to
11651         UIntPtr fields used inside corlib, so we provide better
11652         type info to the GC and also allow broken packing as in
11653         bug #80580.
11654
11655 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
11656
11657         * sgen-gc.c: removed duplicated function.
11658
11659 2007-01-19  Miguel de Icaza  <miguel@novell.com>
11660
11661         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
11662         value that means that the value is not supported, but that we
11663         should not return a failure, but instead report this as a
11664         successful operation.
11665
11666 2007-01-19  Raja R Harinath  <rharinath@novell.com>
11667
11668         Fix tests/bug79956.2.il
11669         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
11670         (mono_generic_class_get_class): If the generic definition in an
11671         enum, copy over other fields related to it.
11672
11673 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
11674
11675         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
11676         genericinst enums (bug #79215).
11677
11678 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
11679         * class.c: Fix bug 80307.
11680
11681 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
11682
11683         * image.c: if the file table is not present, try to load
11684         all the modules, since we don't have info about them
11685         having or not metadata (bug #80517).
11686         * assembly.c: allow mono_assembly_load_references () to
11687         work for netmodules.
11688
11689 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
11690
11691         * image.c, metadata-internals.h, object.c: execute module
11692         cctors when running on the 2 runtime if present (bug #80487).
11693
11694 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
11695
11696         * icall.c: optimized InitializeArray() on bigendian.
11697
11698 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
11699
11700         * icall.c: fix for the broken ARM FPA double format.
11701
11702 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
11703
11704         * icall.c: handle endian issues for r4 and r8 types, too, in
11705         the InitializeArray() icall.
11706
11707 2007-01-15  Miguel de Icaza  <miguel@novell.com>
11708
11709         * loader.c (mono_loader_error_prepare_exception): Clear the error
11710         once we have extracted the information from it, do this before we
11711         call into the JIT's class loading mechanisms.
11712
11713         * object.c (mono_class_create_runtime_vtable): Do not clear the
11714         loader error before calling mono_class_get_exception_for_failure
11715         as the loader error is needed inside
11716         mono_class_get_exception_for_failure to throw the error (thinko).
11717
11718         Fixes #80521
11719         
11720 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
11721
11722         * reflection.c: align fields rva data so it's faster to load at
11723         runtime.
11724
11725 2007-01-12  Raja R Harinath  <rharinath@novell.com>
11726
11727         Prepare to simplify GenericMethod handling.
11728         * class-internals.h (mono_method_get_context): New accessor function.
11729         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
11730         rather than directly accessing '->context' field.
11731
11732         * class-internals.h (_MonoGenericParam.method): Move ...
11733         (_MonoGenericContainer): ... here.  Add into union with klass field.
11734         * class.c, icall.c, loader.c, metadata.c, reflection.c:
11735         Update to changes.
11736
11737 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
11738
11739         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
11740         the wrapper type enum and reduce relocations.
11741
11742 2007-01-12  Raja R Harinath  <rharinath@novell.com>
11743
11744         * reflection.c (inflate_mono_method): Reuse method instantiation
11745         from the generic method, if available.
11746
11747 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
11748
11749         * marshal.c (emit_marshal_variant): Fix conv_arg
11750         type in last commit, based on whether parameter is byref.
11751         
11752 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
11753
11754         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
11755         marshalling.
11756         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
11757         MONO_TYPE_OBJECT back for VARIANT support.
11758
11759 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
11760
11761         * marshal.c, marshal.h, icall-def.h: Implement 
11762         Marshal.ReAllocCoTaskMem.
11763
11764 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
11765
11766         * marshal.c: memory retention fixes: use the proper
11767         image cache for runtime_invoke method lookups.
11768
11769 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
11770
11771         * mempool.c: added code to help debug mempool allocations.
11772
11773 2007-01-11  Dick Porter  <dick@ximian.com>
11774
11775         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
11776         support (experimenting with faking it with IP_MTU_DISCOVER for
11777         systems that don't have IP_DONTFRAGMENT.)
11778         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
11779         icall.
11780
11781         * icall-def.h: new System.Net.Sockets.Disconnect icall.
11782
11783         * socket-io.h: Add new fields to MonoSocketAsyncResult
11784         corresponding to the new ones in Socket.cs.
11785
11786 2007-01-11  Raja R Harinath  <rharinath@novell.com>
11787
11788         Fix IronPython regression mentioned in #80249
11789         * metadata.c (do_mono_metadata_parse_generic_class): Clear
11790         'cached_context' field, since it may have been initialized as a
11791         side-effect of metadata parsing.
11792
11793         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
11794         (_MonoGenericClass.cached_class): Move here and rename from lone
11795         remaining field of ...
11796         (_MonoInflatedGenericClass): ... this.  Remove.
11797         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
11798         to changes.
11799
11800         Fix mcs/tests/test-128.cs regression.
11801         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
11802         2007-01-10 change below.
11803         [MONO_TYPE_OBJECT]: Recurse into array case.
11804
11805 2007-01-11  Raja R Harinath  <harinath@gmail.com>
11806
11807         * class-internals.h (mono_get_inflated_generic_class): Remove.
11808         * class.c (mono_get_inflated_generic_class): Remove.
11809         (mono_generic_class_get_class): Rename from
11810         mono_class_create_generic.
11811         (mono_class_from_mono_type) [GENERICINST]: Use it.
11812         * reflection.c, metadata.c: Update to changes.  Use
11813         'mono_class_from_mono_type'.
11814
11815 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
11816
11817         * reflection.c: use passed type when encoding an array element
11818         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
11819
11820 2007-01-09  Robert Jordan  <robertj@gmx.net>
11821
11822         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
11823         result arguments (someDelegate.EndInvoke (unrelatedAres)).
11824         Fixes bug #80392.
11825
11826 2007-01-09  Raja R Harinath  <rharinath@novell.com>
11827
11828         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
11829
11830         * object.c (set_value): Avoid aliasing between type->data.klass
11831         and type->data.generic_class.
11832
11833         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
11834
11835 2007-01-08  Raja R Harinath  <rharinath@novell.com>
11836
11837         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
11838         between type->data.klass and type->data.generic_class.
11839
11840 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
11841
11842         * marshal.c: In MS.NET, StringBuilder objects are not copied by
11843         value in out parameters.
11844
11845 2007-01-08  Raja R Harinath  <rharinath@novell.com>
11846
11847         Simplify invariant for MonoGenericClass::klass field.
11848         * class.c (mono_class_create_generic): Verify 'klass' is null.
11849         * metadata.c (do_mono_metadata_parse_generic_class): Don't
11850         initialize 'klass' field.
11851
11852 2007-01-05  Raja R Harinath  <rharinath@novell.com>
11853
11854         Ongoing work to avoid redundant data and simplify invariants.
11855         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
11856         'generic_class', and change type to a GenericInst.
11857         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
11858         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
11859
11860 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
11861
11862         * class.c : skip io-layer under PLATFORM_WIN32.
11863
11864 2007-01-03  Tor Lillqvist  <tml@novell.com>
11865
11866         Fix #80305: In a bundled executable, look in the bundled exe
11867         assembly to determine the runtime version. Add the possibility to
11868         bundle also the machine.config file.
11869         
11870         * assembly.c (mono_assembly_open_from_bundle): Make
11871         non-static. Allow being called even if we have no bundled
11872         assemblies, and return NULL right away in that case.
11873
11874         * domain-internals.h: Declare mono_assembly_open_from_bundle()
11875         here.
11876
11877         * domain.c (app_config_parse): Take an assembly exe file name as
11878         parameter instead of a config file name. Check for a bundled
11879         config file for that assembly by calling
11880         mono_config_string_for_assembly_file() (see below) before looking
11881         for one in the file system.
11882         (get_runtimes_from_exe): Corrsponding change to call of
11883         app_config_parse().
11884         (get_runtimes_from_exe): Check for bundled assembly exe file first
11885         by calling mono_assembly_open_from_bundle(). If no bundled
11886         assembly exe file is found, call mono_image_open() as before to
11887         look it up in the file system.
11888
11889         * mono-config.c: Add variable bundled_machinec_onfig.
11890         (mono_config_string_for_assembly_file): New function.
11891         (mono_config_for_assembly): Move code snippet that looks for a
11892         bundled assembly .config file into the above new function. Call
11893         it.
11894         (mono_register_machine_config, mono_get_machine_config): New
11895         functions to set and retrieve
11896
11897         * assembly.h: Declare mono_register_machine_config().
11898
11899         * mono-config.h: Declare mono_get_machine_config() and
11900         mono_config_string_for_assembly_file().
11901
11902         * icall.c: No declaration of environ necessary on Win32. It is
11903         declared (as a macro expanding to a function call) in stdlib.h.
11904         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
11905         New internal mono function. Returns the value of
11906         mono_get_machine_config() as a Mono string.
11907
11908         * icall-def.h: Add get_bundled_machine_config().
11909
11910 2007-01-04  Raja R Harinath  <rharinath@novell.com>
11911
11912         Remove redundant field
11913         * class-internals.h (_MonoGenericContext.container): Remove field.
11914         * loader.c (mono_method_get_signature_full): Don't parse a
11915         "container" for a signature parse when the signature is inflated
11916         immediately.
11917         (method_from_methodspec): Likewise, for a generic_inst.
11918         * class.c, metadata.c, reflection.c: Update to changes.
11919
11920 2006-01-04  Raja R Harinath  <rharinath@novell.com>
11921
11922         * class-internals.h (_MonoGenericClass): Rename 'context' field to
11923         'cached_context', and change semantics -- it starts off NULL, and
11924         is initialized on demand.
11925         * class.c (mono_generic_class_get_context): New accessor to
11926         replace 'context' field accesses.
11927         (mono_class_get_context): New helper.
11928         (*): Update to changes.
11929         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
11930
11931 2007-01-03  Miguel de Icaza  <miguel@novell.com>
11932
11933         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
11934         before the memcpy.   Fixes Marshal2 regression.
11935
11936 2007-01-02  Jb Evain  <jbevain@gmail.com>
11937
11938         * blob.h: add a MONO_TYPE_ENUM definition
11939         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
11940         fix the encoding of arrays of enums in custom attributes.
11941
11942         Fixes #79666.
11943
11944 2007-01-01  Miguel de Icaza  <miguel@novell.com>
11945
11946         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
11947         string is null terminated, but only cut the string short if it
11948         overflows the buffer.   
11949         
11950         (mono_string_to_byvalstr): Also fix this routine.   The code here
11951         was not properly terminating a string (it was only terminated
11952         because of the previous catch-all memset). 
11953
11954         I left the memset, because I do not know if applications expect
11955         the runtime to clear this region. 
11956
11957         Fixes #79944.
11958
11959         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
11960         Clear the error before returning to unmanaged code to prevent the
11961         runtime from being confused later on (fixes  80420).
11962         (ves_icall_type_from_name): Always call mono_loader_clear_error
11963         after parsing a type that could have failed.
11964         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
11965
11966         * loader.c (mono_loader_clear_error): Fix indentation.
11967
11968 2006-12-28  Martin Baulig  <martin@ximian.com>
11969
11970         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
11971
11972 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
11973
11974         * reflection.c: patch from Rolf Bjarne Kvinge to fix
11975         getting a token for an EnumBuilder.
11976
11977 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
11978
11979         * reflection.c: be more careful in case resource generation
11980         fails to create the data array.
11981
11982 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
11983
11984         * sgen-gc.c: write barrier for clone and fix unregister handles.
11985
11986 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
11987
11988         * reflection.c: some fixes needed in the generics code for the moving GC.
11989
11990 2006-12-22  Robert Jordan  <robertj@gmx.net>
11991
11992         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
11993         account. Fixes bug #80299.
11994
11995 2006-12-21  Raja R Harinath  <rharinath@novell.com>
11996
11997         Fix WaitHandle usage in delegates.
11998         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
11999         * object.c (mono_wait_handle_new): Use the property set method to
12000         initialize the handle.
12001         (mono_wait_handle_get_handle): New.
12002         * threadpool.c (mono_async_invoke): Use it.
12003         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
12004         Likewise.
12005         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
12006
12007 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
12008
12009         * marshal.c (emit_marshal): Call emit_marshal_variant and
12010         emit_marshal_com_interface when applicable.
12011         (emit_marshal_variant, emit_marshal_com_interface): Add
12012         methods for this case and remove if's from emit_marshal_object.
12013         
12014 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
12015
12016         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
12017
12018 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
12019
12020         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
12021         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
12022         and GlobalFree on Windows. Remove FIXME.
12023
12024 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
12025
12026         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
12027         implementation for managed objects.
12028
12029 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
12030
12031         * object.c: implemented code to be used for checking
12032         that no reference field overlaps with non-references.
12033
12034 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
12035
12036         * threadpool.c: fix queue code to be compatible with the
12037         moving GC.
12038
12039 2006-12-18  Miguel de Icaza  <miguel@novell.com>
12040
12041         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
12042         in structures by throwing ArgumentNullException.
12043
12044         (emit_marshal_safehandle): Also when they are null parameters.
12045
12046         (emit_marshal_safehandle): Add support for ref
12047         SafeHandles parameters
12048
12049 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
12050
12051         * profiler.c: updated to use the mono-dl API instead of
12052         gmodule.
12053
12054 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
12055
12056         * profiler.c: updated to use the mono-dl dynamic loading
12057         API instead of gmodule.
12058
12059 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
12060
12061         * profiler.c: use readlink, older versions of glib don't have
12062         g_file_read_link ().
12063
12064 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
12065
12066         * profiler.c: try to detect the path to mono if libc fails to provide
12067         a useful name (bug #80286).
12068
12069 2006-12-16  Raja R Harinath  <rharinath@novell.com>
12070
12071         Fix #80242
12072         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
12073         instance, use the generic type definition instead.
12074         (ves_icall_Type_GetNestedTypes): Likewise.
12075         * class.c (mono_class_create_generic): Always set the
12076         nested_classes of a generic instance to NULL, even if the generic
12077         type definition has nested types.
12078
12079 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
12080
12081         * marshal.c (mono_string_from_bstr): Revert previous Windows change
12082         and fix on Linux.
12083         
12084 2006-12-15  Miguel de Icaza  <miguel@novell.com>
12085
12086         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
12087         my arguments were in the wrong order.   I also fixed the Windows
12088         version which seems to have had the same issue.
12089
12090         (mono_free_bstr): On Unix, this is g_free.
12091         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
12092         conversions (for the tests in corlib to pass).
12093
12094 2006-12-14  Miguel de Icaza  <miguel@novell.com>
12095
12096         * marshal.c (emit_ptr_to_object_conv): For now, ignore
12097         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
12098         exception if a ref SafeHandle in a struct has changed).
12099         
12100         (emit_struct_conv): Do not perform layout checks for classes
12101         derived from SafeHandle, as those are specially handled. 
12102
12103         (emit_object_to_ptr_conv): Add support for
12104         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
12105
12106         (emit_marshal_safehandle): Implement conversion of return values
12107         of safehandles (MARSHAL_ACTION_CONV_RESULT).
12108         
12109         * threads.c: WaitHandle now is compiled with two different handles
12110         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
12111         for 2.0.
12112         
12113         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
12114         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
12115         these routines to cope with both kinds of fields.
12116
12117 2006-12-12  Miguel de Icaza  <miguel@novell.com>
12118
12119         * metadata.c (mono_type_to_unmanaged): Handle the case where
12120         type->data.klass is a SafeHandle, and in that case, return the
12121         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
12122         MONO_MARSHAL_CONV_SAFEHANDLE. 
12123
12124 2006-12-11  Miguel de Icaza  <miguel@novell.com>
12125
12126         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
12127         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
12128         calling emit_marshal_object.
12129
12130         (emit_marshal_safehandle): Implement marshalling of
12131         SafeHandle parameters (no ref support yet).
12132
12133         (MarshalAction): Document the defines as I implement
12134         them for SafeHandle.
12135
12136         (emit_marshal_object): indentation police.
12137
12138         * class-internals.h: Define MonoSafeHandle.
12139         Add safehandle_class to MonoDefaults type.
12140
12141         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
12142         list of classes to check for fields. 
12143
12144         * domain.c (mono_init_internal): Add SafeHandle to the list of
12145         mono_defaults loaded.
12146
12147 2006-12-15  Raja R Harinath  <rharinath@novell.com>
12148
12149         Fix #80253
12150         * reflection.c (mono_reflection_bind_generic_parameters): If the
12151         generic type definition is a type builder, ensure that it is fully
12152         initialized before instantiating it.  Kill some dead code.
12153
12154 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
12155
12156         * object.c: clear the loader_error () before loading
12157         more metadata stuff (bug #80258).
12158
12159 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
12160
12161         * icall.c, icall-defs.h: type modifiers icalls for
12162         parameters and properties.
12163
12164 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
12165
12166         * object.c, icall.c: fixed warnings.
12167
12168 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
12169
12170         * marshal.c: fixed a couple of leaks and coding style in a few places.
12171
12172 2006-12-08  Dick Porter  <dick@ximian.com>
12173
12174         * process.c: Cope with NULL ProcessStartInfo arguments on windows
12175         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
12176         80173.
12177
12178 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
12179
12180         * process.c: ProcessStartInfo may have only filename set and
12181         arguments can be NULL.
12182
12183 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
12184
12185         * icall.c: fix leak found by Robert Jordan.
12186
12187 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
12188
12189         * marshal.c, marshal.h: generate managed method to access an element
12190         of a multi-dimensional array.
12191
12192 2006-11-30  Paolo Molaro (lupus@ximian.com)
12193
12194         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
12195
12196 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
12197
12198         * icall.c: back out GetFields () fix until the serialization code is
12199         fixed to not depend on the incorrect behaviour.
12200
12201 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
12202
12203         * profiler.c: provide defaults if none are set.
12204
12205 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
12206
12207         * Makefile.am, attrdefs.h: new public header file with
12208         constants for attributes for use by embedders.
12209
12210 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
12211
12212         * icall.c: GetFields () fix for bug #80064.
12213
12214 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
12215
12216         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
12217         removed long unused icalls.
12218
12219 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
12220   
12221         * marshal.c: 
12222                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
12223                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
12224                 can be generated without a delegate class.
12225                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
12226         
12227         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
12228
12229 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12230
12231         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
12232         #80069.
12233
12234 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
12235
12236         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
12237         icall-def.h: added icalls needed by System.GC.
12238
12239 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
12240
12241         * loader.c: ensure the class in catch clauses is handled
12242         correctly for generics methods (fixes bug#79980).
12243
12244 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
12245
12246         * monitor.h, monitor.c: added mono_locks_dump () function
12247         to help debug deadlocks involving managed locks.
12248
12249 2006-11-13  Dick Porter  <dick@ximian.com>
12250
12251         * file-io.c (get_file_attributes): If the file is a symlink try
12252         and get the stat data for the target, but also add the
12253         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
12254         the specs for the windows symlink support, but will probably have
12255         to be reworked when I have test data from a vista machine.  Fixes
12256         bug 79887.
12257
12258 2006-11-13  Dick Porter  <dick@ximian.com>
12259
12260         * gc.c (mono_domain_finalize): 
12261         * marshal.c (mono_delegate_begin_invoke): 
12262         * threadpool.c (socket_io_init, mono_thread_pool_init)
12263         (mono_thread_pool_finish): 
12264         * monitor.c (mono_monitor_try_enter_internal): 
12265         * threads.c (mono_thread_resume, mono_thread_init)
12266         (mono_thread_suspend_all_other_threads)
12267         (mono_thread_execute_interruption): 
12268         * appdomain.c (mono_domain_unload): Check for NULL error returns
12269         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
12270         75733.
12271
12272 2006-11-11  Miguel de Icaza  <miguel@novell.com>
12273
12274         * process.c
12275         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
12276         Only close the handle if the value of the handle is not
12277         INVALID_HANDLE_VALUE.  This just makes the process a bit more
12278         robust.
12279
12280         Improvement for #75733, so that we do not run into this problem. 
12281
12282         
12283         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
12284         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
12285         internal variables.  Fixes #79462 
12286         
12287
12288 2006-11-09  Dick Porter  <dick@ximian.com>
12289
12290         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
12291         Use poll() not select().  Fixes bug 79397.
12292
12293 2006-11-09  Raja R Harinath  <rharinath@novell.com>
12294
12295         Fix #79872
12296         * assembly.c (mono_assembly_load_from_full): Check that the given
12297         image has an assembly manifest.
12298
12299 2006-11-09  Ankit Jain  <jankit@novell.com>
12300
12301         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
12302         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
12303         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
12304
12305 2006-11-07  Dick Porter  <dick@ximian.com>
12306
12307         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
12308         Put the old resolver behaviour back for pre-2.0 profiles.
12309
12310 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
12311
12312         * threadpool.c: precise GC and locking fixes.
12313
12314 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
12315
12316         * class.c: don't load types that have an explicit unaligned
12317         managed reference. Provide better info in the TypeLoad exception.
12318         Part of the fix for bug #79744.
12319         * object.c: use the correct check for class type load issues.
12320
12321 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
12322
12323         * class.c: enforce alignment of fields with managed references
12324         even when Pack=1 is forced by the user (bug #77788).
12325
12326 2006-11-03  Dick Porter  <dick@ximian.com>
12327
12328         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
12329         If the address reverse lookup fails, return it as the hostname
12330         anyway.  Fixes bug 79721.
12331
12332 2006-11-03  Dick Porter  <dick@ximian.com>
12333
12334         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
12335         Fix build on Windows.
12336
12337 2006-11-02  Dick Porter  <dick@ximian.com>
12338
12339         * icall-def.h: 
12340         * object-internals.h: 
12341         * exception.c (mono_get_exception_thread_interrupted): 
12342         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
12343         Fixes bug 74525.
12344
12345         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
12346         Check for pending Thread.Interrupt.
12347
12348 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
12349         * loader.c: Fixed bug 79684.
12350
12351 2006-10-27  Dick Porter  <dick@ximian.com>
12352
12353         * file-io.c (get_file_attributes): Force symlinks to directories
12354         to be returned as a regular file.  Fixes bug 79733.
12355 2006-10-26  Dick Porter  <dick@ximian.com>
12356
12357         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
12358         CreateFile to open a directory then we need to set the
12359         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
12360
12361 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
12362
12363         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
12364         friends.
12365
12366 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
12367
12368         * sgengc.c: small cleanup of timer code.
12369
12370 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
12371
12372         * sgen-gc.c: fix some warnings and start adding support for
12373         complete object removal on domain unload.
12374
12375 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
12376
12377         * assembly.c: build_assembly_name should not consider a version
12378         number without build or revision number invalid. Fixes bug #79715.
12379
12380 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
12381
12382         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
12383         call kernel32 function OutputDebugString directly.
12384         
12385         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
12386         
12387 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
12388
12389         * reflection.c: small cleanup, using a function to insert a MonoString
12390         in the string heap.
12391
12392 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
12393
12394         * reflection.c: moving GC fixes.
12395
12396 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
12397
12398         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
12399         all the objects with finalizers belonging to an unloading appdomain.
12400
12401 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
12402
12403         * sgen-gc.c: added ability to allocate even when the nursery is fully
12404         pinned and fixed a couple of bugs.
12405
12406 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
12407
12408         * threads.h: Revert the last change for now.
12409
12410         * threads.h (mono_thread_get_pending_exception): Rename this to
12411         mono_thread_get_undeniable_exception ().
12412
12413 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
12414
12415         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
12416         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
12417         when fname does not refer to valid assembly. This result in a more
12418         meaningful error message.
12419         * exception.c: added mono_get_exception_bad_image_format2 which 
12420         constructs a BadImageFormatException using the ctor taking a custom
12421         message and the file name. Passing in a NULL msg results in a default
12422         message.
12423         * exception.h: define mono_get_exception_bad_image_format2 function.
12424         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
12425         when file name pointed to an invalid IL image. Use 
12426         mono_get_exception_file_not_found2 to construct FileNotFoundException,
12427         as this results in a more meaningful error message.
12428
12429 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
12430
12431         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
12432         #79465.
12433
12434 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
12435
12436         * metadata.c (mono_type_size): Change the align parameter to guint32 for
12437         consistency with the other _size functions.
12438         (mono_type_stack_size): Ditto.
12439
12440         * class.c object.c icall.c: Fix warnings caused by the above change.
12441
12442         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
12443
12444         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
12445
12446         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
12447
12448 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
12449
12450         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
12451         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
12452         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
12453         threadpool.h, threads-types.h: mark more internal functions.
12454
12455 2006-10-11  Dick Porter  <dick@ximian.com>
12456
12457         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
12458         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
12459         reproduce the bug even before applying the fix.)
12460
12461 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
12462
12463         * reflection.c: allow retrieving attributes for arguments in generic
12464         methods (bug #79241).
12465
12466 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
12467
12468         * debug-mono-symfile.c: properly check fopen () result (found by
12469         coverity).
12470
12471 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
12472
12473         * reflection.c: make error message clearer and fixed two
12474         issuelets found by Coverity.
12475
12476 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
12477
12478         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
12479
12480 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
12481
12482         * object-internals.h, gc-internal.h, profiler-private.h:
12483         mark internal functions.
12484
12485 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
12486
12487         * reflection.c: put data in the text section.
12488         * icall.c: recognize more types in type_from_typename ().
12489         * process.c, marshal.c: added some GC FIXMEs.
12490
12491 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
12492
12493         * loader.c: check for NULL before initializing.
12494
12495 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
12496
12497         * gc.c (finalizer_thread): Use a non-alertable wait here.
12498
12499         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
12500         until the correct solution is found.
12501
12502 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
12503
12504         * reflection.c (mono_module_get_object): Avoid an assert when operating on
12505         modules with no metadata. Fixes #79596.
12506
12507         * image.c (load_metadata_ptrs): Put back the error message when
12508         the #- heap is encountered since the support is not complete yet.
12509
12510 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
12511
12512         * gc.c: do not allow the user to SuppressFinalize () a
12513         delegate because it would leak the trampoline if present.
12514
12515 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
12516
12517         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
12518         PropertyPtr table.
12519
12520 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
12521
12522         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
12523
12524         * metadata.c (mono_metadata_get_param_attrs): Ditto.
12525
12526         * row-indexes.h: Add definitions for *Ptr tables.
12527
12528         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
12529
12530         * metadata.c (mono_metadata_translate_token_index): New helper function to
12531         translate table indexes used in uncompressed metadata.
12532         (mono_metadata_decode_table_row): Ditto.
12533         (mono_metadata_decode_table_row_col): Ditto.
12534
12535         * metadata.c: Add table schema for *Ptr tables.
12536
12537         * class.c loader.c: Use the new helper function to access the affected metadata
12538         tables.
12539         
12540         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
12541         #38532.
12542         
12543 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
12544
12545         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
12546         sequences which can be unbounded in size. Fixes #79583.
12547
12548 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
12549
12550         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
12551         static initialization.
12552
12553         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
12554
12555         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
12556
12557         * domain.c (mono_domain_free): Free up type_init_exception_hash.
12558
12559         * object.c (mono_runtime_class_init): Implement correct semantics when a static
12560         ctor fails, i.e. throw the same exception on subsequent accesses.
12561         
12562 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
12563
12564         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
12565         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
12566         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
12567         Handle marshalling of interfaces and VARIANTs contained in structs.
12568         
12569         Code is contributed under MIT/X11 license.
12570         
12571 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
12572
12573         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
12574         
12575         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
12576         mempool.
12577
12578 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12579
12580         * console-io.c: ignore previous SIGINT handler.
12581
12582 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
12583
12584         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
12585         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
12586         #79460, #79461, #79485.
12587
12588         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
12589
12590         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
12591         #79217.
12592
12593 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
12594
12595         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
12596         could be generated from it.
12597
12598 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
12599
12600         * rand.c: fix read loop to correctly handle EINTR.
12601
12602 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
12603
12604         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
12605         internal calls are defined to keep methods closer to the declaring
12606         type and allow a significant reduction in runtime relocations and
12607         memory usage.
12608
12609 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
12610
12611         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
12612         exception message to have FileNotFoundException use the default
12613         assembly load error message. Fixes bug #79426.
12614         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
12615
12616 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12617
12618         * threadpool.c: (start_thread_or_queue) use the root domain when
12619         creating the thread instead of the async object one.
12620
12621 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
12622
12623         * class.c, object.c, class-internals.h, reflection.c:
12624         for arrays, store element_size inside MonoClass (speedup
12625         for array object creation).
12626
12627 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
12628
12629         * icall.c: fixed CodeBase to use the file name and not the module
12630         name (bug #79365).
12631
12632 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
12633
12634         * mono-debug.c, mono-debug.h: export find_method as
12635         mono_debug_find_method ().
12636
12637 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
12638
12639         * debug-helpers.c, class-internals.h: added a few functions useful
12640         when debugging under gdb.
12641
12642 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12643
12644         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
12645         characters that need special handling.
12646
12647 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
12648
12649         * mono-config.c: make the os/cpu specification more flexible,
12650         allowing lists and negation.
12651
12652 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
12653
12654         * marshal.c: COM Interop fixes. Handle case where method->klass.
12655         is interface. Handle BSTR/MonoString when null. Use CDECL as 
12656         calling convention on non-windows platforms. This is for
12657         compatibility with XPCOM and MainWin COM.
12658         
12659         Code is contributed under MIT/X11 license.
12660         
12661
12662 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
12663
12664         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
12665         correctly. Fixes #79217.
12666
12667         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
12668
12669 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
12670
12671         * mono-config.c: allow both an os and cpu attribute for dllmap
12672         and dllentry elemnets to enable a single config file to be used
12673         for multiple architectures.
12674
12675 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
12676
12677         * loader.c: MonoLoaderError was cleared too soon on load failure.
12678         Fixes bug #79424.
12679
12680 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
12681
12682         * icall.c: use the defining class vtable when accessing a
12683         static field, not a pobblibly derived class.
12684
12685 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
12686
12687         * icall.c string-icalls.c: Remove references to unicode.h.
12688
12689         * unicode.h unicode.c Makefile.am: Remove these unused source files.
12690
12691         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
12692
12693         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
12694         indicating the image where custom marshaller types should be looked up.
12695         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
12696         custom marshallers, instead of corlib. Fixes #79425.
12697
12698 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
12699
12700         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
12701
12702 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
12703
12704         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
12705         Implement Environment.ProcessorCount.
12706         
12707         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
12708         Implement Environment.ProcessorCount.
12709         
12710         * icall.c: 
12711         Add Environment.ProcessorCount icall.
12712         
12713         Patch by Jason McFall.
12714
12715 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12716
12717         * assembly.c: don't append .exe/.dll when the filename already contains
12718         one of those extensions.
12719
12720 2006-09-12  Martin Baulig  <martin@ximian.com>
12721
12722         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
12723         to array interfaces.
12724
12725 2006-09-11  Martin Baulig  <martin@ximian.com>
12726
12727         * reflection.c (mono_image_build_metadata): Create the
12728         MethodImpl's after emitting all types and methods, so we don't
12729         need another fixup pass for them.
12730
12731 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
12732
12733         * class.c (mono_class_from_name_case): Fix regression introduced by the last
12734         change.
12735
12736 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
12737
12738         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
12739         unload.
12740
12741 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
12742
12743         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
12744         args is not set. Fixes #78926.
12745
12746 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
12747
12748         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
12749
12750         * image.c (load_class_names): Move this to class.c, and rename it to 
12751         'mono_image_init_name_cache'.
12752         (load_modules): Fix a warning.
12753
12754         * class.c icall.c image.c: Initialize image->name_cache lazily.
12755
12756         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
12757         on its name using information in the AOT file.
12758
12759         * class.c (mono_class_from_name): Use the new hook function.
12760
12761 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
12762
12763         * reflection.c (mono_param_get_objects): Handle enum default parameter values
12764         correctly.
12765
12766         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
12767         Fixes #79289.
12768         
12769 2006-09-06  Martin Baulig  <martin@ximian.com>
12770
12771         * icall.c (mono_lookup_internal_call): Small fix.
12772
12773 2006-09-05  Raja R Harinath  <rharinath@novell.com>
12774
12775         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
12776         double g_free.
12777
12778 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
12779
12780         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
12781         when --debug is specified.
12782
12783 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
12784
12785         * class.c (setup_generic_array_ifaces): Fix a warning.
12786
12787 2006-09-04  Miguel de Icaza  <miguel@novell.com>
12788
12789         * Temporarily remove the patch to assemly.c that checks the
12790         assembly versions as it breaks our gacutil.
12791
12792 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
12793
12794         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
12795
12796         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
12797         a net 1.0 runtime.
12798
12799         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
12800         created using the default ctor. Fixes #79152.
12801         (mono_string_builder_to_utf16): Ditto.
12802
12803 2006-09-01  Martin Baulig  <martin@ximian.com>
12804
12805         Fix handling of the generic array interfaces.
12806
12807         * class-internals.h
12808         (MonoDefaults): Removed `generic_array_class' and added
12809         `generic_ilist' class.
12810
12811         * class.c
12812         (mono_bounded_array_class_get): Add the new generic array interfaces.
12813         (setup_generic_array_ifaces): New static method; create vtable
12814         entries for each method in the generic array interfaces.
12815
12816         * metadata.c
12817         (select_container): Allow "parent-less" generic methods.
12818
12819         * marshal.c
12820         (mono_marshal_get_generic_array_helper): New public method.
12821
12822         * icall.c
12823         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
12824         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
12825         moved the interncall into System.Array.
12826
12827 2006-09-01  Raja R Harinath  <rharinath@novell.com>
12828
12829         A few more cases of avoiding work on types with ->byref set.
12830         Has the real fix for #79238
12831         * icall.c (is_generic_parameter): New helper.
12832         (ves_icall_Type_GetGenericParameterPosition): Use it.
12833         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
12834         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
12835         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
12836         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
12837         reference types.
12838         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
12839         reference types.
12840         (ves_icall_Type_get_IsGenericInstance): Likewise.
12841         (ves_icall_Type_get_IsGenericType): Likewise.
12842
12843 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
12844
12845         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
12846         class if possible.
12847
12848         * mempool.h (mono_mempool_get_allocated): New helper function.
12849
12850         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
12851         change.
12852
12853         * mempool.c: Fix warnings and the calculation of stats.
12854
12855         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
12856
12857         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
12858
12859         * loader.c (mono_get_method_from_token): Update method_count stat.
12860
12861         * class-internals.h (MonoStats): Add some stats.
12862
12863 2006-08-31 Robert Jordan  <robertj@gmx.net>
12864
12865         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
12866         with managed variants.
12867         All code is contributed under the MIT/X11 license.
12868         
12869 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
12870
12871         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
12872         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
12873
12874         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
12875
12876         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
12877         with cycles in classes.
12878
12879         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
12880
12881         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
12882         missing a [MarshalAs] directive. Fixes #79203.
12883
12884         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
12885         klass->marshal_info. Fixes #79217.
12886
12887 2006-08-30  Martin Baulig  <martin@ximian.com>
12888
12889         Committing a patch from Joachim Ante <joe@otee.dk>:
12890         Add support for binary data symbol stores.
12891
12892         * debug-mono-symfile.c
12893         (mono_debug_open_mono_symbol_file): Renamed into
12894         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
12895         arguments.
12896
12897         * mono-debug.c
12898         (mono_debug_open_image): Added `raw_contents' and `size' args.
12899         (mono_debug_init_2_memory): New public function.
12900
12901 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
12902
12903         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
12904
12905 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12906
12907         * appdomain.c: implement support for ShadowCopyFiles.
12908
12909 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
12910
12911         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
12912         when value is NULL (and should remove CID #51).
12913
12914 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12915
12916         * image.c: moved 2 functions to ../utils.
12917
12918 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
12919
12920         * gc.c: cope with the target object of a GC handle being NULL
12921         (bug #78877).
12922
12923 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
12924
12925         * class.c: recursively check parent's explicit implementations
12926         of interface methods (fixes bug #79125).
12927
12928 2006-08-19  Miguel de Icaza  <miguel@novell.com>
12929
12930         * filewatcher.c: Avoid warnings when building, do not redefine
12931         constants that are defined.
12932
12933         Remove warnings.
12934
12935 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12936
12937         * image.c: don't fail when the link points to an absolute path.
12938
12939 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
12940
12941         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
12942         Fix CID #3.
12943
12944 2006-08-17  Miguel de Icaza  <miguel@novell.com>
12945
12946         * image.c (full_path): A new method used to obtain the actual path
12947         of an assembly even in the presence of symbolic links.  
12948
12949         This is necessary for the case where we are running a binary that
12950         has been GACed, but we are using the "published" path name
12951         ($prefix/mono/1.0/blah.exe) which happens to point to the real
12952         file in the GAC.
12953
12954         This was the source of the failure for the `xsp' command with the
12955         recent AppDomain changes, as far as the runtime was concerned,
12956         there were two different assemblies: $prefix/mono/1.0/blah.exe and
12957         $prefix/mono/gac/blah/version/blah.exe.
12958
12959         (do_mono_image_open): use full path
12960
12961 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
12962
12963         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
12964
12965 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
12966
12967         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
12968         domain_id is supplied. Fix CID #241 and corlib's unit tests.
12969
12970 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
12971
12972         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
12973         small structures. Fixes #78990.
12974
12975 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
12976
12977         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
12978
12979         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
12980
12981 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12982
12983         * appdomain.c:
12984         * marshal.c: don't load all the assemblies from a domain into newly
12985         created ones. The new domains might have different rules and load
12986         assemblies from different locations. Fixes bug #76757.
12987
12988         Patch by Lluis. Conflicts resolved by Brian Crowell.
12989
12990 2006-08-16  Alp Toker  <alp@atoker.com>
12991
12992         * socket-io.c: First half of the fix for #79084.
12993         Set sa_size to the length of the content, not that of the struct.
12994         Don't add NULL suffix to the content, this should be done in
12995         managed code if needed.
12996
12997 2006-08-14  Raja R Harinath  <rharinath@novell.com>
12998
12999         Fix part of #79012
13000         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
13001         mono_metadata_parse_type returns NULL.
13002
13003 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
13004
13005         * normalization-tables.h : new file for string normalization data.
13006         * locales.c, locales.h, icall.c :
13007           added load_normalization_resource() for string normalization,
13008           and icall as well.
13009         * Makefile.am : added normalization-tables.h to the sources.
13010
13011 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
13012
13013         * marshal.c: Add more helper functions to reduce code duplication and use them
13014         everywhere.
13015
13016 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
13017
13018         * marshal.c: Fix non-x86 stdcall warnings.
13019         
13020         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
13021         them everywhere.
13022
13023 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
13024
13025         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
13026         type check on multi-dimensional arrays. Fixes #79000.
13027
13028 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
13029
13030         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
13031         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
13032         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
13033         * class-internals.h: add is_com_object to class structure.
13034         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
13035         null checks to COM object marshalling. Fix .ctor call on RCW.
13036         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
13037         
13038         All code is contributed under the MIT/X11 license.
13039
13040 2006-08-09  Dick Porter  <dick@ximian.com>
13041
13042         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
13043         racing mono_monitor_allocator_lock() somewhere, so don't delete
13044         the critical section for now.  Found by running and exiting
13045         monodevelop.
13046
13047 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
13048
13049         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
13050         (ves_icall_System_ComObject_FindInterface): Ditto.
13051         (ves_icall_System_ComObject_CacheInterface): Ditto.
13052
13053         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
13054         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
13055
13056 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13057
13058         * threadpool.c: treat pipes from process asynchronous reads as sockets
13059         when reading from them, so we get select/poll or epoll to wait for
13060         data.
13061
13062 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
13063
13064         * loader.c: Fix a typo (CID #233) in the null check.
13065
13066 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
13067
13068         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
13069         Hopefully fixes #78949.
13070         
13071         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
13072         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
13073         bytes. Fixes #78972.
13074
13075 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13076
13077         * filewatcher.c: we need to set errno here.
13078
13079 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13080
13081         * filewatcher.c: let Win32Exception get the error value.
13082
13083 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13084
13085         * filewatcher.c: translate errno into win32 errors for Win32Exception
13086         to know what happened.
13087
13088 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
13089
13090         * threadpool.c: Fix more warnings.
13091
13092         * assembly.c (search_loaded): Fix warnings.
13093
13094         * threadpool.c (mono_thread_pool_finish): Fix warnings.
13095         (mono_async_invoke): Ditto.
13096
13097 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
13098
13099         * object.c (mono_remote_class_vtable): Need to create proxy vtable
13100         entries for __ComObject type in addition to ComImport types.
13101         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
13102         about hash table.
13103         
13104         All code is contributed under the MIT/X11 license.
13105
13106 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
13107
13108         * image.c: avoid tentative loading of modulerefs that contain
13109         no metadata (P/Invoke library names).
13110
13111 2006-07-28  Dick Porter  <dick@ximian.com>
13112
13113         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
13114         mono_loader_lock() somewhere, so don't delete the critical section
13115         for now.  Found by running and exiting monodevelop.
13116
13117 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13118
13119         * filewatcher.c: define the inotify syscalls when we're building on
13120         linux and have sys/syscall.h. The build system might not have support
13121         for inotify but the target system might have it.
13122
13123 2006-07-26  Miguel de Icaza  <miguel@novell.com>
13124
13125         * domain.c: Documentation updates.
13126
13127         * loader.c (mono_free_method): Do not release the method
13128         information if we are being profiled, as profilers will use this
13129         information at shut down to present some data to the user.
13130
13131         This is needed so that the profiler does not crash, as the
13132         profiler tends to keep MonoMethods around, and they might become
13133         invalid if we free these.
13134
13135         (mono_get_method_constrained): Return the original CIL stream
13136         method as well, so verification can be performed against it.
13137
13138 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13139
13140         * filewatcher.[ch]: support for inotify file system watcher.
13141         * icall.c: add new internal calls for the inotify file system watcher.
13142
13143 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13144
13145         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
13146         #78888.
13147
13148 2006-07-20  Dick Porter  <dick@ximian.com>
13149
13150         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
13151         warning.
13152
13153 2006-07-20  Dick Porter  <dick@ximian.com>
13154
13155         * threads.c (start_wrapper): Do the thread cleanup while we still
13156         hold a reference to its object.  Fixes bug 78123.
13157
13158 2006-07-18  KornĂ©l PĂ¡l  <kornelpal@gmail.com>
13159
13160         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
13161         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
13162           "managed-to-managed".
13163         * icall.c: Redirect string constructors that take sbyte* to
13164           ves_icall_System_String_ctor_RedirectToCreateString.
13165         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
13166           to CreateString () methods with matching signature.
13167         * reflection.c: Use original security informations for
13168           MONO_WRAPPER_MANAGED_TO_MANAGED.
13169         * security-manager.c: Use original security informations for
13170           MONO_WRAPPER_MANAGED_TO_MANAGED.
13171         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
13172           that is a placeholder and only its address should be used.
13173         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
13174           that is a placeholder and only its address should be used.
13175
13176 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
13177
13178         Begin implementing COM Interop.
13179         * appdomain.c: Increment corlib version.
13180         * class.c: Set ComImport classes' parent to __ComObject.
13181         * loader.c: Mark cominterop methods as such.
13182         * domain.c: Add __ComObject class to MonoDefaults structure.
13183         * image.c: Add 2 hashtables to the image for COM Interop related methods
13184         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
13185         using the mempool allocator
13186         
13187         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
13188         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
13189         declaration for mono_metadata_type_dup_mp.
13190         
13191         * debug-helpers.c: Added strings for two additional wrapper types
13192         * object.c: Create proxy objects for ComImport classes
13193         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
13194         and added __ComObject class to MonoDefaults structure.
13195         
13196         * object-internals.h: Finish MonoRealProxy definition, and add definition of
13197         MonoComInteropProxy and MonoComObject.
13198         
13199         * marshal.c: Added support for COM Interop
13200         (signature_cominterop): Converts managed signature to corresponding
13201         unmanaged COM signature.
13202         (cominterop_get_function_pointer): gets unmanaged function pointer via
13203         COM object vtable
13204         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
13205         (cominterop_get_method_interface): returns interface type that method is defined on
13206         (mono_mb_emit_cominterop_call): emits native call to function pointer
13207         gotten from vtable
13208         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
13209         that matches signature of unmanaged function.
13210         (cominterop_get_native_wrapper): wrapper around adjusted method call.
13211         (cominterop_get_invoke): forwards call from proxy to __ComObject
13212         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
13213         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
13214         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
13215         
13216         * marshal.h: Added Marshal icall declarations.
13217         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
13218         so we can access them in finalizer
13219         
13220 2006-07-14  Dick Porter  <dick@ximian.com>
13221
13222         * object.c (mono_type_initialization_cleanup): Fix a race
13223         condition by temporarily commenting out the critical section
13224         deletion.
13225
13226 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
13227
13228         * reflection.c (create_custom_attr): Fix some warnings.
13229         (create_custom_attr_data): Ditto.
13230         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
13231         types. Fixes #78855.
13232
13233 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
13234
13235         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
13236
13237         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
13238
13239 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
13240
13241         * reflection.c (resolve_object): Add support for DynamicMethod.
13242
13243         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
13244         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
13245
13246 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
13247
13248         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
13249         don't leak GPtrArray's pdata has we have no use (nor free) for it.
13250
13251 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
13252
13253         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
13254         Fixes #77888.
13255
13256 2006-06-30  Raja R Harinath  <rharinath@novell.com>
13257
13258         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
13259         slightly: remove a shadow local variable.
13260
13261 2006-06-29  Raja R Harinath  <rharinath@novell.com>
13262
13263         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
13264         definition that introduces the virtual function slot.
13265         Also fix Coverity #105.
13266
13267 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
13268
13269         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
13270         for dynamic assemblies. Fixes #78724.
13271
13272 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
13273
13274         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
13275         Fixes #78722.
13276
13277 2006-06-21  Martin Baulig  <martin@ximian.com>
13278
13279         * reflection.c
13280         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
13281         fixes #76484.
13282
13283 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
13284
13285         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
13286
13287 2006-06-20  Raja R Harinath  <rharinath@novell.com>
13288
13289         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
13290         nor TYPEREFs.
13291         * class.c (mono_class_create_from_typespec): Add 'context' argument.
13292         Inflate result if necessary.
13293         (mono_class_get_full): Remove old version.  Rename from
13294         'mono_class_get' and add 'context' argument.  Pass it to
13295         ..._create_from_typespec.
13296         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
13297         (mono_ldtoken): Revert change below.
13298
13299 2006-06-20  Martin Baulig  <martin@ximian.com>
13300
13301         * class.c (mono_ldtoken): Don't pass the generic context to
13302         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
13303
13304 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
13305
13306         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
13307         and later freeing it. Fixes #78638.
13308
13309 2006-06-15  Miguel de Icaza  <miguel@novell.com>
13310
13311         * icall.c (mono_class_get_throw): Revert over-zealous error
13312         throwing, the caller for mono_class_get_throw will cope with
13313         errors when classes are not properly initialized already.
13314
13315         The code still copes with loader exceptions though.
13316
13317         Fixes the regression in reftype1 and reftype3 from the CAS tests.
13318         
13319 2006-06-14  Miguel de Icaza  <miguel@novell.com>
13320
13321         Fixes the `make run1' version of RuntimeAbort (to be commited,
13322         source is in Bugzilla).
13323         
13324         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
13325         FALSE on class loading failure instead of returning true.
13326
13327         * class.c (mono_class_create_from_typedef): It is possible for
13328         mono_metadata_interfaces_from_typedef_full to fail if a class is
13329         not found, cope with this.
13330         
13331
13332 2006-06-14  Dick Porter  <dick@ximian.com>
13333
13334         * socket-io.c: 
13335         * process.c: Fix a bunch of signed/unsigned warnings from gcc
13336         4.1.1
13337
13338 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
13339
13340         * culture-info-table.h : oops, forgot to make it nsync with r61548.
13341
13342 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
13343
13344         * icall.c: Another fix for building mono in Visual Studio.
13345
13346 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
13347
13348         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
13349         
13350 2006-06-09  Martin Baulig  <martin@ximian.com>
13351
13352         * debug-mono-symfile.c: Put this back and really fix it this
13353         time. Sorry for all the trouble.
13354
13355 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
13356
13357         * icall.c (mono_class_get_throw): Fix a warning.
13358         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
13359         ReflectionTypeLoadException if needed. Fixes #78606.
13360
13361         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
13362         (mono_class_init): Ditto.
13363
13364         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
13365         ref_only exceptions.
13366         (mono_loader_clear_error): Make this work even if there is no error.
13367
13368 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
13369
13370         * object-internals.h marshal.c marshal.h icall.c: Implement method 
13371         Marshal.GetComSlotForMethodInfo using internal call.
13372
13373 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
13374
13375         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
13376         a function for signalling it.
13377
13378         * class.c (mono_class_from_typeref): Use the new kind of loader error when
13379         a referenced assembly is not found.
13380
13381         * loader.c (mono_loader_error_prepare_exception): Add support for 
13382         LOADER_ERROR_ASSEMBLY. Fix formatting.
13383
13384 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
13385
13386         * domain.c appdomain.c class-internals.h marshal.c: Add support 
13387         for VARIANT marshalling on windows and increment corlib version
13388         since Variant struct was added.
13389
13390 2006-06-03  Miguel de Icaza  <miguel@novell.com>
13391
13392         * debug-mono-symfile.c: Revert Martin's previous patch which broke
13393         stack trace line information:
13394
13395         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
13396         (Martin) when looking up B which is between A and C, return A not C.
13397
13398         Bug is #78573.
13399
13400         Thanks to Alexander Olk for tracking this down.
13401
13402 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
13403
13404         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
13405         
13406         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
13407         avoid clobbering its value.
13408         (mono_string_to_lpstr): Fix a warning on windows.
13409
13410 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
13411
13412         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
13413
13414         * reflection.c loader.c: Removed references to 'dummy' flag.
13415
13416         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
13417
13418         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
13419         it gets GC tracking.
13420
13421         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
13422         GC tracking.
13423         
13424         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
13425
13426         * marshal.c threadpool.c: Update callers of mono_async_result_new.
13427
13428         * appdomain.c: Bump corlib version.
13429
13430 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
13431
13432         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
13433         CEE_STIND_REF when working with object references.
13434
13435 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
13436
13437         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
13438         Fixes #78539.
13439
13440 2006-05-30  Miguel de Icaza  <miguel@novell.com>
13441
13442         * loader.c (method_from_memberref): Fix argument value for
13443         mono_loader_set_error_method_load (I was passing the MonoClass
13444         instead of the class name char *).
13445
13446 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
13447
13448         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
13449         CEE_STIND_REF when working with object references.
13450
13451 2006-05-30  Martin Baulig  <martin@ximian.com>
13452
13453         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
13454         mono_method_full_name() change and replace the ':' with a '.'
13455         here.
13456
13457 2006-05-30  Martin Baulig  <martin@ximian.com>
13458
13459         * debug-mono-symfile.c
13460         (mono_debug_symfile_lookup_location): Fix the algorithm:
13461         when looking up B which is between A and C, return A not C.
13462
13463 2006-05-29  Martin Baulig  <martin@ximian.com>
13464
13465         * mono-debug.h
13466         (MonoDebugMethodInfo): Make the typedef public.
13467         (MonoDebugSourceLocation): New public struct.
13468
13469         * mono-debug.c
13470         (mono_debug_source_location_from_address): Removed.
13471         (mono_debug_source_location_from_il_offset): Removed.
13472         (mono_debug_il_offset_from_address): Removed.
13473         (mono_debug_address_from_il_offset): Removed.
13474         (mono_debug_lookup_method): New public function.
13475         (mono_debug_lookup_source_location): New public function; replaces
13476         the old mono_debug_source_location_from_*() functions; see the
13477         inline documentation.
13478         (mono_debug_free_source_location): New public function.
13479         (mono_debug_print_stack_frame): New public function; see the
13480         inline documentation.
13481
13482         * debug-mono-symfile.c
13483         (mono_debug_find_source_location): Renamed into
13484         mono_debug_symfile_lookup_location(); only take a
13485         `MonoDebugMethodInfo *' and an `offset' argument; added inline
13486         documentation.
13487         (mono_debug_find_method): Renamed into
13488         mono_debug_symfile_lookup_method().
13489
13490 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
13491
13492         * assembly.c (mono_assembly_open_full): Dont overwrite the status
13493         returned by mono_image_open_full ().
13494
13495         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
13496         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
13497         #78517.
13498
13499         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
13500         #78518.
13501
13502 2006-05-27  Miguel de Icaza  <miguel@novell.com>
13503
13504         * class.c (mono_class_from_typeref): handle missing images
13505         earlier, deals with bug #78418.   Refactor code; 
13506
13507         Fix a warning introduced in my previous commit (some stale code
13508         from before I revisited my patch).
13509
13510         * class.c (mono_class_create_from_typedef): On failure, remove the
13511         class from the MonoImage->class_cache as the class is not
13512         initialized;   Fixes the leak pointed out by Paolo.
13513
13514 2006-05-25  Dick Porter  <dick@ximian.com>
13515
13516         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
13517         DeleteCriticalSections until I figure out which one may still be
13518         sometimes locked when mono_thread_cleanup is called.
13519
13520 2006-05-24  Dick Porter  <dick@ximian.com>
13521
13522         * threads.c (mono_thread_cleanup): Move the threading cleanup out
13523         of mono_thread_manage and back into its own function, so it can be
13524         called after the finalizer thread has finished.
13525
13526         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
13527
13528 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
13529
13530         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
13531         Fixes #78495.
13532
13533         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
13534         with non-blittable elements.
13535         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
13536
13537 2006-05-24  Martin Baulig  <martin@ximian.com>
13538
13539         * mono-debug-debugger.h (MonoDebuggerEvent): Added
13540         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
13541
13542         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
13543         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
13544         `mono_debugger_event_handler' to NULL.
13545
13546 2006-05-24  Martin Baulig  <martin@ximian.com>
13547
13548         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
13549
13550 2006-05-24  Martin Baulig  <martin@ximian.com>
13551
13552         * mono-debug-debugger.h
13553         (mono_debugger_create_notification_function): Added
13554         `MonoCodeManager *' argument.
13555
13556 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
13557
13558         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
13559
13560 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
13561
13562         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
13563         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
13564         implementation.
13565
13566 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
13567
13568         * icall.c: precise GC support: objects can't be stored in unmanaged
13569         memory anymore, even if they are kept alive by other references: since
13570         they can move the GC needs to be able to always find them.
13571
13572 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
13573
13574         * object.c: precise GC support for static fields. Support
13575         for moving GCs: write barriers and pinned allocation for interned
13576         strings.
13577
13578 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
13579
13580         * domain.c, domain-internals.h: precise GC support for the MonoDomain
13581         structure.
13582
13583 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
13584
13585         * class.c, gc.c: sgen and precise GC updates.
13586
13587 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
13588
13589         * marshal.h, marshal.c: added write barrier wrapper and precise type
13590         fixes.
13591
13592 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
13593
13594         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
13595         support.
13596
13597 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
13598
13599         * reflection.c: precise and sgen GC updates.
13600
13601 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
13602
13603         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
13604
13605 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
13606
13607         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
13608
13609 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
13610
13611         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
13612         MONO_TYPE_OBJECT. Fixes #78462.
13613
13614 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
13615
13616         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
13617         and blittable types.
13618
13619 2006-05-17  Miguel de Icaza  <miguel@novell.com>
13620
13621         * class.c (mono_class_get_exception_for_failure): Implement parts
13622         of a TODO: if the loader error is set (instead of the class
13623         error), we return a Loader exception that can be properly thrown
13624         elsewhere.
13625
13626         This was exposed by some Winforms 2.0 code that I tried to run
13627         (Atsushi pointed me to it).
13628
13629 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
13630
13631         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
13632         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
13633         
13634         * marshal.c (emit_marshal_vtype): Add limited support for 
13635         UnmanagedType.LPStruct. Fixes #78427.
13636
13637         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
13638         Applied a patch from kangaroo to fix #77523.
13639
13640 2006-05-17  Martin Baulig  <martin@ximian.com>
13641
13642         * threads.c
13643         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
13644         (debugger_thread_created): Removed.
13645         (debugger_thread_exited): Removed.
13646
13647 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
13648
13649         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
13650
13651         * object-internals.h (MonoReflectionResource): Sync with managed version.
13652
13653 2006-05-12  Wade Berrier <wberrier@novell.com>
13654
13655         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
13656
13657 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
13658
13659         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
13660         functions try to allocate from the image mempool.
13661
13662 2006-05-12  Dick Porter  <dick@ximian.com>
13663
13664         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
13665
13666 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
13667
13668         * object.c: The FieldGetter and FieldSetter methods require the full
13669         name of the class, not only the name. Fixes bug #78277.
13670
13671 2006-05-11  Miguel de Icaza  <miguel@novell.com>
13672
13673         * loader.c (method_from_memberref): Do not pass the NULL klass to
13674         mono_loader_set_error_() methods.  Pass the non-NULL value
13675         (class). 
13676
13677 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
13678
13679         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
13680         (mono_assembly_close): Null out assembly->image->references after freeing it.
13681
13682         * image.c (mono_image_close): Free image->references.
13683         
13684         * reflection.c (mono_image_basic_init): Fix a small memory leak.
13685
13686 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
13687
13688         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
13689         before checking if it's NULL (g_assert).
13690
13691 2006-05-10  Martin Baulig  <martin@ximian.com>
13692
13693         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
13694         I thought I already killed that two months ago, but now it somehow reappeared.
13695
13696 2006-05-10  Martin Baulig  <martin@ximian.com>
13697
13698         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
13699
13700 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
13701
13702         * reflection.c: Allocate memory for dynamically created methods in the image
13703         mempools.
13704
13705 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
13706
13707         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
13708         don't use the ad pointer before checking if it's NULL (g_assert).
13709
13710 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
13711
13712         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
13713         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
13714
13715         * marshal.c: Allocate all signatures from mempools.
13716
13717         * marshal.c: Allocate some more signatures from mempools.
13718
13719 2006-05-09  Miguel de Icaza  <miguel@novell.com>
13720
13721         * object.c (mono_load_remote_field): The code used to provide a
13722         temporary variable for returning results if the user did not
13723         provide a result pointer.  But our temporary variable was allocted
13724         on the satck.
13725
13726         Fix calling code to always pass a result area.   Coverity ID 103.
13727
13728 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
13729
13730         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
13731         value, not the old. Fixes #78312.
13732         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
13733
13734         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
13735         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
13736         per-image cache.
13737
13738         * assembly.c (mono_assembly_close): Free image->references.
13739
13740         * assembly.c (mono_assembly_names_equal): Fix a warning.
13741         (mono_assemblies_cleanup): Cleanup more global data.
13742
13743         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
13744
13745         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
13746         ptr_cache and image->modules.
13747
13748         * image.c (mono_image_init): Allocate array_cache lazily.
13749         
13750 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13751
13752         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
13753         behavior was changed recently and has bad side effects.
13754
13755 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
13756
13757         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
13758         
13759         * assembly.c (mono_assembly_close): Remove a debug printf.
13760
13761         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
13762
13763         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
13764         to also allow for temporary references between mono_image_open ()/close ().
13765
13766         * domain.c (get_runtimes_from_exe): Add a FIXME.        
13767
13768 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
13769
13770         * marshal.c: Fix support for dynamic methods.
13771
13772         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
13773
13774         * marshal.c (mono_marshal_cleanup): New cleanup function.
13775
13776         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
13777         image mempools.
13778
13779         * class.c (mono_class_init): Fix leaking class->nested_classes.
13780
13781         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
13782
13783         * image.c (mono_image_init): Initialize the new cashes.
13784
13785         * image.c (mono_image_close): Destroy the new cashes.
13786
13787         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
13788
13789         * mempool.c (mono_mempool_strdup): New helper function.
13790
13791         * class-internals.h: Add prototype for mono_loader_unlock ().
13792
13793         * domain.c (mono_jit_info_table_find): Fix a warning.
13794         (mono_debugger_check_runtime_version): Ditto.
13795
13796         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
13797         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
13798         functions to these modules.
13799
13800         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
13801         metadata modules.
13802         
13803         * marshal.c (mono_free_bstr): Fix a warning.
13804
13805         * assembly.c (mono_assembly_open_full): Fix another small leak.
13806
13807         * object.c: Fix some unload leaks in the remoting code.
13808
13809         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
13810         function.
13811
13812         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
13813
13814         * reflection.c: Fix some unload leaks in dynamic assemblies.
13815
13816 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
13817
13818         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
13819         * marshal.h: Add BSTR support on Win32
13820         * icall.c: Add BSTR icalls
13821         * metadata.h: Add BSTR enums
13822
13823 2006-04-28  Miguel de Icaza  <miguel@novell.com>
13824
13825         Work to catch the crash from #76795 and turn it into an
13826         exception.   As I stubbed out pieces of the VisualBasic support,
13827         I found a number of places where the code was failing and I added
13828         checks to those places. 
13829         
13830         * metadata.c (do_mono_metadata_parse_generic_class): Make this
13831         function return a status code.  If we fail to parse the signature
13832         from mono_metadata_parse_generic_inst, return FALSE.
13833
13834         * loader.c (mono_get_method_from_token): If we fail to load the
13835         method (mono_class_get) return NULL.   
13836
13837         * (method_from_memberref): Return NULL if we are unable to parse
13838         the method signature
13839
13840         (mono_loader_error_prepare_exception): Since we now use the
13841         loader_error flag internally to stop processing, and obtaining
13842         exceptions that might be thrown will walk this code path the
13843         proper way of going from a MonoLoaderError into a
13844         MonoException was convoluted.   This new routine encapsulates the
13845         process of turning the error into an exception and *clearing* the
13846         error afterwards.
13847         
13848 2006-04-27  Miguel de Icaza  <miguel@novell.com>
13849
13850         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
13851         with missing assemblies), and to cope with:
13852
13853                 * Missing fieldref from a non-existing assembly.
13854                 * Missing methodref from a non-existing assembly.
13855
13856         The first batch of work to address *some* of the issues from 76661.
13857         
13858         * object.c (mono_class_create_runtime_vtable): If we fail to
13859         initialize the class raise the exception here. 
13860
13861         * metadata.c (mono_class_get_overrides_full): If any methods fail
13862         to load return the failure to the caller.
13863
13864         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
13865         flagging assemblies that failed to load.   
13866
13867         Do not crash if we are unable to load the assembly.
13868
13869         (mono_assembly_close): Do nothing with REFERENCE_MISSING
13870         assemblies. 
13871
13872         * loader.c (mono_loader_set_error_type_load): Change the
13873         convention to always pass unallocated strings, so we make our own
13874         copies (I know our own code had duplicated strings before, but
13875         this keeps the normal conventions).
13876         (method_from_memberref): Call mono_loader_set_error_method_load
13877         for all possible failures of loading the class. 
13878         Remove assert, turn into a loader error.
13879
13880         (mono_loader_error_to_exception): Move this routine from mini
13881         (mini_loader_error_to_exception) there was no need to have that in
13882         mini. 
13883
13884         * class.c (mono_class_from_typeref): If we were not able to load
13885         the assembly with mono_assembly_load_reference, call the
13886         mono_loader_set_error_type_load to register the problem.
13887
13888         (mono_class_setup_fields): If we fail to load the type from
13889         mono_metadata_parse_type_full, call mono_class_set_failure and
13890         break from the loop.
13891
13892         If class->exception_type is set, we do not layout the fields as
13893         that might crash the runtime, and instead return (from breaking
13894         from the previous loop).
13895
13896         (mono_class_setup_vtable): This now returns a boolean indicating
13897         whether the table was properly setup.   The decision is driven by
13898         mono_class_get_overrides_full which might run into non-existing
13899         methods. 
13900         
13901         (mono_class_init): Returns TRUE on success or FALSE if there was a
13902         problem in loading the type (incorrect assemblies, missing
13903         assemblies, methods, etc).
13904
13905         When we call mono_class_setup_fields we also check for a potential
13906         error inside this call (either a class exception or a general
13907         loader exception).
13908
13909         (mono_class_create_from_typedef): If the parent fails to load
13910         (calling mono_class_get_full) return NULL.
13911         
13912         ** Important **
13913
13914         calls to mono_metadata_parse_type_full should be checked
13915         everywhere and set the mono_class_set_failure
13916         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
13917
13918         The current patch checks the places where my manually constructed
13919         tests show the errors are showing up, but we should do it
13920         everywhere. 
13921
13922         ** Important2 **
13923
13924         mono_class_init return values should be tested everywhere, like
13925         the previous case this is something that we should audit
13926         everywhere and not only on the cases exposed by the tests I
13927         created. 
13928
13929 2006-04-26  Miguel de Icaza  <miguel@novell.com>
13930
13931         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
13932         boolean parameter and instead pass the information on `options'
13933         parameter (FileOptions).
13934
13935         * icall.c: Register the new signature for MonoIO.Open.
13936
13937         * debug-helpers.c (dis_one): Trying to understand how coverity
13938         works.  Fix Run 5, item 78.
13939
13940 2006-04-26  Dick Porter  <dick@ximian.com>
13941
13942         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
13943         dereference.
13944
13945 2006-04-25  Martin Baulig  <martin@ximian.com>
13946
13947         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
13948
13949         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
13950         debugger_thread_created().
13951         (debugger_gc_push_all_stacks): Don't handle the main thread in any
13952         special way.
13953         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
13954         (mono_debugger_finalize_threads): New function; undo the effects
13955         of mono_debugger_init_threads().
13956         (mono_debugger_create_all_threads): Removed.
13957
13958 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
13959
13960         * image.c (mono_image_close): Tidy up trace messages.
13961
13962         * assembly.c (mono_assembly_close): Ditto.
13963
13964         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
13965         no longer references an already freed assembly. Fixes #78168.
13966
13967 2006-04-21  Dick Porter  <dick@ximian.com>
13968
13969         * threads.c (mono_thread_detach): Fix reference counting when
13970         detaching threads.
13971
13972 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
13973
13974         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
13975         #78155.
13976
13977 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
13978
13979         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
13980         (mono_type_to_stind): Ditto.
13981
13982         * marshal.c: Use the new helper functions to simplify code.
13983
13984         * image.c (mono_image_close): Add some code for help debug assembly unloading
13985         problems.
13986
13987         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
13988         image mempool.
13989
13990         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
13991         assembly was already loaded in another appdomain. Fixes #78083.
13992
13993 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
13994
13995         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
13996         referenced assemblies.
13997         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
13998
13999         * domain.c (mono_domain_free): Add a trace message.
14000
14001         * appdomain.c (add_assemblies_to_domain): Ditto.        
14002
14003         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
14004         field.  
14005
14006 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
14007
14008         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
14009
14010 2006-04-12  Martin Baulig  <martin@ximian.com>
14011
14012         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
14013         `USE_INCLUDED_LIBGC'.   
14014
14015 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
14016
14017         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
14018         the patch contains ../ and a small directory name later. Hopefully fixes
14019         #78035.
14020
14021 2006-04-10  Martin Baulig  <martin@ximian.com>
14022
14023         Clean up the debugger's thread-handling code.
14024
14025         The debugger's thread-handling code has been moved from
14026         ../mini/debug-debugger.c to threads.c.  We now iterate directly
14027         over the `threads' hash, keep track of exiting threads and also
14028         use proper locking.
14029
14030         We can now debug XSP and XSP based applications with the debugger.
14031
14032         * object-internals.h (MonoThread): Added `gpointer end_stack'.
14033
14034         * threads.h
14035         (MonoThreadCallbacks): Removed; this was only used by the debugger.
14036         (mono_install_thread_callbacks): Likewise.      
14037
14038         * threads.c (mono_thread_callbacks): Removed.
14039         (debugger_thread_created, debugger_thread_exited): New static functions.
14040         (start_wrapper): Call debugger_thread_created().
14041         (thread_cleanup): Call debugger_thread_exited().
14042         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
14043         (mono_debugger_init_threads): New public function.
14044         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
14045         iterate directly over the `threads' hash and also use proper locking.
14046
14047         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
14048
14049         * mono-debug-debugger.h
14050         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
14051
14052 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
14053
14054         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
14055         argument type=array. Fixes #78057.
14056
14057 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
14058
14059         * culture-info-table.h : regenerated. Fixed bug #69652.
14060
14061 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
14062
14063         * loader.c metadata.c: Reapply a variant r59116.
14064         
14065         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
14066
14067         * class.c (mono_class_setup_interface_offsets): New internal function.
14068
14069         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
14070         interfaces too. Fixes #77398.
14071
14072         * reflection.c (encode_cattr_value): Add support for 
14073         parameter type=object, argument type=array.
14074         (load_cattr_value): Ditto. Fixes #77916.
14075
14076         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
14077         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
14078
14079         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
14080         a byval char array and CharSet is Ansi.
14081
14082         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
14083
14084 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
14085
14086         * metadata.c: Add some locking comments.
14087         
14088         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
14089         mempool.
14090         (mono_metadata_free_method_signature): Don't free the signature itself.
14091
14092         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
14093
14094         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
14095         reference the same MonoImage.
14096         (mono_assembly_load_from_full): Add an assert.
14097
14098 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
14099
14100         * image.c (mono_image_close): Don't put the image we are about to free into the
14101         loaded_images_guid_hash.
14102
14103         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
14104         to reduce code duplication.
14105
14106         * marshal.c: Register the native functions called by this module as icalls, to
14107         somewhat centralize the creation of MonoMethodSignature's.
14108
14109         * loader.c (mono_method_signature): Add a cache for method signatures.
14110
14111         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
14112         the parameter attributes of a method.
14113         (mono_metadata_parse_method_signature_full): Refactored the computation of
14114         parameter attributes into a separate function. Also avoid one allocation in
14115         most cases.
14116
14117         * assembly.c (mono_assembly_close): Ditto.
14118
14119         * image.c (mono_image_close): Log trace messages with INFO level.
14120
14121         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
14122
14123         * image.c reflection.c: Correct reference counting of image modules.
14124         
14125         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
14126         of this function from the image mempool.
14127         
14128         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
14129         to allow more cached types to be used.
14130
14131         * mono-debug.c (mono_debug_add_method): Appled patch from
14132         David S. Miller  <davem@sunset.davemloft.net>: Access 
14133         minfo->lexical_blocks[] entry elements using read32().
14134
14135 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
14136
14137         * loader.c (mono_free_method): No longer free the method header for non-dynamic
14138         methods as it is allocated from the mempool.
14139
14140         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
14141         image mempool.
14142
14143         * metadata-internals.h: Add comments describing the reference counting scheme
14144         used for MonoImage and MonoAssembly.
14145
14146         * image.c assembly.c reflection.c: Rework reference counting of images and 
14147         assemblies so they are freed when the runtime is shut down. Free some 
14148         additional memory structures when an image is unloaded.
14149         
14150 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
14151
14152         * class.c loader.c reflection.c: Allocate more data structures in
14153         the image mempool.
14154
14155 2006-03-31  Miguel de Icaza  <miguel@novell.com>
14156
14157         * icall.c
14158         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
14159         build on pre glib 2.4 systems.
14160
14161 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
14162
14163         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
14164
14165         * icall.c: Fix some warnings.
14166
14167 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
14168
14169         * culture-info-table.h : regenerated.
14170
14171 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
14172
14173         * threads.c, object-internals.h, verify.c: changed the culture caching
14174         code to use a normal MonoArray for storage so the GC can keep track of
14175         them easily. Fixed bits of the cache logic, too and simplified the
14176         code.
14177
14178 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
14179
14180         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
14181         thread for non-Boehm GCs.
14182
14183 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
14184
14185         * domain.c, object.c, domain-internals.h: reduce the amount of memory
14186         needed to keep track of the data for static fields.
14187
14188 2006-03-29  Raja R Harinath  <rharinath@novell.com>
14189
14190         Fix #75172
14191         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
14192         for interface classes.  Use 'num_methods' instead.
14193         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
14194         before using '->vtable_size' field.
14195
14196 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
14197
14198         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
14199         doesn't contain managed pointers, so use a normal hashtable.
14200
14201 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
14202
14203         * reflection.c, class-internals.h, domain.c: fixed handling of types
14204         used as values for objects in custom attributes (bug #77915):
14205
14206 2006-03-24  Martin Baulig  <martin@ximian.com>
14207
14208         * class.c (mono_class_setup_fields): Added support for generic
14209         instances; fixes #77580.
14210
14211 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14212
14213         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
14214
14215 2006-03-24  Dick Porter  <dick@ximian.com>
14216
14217         * file-io.c (get_file_attributes): More stat macro breakage.
14218         Fixes bug 77759.
14219
14220 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
14221
14222         * profiler.c: added the file=filename option in the default profiler
14223         to output the profile data to filename.
14224
14225 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14226
14227         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
14228         bug #77877.
14229
14230 2006-03-22  Martin Baulig  <martin@ximian.com>
14231
14232         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
14233         allocated `MonoClassField *' in `fb->handle'.
14234
14235 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
14236
14237         * class.c, image.c, metadata-internals.h: implemented new mechanism to
14238         allocate interface ID to save memory and allow better ID reuse on
14239         appdomain unload. setup_generic_vtable () removal from Martin.
14240
14241 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
14242
14243         * object.h, appdomain.c, domain.c, exception.c, icall.c,
14244         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
14245         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
14246         write barriers for reference stores with managed objects accessed with
14247         C structures in the runtime and in embedding programs.
14248
14249 2006-03-20  Raja R Harinath  <rharinath@novell.com>
14250
14251         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
14252         'interface_id' and 'max_interface_id' fields of MonoClasses
14253         representing open generic types.
14254
14255 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
14256
14257         * object.h, object.c, icall.c: added functions to deal with
14258         storing valuetypes that contain references in managed objects.
14259         * reflection.c, string-icalls.c, threads.c, marshal.c: small
14260         fixes and comments around uses of mono_array_addr ().
14261
14262 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
14263
14264         * object.h, icall.c, monitor.c: object.GetHashCode ()
14265         implementation that supports the moving garbage collector.
14266
14267 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
14268
14269         * icall.c, threads-types.h, threads.c: implemented finalizer for
14270         LocalDataStoreSlot.
14271
14272 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
14273
14274         * metadata.c (mono_type_size): Add a fixme.
14275         (mono_type_stack_size): Ditto.
14276
14277         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
14278         'type_forwarders' field.
14279
14280         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
14281         attribute from net 2.0.
14282
14283         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
14284         from class.c.
14285
14286         * class.c (mono_class_setup_fields): Fix a warning.
14287         
14288         * class.c (mono_class_from_name): Add support for assemblyref entries
14289         in the EXPORTEDTYPE table.
14290
14291         * reflection.c: Add support for handling type forwarders under net 2.0.
14292
14293         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
14294         
14295 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
14296
14297         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
14298         overwriting entries in ModuleBuild->types, also clean up the code
14299         a little. Fixes #77774.
14300
14301 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
14302
14303         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
14304         load friend assembly info when present.
14305
14306 2006-03-14  Raja R Harinath  <rharinath@novell.com>
14307
14308         Fix crasher on gtest-158.cs.
14309         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
14310         the return value if the MonoClass we want is yet in an
14311         inconsistent state.
14312         * class.c (mono_class_create_from_typedef): Add an comment
14313         explaining an order dependency between mono_class_setup_parent and
14314         mono_class_setup_mono_type.
14315
14316 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
14317
14318         * class.c: documentation updates and events bug fix.
14319
14320 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
14321
14322         * class.c: some cleanup, locking fixes.
14323
14324 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
14325
14326         * class.c: fix the generics code to setup nested
14327         type info to the instantiated type (bug #77770).
14328
14329 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
14330
14331         * marshal.c: fixed a few type correctness issues.
14332
14333 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
14334
14335         * loader.c: the Set/Get/Addrtess array methods should be public.
14336
14337 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
14338
14339         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
14340         
14341         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
14342         info->wrapper.
14343
14344 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
14345
14346         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
14347
14348         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
14349
14350         * mempool.c (mono_mempool_alloc): Speed this up a bit.
14351         (mono_mempool_alloc0): Ditto.
14352
14353 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14354
14355         * socket-io.c:
14356         (create_object_from_sockaddr): it was allocating 4 extra bytes
14357         for the AF_UNIX data. Fixes bug #77747.
14358
14359 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
14360
14361         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
14362
14363 2006-03-09  Dick Porter  <dick@ximian.com>
14364
14365         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
14366         Fixes bug 76966 again.
14367
14368 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
14369
14370         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
14371         names from r57532
14372         * appdomain.c: Bumped corlib version to 48 (due to r57532)
14373
14374 2006-03-07  Martin Baulig  <martin@ximian.com>
14375
14376         * object.c
14377         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
14378
14379 2006-03-07  Martin Baulig  <martin@ximian.com>
14380
14381         * class.c
14382         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
14383         regression introduced in r56970; see gtest-252.cs.
14384
14385         * loader.c (mono_get_method_constrained): Correctly handle generic
14386         methods; see gtest-253.cs.
14387
14388 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
14389
14390         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
14391
14392 2006-03-04  Martin Baulig  <martin@ximian.com>
14393
14394         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
14395         compute the parent type at runtime, just like we're already doing
14396         it for interfaces.
14397
14398         * reflection.c
14399         (mono_reflection_bind_generic_parameters): Don't compute the
14400         parent type anymore.
14401
14402         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
14403
14404 2006-03-04  Martin Baulig  <martin@ximian.com>
14405
14406         * mono-debug-debugger.h
14407         (mono_debugger_create_notification_function): Allocate memory at
14408         runtime and return a pointer to it.
14409
14410 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
14411
14412         * assembly.c: Fix windows build.
14413         
14414         * assembly.c: Fix build.
14415
14416         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
14417
14418         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
14419         
14420 2006-03-03  Dick Porter  <dick@ximian.com>
14421
14422         * process.c
14423         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
14424         Check parameters before dereferencing them.  Fixes Aaron's part of
14425         bug 77393.
14426
14427 2006-03-03  Raja R Harinath  <rharinath@novell.com>
14428
14429         Fix performance regression.
14430         * loader.c (find_method_in_class): Add 'from_class' argument.
14431         Rename 'klass' argument to 'in_class'.  The signature is compared
14432         against the method in 'in_class', and the corresponding method is
14433         returned from 'from_class'.
14434         (find_method): Walk both 'in_class' and 'from_class' in parallel.
14435         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
14436         type definition and generic instantiation in parallel.
14437         (mono_get_method_constrained): Update to changes.
14438
14439 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
14440
14441         * threads.c: make sure the domain is correct, too when doing
14442         mono_thread_attach ().
14443
14444 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
14445
14446         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
14447         windows. Fixes #77683.
14448
14449 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
14450
14451         * object.h, *: introduced specific way to set elements of an array
14452         of references to be used as write barrier. Still need to audit the
14453         uses of mono_array_addr.
14454
14455 2006-03-01  Miguel de Icaza  <miguel@novell.com>
14456
14457         * object-internals.h: New field to cache the assmebly name, patch
14458         from Tambet Ingo (tambet@ximian.com)
14459
14460 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
14461
14462         * decimal.h, class-internals.h, metadata-internals.h,
14463         file-io.h: mark a few function declarations as internal, to
14464         reduce the number of PLT entries.
14465
14466 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14467
14468         * file-io.c: fix typo in warning message.
14469
14470 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
14471
14472         * loader.c: on unix, lookup the "*A" version of a function
14473         if charset is auto as a second option before failing.
14474
14475 2006-02-28  Raja R Harinath  <rharinath@novell.com>
14476
14477         * class.h (mono_class_inflate_generic_method): Revert to two
14478         argument version.
14479         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
14480         (mono_class_inflate_generic_method_full): Add.
14481         * class.c (mono_class_inflate_generic_method_full): Rename from
14482         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
14483         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
14484         * loader.c, reflection.c: Update to changes.
14485
14486 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
14487
14488         * icall.c: const fixes and small improvements.
14489
14490 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14491
14492         * threadpool.c: for asynchronous connect(), enable the same workaround
14493         for BSD 6 as for the Mac. Fixes bug #77637.
14494
14495 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
14496
14497         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
14498         formatted classes. Fixes #77524.
14499
14500 2006-02-24  Raja R Harinath  <rharinath@novell.com>
14501
14502         * class.c (inflate_generic_type): Add a couple more
14503         micro-optimizations.
14504         (inflate_generic_context): Don't use the 'gmethod' from
14505         'inflate_with'.
14506         (mono_class_inflate_generic_method): If the method has generic
14507         parameters, but the passed-in context doesn't have a 'gmethod',
14508         create one.  Use the possibly simplified generic instantiation
14509         from the declaring class instead of the one passed in.
14510
14511 2006-02-24  Raja R Harinath  <harinath@gmail.com>
14512
14513         Make generic method signature and method header handling lazy.
14514         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
14515         (inflate_generic_header): Likewise.
14516         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
14517         parameter to avoid inflating types.
14518         (mono_get_inflated_method): Empty out.
14519         * class.h (mono_class_inflate_generic_method): Update to changes.
14520         * loader.c (mono_get_method_from_token): Don't parse signature for
14521         generic methods, nor methods of generic classes.
14522         (mono_method_signature): Rename from 'mono_method_signature'.
14523         Inflate signature on demand.
14524         (mono_method_get_header): Inflate method header on demand.
14525         * reflection.c: Update to changes.
14526
14527 2006-02-23  Raja R Harinath  <rharinath@novell.com>
14528
14529         * metadata.c (mono_metadata_inflate_generic_inst): If the
14530         instantiation is closed, don't bother expanding it in the new
14531         context.
14532         * class.c (inflate_generic_class): If the generic instantiation
14533         doesn't change after inflation, return the argument itself.
14534         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
14535         Add bounds checks.
14536         (inflate_generic_context): If neither the generic class nor the
14537         generic method instantiations change, return the original context.
14538         * reflection.c (mono_method_get_object): Do
14539         'mono_get_inflated_method' before accessing the ->klass field.
14540         (inflate_mono_method): Don't create a MonoGenericMethod unless
14541         necessary.
14542         (inflate_method): Don't pass a constructed type as the declaring
14543         type of a methodbuilder.
14544
14545 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
14546
14547         * object.c: fix memory overwrite.
14548
14549 2006-02-22  Dick Porter  <dick@ximian.com>
14550
14551         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
14552         it doesn't work any more.
14553         (mono_threads_request_thread_dump): Fix unused variable warnings.
14554
14555 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
14556
14557         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
14558         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
14559         the public header file.
14560
14561 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
14562
14563         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
14564
14565 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
14566
14567         * class-internals.h, object.c: reduce the size of MonoVTable
14568         and store the interface_offsets array at negative offsets.
14569
14570 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
14571
14572         * metadata.c: tweak table descriptors data structures to reduce
14573         size and runtime relocations.
14574
14575 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
14576
14577         * marshal.c: fix some types and opcodes to be type-safe
14578         in marshaling wrappers.
14579
14580 2006-02-21  Ankit Jain  <jankit@novell.com>
14581
14582         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
14583
14584 2006-02-21  Raja R Harinath  <rharinath@novell.com>
14585
14586         * metadata.c (get_constraints): Relax debugging checks for monodis.
14587
14588 2006-02-21  Ankit Jain  <jankit@novell.com>
14589
14590         * metadata.c (mono_metadata_load_generic_params): Move the code
14591         checking for ambiguous generic params from here to mono/dis/get.c
14592         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
14593
14594 2006-02-21  Raja R Harinath  <harinath@gmail.com>
14595
14596         Fix assertion triggered when compiling nemerle.
14597         * class.c (mono_get_shared_generic_inst): Rename from
14598         get_shared_inst and make non-static.
14599         * loader.c (mono_get_shared_generic_method): New.  Used to create
14600         the MonoGenericContext-equivalent of a MonoGenericContainer.
14601         (mono_get_method_from_token): Initialize the 'context' field of
14602         the created MonoGenericContainer.
14603         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
14604         * metadata.c (get_constraints): Add sanity check.
14605         * class-internals.h: Add new internal methods.
14606
14607         * reflection.c (verify_safe_for_managed_space): New sanity check.
14608         Currently checks that owner-less generic parameters aren't allowed
14609         in managed space.
14610         (mono_type_get_object): Use it.
14611         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
14612         that are now in mono_type_get_object.
14613         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
14614
14615 2006-02-19  Raja R Harinath  <harinath@gmail.com>
14616
14617         * metadata.c (mono_type_create_from_typespec): Rename from
14618         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
14619         argument and caching of types in the generic container.
14620         (unwrap_arrays, find_generic_param): Remove.
14621         * metadata-internals.h: Update.
14622         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
14623
14624 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
14625
14626         * class.c (mono_class_get_exception_for_failure): Fix a warning.
14627
14628         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
14629         return values. Fixes #77581.
14630
14631         * class.c (mono_fnptr_class_get): Switch name and name_space.
14632
14633         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
14634         classes and add support for [In, Out] attributes.
14635         (mono_marshal_free_asany): Ditto. Fixes #77524.
14636
14637 2006-02-18  Raja R Harinath  <harinath@gmail.com>
14638
14639         * class.c (mono_class_from_generic_parameter): Make more robust to
14640         incomplete MonoGenericContainers from monodis.
14641
14642 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
14643
14644         * class-internals.h: added some more exception types.
14645         * class.c, metadata.c: added a few checks to handle missing
14646         types.
14647
14648 2006-02-17  Raja R Harinath  <rharinath@novell.com>
14649
14650         Use owner-less generic-params some more.
14651         * class.c (my_mono_class_from_generic_parameter): Remove.
14652         (mono_class_from_generic_parameter): Handle null image,
14653         param->name and param->owner.
14654         (mono_class_from_mono_type): Update.
14655         (mono_class_create_from_typespec): Remove 'container' parameter.
14656         If that parameter is non-null, the result is always inflated by
14657         'mono_class_get_full' anyway.
14658         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
14659         parameter.
14660         (mono_class_get_full): Update.
14661
14662         * class.c (inflate_generic_type) [GENERICINST]: If the generic
14663         instance is not open, don't bother inflating.
14664         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
14665         parse metadata for inflated classes.
14666         (_mono_class_get): Change GenericContext* parameter to
14667         GenericContainer*.
14668         (mono_class_create_from_typespec): Likewise.  Simplify, and
14669         implement trivially.  All the cases are handled in
14670         mono_class_from_mono_type.  Don't inflate returned class.
14671         (mono_class_get_full): Delegate GENERICINST optimization to
14672         inflate_generic_type.
14673         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
14674
14675 2006-02-16  Dick Porter  <dick@ximian.com>
14676
14677         * socket-io.c (create_object_from_sockaddr): Fix typo.
14678         (create_sockaddr_from_object): Check array lengths before
14679         potentially accessing items off the end.
14680         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
14681         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
14682         (ves_icall_System_Net_Sockets_Socket_Send_internal)
14683         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
14684         length checks to avoid wraparound overflows.
14685         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
14686         contents of the array of sockets
14687         (hostent_to_IPHostEntry2)
14688         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
14689         Check return value of inet_ntop ().
14690         (addrinfo_to_IPHostEntry): Fix typo
14691
14692 2006-02-16  Raja R Harinath  <rharinath@novell.com>
14693
14694         Type metadata parsing doesn't use generic-instantiation information.
14695         * metadata.c (mono_metadata_parse_array_full): Change
14696         MonoGenericContext* parameter to MonoGenericContainer*.
14697         (mono_metadata_parse_type_full): Likewise.
14698         (mono_type_create_from_typespec_full): Likewise.
14699         (mono_metadata_parse_mh_full): Likewise.
14700         (mono_metadata_parse_generic_inst): Likewise.
14701         (do_mono_metadata_parse_generic_class): Likewise.
14702         (do_mono_metadata_parse_type): Likewise.
14703         * metadata-internals.h: Update to changes.
14704         * class.c (mono_class_find_enum_basetype): Likewise.
14705         (mono_class_setup_fields): Likewise.
14706         (mono_class_create_from_typespec): Likewise.
14707         * loader.c (method_from_methodspec): Likewise.
14708         (mono_get_method_from_token): Likewise.
14709         (mono_method_get_header): Likewise.
14710
14711 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
14712
14713         * marshal.c: handle additional GENERICINST case (patch from
14714         Thong Nguyen <tum@veridicus.com>).
14715         Fix a few cases where LDIND_I/STIND_I was used for references.
14716
14717 2006-02-16  Raja R Harinath  <rharinath@novell.com>
14718
14719         * reflection.c (mono_reflection_get_token): Remove unused variable.
14720
14721 2006-02-16  Martin Baulig  <martin@ximian.com>
14722
14723         * reflection.c (mono_reflection_get_token): Add support for fields
14724         in instantiated generic types.
14725
14726         * icall.c
14727         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
14728
14729 2006-02-15  Martin Baulig  <martin@ximian.com>
14730
14731         * icall.c
14732         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
14733         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
14734         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
14735         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
14736
14737 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
14738
14739         * class.c, metadata.c, metadata.h, object.c, icall.c,
14740         marshal.c: changed mono_type_get_underlying_type () to do
14741         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
14742         Fixed handling of instantiated generic valuetypes (bug #75479).
14743
14744 2006-02-15  Raja R Harinath  <rharinath@novell.com>
14745
14746         * metadata.c (mono_metadata_decode_signed_value): Simplify.
14747         Delegate to mono_metadata_decode_value, and work on the returned value.
14748
14749         * icall.c (ves_icall_MonoType_GetGenericArguments):
14750         Add consistency check here too.
14751         
14752 2006-02-15  Ankit Jain  <jankit@novell.com>
14753
14754         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
14755         char/short etc.
14756
14757 2006-02-15  Ankit Jain  <jankit@novell.com>
14758
14759         * metadata.c (mono_metadata_decode_signed_value): New function to decode
14760         signed values, used only for representing lower bounds of arrays.
14761         (mono_metadata_parse_array_full): Use new
14762         mono_metadata_decode_signed_value to decode lower bounds.
14763
14764 2006-02-14  Martin Baulig  <martin@ximian.com>
14765
14766         * reflection.c
14767         (mono_reflection_get_token): Support "MonoGenericMethod" and
14768         "MonoGenericCMethod" and allow generic instances / methods.
14769
14770 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
14771
14772         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
14773         to obtain the terminal size using an ioctl.
14774
14775         * object.c (mono_nullable_init): Revert this as nullable reference
14776         types are not valid.
14777         (mono_nullable_box): Ditto.
14778
14779 2006-02-09  Dick Porter  <dick@ximian.com>
14780
14781         * threads.c (mono_thread_detach): Drop a reference to the thread
14782         we're detaching.
14783
14784 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
14785
14786         * object.c (mono_nullable_init): Handle nullable reference types.
14787         (mono_nullable_box): Ditto. Fixes #77446.
14788
14789 2006-02-07  Martin Baulig  <martin@ximian.com>
14790
14791         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
14792
14793 2006-02-07  Ankit Jain  <jankit@novell.com>
14794
14795         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
14796         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
14797         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
14798         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
14799         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
14800         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
14801
14802 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
14803
14804         * class.c (mono_class_create_generic): Set type_token as well.
14805
14806         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
14807         compatible with MS.
14808
14809 2006-02-02  Martin Baulig  <martin@ximian.com>
14810
14811         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
14812         has never been used so far.
14813
14814 2006-02-02  Martin Baulig  <martin@ximian.com>
14815
14816         * mono-debug-debugger.h: Changed comment at the top of this file;
14817         the header is not installed, but it's safe to #include it from
14818         within the JIT.
14819
14820         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
14821         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
14822
14823 2006-02-02  Martin Baulig  <martin@ximian.com>
14824
14825         * mono-debug.h
14826         (MonoSymbolTable): Removed the `metadata_info' field.
14827
14828         * mono-debug.c
14829         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
14830
14831         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
14832         (mono_debugger_add_builtin_types): Removed.
14833         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
14834         (mono_debugger_create_notification_function): We now operate on a
14835         pre-allocated area; take a `gpointer' and return `void'.
14836
14837         * mono-debug-debugger.c
14838         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
14839         (mono_debugger_add_builtin_types): Removed.
14840
14841 2006-02-02  Martin Baulig  <martin@ximian.com>
14842
14843         * threads.c (mono_debugger_create_all_threads): New public method.
14844
14845 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
14846
14847         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
14848         breaks on several platforms.
14849
14850 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
14851
14852         * assembly.c: the VS.NET build doesn't supply default values for
14853         MONO_ASSEMBLIES and MONO_CFG_DIR.
14854
14855 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
14856
14857         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
14858         helper function.
14859
14860         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
14861
14862         * loader.c (method_from_memberref): Fix a warning.
14863
14864         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
14865
14866         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
14867         with explicit layout. Fixes #77433.
14868
14869 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
14870
14871         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
14872         max_interface_id is initialized before using it. Fixes #77398.
14873         (ves_icall_Type_GetInterfaces): Ditto.
14874
14875 2006-01-30  Raja R Harinath  <rharinath@novell.com>
14876
14877         * metadata.c (mono_metadata_parse_method_signature_full): Don't
14878         allocate memory for parameter attributes when parsing memberref
14879         signatures.
14880         * loader.c (mono_loader_set_error_method_load): Don't warn.
14881         (method_from_memberref): Ensure MissingMethodException gets thrown
14882         if method is not found.  Make warning more informative.
14883
14884 2006-01-29  Raja R Harinath  <harinath@gmail.com>
14885
14886         Fix #77397
14887         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
14888         return true if is byref.
14889         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
14890         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
14891         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
14892
14893 2006-01-27  Raja R Harinath  <rharinath@novell.com>
14894
14895         Fix tests/find-method.2.il
14896         * loader.c (find_method, find_method_in_class): Remove is_inflated
14897         argument.  Revert 2006-01-18 change.
14898         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
14899         is generic, search for method in its generic definition.
14900         * class.c (mono_class_setup_vtable_general): Print generic
14901         arguments of generic types in debugging printf.
14902
14903 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
14904
14905         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
14906
14907         * threads.c (mono_threads_request_thread_dump): New helper function.
14908
14909 2006-01-25  Raja R Harinath  <rharinath@novell.com>
14910
14911         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
14912
14913 2006-01-25  Ankit Jain  <jankit@novell.com>
14914
14915         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
14916         move definition to ..
14917         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
14918         
14919 2006-01-25  Ankit Jain  <jankit@novell.com>
14920             Raja R Harinath  <rharinath@novell.com>
14921
14922         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
14923         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
14924         as necessary.
14925
14926 2006-01-25  Martin Baulig  <martin@ximian.com>
14927
14928         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
14929         `MonoDebuggerThread' into debug-debugger.c.
14930
14931 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
14932
14933         * profiler.c: fix printing of data.
14934
14935 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
14936
14937         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
14938           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
14939
14940 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
14941
14942         * object.c: fix deadlock related to string interning.
14943
14944 2006-01-23  Martin Baulig  <martin@ximian.com>
14945
14946         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
14947
14948         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
14949
14950 2006-01-23  Martin Baulig  <martin@ximian.com>
14951
14952         * mono-debug.h: Moved the prototypes of some functions which are
14953         used by the JIT here from mono-debug-debugger.h.
14954
14955 2006-01-21  Martin Baulig  <martin@ximian.com>
14956
14957         * Makefile.am: Don't install mono-debug-debugger.h.
14958
14959 2006-01-21  Martin Baulig  <martin@ximian.com>
14960
14961         * mono-debug-debugger.h: Enforce the private status of this header
14962         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
14963         Moved some stuff from mono-debugger-jit-wrapper.h here.
14964
14965 2006-01-20  Raja R Harinath  <rharinath@novell.com>
14966
14967         * class.c (mono_class_from_typeref): Add a sanity test to help
14968         catch lack of assembly load/search hooks.
14969
14970 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
14971
14972         * marshal.c (emit_struct_conv): Relax the fields with same offset
14973         check even more. Fixes #77230.
14974
14975 2006-01-18  Martin Baulig  <martin@ximian.com>
14976
14977         * loader.c (find_method_in_class): Added `gboolean is_inflated'
14978         argument; if false, we compare the uninstantiated signatures.
14979         (method_from_memberref): Compare the uninstantiated signatures;
14980         fixes #76417.
14981
14982 2006-01-18  Robert Jordan  <robertj@gmx.net>
14983
14984         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
14985         Clear the weak link. Fixes bug #77170.
14986
14987         * gc.c (mono_gchandle_free):
14988         Reflect *-gc.c changes (tiny optimization).
14989
14990 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
14991
14992         * metadata.c (mono_metadata_signature_dup): Applied patch from
14993         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
14994         Fixes #77288.
14995
14996 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
14997
14998         * marshal.c (emit_struct_conv): Allow fields with the same offset when
14999         marshalling from native to managed code. Fixes #77230.
15000
15001 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15002
15003         * threadpool.c: fix problem (Mac only) when more than one asynchronous
15004         connect. Fixes bug #77020.
15005
15006 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
15007
15008         * class.c: fixed id assignement for nested interfaces (bug #77275).
15009         Added also better info for --print-vtable debugging.
15010
15011 2006-01-12  Martin Baulig  <martin@ximian.com>
15012
15013         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
15014         interfaces on-the-fly; fixes #76625.
15015
15016         * class-internals.h
15017         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
15018         don't need that anymore.
15019
15020 2006-01-12  Miguel de Icaza  <miguel@novell.com>
15021
15022         * socket-io.c
15023         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
15024         To avoid initing the nested_classes when not needed I turned the
15025         PeerCredData as a toplevel internal class, as it has to be shared
15026         anyways. 
15027
15028         Fixes the CASA issue.
15029
15030 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
15031
15032         * domain.c: Accessors for MonoJitInfo
15033
15034         * profiler-private.h: Add jitinfo to the end jit hook
15035
15036         * profiler.[ch]: Define new hooks, called after jitting which give
15037         the MonoJitInfo that was compiled
15038
15039 2006-01-10  Martin Baulig  <martin@ximian.com>
15040
15041         * class.c (mono_class_setup_events): Add support for generic
15042         classes; fixes #76440.
15043
15044 2006-01-06  Raja R Harinath  <rharinath@novell.com>
15045
15046         Fix #77160.
15047         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
15048         on passed-in method.
15049
15050 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
15051
15052         * object.c (mono_runtime_invoke_array): Add Nullable support.
15053
15054         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
15055
15056 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
15057
15058         * file-io.c: Don't consider sockets as directory and avoid an endless
15059         loop. Fix bug #76966.
15060
15061 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
15062
15063         * object.c (mono_nullable_init): New helper function.
15064         (mono_nullable_box): Ditto.
15065
15066         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
15067
15068         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
15069
15070         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
15071         
15072 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
15073
15074         * class.c (mono_class_is_assignable_from): Make T assignable to 
15075         Nullable<T>.
15076
15077 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
15078
15079         * appdomain.c: Bump corlib version to 46.
15080         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
15081         serialization purpose) and changed ves_icall_System_Reflection_
15082         Assembly_get_code_base signature to accept a boolean (to escape, or 
15083         not, the assembly code base).
15084
15085 2005-12-23  Dick Porter  <dick@ximian.com>
15086
15087         * icall.c: 
15088         * threads-types.h: 
15089         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
15090         CreateEvent icall now returns "created" boolean parameter.
15091
15092 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
15093
15094         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
15095         #76967.
15096
15097         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
15098         when attr_klass is an interface. Fixes #77045.
15099
15100 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
15101
15102         * marshal.c (emit_struct_conv): Fix previous patch.
15103         
15104         * marshal.c (emit_struct_conv): Add a check for fields with the same
15105         offset.
15106
15107 2005-12-20  Raja R Harinath  <rharinath@novell.com>
15108
15109         Fix regression in Mono.C5.
15110         * class.c (mono_class_create_generic): If 'klass' is an interface
15111         set up the interface offsets.
15112         (mono_class_is_assignable_from): Don't throw away generic arguments.
15113
15114 2005-12-19  Raja R Harinath  <rharinath@novell.com>
15115
15116         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
15117         type parameters.
15118
15119 2005-12-15  Raja R Harinath  <rharinath@novell.com>
15120
15121         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
15122         dead store.
15123         (do_mono_metadata_parse_generic_class): Don't pass the current
15124         generic context when parsing the type being instantiated: it
15125         cannot use it, anyway.
15126
15127         * loader.c (method_from_memberref): Don't inflate a signature if
15128         it doesn't contain any type parameters.
15129
15130 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
15131
15132         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
15133
15134 2005-12-14  Martin Baulig  <martin@ximian.com>
15135
15136         * class.c
15137         (mono_type_get_name_recurse): Don't return null for type
15138         parameters and open generic classes.
15139         (mono_class_setup_methods): Don't exclude generic instances.
15140         (mono_get_unique_iid): Use different IDs for different
15141         instantiations of the same generic type.
15142         (mono_class_setup_vtable): Only use setup_generic_vtable() for
15143         open generic instances; create a normal vtable for closed generic
15144         instances.
15145         (mono_class_setup_vtable_general): We're now also called for
15146         closed generic instances.
15147
15148         * reflection.c
15149         (mono_reflection_bind_generic_parameters): Correctly use
15150         mono_metadata_lookup_generic_inst() everywhere.
15151
15152 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
15153
15154         * object.c (mono_class_create_runtime_vtable): Call 
15155         mono_class_setup_vtable ().
15156
15157         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
15158         function.
15159         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
15160         #76959.
15161
15162         * loader.c (mono_loader_set_error_type_load): Print the type load
15163         warnings to the console so they are more visible to the user.
15164         (mono_loader_set_error_method_load): Ditto.
15165
15166         * reflection.c (ensure_runtime_vtable): Revert the last change as it
15167         is still broken.
15168         
15169         * reflection.c (ensure_runtime_vtable): Fix build.
15170
15171         * reflection.c (ensure_runtime_vtable): Disable an optimization which
15172         doesn't work in all cases.
15173
15174 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
15175
15176         * object.c (mono_array_new_full): Treat a single dimensional array
15177         with 0 lower bounds as an szarray. Fixes #76973.
15178
15179         * reflection.c (custom_attr_visible): Really fix this.
15180
15181 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
15182
15183         * reflection.c (custom_attr_visible): Allow nested public attributes
15184         as well.
15185
15186         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
15187         interface check.
15188
15189 2005-12-12  Raja R Harinath  <harinath@gmail.com>
15190
15191         * class.c (set_generic_param_owner): Delete.
15192         (mono_class_create_from_typedef): Don't set ->owner field of
15193         generic parameters to "param containers" of enclosing classes.
15194         * reflection.c (mono_reflection_initialize_generic_parameter):
15195         Likewise.
15196
15197 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
15198
15199         * reflection.c (custom_attr_visible): Fix build.
15200
15201 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
15202
15203         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
15204         private attributes.
15205         
15206         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
15207         handling of null parameter defaults.
15208
15209 2005-12-09  Raja R Harinath  <rharinath@novell.com>
15210
15211         * class.c (mono_class_from_generic_parameter): Don't set
15212         klass->generic_container.
15213         (my_mono_class_from_generic_parameter): Likewise.
15214
15215 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
15216
15217         * reflection.c (load_public_key): Fix a warning.
15218         (method_encode_code): Fix unaligned accesses.
15219
15220 2005-12-07  Martin Baulig  <martin@ximian.com>
15221
15222         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
15223
15224         * reflection.c
15225         (write_generic_param_entry): Encode our custom attrs.
15226
15227         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
15228
15229 2005-12-07  Martin Baulig  <martin@ximian.com>
15230
15231         * reflection.c (encode_new_constraint): Removed; we don't use the
15232         `NewConstraintAttribute' anymore.
15233
15234 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
15235
15236         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
15237         not fire a TypeResolve event when Assembly.GetType () is called.
15238
15239 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
15240
15241         Beginning of support for nullable types in the runtime. Parts of
15242         this patch are from Martin.
15243
15244         * appdomain.c (MONO_CORLIB_VERSION): Bump
15245
15246         * domain.c (mono_init_internal): get the nullable type
15247
15248         * class.c (mono_class_is_nullable): New method
15249         (mono_class_get_nullable_param): New mehod
15250         (mono_class_create_generic): In types T? set cast_class to T
15251
15252         * class-internals.h (MonoDefaults): new nullable default class
15253         (mono_class_get_nullable_param, mono_class_get_nullable_param):
15254         new methods.
15255
15256 2005-12-05  Raja R Harinath  <rharinath@novell.com>
15257
15258         * metadata.c (select_container): New.  Refactor code to select the
15259         appropriate GenericContainer given the type of generic parameter
15260         we are looking for.
15261         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
15262         not a MonoGenericContext.  Use select_container.  Update parameters.
15263         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
15264         and MONO_TYPE_MVAR.
15265         (unwrap_arrays): Remove duplicate tests.
15266         (find_generic_param): Rename from 'has_same_context'.  Now walks a
15267         generic instantiated class to find any arguments that are generic
15268         parameters.
15269         (mono_type_create_from_typespec_full): Use find_generic_param to
15270         avoid evicting some generic instantiations from the typespec
15271         cache.
15272
15273 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
15274
15275         * reflection.c: fixed writing of doubles on ARM FPA.
15276
15277 2005-12-02  Robert Jordan  <robertj@gmx.net>
15278
15279         * icall.c: Fixed EventInfo.ReflectedType (#76829).
15280
15281 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15282
15283         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
15284         least on SUSE 10 they are not the same (on debian, they are just the
15285         same thing).
15286
15287 2005-12-01  Raja R Harinath  <rharinath@novell.com>
15288
15289         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
15290         DeclaringType for VARs and MVARs.
15291         * class.c (set_generic_param_owner): Fix initialization of owner
15292         fields.
15293
15294 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
15295
15296         * icall.c: fixed Enum.ToObject() to correctly convert the values.
15297
15298 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15299
15300         * threadpool.c: workaround for a bug that shows up on the Mac:
15301         select()+connect() on a blocking socket is not like it should
15302         be, so we proceed to connect() in that case, wasting the I/O
15303         threadpool thread until connect succeedes. Fixes bug #75436.
15304
15305 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15306
15307         * threadpool.c: fix typo when setting file descriptor states.
15308
15309 2005-11-28  Raja R Harinath  <rharinath@novell.com>
15310
15311         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
15312         * metadata.c (mono_metadata_parse_method_signature_full): Don't
15313         create a temporary signature container.
15314         (mono_metadata_parse_generic_param): Update to changes.
15315         (mono_type_create_from_typespec_full): Update to changes.
15316         * loader.c (method_from_memberref): Don't use a
15317         MonoGenericContainer while parsing a memberref signature.
15318         (method_from_methodspec): Remove dead-store of the 'container'
15319         variable.  It's overwritten before use.
15320
15321         * metadata.c (mono_type_create_from_typespec_full): Make debugging
15322         checks tighter.
15323         (mono_metadata_parse_generic_param): Likewise.
15324         * loader.c (find_method_in_class): Does not need a
15325         MonoGenericContainer.  Use 'mono_method_signature' rather than
15326         'mono_method_signature_full'.
15327         (find_method, mono_get_method_constrained, method_from_memberref):
15328         Update to changes.
15329
15330         * metadata.c (mono_type_create_from_typespec_full): Ensure that
15331         owner-less generic-parameters are never evicted from the typespec
15332         cache.
15333
15334         * loader.c (method_from_memberref): Don't use the current context
15335         when parsing signatures.
15336         (method_from_methodspec, mono_get_method_from_token): Update to changes.
15337
15338         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
15339         side-effects in g_assert.
15340         * loader.c (mono_get_method_from_token): Resolve klass earlier so
15341         that we don't potentially lose information.
15342
15343 2005-11-26  Dick Porter  <dick@ximian.com>
15344
15345         * icall.c:
15346         * threads.c: icalls to implement basic (ie, not named)
15347         System.Threading.Semaphore.
15348
15349 2005-11-24  Dick Porter  <dick@ximian.com>
15350
15351         * process.c
15352         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
15353         Use GetProcessId() if it's available.
15354
15355 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
15356
15357         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
15358
15359 2005-11-23  Raja R Harinath  <rharinath@novell.com>
15360             Ankit Jain  <jankit@novell.com>
15361
15362         * loader.c (mono_get_method_from_token): Initialize 'method' field
15363         of all generic parameters before parsing the signature.  Remove
15364         code that "fixed"-up MVAR references.
15365
15366 2005-11-23  Ankit Jain  <jankit@novell.com>
15367
15368         * metadata.c (mono_metadata_has_generic_params):
15369         (mono_metadata_load_generic_param_constraints):
15370         (mono_metadata_load_generic_params): Move duplicate code ...
15371         (mono_metadata_get_generic_param_row): ... here. Returns the
15372         first row-id in GenericParam table for a given owner (token).
15373         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
15374         prototype.
15375
15376 2005-11-23  Raja R Harinath  <rharinath@novell.com>
15377             Ankit Jain  <jankit@novell.com>
15378
15379         * metadata.c (mono_metadata_class_equal): Pass signature_only when
15380         comparing VARs too.
15381         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
15382         type->data.generic_param only if the type is an MVAR.
15383         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
15384         leak owner-less VARs and MVARs into managed space.
15385
15386 2005-11-21  Martin Baulig  <martin@ximian.com>
15387
15388         * class-internals.h
15389         (MonoMethod): Moved the `generic_container' here from
15390         `MonoMethodNormal' since we now also need it for
15391         `MonoMethodPInvoke';
15392         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
15393         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
15394         an union containing both `MonoMethodNormal' and
15395         `MonoMethodPInvoke'.
15396
15397         * loader.c
15398         (mono_get_method_from_token): Allow implementing generic methods
15399         as interncalls.
15400
15401         * threads.c
15402         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
15403         icall.
15404
15405 2005-11-17  Dick Porter  <dick@ximian.com>
15406
15407         * icall.c: 
15408         * process.h: 
15409         * process.c: Split the Process Start_internal icall into
15410         ShellExecuteEx_internal and CreateProcess_internal, which are
15411         called depending on whether UseShellExecute is true.  Fixes bug
15412         76670.
15413
15414         * appdomain.c (MONO_CORLIB_VERSION): Incremented
15415
15416 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
15417
15418         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
15419         'msize' parameters, use the information in 'mspec' instead.
15420         (emit_object_to_ptr_conv): Ditto.
15421
15422         * marshal.c (emit_struct_conv): Handle explicit layout structs with
15423         fields out of order. Fixes #76733.
15424
15425 2005-11-17  Ankit Jain  <jankit@novell.com>
15426
15427         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
15428
15429 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
15430
15431         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
15432           bug #76575.
15433
15434 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
15435
15436         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
15437         for types with non-auto layout. Fixes #76717.
15438
15439 2005-11-16  Ankit Jain  <jankit@novell.com>
15440
15441         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
15442         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
15443         if generic_context is null.
15444           (mono_metadata_generic_param_equal): param->owner can be null.
15445           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
15446         null.
15447
15448 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
15449
15450         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
15451         the correct value.
15452
15453 2005-11-15  Martin Baulig  <martin@ximian.com>
15454
15455         * object.c (set_value): Use mono_class_from_mono_type() instead of
15456         the hack for generic instances; fixes #76136.
15457
15458 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
15459
15460         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
15461         fields.
15462
15463         * image.c (load_metadata_ptrs): Initialize the new fields.
15464
15465         * reflection.c (create_dynamic_mono_image): Ditto.
15466
15467         * reflection.c (build_compressed_metadata): Use the new fields.
15468
15469         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
15470         icall.
15471
15472         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
15473         icall.
15474         
15475 2005-11-15  Ankit Jain  <jankit@novell.com>
15476             Raja R Harinath  <harinath@gmail.com>
15477
15478         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
15479         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
15480         new per-generic_container cache if the cached MonoType's context matches
15481         the current context.
15482           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
15483         to the expected context.
15484           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
15485
15486 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
15487
15488         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
15489         we changed the signature of an icall.
15490         * icall.c: Modify to mono_double_ParseImpl return true/false 
15491         depending on the success, instead of throwing the exception. This will
15492         help us in Double.TryParse methods.
15493         
15494 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
15495
15496         * marshal.c (emit_marshal_object): Throw an exception when
15497         marshalling 'object' instead of crashing. Fixes #76696.
15498
15499 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
15500
15501         * class-internals.h: Add prototype for mono_type_get_full_name ().
15502
15503 2005-11-11  Dick Porter  <dick@ximian.com>
15504
15505         * threads.c (mono_thread_manage): Make sure the main thread has
15506         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
15507
15508 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
15509
15510         * loader.c (mono_loader_set_error_type_load): Log a warning to the
15511         console about the missing type.
15512         (mono_loader_set_error_method_load): Ditto.
15513
15514 2005-11-09  Miguel de Icaza  <miguel@novell.com>
15515
15516         * mono-config.c (mono_get_config_dir): Set the system defaults if
15517         none is specified.
15518
15519         * assembly.c (mono_set_dirs): New API entry point to set the
15520         assembly and the config directory in one call
15521
15522 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
15523
15524         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
15525         the ftnptr was created from a delegate in a domain other than the
15526         current domain. Fixes #75377.
15527
15528         * exception.h exception.c: Add mono_get_exception_not_supported ().
15529
15530 2005-11-08  Martin Baulig  <martin@ximian.com>
15531
15532         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
15533
15534 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
15535
15536         * security-manager.h: Added definitions to deal with strongname key 
15537         pairs bigger (and smaller) than 1024 bits.
15538         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
15539         adjust wrt the public key length being used.
15540
15541 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
15542
15543         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
15544           Windows build (r51396-51397).
15545
15546 2005-11-03  Martin Baulig  <martin@ximian.com>
15547
15548         * class.c (mono_class_setup_vtable_general): Also add generic
15549         methods to the vtable; fixes #76581.
15550
15551 2005-11-01  Miguel de Icaza  <miguel@novell.com>
15552
15553         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
15554         sure that we lookup GetString method from the System.Text.Encoding
15555         class, not the derived class or we get an empty method.
15556
15557         Fixed class #76612.
15558
15559 2005-10-25  Miguel de Icaza  <miguel@novell.com>
15560
15561         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
15562         if it has been previously set (embedders). 
15563
15564         Make mono_set_rootdir available also on Unix.
15565
15566 005-10-24  Robert Jordan  <robertj@gmx.net>
15567
15568         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
15569
15570 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
15571
15572         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
15573         only calls which are made to native code use this flag.
15574
15575         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
15576
15577 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
15578
15579         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
15580         Add support for FieldBuilders.
15581
15582 2005-10-29  Martin Baulig  <martin@ximian.com>
15583
15584         * mono-debug.c
15585         (mono_debug_using_mono_debugger): New public method; returns
15586         whether we're running inside the debugger.
15587
15588 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
15589
15590         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
15591         for Method/Constructor/FieldBuilders.
15592
15593 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
15594
15595         * reflection.c (module_add_cattrs): Save custom attributes for global methods
15596         and fields as well.
15597
15598 2005-10-26  Martin Baulig  <martin@ximian.com>
15599
15600         * mono-debug-debugger.c
15601         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
15602
15603 2005-10-24  Raja R Harinath  <harinath@gmail.com>
15604
15605         * icall.c (base64_to_byte_array): Don't pass an out-of-range
15606         integer to isspace.
15607
15608 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
15609
15610         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
15611         when passing valuetypes byref. Fixes #76502.
15612
15613 2005-10-19  Jackson Harper  <jackson@ximian.com>
15614
15615         * profiler.c: Don't put a . in front of types that are not in a
15616         namespace.
15617
15618 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
15619
15620         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
15621
15622 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
15623
15624         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
15625         #76436.
15626         (mono_marshal_get_ldflda_wrapper): Fix a warning.
15627
15628 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
15629
15630         * assembly.c metadata-internals.h icall.c: Define an additional
15631         parameter for mono_assembly_name_parse_full, so we can avoid creating
15632         S.R.AssemblyName.Version when no version info wasn't passed.
15633         
15634 2005-10-09  Miguel de Icaza  <miguel@novell.com>
15635
15636         * class.c (mono_type_get_full_name): Reimplement method that was
15637         removed. 
15638
15639         * image.c: Some docs
15640
15641 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
15642
15643         * profiler.c (output_newobj_profile): Fix printing of Total memory
15644         on x86.
15645
15646 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
15647
15648         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
15649
15650 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
15651
15652         * threads.c: remove debug output.
15653
15654 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
15655
15656         * threads.c (mono_thread_manage): Fix crashes if more than 64
15657         threads need to be aborted. Hopefully fixes #75899.
15658
15659         * assembly.c (mono_stringify_assembly_name): New helper function.
15660
15661         * class.c: Use mono_stringify_assembly_name instead of the similar
15662         static function.
15663
15664         * assembly.h assembly.c: Add support for calling a postload search 
15665         hook if an assembly cannot be loaded.
15666
15667         * appdomain.c: Register new search hooks which call the AssemblyResolve
15668         events in AppDomain. Fixes #75231
15669
15670 2005-10-07  Martin Baulig  <martin@ximian.com>
15671
15672         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
15673         methods without debug info.
15674
15675 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
15676
15677         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
15678         wrappers.
15679
15680 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15681
15682         * file-io.c: now that we return symlinks, use lstat and, when the file
15683         is a symbolic link, stat, to get the file attributes. Also avoid the
15684         conversion to/from utf16/external.
15685
15686 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
15687
15688         * class.c (mono_class_layout_fields): Compute klass->has_references
15689         correctly if an embedded valuetype is not yet initialized. Fixes
15690         #76331.
15691
15692 2005-10-04  Martin Baulig  <martin@ximian.com>
15693
15694         * metadata.c
15695         (mono_metadata_load_generic_param_constraints): New public
15696         function; splitted the constraints loading out from
15697         mono_metadata_load_generic_params().
15698
15699         * class.c (mono_class_create_from_typedef): Call
15700         mono_metadata_load_generic_param_constraints() after setting up
15701         the type and creating our parent; fixes #75329.
15702
15703 2005-10-04  Martin Baulig  <martin@ximian.com>
15704
15705         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
15706         non-dynamic parent classes.
15707
15708 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
15709
15710         * file-io.c : win32 build fix (ETXTBSY seems not found).
15711
15712 2005-10-04  Martin Baulig  <martin@ximian.com>
15713
15714         * reflection.c
15715         (mono_image_get_methodspec_token): Make the cache actually work;
15716         fixes #75974.
15717
15718 2005-10-04  Martin Baulig  <martin@ximian.com>
15719
15720         * class.c (mono_class_name_from_token): Removed the unneccessary
15721         `MonoGenericContext *' argument.
15722
15723 2005-10-04  Martin Baulig  <martin@ximian.com>
15724
15725         * loader.c
15726         (method_from_methodspec): Make the caching work again; fixes the
15727         performance regression from #76262.
15728
15729 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15730
15731         * file-io.c:
15732         * file-io.h:
15733         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
15734         GetFileSystemEntries that performs the same work but without going
15735         into io-layer, locking, etc.
15736
15737 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
15738
15739         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
15740         ThreadState_Stopped as well. Fixes #76047.
15741
15742 2005-09-29  Martin Baulig  <martin@ximian.com>
15743
15744         * class.c
15745         (inflate_generic_context): If the new context has a `gmethod', set
15746         its `container' that that gmethod's `container'.
15747
15748         * metadata.c
15749         (mono_metadata_parse_generic_param): Simplify things;
15750         `generic_container = generic_context->container;' is just fine.
15751
15752         * loader.c (method_from_methodspec): Code cleanups.
15753
15754 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
15755
15756         * decimal.c: fix warning (and let gcc generate correct
15757         code on ARM with optimizations).
15758
15759 2005-09-28  Martin Baulig  <martin@ximian.com>
15760
15761         * loader.c
15762         (method_from_memberref): Added `MonoGenericContext *class_context'
15763         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
15764         (method_from_methodspec): If we're a memberref, use the enclosing
15765         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
15766
15767 2005-09-28  Martin Baulig  <martin@ximian.com>
15768
15769         * object.c (mono_runtime_invoke_array): Added support for
15770         MONO_TYPE_GENERICINST; fixes #75917.
15771
15772 2005-09-27  Martin Baulig  <martin@ximian.com>
15773
15774         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
15775         `k->byval_arg.type' to determine the actual type.
15776
15777         * loader.c (method_from_methodspec): Removed some hacks.
15778
15779 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
15780
15781         * class-internals.h (mono_field_is_deleted): Do the test for
15782         rtspecialname before we check the actual name of the field. This
15783         prevents us from dereferencing a pointer into the string table,
15784         saving us from accessing a few pages
15785
15786         * *.c: Replace the use of {Enter,Leave}CriticalSection with
15787         macros. This will allow a deadlock debugger to easily be plugged
15788         in.
15789
15790 2005-09-27  Martin Baulig  <martin@ximian.com>
15791
15792         * loader.c (method_from_methodspec): Create a "signature"
15793         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
15794
15795 2005-09-27  Martin Baulig  <martin@ximian.com>
15796
15797         * class.c
15798         (inflate_generic_class): Correctly set the new context's
15799         container.
15800
15801         * loader.c
15802         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
15803         instead of a `MonoGenericContext *'.
15804         (mono_method_signature_full): Take a `MonoGenericContainer *'
15805         instead of a `MonoGenericContext *'.
15806
15807         * metadata.c
15808         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
15809         instead of a `MonoGenericContext *'.
15810         (mono_metadata_parse_method_signature_full): Likewise.
15811
15812 2005-09-26  Martin Baulig  <martin@ximian.com>
15813
15814         * class.c
15815         (mono_class_from_generic_parameter): Set `klass->generic_container'
15816         (mono_class_from_generic_parameter): Likewise.
15817         (mono_bounded_array_class_get): We inherit the generic container
15818         from the element class.
15819
15820         * loader.c
15821         (find_method, find_method_in_class): Take a `MonoGenericContext *'
15822         argument rather than computing it here.
15823         (method_from_memberref): Correctly set the generic context before
15824         parsing the signature.  Fixes #75681.
15825
15826 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
15827
15828         * object.c (mono_class_has_special_static_fields): Fix warnings.
15829
15830 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
15831
15832         * assembly.c: Add parse_public_key function, to
15833         par the public keys. Also added mono_assembly_name_parse_full,
15834         to define it the parsed key should be freed or not.
15835         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
15836         to parse a long format assembly name.
15837         * metadata-internals.h: Keep mono_assembly_name_parse_full as
15838         private, since calling it to preserve the key requires
15839         freeing it manually.
15840         
15841 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
15842
15843         * locales.c : removed HAVE_ICU part.
15844
15845 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
15846
15847         * object.c (mono_class_create_runtime_vtable): Avoid calling 
15848         field_is_special_static if the klass has no special static fields.
15849
15850         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
15851         (MonoCachedClassInfo): Likewise.
15852
15853         * object.c (mono_class_has_special_static_fields): New helper function.
15854
15855 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
15856
15857         * class.c (mono_class_create_from_typedef): Don't call 
15858         interfaces_from_typedef_full for enums.
15859         (mono_class_create_from_typedef): Compute the base types of enums directly
15860         without calling mono_class_setup_fields ().
15861         (mono_class_find_enum_basetype): New helper function.
15862
15863         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
15864         one place inside the string heap.
15865         
15866 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
15867
15868         * class.c: locking fixes, code cleanups, some docs added.
15869         Allocate some data structures in the image mempool.
15870
15871 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
15872
15873         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
15874         the example code.
15875         
15876 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
15877
15878         * class-internals.h, class.c, reflection.c: reduce memory taken by
15879         MonoClass.
15880
15881 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
15882
15883         * metadata.c, metadata.h, loader.h: documentation updates, code and
15884         API cleanups.
15885
15886 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
15887
15888         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
15889         the example code.
15890
15891         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
15892         page faults caused by the runtime while reading metadata.
15893
15894 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15895
15896         * socket-io.c: the field names were changed 3 months ago and no one
15897         realized until bug #76077 got filed!
15898
15899 2005-09-20  Martin Baulig  <martin@ximian.com>
15900
15901         * icall.c (assembly_icalls): Removed some unused debugger icalls.
15902
15903 2005-09-20  Martin Baulig  <martin@ximian.com>
15904
15905         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
15906         write the rank into the class entry.
15907
15908 2005-09-20  Martin Baulig  <martin@ximian.com>
15909
15910         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
15911
15912 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
15913
15914         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
15915
15916         * icall.c (custom_attrs_defined_internal): New icall.
15917
15918         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
15919         function.
15920         (mono_custom_attrs_construct_by_type): New helper function.
15921
15922 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
15923
15924         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
15925         terminate the resulting string. Fixes #76123.
15926
15927 2005-09-16  Martin Baulig  <martin@ximian.com>
15928
15929         * mono-debug.c
15930         (mono_debug_add_method): Ignore inflated methods for the moment.
15931
15932 2005-09-14  Martin Baulig  <martin@ximian.com>
15933
15934         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
15935
15936 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
15937
15938         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
15939         return a success/failure indication.
15940         (mono_metadata_interfaces_from_typedef_full): Ditto.
15941         (get_constraints): Ditto.
15942
15943 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
15944
15945         * marshal.c (emit_marshal_array): Fix handling of null arrays.
15946         
15947         * marshal.c (emit_marshal_array): Add support for returning string
15948         arrays from delegates. Fixes #76063.
15949
15950         * marshal.c: Use the emit_ldloc/stloc macros where possible.
15951
15952 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
15953
15954         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
15955         icall.
15956
15957 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
15958
15959         * reflection.c icall.c: Fix after mono_get_exception_type_load
15960         signature change.
15961
15962         * assembly.c (mono_assembly_get_assemblyref): New helper function.
15963         (mono_assembly_load_reference): Use the new helper.
15964
15965         * class-internals.h (MonoLoaderError): New structure containing 
15966         information about type loading errors.
15967
15968         * class-internals.h loader.c: Add APIs to store per-thread loader
15969         error information.
15970
15971         * loader.c class.c: Set the loader error if needed.
15972
15973         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
15974
15975 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
15976
15977         * decimal.c: fixed to handle the broken ARM fp format.
15978
15979 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
15980
15981         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
15982         broken.
15983
15984 2005-09-06  Martin Baulig  <martin@ximian.com>
15985
15986         * domain.c (supported_runtimes): Added v2.0.50727.
15987
15988 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
15989
15990         * culture-info.h: reduce the size of some structures.
15991
15992 2005-09-05  Martin Baulig  <martin@ximian.com>
15993
15994         Reflect latest API changes in the August CTP.
15995
15996         * icall.c
15997         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
15998         ("MonoType.HasGenericArguments"): Removed.
15999         ("MonoMethod.BindGenericParameters"): Renamed to
16000         "MakeGenericMethod".
16001         ("MethodBuilder.BindGenericParameters"): Renamed to
16002         "MakeGenericMethod".    
16003
16004 2005-09-05  Martin Baulig  <martin@ximian.com>
16005
16006         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
16007
16008 2005-09-05  Martin Baulig  <martin@ximian.com>
16009
16010         Applying a patch from Michal Moskal <malekith@nemerle.org>.
16011
16012         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
16013         generic_container is non-NULL.
16014
16015 2005-09-05  Martin Baulig  <martin@ximian.com>
16016
16017         Applying a patch from Michal Moskal <malekith@nemerle.org>.
16018
16019         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
16020
16021 2005-08-29  Michal Moskal  <malekith@nemerle.org>
16022
16023         * reflection.c (encode_locals,
16024         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
16025         for large generic types.
16026
16027 2005-09-05  Martin Baulig  <martin@ximian.com>
16028
16029         Applying a patch from Michal Moskal <malekith@nemerle.org>.
16030
16031         * class.c (mono_dup_array_type): New public method.
16032         (mono_metadata_signature_deep_dup): New public method.
16033         (dup_type): Correctly duplicate array and function types.
16034
16035 2005-09-05  Martin Baulig  <martin@ximian.com>
16036
16037         Applying a patch from Michal Moskal <malekith@nemerle.org>.
16038
16039         * reflection.c (get_default_param_value_blobs): Handle generic types
16040         and generic methods.
16041
16042 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
16043
16044         * class.c: Fixed error reporting (method/class were inversed) for 
16045         inheritance demands.
16046         * security-manager.c|h: Added the AppDomain when calling the managed
16047         System.Security.SecurityManager.InheritanceDemand method.
16048
16049 2005-09-01  Raja R Harinath  <rharinath@novell.com>
16050
16051         * reflection.c (encode_marshal_blob): 'marshaltype' and
16052         'marshaltyperef' are alternate sources for the custom marshaler
16053         name.
16054
16055 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
16056
16057         * class.c: fix creation of array classes with rank == 1
16058         (patch by Ankit Jain <jankit@novell.com>).
16059
16060 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
16061
16062         * object.c: fix check for creating the bound data for arrays vs
16063         szarrays.
16064
16065 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16066
16067         * object.c: configuration file name is now based on the executable name,
16068         not the image name. Fixes bug #75931.
16069
16070 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
16071
16072         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
16073         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
16074
16075 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
16076
16077         * rand.c: Use wincrypt.h instead of WinCrypt.h.
16078
16079 2005-08-24  Ankit Jain  <jankit@novell.com>
16080             Raja R Harinath  <rharinath@novell.com>
16081
16082         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
16083           called by it recursively.
16084           (mono_class_init): Remove special case in pending_init handling, since it's
16085           superseded by the fix to mono_class_from_typeref.
16086
16087 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
16088
16089         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
16090         BROKEN_THREAD_START stuff.
16091
16092 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
16093
16094         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
16095         trampoline.
16096
16097         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
16098         
16099         * object.c (mono_delegate_ctor): Replace the original function address with
16100         a delegate trampoline.
16101
16102 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
16103
16104         * icall.c: add boolean argument to base64_to_byte_array and 
16105         InternalFromBase64String to control whether a whitespace-only string
16106         is allowed (or should casue a FormatException to be thrown). We need
16107         this as the behavior has changed between MS.NET 1.x and 2.0, and we
16108         to match the MS behaviour in both profiles.
16109         * appdomain.c: Bump corlib version.
16110
16111 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
16112
16113         This patch implements a big portion of publisher policy
16114         support, used to bind assembly versions and redirect
16115         one assembly from version A to version B.
16116
16117         * assembly.c:
16118         New GSList loaded_assembly_bindings, for storing the cached
16119         assembly bindings.
16120         (assembly_binding_maps_name): New static function for checking if a 
16121         assembly binding information maps an assembly name.
16122         (mono_assembly_binding_info_free): New function for freeing
16123         assembly binding information resources.
16124         (get_publisher_policy_info): New static function for retrieving 
16125         assembly binding information from a MonoImage.
16126         (compare_versions): New static function for comparing an assembly
16127         binding information data and the version of an assembly name.
16128         (check_policy_versions): New static function for checking if an
16129         assembly binding info mapping an assembly name is valid for it.
16130         (mono_assembly_load_publisher_policy): New static function for
16131         loading the 'policy.major.minor.MyAssembly' image for an assembly
16132         with an assembly name 'aname'.
16133         (mono_assembly_bind_version): New static function for updating
16134         assembly redirection.
16135         (mono_assembly_apply_binding): New static function for applying
16136         assembly binding.
16137         (search_binding_loaded): New static function for searching 
16138         loaded assembly binding infos in the cache domain.
16139         (mono_assembly_load_full): Don't apply assembly binding for
16140         reflection only assemblies.
16141
16142         * metadata-internals.h: Add MonoAssemblyBindingInfo,
16143         which contains information about assembly binding. Also
16144         declare signature for mono_config_parse_publisher_policy ()
16145         function, used to retrieve pub policy info.
16146         
16147         * mono-config.c:
16148         (publisher_policy_start): New static function used to parse publisher 
16149         policy config files.
16150         (publisher_policy_parser): New static MonoParseHandler containing 
16151         the functions used when parsing config files.
16152         (mono_config_parse_publisher_policy): New function for parsing
16153         publisher policy files.
16154         
16155 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
16156
16157         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
16158
16159         * marshal.c (mono_delegate_free_ftnptr): Ditto.
16160
16161         * object.c (mono_get_addr_from_ftnptr): New helper function.
16162
16163         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
16164
16165         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
16166
16167 2005-08-19  Dick Porter  <dick@ximian.com>
16168
16169         * threads.c, threads.h, appdomain.c, appdomain.h,
16170         profiler-private.h, monitor.c, object.c, object-internals.h,
16171         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
16172         store the thread ID, so it can hold a 64 bit value if needed.
16173
16174 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
16175
16176         * reflection.c (mono_reflection_create_dynamic_method): Store the
16177         handle class into the method references as well so ldtoken works in
16178         dynamic methods.
16179
16180         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
16181         types.
16182
16183 2005-08-19  Ankit Jain <jankit@novell.com>
16184
16185         Fix #75847.
16186         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
16187           here rather than using the method signature of a arbitrary function
16188           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
16189           two arguments.
16190           Hack done with Harinath.
16191
16192 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16193
16194         * threadpool.c: disable printing stack traces when we get a exception
16195         in a threadpool thread. I need to do more testing to figure out which
16196         cases actually print this. Fixes bug #75828.
16197
16198 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16199
16200         * icall.c: there might be ignored whitespace after the last '='. This
16201         fixes length computation and bug #75840.
16202
16203 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
16204
16205         * assembly.c (mono_assembly_load_full): Consider .exe extension as
16206         well. Fixes #75809.
16207
16208         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
16209         #75784.
16210         
16211         * reflection.c (create_custom_attr_data): Ditto.
16212
16213 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
16214
16215         * locales.c, culture-info.h : removed RegionLCIDMap.
16216         * culture-info-tables.h : regenerated.
16217
16218 2005-08-16  Martin Baulig  <martin@ximian.com>
16219
16220         * class.c (mono_type_get_name_recurse): Small fix.
16221
16222 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
16223
16224         * locales.c : indentation fixie.
16225
16226 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
16227
16228         * object-internals.h,
16229           locales.h,
16230           locales.c,
16231           culture-info.h,
16232           icall.c : added RegionInfo table support.
16233         * culture-info-table.h : regenerated for region support.
16234
16235 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
16236
16237         * reflection.c (resolve_object): handle all kinds of MonoMethod
16238         including generic ones
16239
16240 2005-08-12  Ankit Jain <jankit@novell.com>
16241
16242         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
16243           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
16244
16245 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
16246
16247         * process.c: Don't close a thread handle when it's NULL. This is a
16248         workaround for bug #75733.
16249
16250 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
16251
16252         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
16253
16254 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
16255
16256         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
16257
16258 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16259
16260         * threadpool.c: if a work item in the thread pool has a callback that
16261         catches a exception, don't propagate it after invoking the callback.
16262         Fixes bug #75336.
16263
16264 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
16265
16266         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
16267
16268         * class-internals.h (MonoCachedClassInfo): Add some new fields.
16269
16270         * class.c (mono_class_init): Load field info lazily in the AOT case.    
16271
16272         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
16273
16274 2005-08-03  Ankit Jain  <jankit@novell.com>
16275
16276         Fix #75683.
16277         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
16278           PInvoke calling convention is 0.
16279
16280 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
16281
16282         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
16283         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
16284
16285 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
16286
16287         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
16288         to handle threads not started by the GC (patch by Michael Meeks
16289         <michael.meeks@novell.com>).
16290
16291 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
16292
16293         * reflection.c: Make buffer used in emitting types larger for some
16294         big generic types (patch by Michal Moskal).
16295
16296 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
16297
16298         * mono-debug.c: Fix some (not all) alignment problems.
16299
16300 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
16301
16302         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
16303         Invoke mono_image_load_from_data_full passing the refonly
16304         parameter.
16305
16306         * assembly.c
16307         (mono_assembly_open_from_bundle): Add the refonly argument, 
16308         in order to pass it to other methods it calls to.
16309         (do_mono_assembly_open): Add the refonly argument, in order 
16310         to pass it to other methods it calls to.
16311         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
16312         the refonly parameter to it.
16313
16314         * image.c: Add loaded_images_refonly_hash and
16315         loaded_images_refonly_guid_hash to cache the reflection
16316         only loaded images.
16317         (mono_images_init): Initialize the hash tables used for
16318         caching the reflection only images.
16319         (load_modules): Invoke mono_image_open_full passing the refonly
16320         parameter to load the modules the correct way.
16321         (build_guid_table): Add the refonly argument, to re-build the 
16322         correct hash table.
16323         (do_mono_image_open): Added the refonly argument, in order to
16324         define it for the loaded image.
16325         (mono_image_loaded_full): New function, which receives an
16326         additional parameter to look for the image in the refonly or
16327         non-refonly section.
16328         (mono_image_loaded): Updated, using mono_image_loaded_full.
16329         (mono_image_loaded_by_guid_full): The same case that happens
16330         with mono_image_loaded_full.
16331         (mono_image_loaded_by_guid): Likewise.
16332         (register_image): Use the ref_only variable inside MonoImage
16333         to decide in which hash table store the current image.
16334         (mono_image_open_from_data_full): Rename
16335         mono_image_open_from_data to mono_image_open_from_data_full,
16336         adding the refonly argument, to define the ref_only variable 
16337         inside MonoImage.
16338         (mono_image_open_from_data): Return 
16339         mono_image_open_from_data_full.
16340         (mono_image_open_full): Rename mono_image_open to
16341         mono_image_open_full, receiving the new refonly argument,
16342         to pass it to inner methods.
16343         (mono_pe_file_open): Update this function, to open
16344         a MonoImage as a non-refonly image.
16345         (mono_image_close): Use the refonly variable inside
16346         MonoImage to remove the image from the correct caches.
16347
16348         * image.h: Add the signatures of mono_image_open_full,
16349         mono_image_open_from_data_full, mono_image_loaded_full,
16350         mono_image_loaded_by_guid_full.
16351
16352         * metadata-internals.h: Add the ref_only field to 
16353         MonoImage.
16354         
16355 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
16356
16357         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
16358         Fix the last behavior, which used to load the assemblies and
16359         extract MonoReflectionAssemblyName information, instead of
16360         extract it from the metadata tables. Needed for Reflection
16361         Only assemblies.
16362         
16363 2005-07-29  Martin Baulig  <martin@ximian.com>
16364
16365         * mono-debug-debugger.c
16366         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
16367         not initialized.
16368
16369         * mono-debug.c
16370         (mono_debug_address_from_il_offset): Check whether we have
16371         debugging support before attempting to take the lock.
16372         (mono_debug_source_location_from_address): Likewise.
16373         (mono_debug_source_location_from_il_offset): Likewise.
16374         (mono_debug_il_offset_from_address): Likewise.
16375         (mono_debug_address_from_il_offset): Likewise.
16376
16377 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
16378
16379         * class.c (mono_class_from_name_case): Add support for dynamic images.
16380         Fixes #75650.
16381
16382         * object.c (mono_class_compute_gc_descriptor): Add a workaround
16383         for #75479.
16384
16385 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
16386         
16387         * reflection.c (mono_method_get_object): Fix warning.
16388
16389 2005-07-28  Martin Baulig  <martin@ximian.com>
16390
16391         * mono-debug.c
16392         (mono_debug_add_wrapper): Also write the wrapper type.
16393
16394 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
16395
16396         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
16397         
16398         * class.c (mono_class_init): Avoid reading nested classes if the AOT
16399         data indicates the class has none.
16400
16401 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
16402
16403         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
16404         loader lock with the debugger lock. Prevents deadlocks for beagle.
16405
16406         Beagle can now run on an smp box for a weekend without any
16407         issues. Woohoo!
16408
16409 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
16410
16411         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
16412         in a module. Fixes #75629.
16413
16414 2005-07-26  Martin Baulig  <martin@ximian.com>
16415
16416         * mono-debug.c (mono_debug_add_wrapper): New static method.
16417         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
16418         interncall or a wrapper.
16419
16420         * mono-debug.h (MonoDebugWrapperData): New public typedef.
16421         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
16422         (MONO_DEBUGGER_VERSION): Bump to 51.
16423
16424         * mono-debug-debugger.c
16425         (mono_debugger_add_type): Removed this empty function.
16426         (mono_debugger_add_method): Likewise.
16427
16428 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
16429
16430         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
16431         before accessing method->slot.
16432
16433 2005-07-21  Jb Evain  <jbevain@gmail.com>
16434
16435         * reflection.c (method_encode_clauses/class): Handle filters clauses.
16436         Fixes #75010.
16437
16438 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
16439
16440         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
16441         #75587.
16442
16443 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
16444
16445         * image.h image.c: Add mono_image_get_guid () API function.
16446
16447 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
16448
16449         There were issues when multiple threads tried to load
16450         assemblies. A deadlock was created between assemblies_mutex and
16451         mono_domain_assemblies_lock. This fixes the issue by making the
16452         assembly ref counting be lock free. See bug 75586.
16453         
16454         * image.c (mono_image_close): The add ref function here was using
16455         Interlocked operations while the unref was using a mutex and a
16456         --. I don't think this was ever a bug that would be exposed in a
16457         non-pendantic way (ie, by an embedder doing a ref on one thread
16458         and an unref on another), but for the sake of correctness, this is
16459         now Interlocked.
16460
16461         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
16462         (mono_assembly_load_reference): Call mono_assembly_addref rather
16463         than touching the refcount ourselves.
16464         (mono_assembly_close): Use InterlockedDecrement to unref the
16465         assembly. Don't acquire the lock unless it is actually needed.
16466
16467 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
16468
16469         * class.c (mono_class_layout_fields): Fix calculation of has_references
16470         for generic types.
16471
16472 2005-07-12  Martin Baulig  <martin@ximian.com>
16473
16474         Applying a patch from Michal Moskal <malekith@nemerle.org>.
16475
16476         * metadata.c
16477         (mono_type_hash): Provide better hashing for generic instances.
16478         (mono_generic_inst_hash): Improve hashing.
16479         (mono_generic_class_hash): Likewise.
16480
16481         * reflection.c (mymono_metadata_type_hash): Improve hashing for
16482         generic instances.
16483
16484 2005-07-12  Martin Baulig  <martin@ximian.com>
16485
16486         * reflection.c (mono_reflection_create_runtime_class): Remove the
16487         hack for generic type definitions and non-`Run' assemblies.
16488         (mono_reflection_bind_generic_parameters): Also use
16489         `klass->wastypebuilder' to check for TypeBuilders.
16490
16491 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
16492
16493         * class.c (mono_class_layout_fields): Fix calculation of has_references
16494         for generic types.
16495
16496         * class.c (inflate_generic_class): Fix a leak.
16497         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
16498         for generic types.
16499
16500 2005-07-11  Martin Baulig  <martin@ximian.com>
16501
16502         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
16503         on error.
16504
16505 2005-07-11  Martin Baulig  <martin@ximian.com>
16506
16507         * loader.c (find_method): Also lookup in
16508         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
16509
16510 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
16511
16512         * appdomain.c (mono_domain_unload): Don't free the error message
16513         before passing it to mono_get_exception_...
16514
16515         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
16516         
16517 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
16518
16519         * threads.c: try to better guess an available RT signal (bug #75387).
16520
16521 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
16522
16523         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
16524         and CACHE_OBJECT.
16525
16526 2005-07-07  Martin Baulig  <martin@ximian.com>
16527
16528         * class.c (mono_type_get_name_full): Return NULL for
16529         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
16530         fixes #75408.
16531
16532 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
16533
16534         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
16535         exit the appdomain as well being aborted.
16536
16537         * threadpool.c: Create all threadpool threads inside the root appdomain, and
16538         change back to the root domain after calling managed code. This enables
16539         appdomains using threadpools to be unloaded.
16540
16541 2005-07-07  Martin Baulig  <martin@ximian.com>
16542
16543         * class-internals.h
16544         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
16545         into `MonoDynamicGenericClass' since we only need it for dynamic
16546         types.
16547
16548         * reflection.c (mono_class_bind_generic_parameters): We don't need
16549         to compute the `parent' here.
16550
16551 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
16552
16553         * culture-info-table.h : regenerated.
16554
16555 2005-07-06  Martin Baulig  <martin@ximian.com>
16556
16557         * icall.c
16558         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
16559
16560         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
16561
16562 2005-07-06  Martin Baulig  <martin@ximian.com>
16563
16564         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
16565         we're doing a signature-only comparision; fixes #74945.
16566
16567 2005-07-06  Martin Baulig  <martin@ximian.com>
16568
16569         * class-internals.h (MonoGenericClass): Moved some things out into
16570         a new `MonoInflatedGenericClass' type.  
16571         (MonoInflatedGenericClass): New type; the `klass' of a
16572         `MonoGenericClass' is now computed lazyly in
16573         mono_get_inflated_generic_class().      
16574
16575         * class.c (mono_get_inflated_generic_class): New public function.
16576         (mono_class_inflate_generic_method): Removed the unused
16577         `MonoClass *' argument.
16578         (setup_generic_vtable): Don't call mono_get_inflated_method() on
16579         all the methods.
16580         (mono_class_create_generic): Make this static and merge it with
16581         mono_class_create_generic_2(); we're now called automatically from
16582         mono_get_inflated_generic_class().
16583
16584         * loader.c (mono_method_signature): Call
16585         mono_get_inflated_method() here.
16586
16587 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
16588
16589         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
16590         type of fields with RVA.
16591
16592         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
16593         for this pseudo class.
16594         (my_mono_class_from_generic_parameter): Likewise.
16595         (mono_class_init): Allow interfaces to have cctors.
16596
16597 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
16598
16599         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
16600         lazily for AOT methods.
16601
16602 2005-07-05  Martin Baulig  <martin@ximian.com>
16603
16604         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
16605         returns FALSE for a successful match, not TRUE.
16606
16607 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
16608
16609         * loader.c (mono_method_get_index): Optimize this a bit.
16610
16611 2005-07-04  Martin Baulig  <martin@ximian.com>
16612
16613         * class.c
16614         (class_compute_field_layout): Move the check for generic type
16615         definitions into mono_class_layout_fields().  Fixes #74684.
16616         (mono_class_from_generic_parameter): Correctly compute
16617         `klass->parent'; fixes #75457.
16618
16619         * reflection.c (register_assembly, register_module): Make sure
16620         `domain->rejobject_hash' is already created.
16621
16622 2005-07-02  Martin Baulig  <martin@ximian.com>
16623
16624         * class-internals.h
16625         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
16626         `MonoDynamicGenericClass'.      
16627
16628 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
16629
16630         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
16631         returned by a field getter is null, since null is a valid value.
16632
16633 2005-07-01  Martin Baulig  <martin@ximian.com>
16634
16635         * reflection.c (mono_reflection_generic_class_initialize): Update
16636         the `dgclass->fields [i].parent' to the correct class.
16637         (mono_image_get_fieldref_token): Use the declaring type, not the
16638         reflected type.
16639
16640 2005-07-01  Martin Baulig  <martin@ximian.com>
16641
16642         * loader.c (find_method): Also look in the interfaces; fixes #75429.
16643
16644 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
16645
16646         * threads.c (thread_cleanup): assert that thread != NULL
16647         (wait_for_tids_or_state_change): We were using the wrong variable
16648         when accessing wait->threads. `i' was always out of the bounds of
16649         the array.
16650
16651 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16652
16653         * loader.c: map user32 and kernel32 to libMonoSupportW
16654
16655 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
16656
16657         * appdomain.c (unload_thread_main): Mark this as WINAPI.
16658
16659 2005-06-28  Martin Baulig  <martin@ximian.com>
16660
16661         * loader.c (method_from_methodspec): Fix #75334.
16662
16663 2005-06-28  Martin Baulig  <martin@ximian.com>
16664
16665         Fix #74953 - Arrays now implement the generic IList<T> interface
16666         on the 2.0 platform.
16667
16668         * class-internals.h (MonoDefaults): Added `generic_array_class'.
16669
16670         * reflection.c (mono_class_bind_generic_parameters): New public
16671         function; similar to mono_reflection_bind_generic_parameters(),
16672         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
16673
16674         * domain.c (mono_init_internal): Try to initialize.
16675         `mono_defaults.generic_array_class' here; this'll only succeed if
16676         we're using the 2.0 corlib.
16677
16678         * icall.c
16679         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
16680         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
16681         (mono_lookup_internal_call): Added support for nested classes.
16682
16683         * loader.c
16684         (mono_get_method_from_token): Set `result->signature->pinvoke' if
16685         we're an interncall and have generic arguments.
16686
16687         * class.c
16688         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
16689         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
16690         instance of System.Array.InternalArray<T> for arrays, so they
16691         implement the generic IList<T> interface.
16692
16693 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
16694
16695         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
16696         (chastamar@yahoo.com). Fixes #75374.    
16697
16698 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
16699
16700         * culture-info-table.h: regenerated.
16701
16702 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16703
16704         * icall.c: handle spaces correctly for base64 strings.
16705
16706 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
16707
16708         * *.c: Kill some warnings.
16709
16710 2005-06-23  Duncan Mak  <duncan@novell.com>
16711
16712         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
16713         that this builds on Solaris 10 (x86).
16714
16715 2005-06-23  Martin Baulig  <martin@ximian.com>
16716
16717         * class.c
16718         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
16719         generic type definitions.
16720
16721 2005-06-23  Martin Baulig  <martin@ximian.com>
16722
16723         Fix #75331.
16724
16725         * metadata.c (mono_class_get_overrides): Renamed to
16726         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
16727         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
16728         pass it to mono_get_method_full().
16729
16730 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
16731
16732         * reflection.c (mono_reflection_create_runtime_class): take the
16733         mono_domain_lock in this method. Prevents deadlocks
16734
16735 2005-06-22  Martin Baulig  <martin@ximian.com>
16736
16737         * loader.c (method_from_methodspec): Fix #75330.
16738
16739 2005-06-22  Martin Baulig  <martin@ximian.com>
16740
16741         * reflection.c (type_get_qualified_name): Use
16742         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
16743         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
16744         argument; use it if we don't have an assembly name.
16745
16746 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
16747
16748         * object.c: In mono_message_init, set "copy out" flag for in
16749         parameters with the [Out] flag.
16750
16751 2005-06-21  Martin Baulig  <martin@ximian.com>
16752
16753         * class.c
16754         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
16755         and MONO_TYPE_PTR.
16756
16757 2005-06-21  Martin Baulig  <martin@ximian.com>
16758
16759         * class.c (mono_class_init): Don't initialize `class->fields' for
16760         generic instances since they're initialized again in
16761         compute_field_layout(). 
16762         (compute_field_layout): Set the field's `generic_info' here; fix
16763         #75320. 
16764
16765 2005-06-21  Martin Baulig  <martin@ximian.com>
16766
16767         * class-internals.h
16768         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
16769
16770         * metadata.c (mono_metadata_generic_method_equal): Also
16771         distinguish the `generic_class'; fixes #75334.
16772
16773 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16774
16775         * domain.c:
16776         * appdomain.c:
16777         * domain-internals.h:
16778         * reflection.c: 'domain_assemblies' field is now protected by its own
16779         lock. Don't call into managed code to run the AssemblyLoad event if we
16780         now there are no registered delegates for it.
16781
16782 2005-06-20  Martin Baulig  <martin@ximian.com>
16783
16784         * class.c (mono_class_is_assignable_from): Use a custom version of
16785         mono_class_has_parent() to make things work for generic instances;
16786         fix #75300.
16787
16788 2005-06-20  Martin Baulig  <martin@ximian.com>
16789
16790         * loader.c (method_from_methodspec): Apply a patch from
16791         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
16792
16793 2005-06-20  Martin Baulig  <martin@ximian.com>
16794
16795         * class.c (mono_class_init): Reverted Zoltan's last change; it
16796         breaks generics.
16797
16798 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
16799
16800         * threads.c (wait_for_tids_or_state_change): Add missing locking.
16801
16802 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16803
16804         * socket-io.c: fix the index in the socket array for writable/error
16805         sockets. Fixes bug #75306.
16806
16807 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
16808
16809         * class.c (mono_class_init): Allow interfaces to have static ctors.
16810
16811 2005-06-17  Martin Baulig  <martin@ximian.com>
16812
16813         * loader.c (method_from_methodspec): Use `context->container' when
16814         parsing the `gmethod->inst'.
16815
16816 2005-06-17  Martin Baulig  <martin@ximian.com>
16817
16818         * class.c (mono_type_get_name_recurse): Don't add the assembly
16819         name for type arguments.
16820
16821 2005-06-15  Martin Baulig  <martin@ximian.com>
16822
16823         * reflection.c (mono_image_get_inflated_method_token): Encode
16824         correct klass; fixes #75260.
16825
16826 2005-06-13 Michal Moskal <malekith@nemerle.org>
16827
16828         * icall.c: Make GetCorrespondingMethod/Constructor take
16829         MonoReflectionMethod method not MonoMethod. Removed
16830         MonoType.GetCorrespondingField, and make
16831         MonoGenericType.GetCorrespondingField take name not
16832         MonoClassField.
16833
16834 2005-06-13  Michal Moskal <malekith@nemerle.org>
16835
16836         * reflection.c (field_encode_signature, encode_locals):
16837          Make sizes of buffers for types larger (for big generic types).
16838          (create_generic_typespec,
16839          mono_reflection_sighelper_get_signature_local,
16840          mono_reflection_sighelper_get_signature_field):
16841          Add asserts for too small buffers.
16842
16843 2005-06-15  Martin Baulig  <martin@ximian.com>
16844
16845         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
16846         if our parent is not a dynamic type.
16847
16848 2005-06-15  Martin Baulig  <martin@ximian.com>
16849
16850         * class-internals.h (MonoTypeNameFormat): New enum.
16851
16852         * class.c
16853         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
16854         (mono_type_get_full_name): Removed.
16855         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
16856         argument instead of the boolean's.
16857
16858         * icall.c (ves_icall_System_MonoType_getFullName):
16859         Added `gboolean assembly_qualified'.    
16860
16861         * reflection.h
16862         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
16863
16864         * reflection.c (mono_reflection_parse_type): Parse the new type
16865         name format.
16866
16867 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16868
16869         * icall.c: no need to convert from utf16 to utf8 and then back again
16870         after the call to GetLogicalDrives.
16871
16872 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16873
16874         * icall.c: frombase64. Fix problems exposed by new tests.
16875
16876 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16877
16878         * icall.c: added internal calls for converting char [] and strings in
16879         base64 into byte [].
16880
16881 2005-06-10  Martin Baulig  <martin@ximian.com>
16882
16883         * class.c (mono_class_create_generic_2): Read the nested classes
16884         from the metadata rather than from `gklass->nested_classes' since
16885         `gklass' might not be initialized yet.
16886
16887 2005-06-09  Duncan Mak  <duncan@novell.com>
16888
16889         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
16890         all public headers. Fixes #74919.
16891
16892 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
16893
16894         * domain.c: The key for proxy_vtable_hash is now a pointer
16895         array. Added new GHashFunc and GCompareFunc functions for this.
16896
16897         * class.h: The list of interfaces in MonoRemoteClass is known in
16898         advance and can't grow (we create a new MonoRemoteClass if needed),
16899         so now the interface array can be allocated together with
16900         MonoRemoteClass.
16901         
16902         * object.c: Added a new method create_remote_class_key.
16903         Fixed mono_remote_class so it does not depend on
16904         mono_upgrade_remote_class.
16905         Removed extend_interface_array.
16906         Added new method clone_remote_class(), which makes a copy of a remote
16907         class and adds a new interface or class to it.
16908         mono_upgrade_remote_class() now creates a new remote class (or gets
16909         it from the cache) if an vtable upgrade is needed. In this way
16910         we make sure that other objects sharing the same remote class
16911         don't get the new vtable with unwanted interfaces.
16912         
16913         * object-internals.h:
16914         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
16915         
16916         * marshal.c: Track changes in mono_upgrade_remote_class().
16917
16918 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
16919         * icall.c: Add runtime methods for obtaining members of inflated
16920         class, which were created from supplied non-inflated members. It
16921         is used in internal Get{Method,Constructor,Field} methods in
16922         System.Type
16923
16924 2005-06-09  Martin Baulig  <martin@ximian.com>
16925
16926         * reflection.c
16927         (mono_reflection_bind_generic_method_parameters): Fix #75169.
16928
16929 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
16930         * reflection.c (mono_image_basic_init): Define
16931         Version in MonoDynamicAssembly. 
16932         
16933 2005-06-08  Martin Baulig  <martin@ximian.com>
16934
16935         Fix #75136.
16936
16937         * loader.c
16938         (mono_method_signature_full): New public method; takes a
16939         `MonoGenericContext *'.
16940         (find_method): Use mono_method_signature_full() and pass the
16941         klass'es context to it.
16942
16943         * class.c (mono_class_is_inflated_method): Use
16944         mono_method_signature_full() and pass the context to it.
16945
16946 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
16947
16948         * object.c: add proper locking in mono_remote_class_vtable(),
16949         fixes possible memory corruption.
16950
16951 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
16952
16953         * marshal.c (mono_remoting_marshal_init): set
16954         initialized after initialization.
16955
16956 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
16957
16958         * locales.c : hush.
16959
16960 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
16961
16962         * object.c (extend_interface_array): fix really silly
16963         memory corrupting / comparison bug.
16964
16965 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
16966
16967         * reflection.c: Functions added to support the creation
16968         of CustomAttributeData, which includes Attribute data
16969         used by ReflectionOnly methods.
16970
16971         * reflection.h:  mono_reflection_get_custom_attrs_data and
16972          mono_custom_attrs_data_construct added (functions exposed).
16973
16974          * icall.c: Added mono_reflection_get_custom_attrs_data
16975          as icall.
16976         
16977 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
16978
16979         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
16980         lupus's request.
16981
16982 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
16983
16984         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
16985
16986         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
16987         dynamic DllImportAttribute.
16988
16989         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
16990         dynamic DllImportAttribute.
16991
16992         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
16993         Fixes #75162.
16994
16995 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16996
16997         * threads.c: avoid segfault when an unstarted thread is aborted.
16998
16999 2005-06-05  KornĂ©l PĂ¡l <kornelpal@hotmail.com>
17000
17001         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
17002         Returns the name and version of the runtime for reporting.
17003
17004 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17005
17006         * appdomain.c: bump corlib version.
17007         * object-internals.h: new field in MonoReflectionAssembly.
17008
17009 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17010
17011         * object-internals.h: Carlos forgot to add this field.
17012
17013 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
17014
17015         * icall.c: Added create_version to create instances
17016         of Version of MonoReflectionAssemblyName. This change helps
17017         the AssemblyName tests to keep running fine.
17018         
17019 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
17020   
17021         * object.c (mono_method_return_message_restore): A somehow less
17022         intrusive fix for #75138.
17023
17024 2005-06-03  Raja R Harinath  <rharinath@novell.com>
17025
17026         * object.c (mono_method_return_message_restore): Fix computation
17027         of expected number of out args.
17028
17029 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
17030
17031         * reflection.c (mono_image_get_method_info): Fix the case when the
17032         charset is empty.
17033
17034 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
17035
17036         * object.c: Added missing null check in
17037           mono_method_return_message_restore.
17038
17039 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
17040
17041         * reflection.c (mono_image_get_method_info): Handle the case when
17042         dllentry is empty.
17043
17044 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
17045
17046         * object.c: When creating the vtable for a proxy, take into account
17047         all inherited interfaces, not only the ones registered in
17048         iclass->interfaces. This fixs bug #74996.
17049         Also, in mono_method_return_message_restore, verify that the array
17050         of out args has the expected lengh.
17051
17052 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17053
17054         * socket-io.c: update the timeout in Poll when the call is interrupte.
17055
17056 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17057
17058         * socket-io.c: support abort/suspend in Select_internal after last
17059         change.
17060
17061 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17062
17063         * threadpool.c: remove warning.
17064
17065 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17066
17067         * icall.c:
17068         * socket-io.[ch]: Select_internal uses poll() now when available, thus
17069         removing the 1024 limit from select(). Runtime part of the fix for
17070         bug #71203.
17071
17072 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17073
17074         * socket-io.c: when resolving the addresses for the same
17075         host returned by gethostname(), get the local IPs from the interface
17076         list. Loopback addresses are discarded if the are interfaces up with
17077         non-loopback ones. Fixes bug #63265.
17078
17079 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
17080
17081         * appdomain.c, verify.c, object-internals.h, reflection.c:
17082         bumped corlib number to 36, and added new extra_flags field
17083         to ReflectionMethodBuilder and friends.  Fixes #75060.
17084
17085 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
17086
17087         * gc.c: register a new weak link only if the object is non-null
17088         (fixes bug#75047).
17089
17090 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
17091
17092         * culture-info.h : short time pattern too.
17093
17094 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
17095
17096         * culture-info.h : expand long time pattern string length.
17097
17098 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
17099
17100         * culture-info-table.h : update (more French date format; #72788).
17101
17102 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
17103
17104         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
17105         the method is static. Fixes #75029.
17106
17107 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
17108
17109         * reflection.c: Update the table_idx field of method builders after
17110         saving the module, since it can change. This is a workaround for
17111         bug #74914. 
17112
17113 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
17114
17115         * culture-info-table.h : update (additional French date format).
17116
17117 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
17118
17119         * icall.c (ves_icall_type_Equals): Revert last change.
17120         
17121         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
17122
17123         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
17124
17125 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
17126
17127         * class-internals.h: Added executioncontext_class field to 
17128         MonoDefaults structure.
17129         * domain.c: Cache System.Threading.ExecutionContext class in 
17130         mono_defaults.
17131         * object.c: Capture the ExecutionContext for asynchroneous calls in
17132          mono_async_result_new.
17133         * object-internals.h: Added execution_context and original_context 
17134         fields to MonoAsyncResult. Added execution_context to MonoThread.
17135         * security-manager.c|.h: Added mono_get_context_capture_method to 
17136         return the capture method (if required by the security manager or by
17137         the framework version used).
17138         * threadpool.c: Apply capture (if present) ExecutionContext in 
17139         mono_async_invoke and revert to original context after it completes.
17140
17141 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
17142
17143         * culture-info-table.h : updated (real hacky solution for zh-CHT).
17144
17145 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
17146
17147         * culture-info-table.h : zh-CHT related workaround.
17148
17149 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
17150
17151         * marshal.c (emit_marshal_custom): Add some error checking and call the
17152         methods in the ICustomMarshaler interface. Fixes #74875.
17153         
17154         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
17155         native->managed wrappers.
17156
17157 2005-05-12  Martin Baulig  <martin@ximian.com>
17158
17159         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
17160         here and use the loader lock.
17161
17162         * mono-debug.c: Properly lock when the debugger is not attached.
17163         (mono_debug_init): Release the initial lock if we're not running
17164         in the debugger.
17165
17166 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
17167
17168         * marshal.c (emit_marshal_custom): Pass through NULL values without
17169         calling the custom marshalling routines.
17170
17171         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
17172         conversion in structures. Fixes #74882.
17173
17174 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
17175
17176         * culture-info-table.h : zh-* cultures were missing.
17177
17178 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
17179
17180         * threads.c: Added a new event background_change_event which is signaled
17181         when a thread changes its background mode.
17182         Moved here several checks previously done in managed code. The checks
17183         require the thread lock, and using the thread lock in managed code
17184         can result in deadlocks.
17185         Merged Start_internal and Thread_internal into a single method. Now 
17186         Thread_internal does all work of creating and starting a thread.
17187         Added icalls for setting and getting the state of the object. Moved from
17188         managed code to avoid locking there.
17189         Added wait_for_tids_or_state_change() which is called instad of
17190         wait_for_tids when waiting for non-backround threads to end. This method
17191         will return if one of the threads ends or the background_change_event
17192         is signaled.
17193         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
17194         the background mode. This method signals the background_change_event
17195         event.
17196         * icall.c:
17197         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
17198         removed Start_internal.
17199         
17200 2005-05-11  Martin Baulig  <martin@ximian.com>
17201
17202         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
17203         to order of some fields to get proper alignment on 64-bit machines.
17204
17205 2005-05-11  Martin Baulig  <martin@ximian.com>
17206
17207         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
17208         changes as they're broken and completely fuck up the debugger.
17209
17210         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
17211
17212 2005-05-10  Martin Baulig  <martin@ximian.com>
17213
17214         * reflection.c (mono_reflection_generic_class_initialize): Don't
17215         call mono_class_setup_parent() here.
17216
17217 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17218
17219         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
17220         send/receive timeout use an integer in milliseconds. We were using a
17221         struct timeval.
17222
17223 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17224
17225         * locales.c:
17226         (internal_get_cultures): reserve the first slot of the array for the
17227         InvariantCulture, which will be filled in managed code.
17228
17229 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
17230
17231         * reflection.c (mono_image_fill_module_table): Initialize the
17232         GENERATION field as well.
17233
17234 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17235
17236         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
17237         Monitor.Enter on the object.
17238
17239 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
17240
17241         * threads.c: Enable the wait for running threads when exiting.
17242         * icall.c: Suspend all threads before exiting.
17243
17244 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
17245
17246         * assembly.c (mono_assembly_load_reference): Fix warning.
17247
17248 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17249
17250         * threadpool.c: changed the default number of threads per cpu. From now
17251         on, the default will be 20 + (5 * number of cpus) instead of 50.
17252
17253 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
17254
17255         * loader.c (mono_method_get_signature_full): Add locking here.
17256
17257 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
17258
17259         * appdomain.c: Moved methods for parsing and freeing assembly
17260         names to assembly.c.
17261         * assembly.c, domain-internals.h: Created public methods for parsing
17262         assembly names. Fixed mono_assembly_load_with_partial_name:
17263         it now finds the best match, taking into account the version,
17264         token and culture specified in the partial name. Also return
17265         the latest version if no version information is specified.
17266
17267 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
17268
17269         * threadpool.c: replace check for SocketAsyncCall class.
17270
17271 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17272
17273         * threadpool-internals.h:
17274         * Makefile.am: added threadpool-internals.h
17275
17276         * threadpool.c: call mono_unhandled_exception on exceptions not handled
17277         that happen in threadpool threads (tested on MS).
17278         (mono_thread_pool_remove_socket): new function that dispatch any pending
17279         AIO call on a socket that is closing. By now only epoll really needs it,
17280         as select/poll wake up when the socket closes.
17281
17282
17283         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
17284
17285 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
17286
17287         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
17288
17289 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
17290
17291         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
17292
17293 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
17294
17295         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
17296         has an abort request, convert it into a suspend request.
17297
17298 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
17299
17300         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
17301         warning for the usage of `UnmanagedFunctionPointerAttribute' which
17302         is not supported yet.
17303
17304 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17305
17306         * image.c: register assemblies loaded from data (bundles) in the loaded
17307         assemblies hash. Fixes bug #74772.
17308
17309 2005-04-29  Martin Baulig  <martin@ximian.com>
17310
17311         * class.c (mono_type_get_name_recurse): Update to the new naming
17312         schema from the latest .NET 2.x beta2.
17313         (mono_class_setup_vtable_general): If we're a generic instance,
17314         copy the vtable from our generic type definition and inflate all
17315         the methods in it.
17316
17317         * loader.c (find_method): Update to the new naming schema from the
17318         latest .NET 2.x beta2.
17319
17320 2005-04-29  Raja R Harinath  <harinath@gmail.com>
17321
17322         * class.c (mono_class_init): Add a mono_loader_unlock to the
17323         #74734 fix.
17324
17325 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
17326
17327         * icall.c (ves_icall_System_Environment_Exit): Remove the 
17328         suspend_all_other_threads () call for the time being, since it can hang.
17329
17330         * threads.c (mono_thread_manage): Similarly, disable the waiting for
17331         the background threads to exit, since it can also hang.
17332
17333         * class.c (mono_class_init): Applied patch from Ankit Jain 
17334         (radical@gmail.com). Avoid pending init errors when a field refers
17335         to a nested class using a typeref. Fixes #74734.
17336
17337         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
17338         this for dynamic modules.
17339
17340 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17341
17342         * threads.c: don't wait for threads that are in the process of aborting
17343         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
17344         and waiting for background threads to finish. This makes xsp and
17345         mod-mono-server exit without random length delays and/or hangs.
17346
17347 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17348
17349         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
17350
17351 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
17352
17353         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
17354         dynamic types to prevent infinite loops. Fixes #74727.
17355
17356         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
17357         ..._is_assignable_to.
17358
17359 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
17360
17361         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
17362
17363 2005-04-25  Martin Baulig  <martin@ximian.com>
17364
17365         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
17366
17367         * domain.c
17368         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
17369
17370         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
17371
17372         * reflection.c (build_compressed_metadata): Set metadata header
17373         version to 2.0.
17374
17375 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
17376
17377         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
17378         number into an integral and a decimal part. Fixes #70473.
17379
17380         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
17381
17382 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
17383
17384         * culture-info-table.h : reflected the latest locale-builder output.
17385
17386 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17387
17388         * threadpool.c: check for SuspendRequested too when deciding if
17389         mono_thread_interruption_checkpoint should be called.
17390
17391 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17392
17393         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
17394         * threads.c: remove interruption_mutex and use Interlocked instead. When
17395         suspending all the threads, wait for all the suspended events at once.
17396         If we're shutting down and get an APC that is going to be queued,
17397         call mono_thread_execute_interruption immediately, as the thread might
17398         be sleeping on a pthread condition or mutex.
17399
17400         * icall.c: call mono_runtime_set_shutting_down before suspending the
17401         threads.
17402
17403         Fixes bug #74693. And now xsp is happier when exiting.
17404
17405 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
17406
17407         * loader.c (mono_stack_walk): Fix #74690.
17408
17409 2005-04-22  Martin Baulig  <martin@ximian.com>
17410
17411         * mono-debug.h (MonoDebugMethodJitInfo): Added
17412         `MonoDebugMethodJitInfo *jit'.
17413
17414         * mono-debug.c (mono_debug_read_method): Cache the
17415         MonoDebugMethodJitInfo in `address->jit'.
17416         (mono_debug_free_method_jit_info): New public method.
17417
17418 2005-04-22  Martin Baulig  <martin@ximian.com>
17419
17420         * class.c (mono_class_is_assignable_from): Disallow
17421         type parameter -> interface.
17422
17423 2005-04-21  Dick Porter  <dick@ximian.com>
17424
17425         * threads.c (mono_thread_create): Turn an assertion into an error.
17426
17427 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
17428
17429         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
17430         
17431         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
17432         Fix some gcc 4.0 warnings.
17433
17434 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
17435
17436         * file-io.c: fix alt dir separator char on unix systems
17437         and cleanup (fixes bug #71214).
17438
17439 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
17440
17441         * marshal.c: Use CALLVIRT instead of CALL when dispatching
17442         a call to a remote domain, since the method may be an
17443         interface method in the client domain. This fixes bug #74192.
17444
17445 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17446
17447         * threadpool.c: recv/send are now performed before going back to managed
17448         code to save one transition.
17449
17450 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17451
17452         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
17453
17454         * metadata/threadpool.c: removed hack to workaround the bug above.
17455
17456         Fixes bug #74618.
17457
17458 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
17459
17460         * reflection.c reflection.h: Fix handling of parameter defaults in
17461         dynamic methods. Also fixes handling of parameter attributes.
17462         Fixes #74609.
17463
17464         * mono-debug.c (mono_debug_close_image): Fix warning.
17465
17466 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17467
17468         * socket-io.h: replaced old unused field with new 'blocking'.
17469         * threadpool.c: restore socket blocking state on windows(tm).
17470
17471 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
17472
17473         * icall.c: don't return the codebase in the AssemblyName[] returned by
17474         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
17475         * object-internals.h: Removed FIXME (fields were presents) and fixed
17476         versioncompat declaration.
17477
17478 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17479
17480         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
17481         not closed, so don't cleanup when it happens.
17482
17483 2005-04-13  Chris Toshok  <toshok@ximian.com>
17484
17485         * mono-debug-debugger.h: change prototype for
17486         mono_debugger_lookup_type.
17487
17488         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
17489         this function, although it should probably be named
17490         mono_debugger_init_type.
17491
17492 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17493
17494         * threadpool.c: fix non-AIO case.
17495
17496 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
17497
17498         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
17499         the built-in profiler to measure just JIT compilation times.
17500
17501 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17502
17503         * threadpool.c: the epollfd might be closed by another thread at
17504         any time, so ignore EBADF at treat it as a "we're closing" sign.
17505
17506 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17507
17508         * threadpool.c: release the semaphores with a count equals to the number
17509         of working threads in both IO and regular pools. Fixed typo that messed
17510         up the count of IO pool threads. Don't initialize the pipe handles if
17511         we're using epoll.
17512
17513 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17514
17515         * threadpool.c: some systems don't like a NULL when deleting the socket
17516         from epoll.
17517
17518 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17519
17520         * threadpool.c: fix semaphore allocation.
17521
17522 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17523
17524         * threadpool.c: added epoll() based implementation for asynchronous IO
17525         that is used instead of the default poll() when available.
17526         It can be disabled by setting MONO_DISABLE_AIO.
17527
17528 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17529
17530         * threadpool.c: windows needs 'closesocket' and instead of returning
17531         0 when the stream is closed while in select, it returns -1. Fixes bug
17532         #74573.
17533
17534 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
17535
17536         * class.c (class_compute_field_layout): Fix the regression caused by
17537         the previous try.
17538
17539 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17540
17541         * threadpool.c: separate pool for socket async. IO.
17542         * threadpool.h: mono_max_worker_threads is not a global any more.
17543
17544 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
17545
17546         * class.c (class_compute_field_layout): Fix #74549.
17547
17548 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17549
17550         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
17551         use 2 connected sockets instead.
17552
17553 2005-04-08  Miguel de Icaza  <miguel@novell.com>
17554
17555         * mono-config.c: Add new entry point for mkbundle
17556         mono_config_parse_memory. 
17557
17558 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17559
17560         * threadpool.c: removed another unused function.
17561
17562 2005-04-08  Ankit Jain  <radical@corewars.org>
17563
17564         * reflection.c (get_default_param_value_blobs): Add 'types'
17565         parameter to get the types encoded in the constant table.
17566         (mono_param_get_objects): Use the type from the constant table,
17567         not the type of the parameter, when creating default values.
17568         Handle null default values correctly.
17569
17570 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17571
17572         * file-io.c:
17573         * file-io.h:
17574         * threadpool.c:
17575         * threadpool.h:
17576         * icall.c:
17577         * socket-io.c: removed dead code for async IO.
17578
17579 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17580
17581         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
17582
17583         * threadpool.c: intercept socket async. calls and pass them to a thread
17584         that is polling and dispatching the job items to the threadpool as
17585         socket become ready. Fixes bugs #71217, #71933.
17586
17587         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
17588         between char and short/ushort arrays.
17589
17590         * socket-io.c: remove dead code.
17591
17592 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
17593
17594         * locales.c,
17595           icall.c : removed InternalToUpper_Comp() and
17596           InternalToLower_Comp().
17597
17598 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
17599
17600         * char-conversions.h : The tables were incorrectly generated. Should
17601           be generated against invariant culture.
17602
17603 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
17604
17605         * object.c (mono_runtime_invoke_array): Fix return value when 
17606         passing pre-created valuetype objects to ctors.
17607
17608         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
17609         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
17610         Fixes #74338.
17611
17612 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
17613
17614         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
17615         only used with --security and hides the wrong corlib version error.
17616
17617 2005-03-30  Joshua Tauberer  <tauberer@for.net>
17618
17619         * class.c: Changed mono_class_name_from_token so that types
17620         outside of a namespace don't have an initial period.  Improved
17621         the g_warning message used in _mono_class_get when loading
17622         fails.
17623         * assembly.c: In mono_assembly_load_reference, when an assembly
17624         can't be found, "No such file or directory" is misleading and
17625         unhelpful because a few paths were checked for the presence of
17626         the assembly.  When that happens (ENOENT), display a nicer
17627         message indicating the directories that were searched.  In all
17628         cases, the warning is made easier to read for non-hackers.
17629
17630 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
17631
17632         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
17633         project/solution.
17634         * appdomain.h|domain.c: Removed inline from functions.
17635         * appdomain.c: Reduced warnings when compiling on windows.
17636         * icall.c: Fixed output_debug declaration to gunichar2*.
17637         * mono-config.c: Reduced warnings when compiling on windows.
17638         * rand.c: Added missing "windows.h". Added missing return value.
17639         * rawbuffer.c: Added missing winsock2.h for windows.
17640         * sysmath.h: Added mono-compiler.h header to allow/ease 
17641         compilation with non-GCC compilers.
17642         * threads.c: Fixed declarations to compile with VS.NET C compiler.
17643         Removed cast warnings.
17644
17645         Adapted from the work of J Lothian (for VC6).
17646
17647 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
17648
17649         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
17650         from default_path.
17651
17652 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
17653
17654         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
17655         the 2.0 profile.
17656
17657 2005-03-27  Raja R Harinath  <harinath@gmail.com>
17658
17659         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
17660         has to be in $(exec_prefix).  $(prefix) is for arch-independent
17661         stuff, and it would probably use $(prefix)/share rather than
17662         $(prefix)/lib.
17663
17664 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17665
17666         * console-io.c: added 2 includes that might be missing.
17667
17668 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
17669
17670         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
17671         profile.
17672
17673         * reflection.c (create_custom_attr): Allocate the params array using
17674         alloca so it gets GC tracking.
17675
17676 2005-03-23  Chris Toshok  <toshok@ximian.com>
17677
17678         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
17679         out some spew.
17680
17681 2005-03-24  Raja R Harinath  <rharinath@novell.com>
17682
17683         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
17684         changes to pick up any changes in prefix, etc.
17685
17686 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
17687
17688         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
17689         
17690         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
17691         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
17692
17693 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
17694
17695         * class-internals.h object-internals.h class.c reflection.c: Extend the
17696         mono_lookup_dynamic_token () function to return the class of the
17697         token as well. 
17698
17699         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
17700         well. Fixes #73848.
17701
17702 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
17703
17704         * security-manager.c: Skip inheritance checks for intra-corlib
17705         class inheritance and method overrides. This skips a lot of checks
17706         and (anyway) permissions cannot work until corlib is loaded.
17707
17708 2005-03-23  Martin Baulig  <martin@ximian.com>
17709
17710         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
17711         MONO_TYPE_GENERICINST.  
17712
17713 2005-03-23  Martin Baulig  <martin@ximian.com>
17714
17715         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
17716
17717 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
17718
17719         * class.c: added locking comments to some functions.
17720         Cache the interface offsets arrays (saves about 20 KB
17721         of runtime memory in a typical app).
17722         Reduce the time overhead in mono_class_setup_supertypes ().
17723
17724 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
17725
17726         * icall.c: speedup and fix leaks in GetMethodsByName and
17727         GetPropertiesByName.
17728
17729 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
17730
17731         * reflection.c: some locking fixes.
17732
17733 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
17734
17735         * metadata.c: added missing break in case statement.
17736
17737 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
17738
17739         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
17740         typedbyref return values. Fixes #73941.
17741
17742 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
17743
17744         * security-manager.c|h: Added demandunmanaged method and 
17745         suppressunmanagedcodesecurity class to MonoSecurityManager.
17746         Renamed aptc class to allowpartiallytrustedcallers.
17747
17748 2005-03-17  Martin Baulig  <martin@ximian.com>
17749
17750         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
17751
17752 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17753
17754         * file-io.c: disabled file async. IO using aio_*. It uses the
17755         threadpool now. Workaround for bug #73718.
17756
17757 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
17758
17759         * assembly.h, mono-config.c: added code to deal with bundled configs
17760         for bundled assemblies.
17761
17762 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
17763
17764         * *.c, private.h: cleanup, removing old private.h header file.
17765
17766 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
17767
17768         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
17769         and throw_on_unmappable_char attributes.
17770
17771 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
17772
17773         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
17774         _ProcessName_internal.
17775
17776 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
17777
17778         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
17779         #73631.
17780
17781         * icall.c threads.c threads-types.h: Remove slothash icalls as they
17782         are no longer used.
17783
17784 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
17785
17786         * object.c (compute_class_bitmap): Add support for generics. Fixes
17787         #73527.
17788
17789 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
17790
17791         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
17792
17793 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17794
17795         * filewatcher.c: commented out the code for windows watcher, as we don't
17796         use it (we use the managed implementation instead).
17797
17798 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
17799
17800         * object-internals.h (MonoThread): Remove 'unused1' field.
17801
17802         * appdomain.c: Bump corlib version.
17803
17804         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
17805
17806         * reflection.c (mono_reflection_create_runtime_class): Remove the
17807         AssemblyBuilder.Save optimization since it causes too many problems.
17808
17809 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
17810
17811         * exception.c|h: Added mono_get_exception_reflection_type_load to
17812         create a ReflectionTypeLoadException object.
17813         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
17814         to return NULL is a InheritanceDemand fails during reflection. Updated
17815         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
17816         ReflectionTypeLoadException if an InheritanceDemand fails during 
17817         reflection. Added icall mapping for GetLinkDemandSecurity.
17818         * security-manager.c|h: Added ves_icall_System_Security_
17819         SecurityManager_GetLinkDemandSecurity internal call to return the
17820         class and methods permissions set for a LinkDemand. Removed unused
17821         fields in MonoSecurityManager.
17822
17823 2005-03-10  Martin Baulig  <martin@ximian.com>
17824
17825         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
17826         it's a generic instance.
17827
17828 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
17829
17830         * reflection.c (mono_get_object_from_blob): Applied patch from
17831         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
17832
17833         * class.c (mono_class_is_assignable_from): Another try at fixing 
17834         #73469 without breaking anything.
17835
17836 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
17837
17838         * class.c: (mono_class_is_assignable_from): Revert the last changes
17839         since they don't work with generics.
17840         
17841         * class.c (mono_class_is_assignable_from): Fix build bustage.
17842
17843         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
17844         the managed IsAssignableFrom method. Fixes #73469.
17845
17846         * reflection.c (mono_reflection_call_is_assignable_from): New helper
17847         function.
17848
17849 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
17850
17851         * object.c (mono_load_remote_field_new): Fix returning uninitialized
17852         memory when the remoting callback does not sets the out arguments.
17853         Fixes #73007.
17854
17855         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
17856         by mistake.
17857
17858         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
17859
17860         * object-internals.h (MonoStackFrame): Sync with managed object layout.
17861
17862         * appdomain.c: Bump corlib version.
17863
17864 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
17865
17866         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
17867         function.
17868
17869         * threads.c (mono_thread_attach): Detect threads which are not started
17870         by the GC pthread wrappers.
17871
17872 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
17873
17874         * icall.c: Added new icall for RNG.
17875         * rand.c|h: Added new icall to open the RNG. This allows to share a 
17876         single handle on Linux to access /dev/urandom and fix #73183.
17877
17878 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
17879
17880         * object.c: setting the new vtable in a transparent proxy object must
17881         not change the GC descriptor.
17882
17883 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
17884
17885         * object.c: fixed compilation without GCJ support.
17886         * reflection.c: for runtime-created types ensure klass->has_references
17887         is correct (bug #73215).
17888
17889 2005-03-02  Martin Baulig  <martin@ximian.com>
17890
17891         * class.c (mono_class_is_assignable_from): Make this work if
17892         `oklass' is a generic instance; fixes #72831.
17893
17894 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
17895
17896         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
17897         with hasthis set.
17898         
17899         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
17900
17901         * marshal.c: Reorganize native->managed marshalling code to also use
17902         the emit_marshal_... functions.
17903
17904 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
17905
17906         * object.c: typed allocs have issues with bitmap sizes > 30,
17907         so check for max_set >= 30.
17908
17909 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
17910
17911         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
17912         managed code. Fixes #73012.
17913
17914         * metadata.h (MonoMarshalSpec): Add elem_mult field.
17915
17916         * metadata.c reflection.c: Load/Emit elem_mult as well.
17917         
17918         * metadata.h (MonoMarshalSpec): Add comment.
17919
17920         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
17921
17922         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
17923         num_elem to -1 if not given.
17924
17925         * object-internals.h (MonoReflectionMarshal): Add has_size field.
17926
17927         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
17928         given values.
17929
17930 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
17931
17932         * null-gc.c (mono_gc_free_fixed): Was not compilable.
17933
17934 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
17935
17936         * reflection.c (encode_marshal_blob): Encode param_num field as well.
17937
17938         * object-internals.h (MonoReflectionMarshal): Add param_num field.
17939
17940 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
17941
17942         * object.c: generalized the reference bitmap creation
17943         and added hooks for the new GC.
17944         * class-internals.c: removed the gc_bitmap field from MonoClass.
17945
17946 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
17947
17948         * domain.c: help the compiler to produce better code
17949         in mono_jit_info_table_find ().
17950
17951 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
17952
17953         * object.c: make all allocations look typed.
17954
17955 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
17956
17957         * socket-io.c: load Mono.Posix if it's not loaded already
17958         (fixes bug#73033).
17959
17960 2005-02-24  Martin Baulig  <martin@ximian.com>
17961
17962         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
17963         * reflection.c (dup_type): Likewise.
17964
17965 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
17966
17967         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
17968         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
17969
17970 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
17971
17972         * domain.c, threads.c, object-internals.h: make the critical thread
17973         local vars use the fast access mode (even when we're compiled in
17974         a lib). Provide accessors to be used by the jit during codegen.
17975
17976 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
17977
17978         * appdomain.c: Changed hook functios behavior to include
17979         support for the reflection only assemblies. Some icalls were changed
17980         to support the mentioned assemblies too. Signatures of static methods
17981         try_assembly_resolve and real_load now have an additional parameter:
17982         refonly.
17983
17984         * assembly.c: General changes to mono_assembly_ methods to support
17985         reflection only api. Functions mono_assembly_open, mono_assembly_load,
17986         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
17987         suffix, to support an additional gbool parameter to specify whether
17988         the assembli is reflection only or not. Created some new hook functions 
17989         to add support for reflection only assemblies. Signatures of static 
17990         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
17991         have now an additional parameter: refonly.
17992
17993         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
17994         indicating whether the assembly is reflection only or not.
17995
17996         * exception.c: Add mono_get_exception_invalid_operation.
17997
17998         * icall.c: Throw an InvalidOperationException when trying to invoke
17999         a property/method/event, or trying to set/get the value of a field.
18000         Also add an icall to retrieve the ref_only flag to the
18001         MonoReflectionAssembly.
18002
18003 2005-02-23  Chris Toshok  <toshok@ximian.com>
18004
18005         Part of fix for #72827.
18006         * mono-debug.c (mono_debug_add_method): add lexical block data to
18007         the info we write.  Kind of a hack at the moment - we copy the
18008         lexical block info from the MonoDebugMethodInfo to the
18009         MonoDebugMethodJitInfo here, before writing it.
18010         (mono_debug_read_method): read the lexical block info.
18011
18012         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
18013
18014         * debug-mono-symfile.h: add lexical block support.
18015
18016         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
18017         support.
18018
18019 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
18020
18021         * loader.c (mono_lookup_pinvoke_call): Fix warning.
18022
18023         * object.c (mono_runtime_free_method): Call mono_free_method () and
18024         put the TODOs there.
18025
18026         * loader.c (mono_free_method): Free up most memory allocated for 
18027         dynamic methods.
18028
18029 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
18030
18031         * reflection.c: properly flag a Type argument to a
18032         named custom attr value (bug #72248).
18033
18034 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
18035
18036         * reflection.c: reduce code duplication in named custom
18037         attribute encoding.
18038
18039 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
18040
18041         * reflection.c: properly encode custom attrs of type object
18042         (bug #72649).
18043
18044 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
18045
18046         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
18047
18048 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
18049
18050         * socket-io.c: load System.dll if it's not loaded already
18051         (bug #72850 and #70477).
18052
18053 2005-02-21  Martin Baulig  <martin@ximian.com>
18054
18055         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
18056         generic instances.
18057
18058 2005-02-21  Martin Baulig  <martin@ximian.com>
18059
18060         * reflection.c (mono_image_build_metadata): We also need to
18061         "fixup" the MethodImpl table after we computed the final method
18062         indices.  Call fixup_methodimpl() to do that.
18063         (fixup_methodimpl): New private method.
18064
18065 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
18066
18067         * assembly.c: special case mscorlib.dll (bug#72536),
18068         patch from Carlos Alberto Cortez.
18069
18070 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
18071
18072         * threads-types.h threads.c: Fix build bustage.
18073
18074         * threads.c: Use a union for long<->double conversions.
18075
18076         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
18077         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
18078
18079         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
18080         containing the checkpoint call with NOT_TAKEN.
18081         
18082         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
18083         checkpoint before pushing the arguments, so they won't have to be
18084         spilled to stack.
18085
18086 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
18087
18088         * domain.c, assembly.c, domain-internals.h: make some data
18089         const and relocation-free.
18090
18091 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
18092
18093         * object.c, appdomain.c, class-internals.h: introduce the
18094         MonoClassRuntimeInfo structure to hold the info needed to
18095         use a class at runtime. Made mono_class_vtable() lock-free
18096         for all the appdomains.
18097
18098 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
18099
18100         * metadata-internals.h, image.c: introduce a per-image mempool to
18101         be used for memory that has the same lifetime as the image.
18102
18103 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
18104
18105         * domain.c: In mono_init_internal(), instead of selecting the first
18106         runtime version supported by an executable, get a list of all
18107         supported versions and select the one for which an mscorlib exists
18108         (since even if the runtime supports a given version, it doesn't mean
18109         that the framework for that version is installed).
18110         Modified get_runtimes_from_exe to support this behavior.
18111         In supported_runtimes, added information about additional system
18112         assembly versions.
18113         
18114         * assembly.c: Added support for more than one system assembly version
18115         per runtime version. Updated the assembly list.
18116         In mono_assembly_remap_version, removed the initial version check,
18117         since we don't know to which version we need to compare until we
18118         get the version set on which the assembly is based.
18119         Moved the code for loading corlib into the new method
18120         mono_assembly_load_corlib(), so it can be used by the initialization
18121         code.
18122         
18123         * domain-internals.h: Updated data structures and added declaration
18124         for mono_assembly_load_corlib.
18125
18126 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
18127
18128         * reflection.c (resolve_object): Fix the creation of the signature in 
18129         the SignatureHelper case.
18130
18131         * assembly.c (mono_assembly_remap_version): Fix binary search.
18132         
18133 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
18134  
18135         * class.c: Added inheritance check when a method is overloaded (from a
18136         virtual method or when implementing an interface) and when a class is
18137         inherited. Added functions to set a failure for a class and to 
18138         retreive the exception from a failure.
18139         * class-internals.h: Added fields to MonoClass to keep the exception
18140         information status for inheritance (or other exceptions) to be thrown
18141         later (i.e. not at load time).
18142         * object.c: Throw the inheritance SecurityException when a type is to 
18143         be created with either class or method inheritance violations.
18144         * reflection.c|h: Fix when getting declsec from a class. Removed 
18145         unrequired code for class. Improved sanity in parameter naming.
18146         * security-manager.c|h: Added functions to check for class and method
18147         inheritance.
18148
18149 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
18150
18151         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
18152         and has_finalize in dynamic types as well.
18153
18154 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
18155
18156         * culture-info-table.h : fixed currency format for en-GB (and so on).
18157
18158 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
18159
18160         * gc.c: ensure the GC handles never have 0 as a value.
18161
18162 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
18163
18164         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
18165         a pointer to a struct to unmanaged code. Fixes #72625.
18166
18167 2005-02-16  Martin Baulig  <martin@ximian.com>
18168
18169         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
18170
18171 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
18172
18173         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
18174
18175 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
18176
18177         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
18178
18179         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
18180         UnmanagedFunctionPointerAttribute, use it for determining calling convention
18181         etc. Fixes #71471.
18182
18183         * reflection.c (mono_custom_attrs_get_attr): New helper function.
18184
18185         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
18186
18187 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
18188
18189         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
18190         changes to make the current context a field in MonoThread.
18191
18192 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
18193
18194         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
18195         the last change.
18196         
18197         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
18198         extracted from mono_marshal_get_native_wrapper.
18199
18200         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
18201         to create wrappers around native functions.
18202
18203         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
18204         delegates for arbitrary function pointers. Fixes #71472.
18205
18206 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
18207
18208         * threads.c: cleaned up the code a little.
18209
18210 2005-02-15  Martin Baulig  <martin@ximian.com>
18211
18212         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
18213         the data table.
18214
18215         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
18216         allocate larger chunks if needed.
18217
18218 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
18219
18220         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
18221         in by mistake.
18222
18223 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
18224
18225         * domain.c: keep the domains in an array and ensure the domain ids
18226         are kept small, so they can be used as indexes to domain-specific data
18227         with a small memory overhead.
18228
18229 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
18230
18231         * icall.c: Handle byref types in Type icalls. Fixes #72544.
18232
18233 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
18234
18235         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
18236
18237 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
18238
18239         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
18240
18241         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
18242         values.
18243
18244         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
18245         
18246 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
18247
18248         * domain-internals.h: add the hashtable here.
18249
18250         * class-internals.h: Remove `info' from MonoMethod
18251
18252         * domain.c: Add a new hashtable, jit_trampoline_hash
18253
18254 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
18255
18256         * object.c: don't set the value of static fields
18257         (fixes bug#72494).
18258
18259 2005-02-11  Martin Baulig  <martin@ximian.com>
18260
18261         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
18262         (mono_debug_add_method): Silently ignore the method if it's too big.
18263         (mono_debug_add_type): Likewise.
18264
18265 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
18266
18267         * threads.c, appdomain.c: remove #ifdefs from the code.
18268
18269 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
18270
18271         * metadata-internals.h: Added flags to MonoAssembly to cache the most
18272         common security informations. This allows us to stay in unmanaged code
18273         when doing LinkDemand and it's special cases (except for the first 
18274         time for initialization). The flags a very much used with --security.
18275         * reflection.c|h: Added code to get declarative security attributes 
18276         for LinkDemand and InheritanceDemand. This required to refactor the
18277         existing code for Demand.
18278         * security-manager.c|h: Added new method fields for the special cases
18279         of LinkDemand.
18280
18281 2005-02-10  Martin Baulig  <martin@ximian.com>
18282
18283         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
18284         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
18285
18286 2005-02-10  Martin Baulig  <martin@ximian.com>
18287
18288         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
18289         debugging code; this is almost a complete rewrite.
18290
18291         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
18292
18293 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
18294
18295         * domain.c, object.h: expose mono_string_equal () and 
18296         mono_string_hash ().
18297         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
18298         it's implemented in managed code.
18299
18300 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
18301
18302         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
18303         lo leak objects between appdomains.
18304
18305 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
18306
18307         * assembly.c: old compilers compilation fix from 
18308         robertj@gmx.net (Robert Jordan).
18309
18310 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
18311
18312         * class-internals.h: Little reminder for the future.
18313
18314         * debug-helpers.c: Fix up wrapper_type_names
18315
18316 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
18317
18318         * image.c, metadata-internals.h: when loading an image from a file,
18319         mmap all of it and use the same codepaths as when using a
18320         in-memory image: the code is simpler and we use less memory
18321         (both writable and readonly).
18322
18323 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
18324
18325         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
18326         API to alloc runtime data structures that need to be tracked by the
18327         GC and contain pointers.
18328         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
18329         make the code more readable and eventually use a different GC.
18330
18331 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
18332
18333         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
18334         for out arguments.
18335         
18336 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
18337
18338         * object.c: In release_type_locks(), don't release the cctor lock
18339         if it has already been released. This fixes a crash in the
18340         thread5 test.
18341
18342 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
18343
18344         * gc.c, marshal.c, icall.c: register a delegate for finalization
18345         only when the native function pointer has been allocated for it.
18346
18347 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
18348
18349         * object.c: cleaned up some code, allocate objects that are
18350         pointer free with the atomic malloc variant. Allocate memory
18351         for static data from the mempool if it's pointer-free.
18352         Allocate the bounds array at the end of the array data, when needed.
18353         * object-internals.h, object.h: move a private function in a private
18354         header.
18355         * class.c: handle missing case in tracking references in fields.
18356
18357 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
18358
18359         * class.c, class-internals.h: keep track if a type has
18360         reference fields in either the instance or static fields.
18361
18362 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
18363
18364         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
18365         and renamed to MonoRuntimeInfo. Added fields to store the expected
18366         framework assembly version. Changed mono_get_framework_version and
18367         mono_get_runtime_version for a single mono_get_runtime_info method.
18368         
18369         * assembly.c: Added method to remap system assembly versions to the
18370         current executing runtime version. Removed old mapping code.
18371         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
18372         
18373         * icall.c, reflection.c: Track api changes.
18374
18375 2005-02-06  Miguel de Icaza  <miguel@novell.com>
18376
18377         * loader.c (method_from_memberref): Improve error reporting,
18378         produce the class name instead of the typeref/typedef index. 
18379
18380 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
18381
18382         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
18383
18384 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
18385
18386         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
18387         stdcall and charset name mangling.  Reorganize the code and add
18388         some tracing stuff.
18389
18390 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
18391
18392         * monodiet.c: More iters!
18393
18394         * marshal.c: Iter usage.
18395
18396         * icall.c: Iter usage.
18397
18398         * object.c: Use iters.
18399
18400         * debug-helpers.c: More iters
18401
18402 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
18403
18404         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
18405         under win32.
18406
18407 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
18408
18409         * mono-debug-debugger.c: use iters
18410
18411         * class.c, class-internals.h: mono_class_setup_events is static
18412         now
18413
18414         * All callers: use iters
18415
18416 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
18417
18418         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
18419         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
18420
18421 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
18422
18423         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
18424
18425         * marshal.h: Add prototypes for ldfld/stfld_remote.
18426
18427         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
18428         this is called during startup.
18429         
18430 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
18431
18432         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
18433         MonoThreadsSync struct private in monitor.c. Changed the way
18434         MonoThreadsSync is allocated so it's faster and there is no
18435         need to keep track of it with a finalizer and it uses less memory.
18436         This also finally allows us to allocate mono objects as ptrfree when
18437         there are no reference fields.
18438
18439 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
18440
18441         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
18442         disappearing link to the GC interface and use them to simplify
18443         the gchandles code.
18444
18445 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
18446
18447         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
18448         stfld_remote which call mono_load/store_field_new. This allows methods
18449         calling ldfld/stfld wrappers to be AOTed.
18450
18451         * console-io.c: Include sys/filio.h under solaris.
18452         
18453         * console-io.c: Include curses.h if needed correctly.
18454
18455 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
18456         
18457         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
18458         method->klass as well.
18459
18460         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
18461
18462         * class.c (mono_class_init): Switch on lazy initialization of 
18463         methods.
18464
18465         * class.c (mono_class_get_finalizer): Handle the case when the 
18466         finalizer is inherited.
18467
18468 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18469
18470         * console-io.c: <curses.h> is needed by term.h on solaris.
18471
18472 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
18473
18474         * icall.c, class-internals.h, monodiet.c, class.c: Remove
18475         mono_class_setup_properties where possible. Remove this ftn from
18476         the header file, and make it static.
18477
18478 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
18479
18480         * loader.c: Add missing setup_... call.
18481
18482         * class.c: Add missing setup_... calls.
18483
18484         * class.c (mono_class_init): Switch on lazy initialization of 
18485         the generic vtable.
18486         
18487         * class.c (mono_class_init): Fix generics broken by the recent changes.
18488
18489         * monodiet.c (handle_type): Add missing setup_... calls.
18490
18491         * class.c: Back out garbage in previous patch.
18492         
18493         * class.c: Add missing setup_... calls.
18494
18495         * class.c (mono_class_get_method_from_name_flags): Avoid calling
18496         mono_class_setup_methods () if possible.
18497
18498         * class-internals.h (MonoClass): Add 'has_cctor' flag.
18499
18500         * class-internals.h (MonoCachedClassInfo): New structure.
18501
18502         * class.c: Initialize properties and events fields of MonoClass lazily.
18503
18504         * class.c: Add infrastructure for lazily initializing the methods and
18505         vtable fields of MonoClass. Not yet used.
18506
18507         * class.c (mono_class_get_finalizer): New helper function.
18508
18509         * class.c: Add infrastructure for loading some class related data from
18510         an AOT file.
18511
18512         * object.c: Add infrastructure for initializing the vtable from data
18513         in the AOT file.
18514
18515         * gc.c (run_finalize): Use mono_class_get_finalizer ().
18516
18517         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
18518         appropriate initialization function before accessing parts of the
18519         MonoClass structure.
18520
18521         * marshal.c: Fix warnings.
18522         
18523         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
18524
18525         * mono-debug-debugger.c (get_exception_message): Use 
18526         mono_class_get_method_from_name_flags ().
18527
18528 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
18529
18530         * reflection.c, appdomain.c: Replace a few manual searches that
18531         Zoltan missed. (Paolo approved this part of my initial patch).
18532
18533 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
18534
18535         * profiler.c: disable recording statistical events at report time.
18536
18537 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
18538
18539         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
18540         to byteswap arrays of enum values, too (bug #72080).
18541
18542 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
18543
18544         * appdomain.c (set_domain_search_path): Allow this to be called if
18545         domain->setup is not yet set.
18546
18547         * loader.c (mono_method_get_index): New helper function.
18548
18549         * loader.c reflection.c: Use mono_method_get_index ().
18550
18551         * class.c (mono_class_get_method_from_name_flags): New helper method.
18552
18553         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
18554         this.
18555
18556         * class.c (mono_class_get_cctor): New helper method.
18557
18558         * string-icalls.c object.c class.c marshal.c reflection.c: Use
18559         mono_class_get_method () to look up methods.
18560
18561 2005-02-01  Miguel de Icaza  <miguel@novell.com>
18562
18563         * console-io.c: Fix the build, this should work on Windows.
18564
18565 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
18566
18567         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
18568         be set to null to keep things valid
18569
18570 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18571
18572         * icall.c: added Console 2.0 icalls.
18573         * Makefile.am: added console-io.[ch]
18574         * console-io.[ch]: internal calls for Console 2.0 API.
18575
18576 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
18577
18578         * class.c: make sure we consider all the interfaces
18579         when calculating max_interface_id (bug found by
18580         Jeroen Frijters running ikvm).
18581
18582 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
18583
18584         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
18585         valuetype fields to null.
18586
18587         * object.c (set_value): Ditto. Fixes #71669.    
18588
18589 2005-01-31  Martin Baulig  <martin@ximian.com>
18590
18591         * metadata.c (mono_metadata_has_generic_params): New public
18592         function; checks whether something is a generic method.
18593
18594 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
18595
18596         * appdomain.c: fix infinite recursion when adding assemblies.
18597
18598 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
18599
18600         * object.c: Fix small typo to return all items for Environment.
18601         GetCommandLineArgs.
18602
18603 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
18604
18605         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
18606         reflection.c: more domain and assembly-unload related fixes
18607         and memory leaks plugs.
18608
18609 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
18610
18611         * 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.
18612
18613 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
18614
18615         * loader.c (mono_method_signature): Make this method lazy
18616         (mono_get_method_from_token): Don't computate the signature here.
18617
18618         Doing this saves quite a bit of memory. I got 90 kb on starting up
18619         monodoc. It should also save some disk reads on startup.
18620
18621         * *: MonoMethod->signature might be NULL now. You *MUST* use
18622         mono_method_signature.
18623
18624 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
18625
18626         * object.c (mono_runtime_get_main_args): Return an array from the
18627         current domain here. Fixes #71938.
18628
18629 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
18630
18631         * monitor.c: formatting changes to comply with the
18632         mono coding style and remove #ifdefs from the code.
18633
18634 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
18635
18636         * metadata.c, private.h: remove some unneeded data
18637         and use a more compact representation for table schemas.
18638
18639 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
18640
18641         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
18642         to get a better distribution in hash tables.
18643         * *.c: use mono_aligned_addr_hash() where appropriate.
18644         * assembly.c: make var static.
18645
18646 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
18647
18648         * domain-internals.h: Put MonoJitInfo on a diet.
18649
18650         * domain.c: Fix a warning.
18651
18652 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
18653
18654         * gc.c: rework the gc handles code to reuse handles
18655         when freed.
18656
18657 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
18658
18659         * domain.c: fixed long standing bug in mono_string_equal() which
18660         was brought to light with the ldstr changes.
18661
18662 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
18663
18664         * reflection.c: Remove warning by adding missing include for marshal.h
18665
18666 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
18667
18668         * domain.c, object.c: change the ldstr_table to hold
18669         MonoString* as keys: makes the runtime isinterned lookup
18670         faster and simplifies memory management.
18671
18672 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
18673  
18674         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
18675         possible to add imperative security checks before calling the icall.
18676         * reflection.c: Return security attributes on the original MonoMethod
18677         (and not the wrapped one). This fix permissions on icalls.
18678
18679 2005-01-25  Dick Porter  <dick@ximian.com>
18680
18681         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
18682         the check for mktime() support actually test the mktime() return
18683         value.  "Fixes" bug 71682, though the output is still different to
18684         MS.
18685
18686 2005-01-25  Martin Baulig  <martin@ximian.com>
18687
18688         * class.c (mono_class_is_assignable_from): Make this work for
18689         generic instances.
18690
18691 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
18692
18693         * marshal.c (mono_string_utf8_to_builder)
18694         (mono_string_builder_to_utf16): We might not have ownership of the
18695         string. In thise case, we need to create a new buffer.
18696
18697         * object-internals.h (mono_stringbuilder_capacity): sb->str might
18698         be null, in which case, use the default capacity.
18699
18700 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
18701
18702         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
18703         GC events to the profiler.
18704
18705 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
18706
18707         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
18708         if you don't want the GC to run.
18709
18710 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
18711
18712         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
18713         start providing a GC API and keeping different implementations in
18714         their own file.
18715         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
18716
18717 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
18718
18719         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
18720         mmap rather than allocating a huge buffer.
18721         (mono_debug_close_mono_symbol_file): Free the buffer allocated
18722         above.
18723
18724 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
18725
18726         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
18727         and CheckExecutionRights.
18728         * reflection.c|h: Keep the index of the declarative security to be 
18729         used, instead of the pointer, when AOT compiler is used. Also add 
18730         class initialization when requesting demands.
18731         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
18732         CheckExecutionRights. Both properties are now FALSE by default, and
18733         unmodifiable, unless the --security option is used.
18734
18735 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
18736
18737         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
18738         reflection.c: properly refcount images and assemblies, many leaks fixed.
18739
18740 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18741
18742         * threadpool.c: increase the timeout for threads in the thread pool to
18743         10s.  Fixes bug #67159.
18744
18745 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
18746
18747         * class-internals.h: Sun's compiler insists on explicit
18748         signed on bit fields to handle then correctly.
18749
18750 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
18751
18752         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
18753         Make the size of the array fit only the number of invalid path
18754         chars that we have.
18755
18756         * class.c (_mono_class_get): Improve the error reporting when a
18757         class referenced is not found, to assist debugging. 
18758
18759 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
18760
18761         * threads.c: fix off-by-one error.
18762         * domain.c: free data allocated in the domain.
18763
18764 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
18765
18766         * reflection.c (mono_method_body_get_object): Fill out exception info
18767         as well.
18768
18769         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
18770         structure.
18771         
18772 2005-01-19  Martin Baulig  <martin@ximian.com>
18773
18774         * loader.c (mono_get_method_constrained): Make this work again.
18775
18776 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
18777
18778         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
18779         guint16 to match the managed side.
18780
18781         * reflection.c (mono_reflection_body_get_object): Fill out local
18782         variables array.
18783
18784         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
18785         as well.
18786
18787         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
18788         'local_var_sig_token'.
18789
18790 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
18791
18792         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
18793         System.Drawing.
18794
18795         * reflection.c (mono_method_body_get_object): Handle abstract and
18796         runtime methods.
18797
18798 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
18799
18800         * marshal.c, loader.c, class-internals.h, reflection.c:
18801         store the emthod data for a wrapper in an array instead of a list.
18802
18803 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
18804
18805         * marshal.c: change the code to allocate memory more
18806         conservatively for method wrappers.
18807
18808 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
18809
18810         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
18811         fields from MonoClass to the marshal info structure where they belong.
18812
18813 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
18814
18815         * class.c, object.c, class-internals.h, marshal.c: rearrange
18816         some fields and tweak some types to lower memory usage.
18817
18818 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
18819
18820         * threads.c (signal_thread_state_change): Handle the case when the
18821         target thread is the current thread.
18822
18823         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
18824
18825         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
18826         emit_ptr_to_object_conv. 
18827
18828         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
18829         marshalling. Fixes #71352.
18830
18831 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
18832
18833         * metadata.h, blob.h: move table enum to blob.h so it can be included
18834         in any header.
18835         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
18836         cut the size of MonoImage/MonoDynamicImage.
18837
18838 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
18839
18840         * profiler.c (mono_profiler_install_simple): Fix default arguments.
18841
18842 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
18843
18844         * reflection.c, reflection.h, icall.c: add a function to check
18845         if an attribute type is defined for a metadata object.
18846
18847 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
18848
18849         * object-internals.h: Added some needed fields from StringBuilder class.
18850         * marshal.c: Set the maxCapacity when creating a StringBuilder.
18851
18852 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
18853
18854         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
18855         threads before shutting down the runtime.
18856
18857         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
18858
18859 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
18860
18861         * object-internal.h, threads.c: implement stacksize and 
18862         parameterized thread start functionality (requires
18863         matching corlib). Marked broken code for later removal.
18864
18865 2005-01-12  Martin Baulig  <martin@ximian.com>
18866
18867         * class-internals.h (MonoGenericClass): Moved the `initialized'
18868         flag to MonoDynamicGenericClass, removed `init_pending'.
18869         (MonoGenericInst): Added `is_reference' flag.
18870
18871 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
18872
18873         * reflection.c (mono_image_create_pefile): Only set the pe_offset
18874         inside the MSDOS header. Fixes #71201.
18875
18876         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
18877         gc thread.
18878         (mono_domain_finalize): Ditto.
18879
18880 2005-01-12  Martin Baulig  <martin@ximian.com>
18881
18882         * class.c (mono_get_shared_generic_class): Use the cache for
18883         non-dynamic generic classes.
18884
18885         * class-internals.h (mono_class_create_generic_2): Removed
18886         function prototype, this function is now static inside class.c.
18887
18888         * class.c (mono_class_create_generic_2): Made this static, only
18889         call it from mono_class_init() and mono_class_setup_parent().
18890         (collect_implemented_interfaces_aux): Call mono_class_init() on
18891         the interfaces we collect.
18892         (mono_class_setup_vtable): Call mono_class_init (class->parent).
18893
18894 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
18895
18896         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
18897         it a real thread handle.
18898
18899         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
18900         MonoJitExceptionInfo, since each catch clause needs its own variable.
18901         
18902 2005-01-11  Dick Porter  <dick@ximian.com>
18903
18904         * image.c (mono_pe_file_open): New variant on mono_image_open()
18905         that does not set up the CLI metadata; used for FileVersionInfo so
18906         it can get the data for windows binaries too.
18907         
18908         * process.c (process_read_string_block): Don't read off the end of
18909         the StringTable block.
18910
18911         These both fix bug 70766.
18912
18913 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
18914
18915         * gc.c: set some fields to NULL at GC cleanup time.
18916         * threads.c: if we quit the main thread, call exit ().
18917
18918 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
18919
18920         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
18921
18922 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
18923
18924         * threads.h, threads.c, object.c: added accessor and settor for
18925         main_thread. Handle it specially when exiting from it: wait
18926         for other foreground threads to exit.
18927
18928 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
18929
18930         * process.c, verify.c: remove some bloat.
18931
18932 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
18933
18934         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
18935         the calling convention to cdecl under win32.
18936
18937 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
18938
18939         * object.c (mono_object_get_size): New function to get the size of
18940         an object instance.
18941
18942         * profiler.c (simple_allocation): Use above.
18943
18944 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
18945
18946         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
18947         ves_icall_System_AppDomain_getRootDomain (as it's not required to
18948         get an appdomain by it's id and we can't assume the root's id is 0).
18949         * domain-internals.h: Change the function prototype to match.
18950         * icall.c: Change the icall table for AppDomain.
18951
18952 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
18953
18954         * locales.c (string_invariant_compare_char): Only compute
18955         GUnicodeTypes in the case where we need them.  Test for ordinality
18956         first and return if so.
18957
18958         From the commit:
18959
18960                 /*
18961                  * FIXME: here we must use the information from c1type and c2type
18962                  * to find out the proper collation, even on the InvariantCulture, the
18963                  * sorting is not done by computing the unicode values, but their
18964                  * actual sort order.
18965                  */
18966
18967 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
18968
18969         * loader.c: for P/Invoke methods, allow the "Internal" shared
18970         library name to refer to the calling process symbol namespace.
18971
18972 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
18973
18974         * Makefile.am: Add the security manager to the build.
18975         * security-manager.c|h: New. Initialization of the security manager.
18976
18977 2005-01-07  Dick Porter  <dick@ximian.com>
18978
18979         * threads.c: 
18980         * monitor.c: Update thread state during Monitor and WaitHandle
18981         waits.  Fixes bug 71031.
18982
18983 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
18984
18985         * reflection.c (property_encode_signature): Correctly handle when the
18986         property has no methods.
18987
18988 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
18989
18990         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
18991         
18992         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
18993         fields from mb, not rmb. Fixes #71017.
18994
18995         * marshal.c (emit_ptr_to_str_conv): Add support for 
18996         ByValTStr -> string conversion. Fixes #71015.
18997
18998         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
18999
19000         * mempool.c (mono_mempool_contains_addr): New helper function.
19001
19002 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
19003
19004         * metadata.c (mono_metadata_compute_size): Fix size calculation of
19005         HasSematics encoded fields.
19006         
19007         * metadata.c (mono_type_to_unmanaged): Improve error message for 
19008         invalid string marshalling.
19009
19010         * metadata.c: Fix warnings.
19011         
19012 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
19013
19014         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
19015         profiler support.
19016
19017 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
19018
19019         * domain.c object.c domain-internals.h: Revert part of r38077 since the
19020         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
19021         tests.
19022
19023 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
19024
19025         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
19026         so methods containing these can be AOTed.
19027
19028 2005-01-03  Martin Baulig  <martin@ximian.com>
19029
19030         * loader.c (find_method): Removed the hack for generic instances.
19031         (method_from_memberref): If our parent is a generic instance, pass
19032         its generic type definition to find_method() and then inflate the
19033         method.
19034         (mono_get_method_constrained): Pass the generic type definition to
19035         find_method() and inflate the method later.
19036
19037         * class-internals.h (MonoStats): Added `generic_class_count'.
19038
19039         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
19040         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
19041
19042         * reflection.c (mono_custom_attrs_from_params): Don't ignore
19043         generic type definitions.
19044
19045 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
19046
19047         * loader.c icall.c: Fix warnings.
19048
19049 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
19050
19051         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
19052         blittable types. Fixes #70864.
19053
19054 2004-12-29  Martin Baulig  <martin@ximian.com>
19055
19056         * icall.c
19057         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
19058
19059         * reflection.c (mono_method_get_object): Create a
19060         "System.Reflection.MonoGenericMethod" for inflated methods; don't
19061         call mono_get_inflated_method().
19062
19063         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
19064
19065 2004-12-27  Martin Baulig  <martin@ximian.com>
19066
19067         * class-internals.h (MonoMethod): Added `is_inflated' flag.
19068         (MonoMethodInflated): Added `inflated' field.
19069
19070         * class.c (mono_class_inflate_generic_method): Don't really
19071         inflate the method here; just set the `is_inflated' flag in the
19072         MonoMethod.
19073         (mono_class_get_inflated_method): Actually inflate the method here
19074         if it's not already inflated; we use the MonoMethodInflated's new
19075         `inflated' field as a cache.
19076
19077 2004-12-26  Martin Baulig  <martin@ximian.com>
19078
19079         * class.c
19080         (inflate_generic_class): Moved some code out of inflate_generic_type().
19081         (mono_class_inflate_generic_method): If we're already inflated,
19082         inflate the context and use the declaring method; ie. make sure
19083         the declaring method of an inflated method is always the generic
19084         method definition.
19085         (mono_class_create_from_typedef): Create
19086         `class->generic_container->context->gclass'.
19087
19088 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
19089
19090         * metadata-internals.h, marshal.c, reflection.c: More
19091         MonoGHashTable->GHashTable.
19092
19093         * domain-internals.h, class.c: Change MonoGHashTable's into
19094         GHashTables for some cases where no gc stuff is used
19095
19096         All users: update apis
19097
19098 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
19099
19100         * metadata.c (builtin_types): Make this `const'. Makes this get
19101         put into the shareable section.
19102         (mono_metadata_init): Casts to make gcc happy.
19103
19104 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
19105
19106         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
19107
19108 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
19109
19110         * icall.c: Added an internal call to retrieve the position and length
19111         of assembly-level declarative security attributes (RequestMinimum, 
19112         RequestOptional and RequestRefuse). This is used by the Assembly class
19113         to re-create the corresponding permission sets.
19114
19115 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
19116
19117         * marshal.c: fix the stelemref wrapper to be type correct
19118         (and faster).
19119
19120 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
19121
19122         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
19123         to do key & 0x7fffffff. Hashtable already does this. It just
19124         results in longer code.
19125
19126 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
19127
19128         * appdomain.c: Bump corlib version.
19129         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
19130         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
19131         * reflection.c|h: Add functions to get declarative security infos
19132         (blob position and length) for assemblies, classes and methods.
19133
19134 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
19135
19136         * reflection.c: sort the constant table (bug #70693).
19137
19138 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
19139
19140         * object-internals.h, threads.c, domain.c: add accessors for
19141         the MonoThread and MonoDomain tls keys.
19142
19143 2004-12-18  Martin Baulig  <martin@ximian.com>
19144
19145         * class.c (inflate_generic_type): If we're inflating a generic
19146         instance, set `ngclass->context->container = context->container';
19147         ie. the container we inflated into.
19148
19149         * metadata.c (mono_metadata_parse_generic_param): Reflect above
19150         inflate_generic_type() changes.
19151
19152 2004-12-17  Martin Baulig  <martin@ximian.com>
19153
19154         * class-internals.h
19155         (MonoGenericClass): Replaced `MonoType *generic_type' with
19156         `MonoClass *generic_class'.  Removed `dynamic_info'; if
19157         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
19158         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
19159
19160 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
19161
19162         * exception.c (mono_exception_from_token): New helper function.
19163
19164 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
19165
19166         * assembly.c (mono_assembly_load_with_partial_name): Call 
19167         mono_assembly_loaded before invoking the preload hooks. Fixes
19168         #70564.
19169
19170         * object-internals.h (MonoThread): Change culture_info and 
19171         ui_culture_info into an array.
19172
19173         * threads.c: Cache culture info objects from more than one appdomain.
19174
19175         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
19176         current UI culture.
19177
19178 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
19179
19180         * threads.h threads.c appdomain.c: Clear the culture_info field of
19181         all threads during unloading if they point to an object in the dying
19182         appdomain.
19183
19184 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
19185
19186         * culture-info.h (TextInfoEntry): New struct
19187         * object-internals.h: sync with managed
19188         * locales.c: fill the `text_info_data' field
19189         * culture-info-tables.h: update
19190
19191 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
19192
19193         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
19194         collector.
19195
19196 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
19197
19198         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
19199         (ves_icall_ModuleBuilder_getMethodToken): Ditto
19200
19201 2004-12-12  Martin Baulig  <martin@ximian.com>
19202
19203         * mono-debug-debugger.c (write_type): If we're an enum and the
19204         builtin types have already been initialized, call mono_class_init().
19205
19206 2004-12-11  Martin Baulig  <martin@ximian.com>
19207
19208         * metadata.c (mono_metadata_load_generic_params): Added
19209         `MonoGenericContainer *parent_container' argument; automatically
19210         compute `container->is_method'; pass the correct owner to
19211         get_constraints().      
19212
19213         * reflection.c (compare_genericparam): Sort the GenericParam table
19214         according to increasing owners. 
19215
19216 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
19217
19218         * profiler.c: allow disabling the default profiler.
19219
19220 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
19221
19222         * decimal.c, icall.c: allow disabling System.Decimal support.
19223
19224 2004-12-09  Marek Safar <marek.safar@seznam.cz>
19225
19226         * reflection.c: Add support for null attribute arguments.
19227
19228 2004-12-09  Martin Baulig  <martin@ximian.com>
19229
19230         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
19231         names to get rid of compiler warnings.
19232
19233 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
19234
19235         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
19236         mono_marshal_load_type_info (). Fixes #69625.
19237         (mono_marshal_get_ptr_to_struct): Likewise.
19238
19239 2004-12-08  Martin Baulig  <martin@ximian.com>
19240
19241         * mono-debug.h: Bumped version number to 47.
19242
19243         * mono-debug-debugger.c
19244         (mono_debugger_event_handler, mono_debugger_event): Take two
19245         guint64 arguments insteed of a gpointer and a guint32.  
19246
19247 2004-12-08  Martin Baulig  <martin@ximian.com>
19248
19249         * debug-mono-symfile.h
19250         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
19251         `address' to `native_offset'.
19252
19253 2004-12-08  Martin Baulig  <martin@ximian.com>
19254
19255         * class.c (mono_class_create_from_typespec): Only inflate if we
19256         either have `context->gclass' or `context->gmethod'.
19257
19258 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
19259
19260         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
19261
19262         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
19263
19264         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
19265
19266         * reflection.c (mono_assembly_get_object): Remove the workaround put
19267         in for the release.
19268         
19269         * appdomain.c: Use the corlib_internal field from MonoAssembly.
19270
19271         * appdomain.c: Bump corlib version.
19272
19273         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
19274         be visible in other appdomains.
19275
19276 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
19277
19278         * threads.c: Interlocked inc and dec for longs were messed up,
19279         use a KISS based impl for this. Fixes 70234
19280
19281 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
19282
19283         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
19284
19285 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
19286
19287         * icall.c: fix to follow policy not to allow struct
19288         arguments in icalls.
19289
19290 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19291
19292         * process.c: make the patch that handles spaces in file paths work
19293         on mono/windows too.
19294
19295 2004-12-06  Martin Baulig  <martin@ximian.com>
19296
19297         * class.c (mono_class_create_generic): Call
19298         mono_class_setup_supertypes() if we're dynamic.
19299         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
19300
19301 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
19302
19303         * object-internals.h: Add new fields to MonoThread.
19304
19305         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
19306
19307         * icall.c threads-types.h threads.c: Add new icalls.
19308
19309         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
19310
19311         * object-internals.h (MonoReflectionAssembly): Sync object layout with
19312         managed side.
19313
19314         * appdomain.c: Bump corlib version.
19315
19316         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
19317         internal assemblies. Fixes #69181.
19318
19319 2004-12-05  Martin Baulig  <martin@ximian.com>
19320
19321         * class.c (mono_class_inflate_generic_signature): Make this a
19322         no-op if `context' is NULL or we don't have any type parameters;
19323         also copy `sentinelpos'.        
19324
19325 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
19326
19327         * image.c: Add unbox_wrapper_cache.
19328
19329         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
19330
19331         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
19332         function generator.
19333         
19334         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
19335         Fixes #70173.
19336
19337         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
19338         
19339 2004-12-04  Martin Baulig  <martin@ximian.com>
19340
19341         * loader.c (mono_method_get_signature_full): New public function;
19342         like mono_method_get_signature(), but with an additional
19343         `MonoGenericContext *' argument.
19344
19345         * class.c (mono_class_inflate_generic_signature): Formerly known
19346         as inflate_generic_signature(); make this public.
19347
19348 2004-12-04  Martin Baulig  <martin@ximian.com>
19349
19350         * metadata.c
19351         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
19352         instead of a `MonoGenericContainer *'.  
19353         (mono_metadata_parse_array_full): Likewise.
19354         (mono_metadata_parse_signature_full): Likewise.
19355         (mono_metadata_parse_method_signature_full): Likewise.
19356         (mono_metadata_parse_generic_inst): Likewise.
19357         (mono_metadata_parse_generic_param): Likewise.
19358         (mono_metadata_parse_mh_full): Likewise.
19359         (mono_type_create_from_typespec_full): Likewise.
19360
19361 2004-12-03  Martin Baulig  <martin@ximian.com>
19362
19363         * class-internals.h (MonoGenericContainer): Replaced the
19364         `MonoGenericContext * pointer with a `MonoGenericContext'
19365         structure and made it the first element.
19366
19367 2004-12-03  Martin Baulig  <martin@ximian.com>
19368
19369         * class.c
19370         (inflate_generic_type): Set the `context->container' when creating
19371         a new MonoGenericContext.
19372         (mono_class_inflate_generic_method): Likewise.
19373         (mono_class_create_from_typespec): Just use `context->container'
19374         to get the container.
19375
19376         * loader.c (method_from_methodspec): Set `context->parent' from
19377         `context->container' - and if that's a method container, use its
19378         parent.  Also set the `context->container' when creating a new
19379         MonoGenericContext.
19380         (mono_get_method_from_token): Use just `context->container' to get
19381         the container.
19382
19383         * metadata.c (do_mono_metadata_parse_generic_class): Also set
19384         `gclass->context->container'.
19385
19386         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
19387         the `context->container' when creating a new MonoGenericContext.
19388
19389 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
19390
19391         * reflection.c (compare_genericparam): Sort params with identical
19392         owner by their number. Fixes gen-111 on sparc.
19393
19394 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
19395
19396         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
19397         around the domain changes.
19398
19399         * appdomain.c (mono_domain_unload): Handle the case when the thread
19400         calling Unload is itself being aborted during unloading. Fixes #70022.
19401
19402         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
19403
19404         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
19405         checkpoint_func as an icall so it gets a wrapper.
19406         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
19407         in the cross-appdomain wrappers too.
19408
19409         * threads.c (mono_thread_has_appdomain_ref): Make this public.
19410
19411         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
19412
19413         * reflection.c: Fix some memory leaks.
19414         
19415 2004-12-02  Martin Baulig  <martin@ximian.com>
19416
19417         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
19418
19419         * metadata.c (generic_class_cache): New static hashtable.
19420         (mono_metadata_lookup_generic_class): New public method.
19421
19422 2004-12-02  Martin Baulig  <martin@ximian.com>
19423
19424         * class.c (mono_class_create_from_typedef): Call
19425         mono_class_setup_parent() and mono_class_create_mono_type() before
19426         parsing the interfaces.
19427
19428 2004-12-02  Martin Baulig  <martin@ximian.com>
19429
19430         * metadata.c (generic_inst_cache): New static hashtable.
19431         (mono_metadata_lookup_generic_inst): New public function.
19432         (mono_metadata_inflate_generic_inst): New public function.
19433         (mono_metadata_parse_generic_inst): New public function.
19434         (do_mono_metadata_parse_generic_class): Use the new
19435         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
19436         since this'll also use the cache.
19437
19438         * reflection.c (mono_reflection_bind_generic_method_parameters):
19439         Use mono_metadata_lookup_generic_inst() to use the new cache.
19440
19441         * class.c (inflate_mono_type): Use
19442         mono_metadata_inflate_generic_inst() to inflate a generic
19443         instance; this'll also use the new cache.
19444
19445         * loader.c (method_from_methodspec): Use
19446         mono_metadata_parse_generic_inst() and
19447         mono_metadata_inflate_generic_inst() rather than parsing it
19448         manually, so we can use the new cache.
19449
19450 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
19451
19452         * threads.c (wait_for_tids): Do not incorrectly free threads when 
19453         the wait times out.
19454
19455 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
19456
19457         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
19458         iter->args based on whether parameters are passed in registers (i.e.
19459         MONO_ARCH_REGPARMS is defined)
19460
19461 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
19462
19463         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
19464         the exception message. Fixes #70070.
19465         (method_from_methodspec): Fix warnings.
19466
19467 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19468
19469         * process.c: (complete_path) return the path quoted
19470
19471 2004-12-01  Martin Baulig  <martin@ximian.com>
19472
19473         * class-internals.h (MonoGenericInst): New structure.
19474         (MonoGenericClass): Replaced `type_argc', `type_argv' and
19475         `is_open' with `MonoGenericInst *inst'.
19476         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
19477         `is_open' with `MonoGenericInst *inst'.
19478
19479 2004-11-30  Martin Baulig  <martin@ximian.com>
19480
19481         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
19482
19483         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
19484         to `generic_class_cache'.
19485
19486         * metadata.c
19487         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
19488         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
19489         (mono_generic_inst_is_valuetype): Renamed to
19490         mono_generic_class_is_valuetype().
19491
19492         * class-internals.h
19493         (MonoGenericInst): Renamed to MonoGenericClass.
19494         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
19495         (MonoClass): Renamed `generic_inst' to `generic_class'.
19496         (MonoGenericContext): Renamed `ginst' to `gclass'.
19497
19498         * object-internals.h
19499         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
19500
19501         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
19502         mono_reflection_generic_class_initialize().
19503
19504         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
19505         now known as "System.Reflection.MonoGenericClass".
19506         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
19507
19508 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
19509
19510         * class-internals.h: Added a flag field to MonoClass to cache the
19511         declarative security attributes actions associated with the class.
19512         * domain-internals.h: Added booleans to MonoJitInfo to cache the
19513         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
19514         applicable to the JITted method.
19515         * reflection.c|h: Added functions to extract (as flags) which security
19516         actions are available (declaratively) for a method, class or assembly.
19517         * metadata.c|h: Added functions to search the declarative security
19518         table in the metadata.
19519         
19520 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
19521
19522         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
19523         EXPORTEDTYPES are already in the class name cache, so there is no
19524         need to add extra code here to look at them. Just removes a bit of
19525         cruft.
19526
19527         (ves_icall_System_Environment_get_TickCount): No need for #if
19528         WINDOWS. We already have the code in io-layer.
19529
19530 2004-11-28  Martin Baulig  <martin@ximian.com>
19531
19532         * loader.c
19533         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
19534         Fixes gen-112.cs.
19535
19536 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
19537
19538         * assembly.c (do_mono_assembly_open): Instead of having a
19539         conditional WITH_BUNDLE, incorporate support for bundles here, by
19540         having a global `bundles' variable holding a pointer to the actual
19541         bundles. 
19542
19543         (mono_register_bundled_assemblies): New API call used by the
19544         bundle code. 
19545
19546         See mkbundle.1 for details.
19547         
19548 2004-11-27  Martin Baulig  <martin@ximian.com>
19549
19550         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
19551         the vtable for generic methods.
19552
19553 2004-11-26  Martin Baulig  <martin@ximian.com>
19554
19555         * metadata.c
19556         (mono_metadata_generic_method_hash): New public function.
19557         (mono_metadata_generic_method_equal): Likewise.
19558
19559         * class-internals.h
19560         (MonoGenericContainer): Added `GHashTable *method_hash'.
19561
19562         * reflection.c (ReflectionMethodBuilder): Added
19563         `MonoGenericContainer *generic_container'.
19564         (reflection_methodbuilder_to_mono_method): Don't create a new
19565         MonoGenericContainer each time we're called.
19566         (mono_reflection_bind_generic_method_parameters): Use
19567         `container->method_hash' to cache the results so we don't create a
19568         different method if we're called several times with the same
19569         arguments.
19570
19571         * loader.c (method_from_methodspec): Use the new
19572         `container->method_hash' here, too.
19573
19574 2004-11-26  Martin Baulig  <martin@ximian.com>
19575
19576         * class.c (inflate_generic_signature): Correctly compute
19577         `res->has_type_parameters'.
19578         (mono_class_vtable): Use the `has_type_parameters' flag to
19579         determine whether we're a generic method.
19580
19581         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
19582
19583 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
19584
19585         * object.c (mono_runtime_run_main): Fix a small memory leak.
19586
19587 2004-11-25  Martin Baulig  <martin@ximian.com>
19588
19589         * class.c (set_generic_param_owner): Fixed the loop.
19590
19591 2004-11-25  Martin Baulig  <martin@ximian.com>
19592
19593         * object.c (mono_class_vtable): Don't create any JIT wrappers for
19594         generic methods.
19595
19596 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
19597
19598         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
19599         names. Fixes #69787.
19600
19601 2004-11-24  Martin Baulig  <martin@ximian.com>
19602
19603         * class.c (mono_class_create_generic_2): If we don't have a
19604         `ginst->parent', inflate `gklass->parent' to get our parent.
19605
19606 2004-11-24  Martin Baulig  <martin@ximian.com>
19607
19608         * reflection.c (compare_genericparam): Correctly sort the
19609         GenericParam table; fixes #69779.
19610
19611 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
19612
19613         * reflection.c: When writing a PE file, don't create a huge
19614         buffer in memory. Just write the arrays we have to the file.
19615         This reduces memory usage.
19616
19617         * metadata-internals.h: MonoDynamicStream pefile is no longer used
19618         globally.
19619
19620 2004-11-17  Martin Baulig  <martin@ximian.com>
19621
19622         * class.c (mono_class_init): Don't setup `class->parent' for
19623         dynamic instances; moved this to mono_class_generic_2().
19624         (mono_class_create_generic): Also set `klass->inited' for dynamic
19625         generic instances.
19626         (mono_class_create_generic_2): Don't do anything for dynamic
19627         generic instances.  Set `klass->parent' here and also call
19628         mono_class_setup_parent() here. 
19629
19630         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
19631         `MonoType *parent' argument; set `ginst->parent' before calling
19632         mono_class_create_generic_2(), so we set the correct parent.
19633
19634 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
19635
19636         * reflection.c: allow getting attributes from ModuleBuilder
19637         (used by ikvm).
19638
19639 2004-11-17  Martin Baulig  <martin@ximian.com>
19640
19641         * class.c (mono_class_create_from_typedef): If a type parameter is
19642         inherited from an outer class, set its owner to that class.
19643
19644 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
19645
19646         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
19647           for (int*) written size. This fixes bug #69592.
19648
19649 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
19650
19651         * icall.c: Added IsAuthenticodePresnet internal call.
19652         * image.c|h: New function that check a MonoImage for an Authenticode
19653         signature in the certificate PE data directory.
19654         * security.c|h: New internal call to ask the runtime if an 
19655         Authenticode signature seems referenced in the PE header.
19656
19657 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
19658
19659         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
19660
19661         * reflection.c (mono_image_create_pefile): Free the assembly streams
19662         after writing out the assembly file.
19663
19664         * object.c (mono_runtime_run_main): Fix small memory leak.
19665
19666         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
19667         property access modifiers. Fixes #69389.
19668
19669 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
19670
19671         * domain.c, object.c, object-internals.h, domain-internals.h,
19672         object.h, marshal.c: keep dynamic code info per domain.
19673
19674 2004-11-15  Martin Baulig  <martin@ximian.com>
19675
19676         * class.c (mono_type_get_name_recurse): Put type arguments in
19677         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
19678         see bug #68387.
19679
19680 2004-11-15  Martin Baulig  <martin@ximian.com>
19681
19682         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
19683         (mono_class_setup_vtable): When computing `the_cname' for a
19684         generic instance, don't include the namespace since we'd otherwise
19685         add it twice.
19686
19687 2004-11-15  Martin Baulig  <martin@ximian.com>
19688
19689         * class.c (mono_class_create_generic): Changed return type to void.
19690         (mono_class_create_generic_2): New public function; setup
19691         `class->method', `class->field' and `class->interfaces' here
19692         instead of in mono_class_init().
19693
19694         * class.h (mono_class_create_generic): Moved to class-internals.h.
19695
19696 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
19697
19698         * reflection.c (mono_image_create_pefile): take a file HANDLE.
19699         rather than writing to memory, write to this file. Right now,
19700         we are just writting into a buffer, and copying that. However
19701         we can avoid the buffer later.
19702
19703         (mono_dynamic_stream_reset): new function
19704
19705         * icall.c, object-internals.h: update for the above.
19706
19707 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
19708
19709         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
19710         have been using gc'd memory. First it is slower, unlikely
19711         the comment in the source code said, secondly, it increases
19712         our footprint to do it in the gc.
19713
19714         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
19715         the method so that it does not have to copy to managed code.
19716
19717 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
19718
19719         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
19720
19721 2004-11-12  Martin Baulig  <martin@localhost>
19722
19723         * reflection.c (mono_image_create_token): Allow generic method
19724         definitions here, since they may appear in an `.override'; see
19725         gen-98/gen-99 for an example.
19726
19727 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
19728
19729         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
19730         #69365.
19731
19732         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
19733         descriptive.
19734
19735 2004-11-11  Martin Baulig  <martin@ximian.com>
19736
19737         * class.c (mono_class_setup_vtable): In an explicit interface
19738         implementation, the method name now includes the arity.
19739
19740 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
19741
19742         * object.c (mono_array_full_copy): Fix warning.
19743
19744 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
19745
19746         * appdomain.c: Removed look_for_method_by_name(). Use the new method
19747         mono_class_get_method_from_name() instead.
19748         
19749         * class-internals.h: Added two new types of wrappers. 
19750         Added MonoRemotingTarget enum. Added new trampoline function type, which
19751         takes an additional MonoRemotingTarget value as parameter, so it is
19752         possible to request a trampoline for a specific target.
19753         
19754         * class.c: Added new mono_class_get_method_from_name() method.
19755         
19756         * class.h: In MonoRemoteClass, we can have now to vtables, one for
19757         general remoting sinks and one specific for cross domain calls.
19758         
19759         * debug-helpers.c: Added new wrapper names.
19760         
19761         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
19762         of a remote class.
19763         
19764         * image.c: Porperly delete value objects form the remoting invoke hashtable.
19765         
19766         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
19767         with several other methods (mono_marshal_get_xappdomain_dispatch,
19768         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
19769         and others) can generate a fast remoting wrapper for cross domain calls.
19770         More information can be found in docs/remoting.
19771         Other changes: Removed mono_find_method_by_name, and used
19772         mono_class_get_method_from_name instead.
19773         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
19774         is stored in the remoting invoke hashtable.
19775         
19776         * marshal.h: published the new method for getting the xdomain wrapper,
19777         and also added a method for getting the adequate wrapper for a given
19778         method and target.
19779         
19780         * object-internals.h, object.c: Added a couple of methods for capying and
19781         cloning arrays.
19782         Modified mono_install_remoting_trampoline, which takes the new remoting
19783         trampoline that has a remoting target as parameter.
19784         mono_class_proxy_vtable now also takes a remoting target as parameter, and
19785         will return the most suitable vtable for the target.
19786         Added mono_remote_class_vtable, which returns the vtable of a remote class
19787         (which can be the normal remoting vtable or the xdomain vtable).
19788         
19789         * threads.c: the xdomain invoke and dispatch wrappers must also be
19790         protected against interruptions.
19791
19792 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19793
19794         * icall.c: use memmove in BlockCopyInternal when the source and
19795         destination arrays are the same.
19796
19797 2004-11-09  Martin Baulig  <martin@ximian.com>
19798
19799         * class-internals.h (MonoGenericContainer): Removed `method' and
19800         `signature', replaced them with `is_method' and `is_signature'
19801         flags.  Added `context'.
19802
19803         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
19804         instead of a `MonoGenericContainer *'.
19805
19806         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
19807         for dynamic type parameters.
19808         (mono_metadata_load_generic_params): Setup `container->context'.
19809
19810         * reflection.c (mono_reflection_setup_generic_class): Setup
19811         `tb->generic_container->context'.
19812         (do_mono_reflection_bind_generic_parameters): Use
19813         mono_class_inflate_generic_type() to correctly inflate types,
19814         rather than using our own hack just for MONO_TYPE_VAR.
19815
19816 2004-11-09  Martin Baulig  <martin@ximian.com>
19817
19818         * class.c (mono_class_inflate_generic_method): Small fix; don't
19819         crash here.
19820
19821         * icall.c
19822         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
19823         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
19824         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
19825         (ves_icall_Type_BindGenericParameters): Likewise.
19826         (ves_icall_Type_get_IsGenericInstance): Likewise.
19827         (ves_icall_Type_GetGenericParameterPosition): Likewise.
19828         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
19829         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
19830         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
19831
19832 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
19833
19834         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
19835         assembly versions and public key tokens. Fixes #69113.
19836
19837 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
19838
19839         * metadata.c: fix bug introduced with the type cache changes
19840         on 2004-11-06.
19841
19842 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
19843
19844         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
19845         the MonoClass pointer instead of the token in exception clauses.
19846         * reflection.c: updates for the above and make the code not depend
19847         on the structure of MonoExceptionClause.
19848
19849 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
19850
19851         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
19852         Add support for dynamic assemblies. Fixes #69114.
19853
19854         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
19855
19856 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
19857
19858         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
19859         since most only those methods use it. the code member of
19860         MonoMethodPInvoke was dead, so that can be removed too. Also,
19861         remove inline_count (again, not used), and move slot so that it
19862         can share bits with some other flags. This saves 8 bytes in the
19863         structure and gives us about 50 kb back for mcs helloworld.cs
19864
19865         * *.[ch]: Do naming changes for the above.
19866
19867         * loader.c (mono_method_get_header): Lazily init the header
19868         on first access.
19869         (mono_get_method_from_token): don't init the header here
19870         (mono_free_method): the header may never be allocated
19871
19872         Overall, this saves 150 kb of unmanaged allocations
19873         for mcs helloworld.cs. That accounts for 10% of the unmanaged
19874         memory at runtime.
19875         
19876         * loader.c, loader.h (mono_method_get_header): new accessor.
19877
19878         * *.[ch]: use the above method. Prepares us to lazily load
19879         the header.
19880
19881         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
19882         three warnings, which are actual bugs (see 69206).
19883
19884         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
19885         unused. Saves a cool 4 bytes / method.
19886
19887 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
19888
19889         * metadata.c (builtin_types): Add types for System.Object here.
19890         (mono_metadata_parse_type_full): Cache MonoType*'s that are
19891         for a class or valuetype from klass->this_arg or klass->byval_arg.
19892
19893         On mcs for a hello world, this gets us down from 21836 MonoType's
19894         to 14560.
19895
19896         (mono_metadata_free_type): Account for the above change.
19897
19898 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
19899
19900         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
19901         exception instead of asserting if name is null.
19902         (ves_icall_System_AppDomain_GetData): Ditto.
19903
19904 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
19905
19906         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
19907         EnumBuilder.
19908
19909         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
19910         Return NULL when the domain does not have entry_assembly set.
19911
19912         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
19913         Add a 'resource_modules' argument.
19914         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
19915
19916         * reflection.c (mono_reflection_create_runtime_class): Move setting
19917         of wastypebuilder here, so mono_get_type_object () returns a MonoType
19918         for enums too.
19919
19920         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
19921         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
19922         Throw an ArgumentNullException if 'ptr' is null.
19923
19924         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
19925         assemblies here. Fixes #69020.
19926
19927 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
19928
19929         * reflection.c (build_compressed_metadata): Fix the previous patch for
19930         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
19931         the stack.
19932
19933 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
19934
19935         * assembly.c (mono_assembly_names_equal): Allow a match if one of
19936         the cultures is false. Fixes #69090.
19937
19938         * reflection.c (build_compressed_metadata): Fix invalid memory read 
19939         detected by valgrind.
19940         
19941         * reflection.c (mono_reflection_get_type): Avoid triggering a 
19942         TypeResolve multiple times for the same type. Fixes #65577.
19943
19944 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
19945
19946         * marshal.c: Avoid using ldftn to call managed functions. It is
19947         much slower than just a call.
19948
19949         * reflection.c (mono_module_get_object): free the basename we
19950         allocate here from glib.
19951         
19952         * reflection.c (ensure_runtime_vtable): make sure to free
19953         overrides.  Also, we were allocating an array of MonoMethod not an
19954         array of MonoMethod*.
19955
19956         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
19957
19958         * image.c (mono_image_close): free image->guid here.
19959
19960 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
19961
19962         * reflection.c: Fix some spec conformance issues with the PE file
19963         structures so mcs compiled apps run on the Net 2.0 beta.
19964
19965 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
19966
19967         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
19968         Implement this. Fixes #67264.
19969
19970         * debug-helpers.h debug-helpers.c marshal.c: Move 
19971         mono_find_method_by_name to debug-helpers.c.
19972
19973 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
19974
19975         * object.c (mono_release_type_locks): type_initialization_hash is
19976         a GHashTable.
19977
19978         * reflection.c object.c object-internals.h: Fix warnings.
19979
19980         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
19981         without accessors. Fixes #61561.
19982
19983         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
19984         application base from the root domain if not set. Fixes #65641.
19985         (mono_runtime_init): Fix warning.
19986
19987 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19988
19989         * appdomain.c: call mono_thread_pool_init.
19990         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
19991         of worker threads based on the number of CPUs and the environment
19992         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
19993         for non-windows (windows) systems.
19994
19995 2004-10-27  Chris Toshok  <toshok@ximian.com>
19996
19997         * mono-debug-debugger.c (write_class): don't call mono_class_init
19998         here, as even with the check for (!klass->init_pending), we get
19999         into a situation where we're hitting cycles in class
20000         initialization.  Fixes #68816.
20001
20002 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
20003
20004         * image.c: Avoid overwriting values in the loaded_images_hash when an
20005         assembly is loaded multiple times. Fixes #61152.
20006
20007         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
20008         so multiple satellite assemblies for the same name can be loaded.
20009         Fixes #68259.
20010
20011         * mono_domain_assembly_preload: Actually return the loaded assembly, 
20012         not NULL.
20013
20014         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
20015         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
20016
20017         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
20018         pending finalizers are not invoked after the appdomain has been 
20019         unloaded. Fixes #67862.
20020
20021 2004-10-22  Martin Baulig  <martin@ximian.com>
20022
20023         * mono-debug-debugger.c
20024         (mono_debugger_runtime_invoke): Don't box valuetypes.
20025
20026 2004-10-22  Chris Toshok  <toshok@ximian.com>
20027
20028         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
20029         don't hide private methods.
20030
20031 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
20032
20033         * icall.c: Allows the runtime to "share" (when known) the public key
20034         token of an assembly. This avoid the need to recalculate the token 
20035         (from the public key) in managed code.
20036
20037 2004-10-21  Chris Toshok  <toshok@ximian.com>
20038
20039         * debug-helpers.c (append_class_name): argh, revert last patch.
20040         
20041 2004-10-21  Chris Toshok  <toshok@ximian.com>
20042
20043         * debug-helpers.c (append_class_name): use '+' as the delimiter,
20044         not '/', so that it matches what the debugger uses to look up
20045         methods.
20046
20047 2004-10-21  Martin Baulig  <martin@ximian.com>
20048
20049         * mono-debug-debugger.c (mono_debugger_throw_exception): New
20050         public method; this is called each time an exception is thrown and
20051         allows the debugger to use exception catch points.
20052
20053 2004-10-21  Martin Baulig  <martin@ximian.com>
20054
20055         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
20056         the stack pointer and the exception object in some struct and pass
20057         that to the debugger.
20058
20059 2004-10-21  Chris Toshok  <toshok@ximian.com>
20060
20061         * mono-debug-debugger.c (do_write_class): add instance/static
20062         event support.  We don't expose "raise" or "other" yet.
20063         (event_is_static): new method.
20064
20065 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
20066
20067         * mono-debug-debugger.c
20068         (mono_debugger_handle_exception): Remove
20069         bogus return value for fussy compilers.
20070
20071 2004-10-20  Martin Baulig  <martin@ximian.com>
20072
20073         * mono-debug-debugger.c
20074         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
20075         (mono_debugger_handled_exception): Likewise.
20076
20077 2004-10-20  Martin Baulig  <martin@ximian.com>
20078
20079         * mono-debug-debugger.h (MonoDebuggerEvent): Added
20080         MONO_DEBUGGER_EVENT_EXCEPTION.
20081
20082         * mono-debug-debugger.c (mono_debugger_handle_exception): New
20083         public function to send the debugger a notification for an
20084         exception and inform it about a catch/finally clause.
20085
20086 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
20087
20088         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
20089         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
20090         fix 2.95 build. 
20091
20092         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
20093
20094 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
20095
20096         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
20097         marshalled as [In,Out]. Fixes #58325.
20098
20099 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
20100
20101         * reflection.c (mono_method_body_get_object): Implement some fields.
20102
20103 2004-10-12  Martin Baulig  <martin@ximian.com>
20104
20105         * reflection.c (mono_reflection_bind_generic_parameters): Small
20106         fix, correctly retrieve our parent from a generic instance.
20107
20108 2004-10-12  Martin Baulig  <martin@ximian.com>
20109
20110         * metadata.c (mono_metadata_generic_param_equal): We always have
20111         an owner.
20112
20113         * class.c
20114         (mono_class_from_generic_parameter): We need to have an owner.
20115         (my_mono_class_from_generic_parameter): Likewise.
20116
20117         * reflection.c (mono_reflection_setup_generic_class): Renamed to
20118         mono_reflection_create_generic_class() and added a new
20119         mono_reflection_setup_generic_class().  
20120         (mono_reflection_initialize_generic_param): If we're a nested
20121         generic type and inherited from the containing class, set our
20122         owner to the outer class.
20123
20124 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
20125
20126         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
20127
20128         * reflection.c (mono_method_body_get_object): New function to create
20129         a MethodBody object.
20130
20131         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
20132
20133 2004-10-11  Martin Baulig  <martin@ximian.com>
20134
20135         * metadata.c (_mono_metadata_type_equal): Renamed to
20136         do_mono_metadata_type_equal() and made static.
20137
20138 2004-10-11  Martin Baulig  <martin@ximian.com>
20139
20140         * appdomain.c: Bump corlib version number to 28.
20141
20142 2004-10-10  Martin Baulig  <martin@ximian.com>
20143
20144         * class-internals.h
20145         (MonoGenericInst): Added `MonoGenericContainer *container'.
20146         (MonoGenericMethod): Likewise.
20147         (MonoGenericContext): Likewise.
20148         (MonoGenericParam): Added `MonoGenericContainer *owner'.
20149
20150         * metadata.c
20151         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
20152         (do_mono_metadata_parse_generic_inst): Likewise.
20153         (mono_metadata_parse_type_full): New public method.  This is the actual
20154         mono_metadata_parse_type() implementation - with an additional
20155         `MonoGenericContainer *' argument.
20156         (mono_metadata_parse_array_full): Likewise.
20157         (mono_metadata_parse_signature_full): Likewise.
20158         (mono_metadata_parse_method_signature_full): Likewise.
20159         (mono_metadata_parse_mh_full): Likewise.
20160         (mono_type_create_from_typespec): Likewise.
20161         (mono_metadata_interfaces_from_typedef_full): New public method;
20162         this is similar to the other _full() methods, but we take a
20163         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
20164         (mono_metadata_parse_generic_param): Take an additional
20165         `MonoGenericContainer *' argument and lookup the MonoGenericParam
20166         from that container.
20167         (mono_metadata_generic_param_equal): New static method to compare
20168         two type parameters.
20169         (_mono_metadata_type_equal): New static method; takes an
20170         additional `gboolean signature_only' argument - if true, we don't
20171         compare the owners of generic parameters.
20172         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
20173         with a TRUE argument - do a signature-only comparision.
20174
20175         * loader.c: Use the new _full() methods and pass the
20176         MonoGenericContainer to them.
20177
20178         * object-internals.h (MonoReflectionTypeBuilder): Added
20179         `MonoGenericContainer *generic_container' field.
20180         (MonoReflectionMethodBuilder): Likewise.
20181
20182 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
20183
20184         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
20185         case initial images of dynamic assemblies.
20186
20187         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
20188
20189         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
20190
20191         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
20192         length of event->other array.
20193         (typebuilder_setup_events): Ditto.
20194
20195         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
20196         'assembly_by_name' and add an 'assemblies' list.
20197
20198         * assembly.h assembly.c: Add a new search hook for determining whenever
20199         an assembly is already loaded. Use this instead of searching in the
20200         loaded_assemblies list.
20201
20202         * domain.c appdomain.c: Implement the new search hook so loaded 
20203         assemblies are now scoped by appdomain. Fixes #67727.
20204
20205 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
20206
20207         * threads.c (mono_thread_attach): Initialize synch_lock field so
20208         mono_thread_detach works again.
20209
20210         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
20211         'lib' too. Fixes #63130.
20212
20213 2004-10-06  Jackson Harper  <jackson@ximian.com>
20214
20215         * culture-info-tables.h: regenerated.
20216
20217 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
20218
20219         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
20220         implemented by other interfaces in the result. Fixes #65764.
20221         
20222         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
20223         Handle unloadable modules without crashing.
20224
20225         * image.c (load_modules): Revert the previous patch since modules must
20226         have a fixed index inside the array.
20227         
20228         * image.c (load_modules): Don't include native modules in the modules
20229         array.
20230
20231 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
20232
20233         * reflection.h: Add param_defaults field.
20234
20235         * reflection.c: Add support for parameter defaults in dynamic methods.
20236         Fixes #64595.
20237
20238         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
20239         an empty string when a type has no namespace. Fixes #64230.
20240
20241 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
20242
20243         * tabledefs.h: Added "internal" security actions to support non-CAS
20244         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
20245         Note: they do not seems to be used anymore in 2.0 (new metadata format)
20246
20247 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
20248
20249         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
20250         constructor of abstract class. Fixes #61689.
20251
20252 2004-10-04  Martin Baulig  <martin@ximian.com>
20253
20254         * class-internals.h (MonoGenericContainer): New type.
20255         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
20256         `MonoGenericContainer *generic_container'.
20257         (MonoClass): Replaced `gen_params' and `num_gen_params' with
20258         `MonoGenericContainer *generic_container'.
20259
20260         * metadata.c (mono_metadata_load_generic_params): Return a
20261         `MonoGenericContainer *' instead of a `MonoGenericParam *';
20262         removed the `num' argument.
20263
20264 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
20265
20266         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
20267         for dynamic images.
20268
20269         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
20270         machine fields.
20271
20272         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
20273
20274         * reflection.c: Save pe_kind and machine values into the generated
20275         image file.
20276
20277         * appdomain.c: Bump corlib version number.
20278
20279         * object-internals.h: Reorganize layout of LocalBuilder.
20280
20281         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
20282         New helper function.
20283
20284         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
20285         created MonoType for dynamic types. Fixes #66180.
20286
20287 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
20288
20289         * threadpool.c: the ares hashtable needs a critical section around it.
20290         this prevents some nasty segfaults
20291
20292 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
20293
20294         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
20295         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
20296         bug 67324).
20297         
20298 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
20299
20300         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
20301         
20302 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
20303
20304         * image.c: Always canonicalize image file names, to avoid loading
20305         the same assembly twice when referenced using a relative path.
20306
20307 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
20308
20309         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
20310
20311         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
20312
20313         * marshal.c: Fix warnings.
20314
20315 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
20316
20317         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
20318         attempting to marshal the delegate_trampoline as the method_addr.
20319         This patch has a static hashtable of marshalled delegates so that 
20320         we can map delegate_trampoline addresses back to delegates.  This
20321         allows a delegate passed to managed code to be passed back into native
20322         code.  Fixes #67039
20323
20324 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
20325
20326         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
20327
20328         * reflection.c (method_encode_code): Align method headers properly.
20329         Fixes #66025.
20330
20331 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
20332
20333         * marshal.c: In the runtime invoke wrapper, reset the abort
20334         exception if it is cached. This avoids the automatic rethrowal of 
20335         the exception after the catch of the wrapper. Also check for pending
20336         interruptions before calling the managed method. This is done using
20337         the new method emit_thread_force_interrupt_checkpoint, since the
20338         normal checkpoint method is ignored when running the invoke wrapper.
20339         * object.c: If the abort exception is rethrown, set the abort_exc
20340         field of the thread, so it will be rethrown aftere every catch.
20341         * threadpool.c: Only run an interruption checkpoint if what has been
20342         requested is a stop of the thread (aborts will be ignored).
20343         * threads.c: By default, a thread will now never be interrumped while
20344         running the runtime invoke wrapper (this ensures that runtime_invoke
20345         will always return to the caller if an exception pointer is provided).
20346         There is a new special method mono_thread_force_interruption_checkpoint()
20347         to force an interruption checkpoint even if running a protected
20348         wrapper, which is used by the same runtime invoke wrapper to do a check
20349         at a safe point.
20350
20351 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
20352
20353         * object.c, object-internals.h: Implemented mono_release_type_locks,
20354         which releases the cctor locks held by a thread.
20355         * threads.c, threads.h: In thread_cleanup, release cctor locks held
20356         by a thread. Added mono_thread_exit() method to be used to safely stop
20357         a thread.
20358
20359 2004-09-28  Raja R Harinath  <rharinath@novell.com>
20360
20361         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
20362         Move null check before dereference.  Avoid indexing beyond the end
20363         of the 'modules' array.
20364
20365 2004-09-28  Raja R Harinath  <rharinath@novell.com>
20366
20367         * metadata-internals.h (MonoImage): Add module_count field.
20368         * image.c (load_modules): Set image->module_count.
20369         (mono_image_load_file_for_image): Use image->module_count.
20370         * reflection.c (mono_image_load_module): Append to image->modules array 
20371         of dynamic assembly.
20372         (mono_module_get_object): Fix loop to actually increment index.
20373         Use image->module_count.
20374         * assembly.c (mono_assembly_load_references): Use image->module_count.
20375         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
20376         Likewise.
20377
20378 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
20379
20380         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
20381         Avoid assert on generic types.
20382
20383 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
20384
20385         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
20386
20387         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
20388
20389         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
20390         function to convert a MarshalSpec structure to its managed counterpart.
20391
20392         * reflection.c: Fix warnings.
20393         
20394         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
20395         field.
20396
20397         * icall.c (mono_create_icall_signature): Fix build.
20398
20399 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
20400
20401         * icall.c: Add MakePointType icall.
20402
20403         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
20404         warnings.
20405
20406 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20407
20408         * threadpool.c: reuse allocated slots in the queue.
20409
20410 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
20411
20412         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
20413
20414         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
20415
20416         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
20417         previous change.
20418
20419         * tabledefs.h: Add constants for pinvoke attributes BestFit and
20420         ThrowOnUnmappableChar.
20421
20422         * icall.c (ves_icall_Type_GetPacking): New icall.
20423
20424 2004-09-24  Martin Baulig  <martin@ximian.com>
20425
20426         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
20427
20428 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20429
20430         * appdomain.c:
20431         (mono_domain_set): allow setting a domain that is being unloaded.
20432         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
20433         being unloaded.
20434
20435 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
20436
20437         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
20438         the GetCustomAttributes icall.
20439
20440 2004-09-23  Martin Baulig  <martin@ximian.com>
20441
20442         * object-internals.h (MonoReflectionGenericParam): Replaced
20443         'has_ctor_constraint', `has_reference_type' and `has_value_type'
20444         with `guint32 attrs'.
20445
20446 2004-09-23  Martin Baulig  <martin@ximian.com>
20447
20448         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
20449
20450 2004-09-23  Martin Baulig  <martin@ximian.com>
20451
20452         * object-internals.h (GenericParameterAttributes): New enum.
20453
20454 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
20455
20456         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
20457         
20458         * class.c (init_events): Fill out event->other field.
20459
20460         * class.c: Fix warnings.
20461
20462         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
20463
20464 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
20465
20466         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
20467         walk which doesn't supply the IL offset.
20468
20469 2004-09-22  Martin Baulig  <martin@ximian.com>
20470
20471         * reflection.c (mono_reflection_setup_internal_class): If we're
20472         System.ValueType, System.Object or System.Enum, set
20473         `klass->instance_size' and create the vtable.
20474         (mono_reflection_create_internal_class): If we're an enum type,
20475         get the base class from our current corlib.
20476
20477 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
20478
20479         * reflection.h (MonoResolveTokenError): New type.
20480
20481         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
20482         icall.
20483
20484         * icall.c: Add an 'error' argument to the ResolveToken icalls.
20485
20486 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
20487
20488         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
20489         Support also calling constructors, but only for already allocated objects.
20490
20491 2004-09-17  Geoff Norton <gnorton@customerdna.com>
20492
20493         * reflection.c (type_get_qualified_name): If the klass is null
20494         return the typename to avoid a NullRefEx.
20495         (encode_cattr_value): Get the qualified name of the boxed type,
20496         not the underlying enumtype.  Fixes #62984.
20497
20498 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
20499
20500         * marshal.c: Fix problems with previous checkin.
20501
20502 2004-09-21    <vargaz@freemail.hu>
20503
20504         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
20505         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
20506
20507         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
20508
20509 2004-09-21  Geoff Norton <gnorton@customerdna.com>
20510
20511         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
20512         should only return a type for pointers, arrays, and passbyref types.
20513         Fixes bug #63841.
20514
20515 2004-09-21  Martin Baulig  <martin@ximian.com>
20516
20517         * domain.c (mono_debugger_check_runtime_version): New public
20518         function.
20519
20520         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
20521
20522 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
20523
20524         * reflection.c: Added missing sort to the declarative security 
20525         attributes table. MS implementation stops seeing the attributes if the
20526         token number regress in the table (as shown by ildasm and permview).
20527
20528 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
20529
20530         * object-internals.h (MonoReflectionModule): Add 'token' field.
20531         
20532         * reflection.c (mono_reflection_get_token): Add support for Module
20533         and Assembly.
20534         (mono_module_get_object): Set 'token' field.
20535         (mono_module_file_get_object): Set 'token' field.
20536
20537         * icall.c: Add new Assembly and Module icalls.
20538
20539         * appdomain.c: Bump corlib version.
20540
20541 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
20542
20543         * loader.h loader.c class.h class.c: Add helper functions for obtaining
20544         tokens of metadata objects.
20545
20546         * reflection.h reflection.c (mono_reflection_get_token): New function
20547         to obtain the token of a metadata object.
20548
20549         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
20550
20551 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
20552
20553         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
20554         
20555         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
20556
20557 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
20558
20559         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
20560         * object-internals.h: Added 3 MonoArray* members to MonoReflection
20561         AssemblyBuilder to access the permissions set in the class lib.
20562         * reflection.c: Added security attributes encoding step in 
20563         mono_image_build_metadata.
20564         * tabledefs.h: Added new security actions defined in 2.0:
20565         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
20566
20567 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
20568
20569         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
20570         macro parameter.
20571
20572 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
20573  
20574         * locales.c: nullify the ICU_collator member of CompareInfo when it is
20575           finalized. There where random SIGSEVs at program termination, when
20576           an object being finalized was trying to do a string comparison and
20577           the current culture was already finalized.
20578  
20579 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20580
20581         * threads.c: call thread_cleanup before finishing the thread if we get
20582         there.
20583
20584 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
20585
20586         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
20587         assemblies from the parent. Fixes #65665.
20588
20589 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
20590
20591         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
20592         modifiers.
20593
20594 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
20595
20596         * reflection.h: add prototype for mono_get_dbnull_object
20597         * reflection.c: add prototypes for get_default_param_value_blobs 
20598         and mono_get_object_from_blob for fussier compilers
20599
20600 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
20601  
20602         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
20603         false deadlock checks in class initialization.
20604  
20605 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
20606
20607         * image.c (mono_image_addref): Fix comment.
20608
20609         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
20610         possible.
20611
20612 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
20613
20614         * reflection.c (mono_param_get_objects): Modified to return
20615         ParameterInfo.DefaultValue object.
20616
20617         (get_default_param_value_blobs):
20618         (mono_get_object_from_blob):
20619         (mono_get_dbnull_object): New helper routines. 
20620
20621         * object.c (mono_get_constant_value_from_blob): New helper routine
20622         carved out from get_default_field_value ()
20623
20624         * object-internals.h (mono_get_constant_value_from_blob): Added
20625         function declaration.
20626
20627 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
20628
20629         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
20630         referenced assemblies. Fixes #62135.
20631
20632         * exception.h exception.c (mono_get_exception_file_not_found2): New
20633         helper function.
20634
20635 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
20636
20637         * class.h class.c: Add mono_type_get_underlying_type ().
20638
20639 2004-09-09  Geoff Norton <gnorton@customerndna.com>
20640
20641         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
20642         Fix GetTypes() to support dynamically created assemblies.
20643
20644 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
20645
20646         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
20647         
20648         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
20649         previous patch.
20650
20651         * reflection.h reflection.c loader.c: Allow dynamic construction of
20652         pinvoke methods. Fixes #65571.
20653         
20654         * reflection.c (mono_reflection_get_type): Revert previous change since
20655         it causes regressions.
20656
20657 2004-09-08  Martin Baulig  <martin@ximian.com>
20658
20659         * class.c (class_compute_field_layout): Don't call
20660         mono_class_layout_fields() for open generic instances.
20661
20662 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
20663         * threads.c appdomain.c: fix typo in GC macro
20664
20665 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20666
20667         * threads.c: don't call mono_thread_detach() in start_wrapper(),
20668         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
20669
20670 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
20671
20672         * image.c (mono_image_close): Applied patch from 
20673         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
20674         assembly is loaded multiple times from data.
20675         
20676         * image.c (mono_image_open): Fix warning.
20677
20678 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
20679
20680         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
20681         once. Fixes #58334.
20682         
20683         * reflection.c (mono_reflection_create_runtime_class): Initialize
20684         klass->nested_classes. Fixes #61224.
20685
20686 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
20687
20688         * threads.c: sched_yield() on exit, to allow threads to quit.
20689
20690 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
20691
20692         * object.c (mono_unhandled_exception): Remove leftover debug code.
20693
20694 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
20695
20696         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
20697
20698 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
20699
20700         * marshal.c (emit_marshal_array): Really null terminate string arrays.
20701         
20702         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
20703
20704 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
20705
20706         * marshal.c (emit_marshal_array): Null terminate string arrays.
20707         
20708         * marshal.c (raise_auto_layout_exception): Fix warning.
20709
20710         * reflection.c (mono_param_get_objects): Initialize the default value
20711         with DBNull.Value, not null. Fixes #62123.
20712
20713 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
20714
20715         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
20716         throw an exception with a cute explanation.
20717
20718 2004-09-06  Dick Porter  <dick@ximian.com>
20719
20720         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
20721         Close the new process's thread handle, as we don't use it.  The
20722         handle stays around forever otherwise.
20723
20724 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
20725
20726         * object.c (arith_overflow): Fix warning.
20727
20728         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
20729         calling conventions in method refs. Fixes #65352.
20730
20731         * reflection.c: Fix warnings.
20732
20733 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
20734
20735         * icall.c: Add a new icall for Array.Clear
20736
20737 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
20738
20739         * object.c: When allocating an array, we have to throw
20740         an overflow exception if any of the lengths are < 0.
20741
20742 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
20743
20744         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
20745         properly. Also move implementation of string array marshalling to 
20746         managed code. Fixes #42316.
20747
20748 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20749
20750         * assembly.c: provide more information when loading an assembly fails.
20751
20752 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20753
20754         * filewatcher.c: don't expect the development fam package to be
20755         installed.
20756
20757 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
20758
20759         * marshal.c: Make a copy of the signature cookie since it will be
20760         freed by the caller.
20761         
20762         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
20763
20764         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
20765
20766         * metadata.c (mono_metadata_free_marshal_spec): New function to free
20767         marshal specs.
20768
20769         * marshal.c: More refactoring.
20770         
20771         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
20772         smaller functions.
20773
20774 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
20775
20776         * object.c: In mono_message_invoke, fill the output parameter array after
20777           calling the managed method (it was done before the call). This fixes
20778           bug #59299.
20779
20780 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
20781
20782         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
20783         as well.
20784
20785 2004-09-02  Martin Baulig  <martin@ximian.com>
20786
20787         * class.c (mono_class_instance_size): Don't allow generic type
20788         definitions or open generic instances.
20789         (mono_class_array_element_size): If we're a value type, call
20790         mono_class_instance_size() on the original class.
20791
20792         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
20793         handle generic instances.
20794
20795         * mono-debug-debugger.c (write_type): Handle generic instances
20796         like classes.
20797
20798 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
20799
20800         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
20801         the allocation request fails. Fixes #65089.
20802
20803         * object.c (mono_runtime_free_method): Do not call mono_free_method.
20804         
20805         * object.c (mono_runtime_free_method): New function to free a dynamic
20806         method.
20807
20808         * marshal.c (mono_delegate_free_ftnptr): New function to free the
20809         delegate trampoline.
20810
20811         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
20812         with hasthis as dynamic,
20813
20814         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
20815
20816         * domain.c (mono_jit_info_table_remove): New function to remove an
20817         entry from the jit info table.
20818
20819         * class-internals.h (MonoMethod): Add 'dynamic' field.
20820
20821         * loader.c: Fix warnings.
20822
20823 2004-09-01  Martin Baulig  <martin@ximian.com>
20824
20825         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
20826         instead of mono_debugger_lock() because the latter one is a no-op
20827         unless running in the debugger.
20828
20829 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
20830
20831         * class.c (class_compute_field_layout): Classes with auto-layout or
20832         reference fields are not blittable.
20833         
20834 2004-09-01  Dick Porter  <dick@ximian.com>
20835
20836         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
20837         mono_image_get_filename() to get the assembly location.
20838
20839         * icall.c:
20840         * metadata.h: Fix compile warnings
20841
20842 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
20843
20844         * class.c (class_compute_field_layout): System.Object is blittable.
20845
20846         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
20847         as in/out. Fixes #59909.
20848
20849 2004-09-01  Martin Baulig  <martin@ximian.com>
20850
20851         * metadata.h (MONO_TYPE_ISREFERENCE): Call
20852         mono_metadata_generic_inst_is_valuetype() if we're a generic
20853         instance to check whether our underlying type is a reference type.
20854
20855 2004-09-01  Martin Baulig  <martin@ximian.com>
20856
20857         * metadata.c (mono_type_size): If we're a generic instance, call
20858         mono_class_value_size() for value types.
20859
20860 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
20861
20862         * marshal.c: Implement more custom marshalling functionality. Fixes
20863         #64915.
20864
20865 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
20866
20867         * mono-debug.c, debug-mono-symfile.c: add some locking love.
20868
20869 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
20870
20871         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
20872
20873         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
20874
20875         * icall.c: Fix some warnings.
20876
20877         * threads.c (abort_appdomain_thread): Fix unref errors.
20878         (mono_thread_current): Fix THREAD_DEBUG define.
20879
20880 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
20881
20882         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
20883
20884         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
20885
20886 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
20887
20888         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
20889         string arrays.
20890
20891 2004-08-28  Martin Baulig  <martin@ximian.com>
20892
20893         * metadata.c
20894         (mono_metadata_generic_inst_is_valuetype): New public function.
20895
20896         * metadata.h (MONO_TYPE_ISSTRUCT): Call
20897         mono_metadata_generic_inst_is_valuetype() if we're a generic
20898         instance to check whether our underlying type is a valuetype.
20899
20900 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
20901
20902         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
20903         #63768.
20904
20905 2004-08-25  Martin Baulig  <martin@ximian.com>
20906
20907         * loader.c (mono_get_method_from_token): Abstract methods can also
20908         be generic and thus have type parameters.
20909
20910         * metadata-internals.h
20911         (MonoDynamicImage): Added `GPtrArray *gen_params'.
20912
20913         * reflection.c (mono_image_get_generic_param_info): Don't create a
20914         metadata row, just add an entry to the `gen_params' array.
20915         (build_compressed_metadata): Sort the `gen_params' array and then
20916         actually create the metadata.
20917
20918 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20919
20920         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
20921
20922 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
20923
20924         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
20925
20926 2004-08-24  Martin Baulig  <martin@ximian.com>
20927
20928         * class.cs (mono_class_is_subclass_of): Like an interface, a
20929         generic instance also derives from System.Object.
20930
20931 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
20932
20933         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
20934         custom modifiers to be in any order. Fixes #61990.
20935
20936 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
20937
20938         * object.c: Register mono_object_new_fast icall.
20939         
20940         * object.c (mono_class_get_allocation_ftn): Return to calling
20941         mono_object_new_fast, since it seems faster to compute the object 
20942         size in unmanaged code than passing it as a parameter.
20943
20944         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
20945
20946         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
20947         this function with Boehm as the oom handler, so we don't have to check
20948         the result of GC_malloc.
20949
20950         * object.c: Remove checks for oom.
20951
20952         * object.h object.c (mono_class_get_allocation_ftn): New function to
20953         return the icall which can be used to allocate an instance of a given
20954         class. 
20955
20956         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
20957
20958         * class-internals.h: Add 'enabled' field.
20959
20960 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
20961
20962         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
20963
20964 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
20965         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
20966         value 0x0010.
20967
20968 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
20969
20970         * appdomain.c: use the Tls function for appdomain too,
20971         at Zoltan's request. Actually return in mono_context_get
20972
20973         * appdomain.c, profiler.c, threads.c: use __thread
20974
20975 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
20976
20977         * appdomain.c threads.c: Call GC_CreateThread on windows.
20978
20979         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
20980         multiple libraries since this don't work on windows.
20981
20982 2004-08-18  Martin Baulig  <martin@ximian.com>
20983
20984         * class-internals.h
20985         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
20986         MonoMethodHeader.
20987
20988         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
20989         MonoMethodNormal since we also need it for abstract and interface
20990         methods.
20991
20992         * reflection.c
20993         (build_compressed_metadata): Sort the GenericParam table.
20994         (mono_image_create_token): Added `gboolean create_methodspec'
20995         argument; this is false when generating a MethodImpl token.
20996         (reflection_methodbuilder_to_mono_method): Abstract and interface
20997         methods may also have generic parameters.
20998
20999 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
21000
21001         * appdomain.c: thread local alloc
21002
21003 2004-08-17  Martin Baulig  <martin@ximian.com>
21004
21005         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
21006
21007         * icall.c
21008         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
21009         argument.
21010
21011         * class.c (mono_type_get_full_name): New public function.
21012         (mono_type_get_name): Don't include the type arguments.
21013
21014 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
21015
21016         * Makefile.am: Build static versions of libmetadata and libmonoruntime
21017         for inclusion into the mono executable.
21018
21019 2004-08-16  Martin Baulig  <martin@ximian.com>
21020
21021         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
21022         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
21023
21024 2004-08-14  Martin Baulig  <martin@ximian.com>
21025
21026         * class.c (dup_type): Also copy the `byref' field.
21027
21028 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
21029
21030         * reflection.c (create_dynamic_mono_image): Revert the last change 
21031         since it breaks bootstrap.
21032
21033 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
21034
21035         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
21036
21037         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
21038         not free them with g_free.
21039
21040 2004-08-11  Martin Baulig  <martin@ximian.com>
21041
21042         * reflection.c (mono_reflection_setup_internal_class): Also call
21043         mono_class_setup_mono_type() if we already have a `tb->type.type'.
21044
21045 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
21046
21047         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
21048         called during default (first) AppDomain creation. Keep track of
21049         Evidence when loading assemblies.
21050
21051 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
21052
21053         * opcodes.c, opcodes.h: reduce runtime relocations.
21054
21055 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
21056
21057         * culture-info.h, locales.c: fixes and chages to sue the new
21058         optimized format of the locale data.
21059         * culture-info-tables.h: regenerated.
21060
21061 2004-08-06  Geoff Norton <gnorton@customerdna.com>
21062         
21063         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
21064
21065 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
21066
21067         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
21068         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
21069         * domain-internals.h: icall declaration.
21070         * icall.c: icall registration.
21071         * object-internals.h: New fields in MonoAssembly for CAS.
21072
21073 2004-08-05  Duncan Mak  <duncan@ximian.com>
21074
21075         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
21076         CEE_LDELEM_ANY.
21077
21078 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
21079
21080         * reflection.c: fix to deal with object[] arrays in custom ctors
21081         (bug #62550).
21082
21083 2004-08-05  Martin Baulig  <martin@ximian.com>
21084
21085         * class.c (mono_class_array_element_size): Added support for
21086         generic instances and correctly handle "recursive" types.
21087
21088 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
21089
21090         * assembly.c: Fix warnings.
21091
21092 2004-08-04  Martin Baulig  <martin@ximian.com>
21093
21094         * class.c
21095         (mono_type_get_name_recurse): Added `gboolean include_arity'
21096         argument specifying whether or not we should include the generic
21097         arity in the type name.
21098         (_mono_type_get_name): New static function.
21099         (mono_class_setup_vtable): If we're a generic instance, don't
21100         include the generic arity in the names of explicit method
21101         implementations.        
21102
21103 2004-08-03  Martin Baulig  <martin@ximian.com>
21104
21105         * class.c (mono_type_get_name_recurse): Enclose the generic type
21106         arguments in `<', '>'.
21107
21108 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
21109
21110         * gc.c: make GC warning messages use the trace API, they are just
21111         noise to most of the users.
21112
21113 2004-08-03  Martin Baulig  <martin@ximian.com>
21114
21115         * debug-mono-symfile.c (read_string): Correctly read the string.
21116
21117 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
21118
21119         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
21120         
21121         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
21122         icalls.
21123         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
21124
21125 2004-07-30  Martin Baulig  <martin@ximian.com>
21126
21127         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
21128         Reflect latest symbol writer changes.   
21129
21130 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
21131
21132         * object.c: always create an object if null is passed
21133         to Invoke() where a valuetype is expected.
21134
21135 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
21136
21137         * marshal.c (mono_marshal_init): make managed
21138         signatures match native ones better for 64bits.
21139
21140 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21141
21142         * appdomain.c: hack to build correctly the private bin path on windows.
21143         Fixes bug #61991.
21144
21145 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
21146
21147         * assembly.c: Load mscorlib from the correct framework directory
21148           (mono/<version>/mscorlib.dll).
21149         * appdomain.h: Added prototypes for new functions.
21150         * internals.h: Added some prototypes.
21151         * domain.c: When initializing the runtime, get from the executable and
21152           the configuration files the runtime version that the app supports.
21153           Added support methods for reading app.exe.config. Added list of versions
21154           supported by the JIT. Added two new methods: mono_init_from_assembly,
21155           which initializes the runtime and determines the required version from
21156           the provided exe file, and mono_init_version, which initializes
21157           the runtime using the provided version.
21158         * icall.c: Get machine.config from version-specific directory.
21159         * reflection.c: When generating an image, embed the version number
21160           of the current runtime.
21161
21162 2004-07-28  Dick Porter  <dick@ximian.com>
21163
21164         * socket-io.c
21165         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
21166         returned sockaddr size before creating the remote address object.
21167         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
21168         61608.
21169
21170 2004-07-28  Dick Porter  <dick@ximian.com>
21171
21172         * locales.c (string_invariant_compare_char): Fix invariant char
21173         compares between upper and lower cases.  Fixes bug 61458.
21174
21175 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
21176         
21177         * marshal.c: actually cache stelem.ref wrappers.
21178         
21179 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
21180
21181         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
21182         sections and remove the mono_cli_rva_map () function.
21183
21184 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
21185
21186         * debug-mono-symfile.c: fix one more endianess issue, from a patch
21187         by Geoff Norton (<gnorton@customerdna.com>).
21188
21189 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
21190
21191         * class.c: fix class loads for pointer types (typeof(int) !=
21192         typeof(int*)).
21193
21194 2004-07-27  Martin Baulig  <martin@ximian.com>
21195
21196         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
21197         reading the debugging information from an external ".mdb" file.
21198
21199 2004-07-24  Martin Baulig  <martin@ximian.com>
21200
21201         * reflection.c (mono_image_get_type_info): Only write a class
21202         layout entry if we actually have a size or a packing size.
21203
21204 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
21205
21206         * reflection.c (type_get_fully_qualified_name): 
21207         insert cast to get type checking of ?: with non-gcc compilers
21208
21209 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
21210
21211         * rand.c: use g_getenv for both lookups of
21212         MONO_EGD_SOCKET
21213
21214 2004-07-17  Martin Baulig  <martin@ximian.com>
21215
21216         * reflection.c (mono_reflection_bind_generic_method_parameters):
21217         Set `gmethod->reflection_info'.
21218
21219 2004-07-17  Martin Baulig  <martin@ximian.com>
21220
21221         * class.c (mono_class_create_from_typedef): Insert the newly
21222         created class into the hash table before computing the interfaces
21223         since we could be called recursively.
21224
21225 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
21226
21227         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
21228         function to implement stelem.ref in managed code
21229         * class-internals.h, debug-helpers.c: a new wrapper type
21230         for the above.
21231
21232 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
21233
21234         * gc.c: allow GC handles to work even when no GC is compiled in.
21235         Fix part of bug #61134 (GetAddrOfPinnedObject).
21236
21237 2004-07-13  Peter Williams  <peter@newton.cx>
21238  
21239         * process.c (complete_path): Make sure we don't attempt to execute
21240         directories.
21241  
21242 2004-07-12  Geoff Norton <gnorton@customerdna.com>
21243
21244         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
21245           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
21246           and will add/subtract the hour if needed
21247
21248 2004-07-12  Martin Baulig  <martin@ximian.com>
21249
21250         * reflection.c (mono_field_get_object): If we have
21251         `field->generic_info', take the attributes from
21252         `field->generic_info->generic_type'.    
21253
21254 2004-07-12  Martin Baulig  <martin@ximian.com>
21255
21256         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
21257         This function must be called before initializing the runtime.
21258         (mono_debug_init_1): New function; call this after initializing
21259         the runtime, but before loading the assembly.  It tells the
21260         debugger to load corlib and the builtin types.
21261
21262         * mono-debug-debugger.c: Did some larger changes in the debugging
21263         code; support recursive class declarations, make sure we actually
21264         add all classes.
21265
21266 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21267
21268         * debug-helpers.c: undo my previous patch and fixed the real issue in
21269         ../mini/exceptions-x86.c
21270
21271 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21272
21273         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
21274         when no HOME env. variable was set and a NullRef was thrown in a .cctor
21275         called from other .cctors.
21276
21277 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
21278
21279         * loader.c: Removed the mono_loader_wine_init hack now that we are
21280         doing a managed version of Windows.Forms.
21281
21282 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
21283
21284         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
21285         threadpool.c, threads.c: remove static data from rootset.
21286
21287 2004-07-09  Dick Porter  <dick@ximian.com>
21288
21289         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
21290         Don't do any more processing if the matched length was 0.  It was
21291         increasing the size of the string before.  Fixes bug 61167.
21292
21293 2004-07-09  Dick Porter  <dick@ximian.com>
21294
21295         * socket-io.h:
21296         * socket-io.c
21297         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
21298         Add support for SO_PEERCRED if its available.
21299
21300 2004-07-09  Peter Bartok <pbartok@novell.com>
21301         * loader.c: winelib.exe.so error message is now only displayed if
21302         MONO_DEBUG is set. To help us avoid questions when people are trying
21303         out the new Managed.Windows.Forms.
21304
21305 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
21306
21307         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
21308         for isinst and castclass wrappers.
21309
21310         * class-internals.h icall.c: Move registration and lookup of JIT icalls
21311         to libmetadata from the JIT, so they could be used by the marshalling
21312         code and the interpreter.
21313
21314         * marshal.c: Register marshalling related JIT icalls here instead of
21315         in mini.c. Use CEE_MONO_ICALL instead of the family of 
21316         CEE_MONO_PROC<x> opcodes to call marshalling functions.
21317
21318         * metadata.h: Remove unneeded marshalling conversions.
21319
21320         * opcodes.c: Update for new opcodes.
21321         
21322 2004-07-08  Martin Baulig  <martin@ximian.com>
21323
21324         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
21325         (mono_debug_get_domain_data): Make this function static.
21326
21327 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
21328
21329         * gc.c, object.h: add nice GC handle API for embedders.
21330
21331 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
21332
21333         * reflection.c: more changes for the new api
21334
21335         * object.c: When we reflect on a field w/ a constant value, it
21336         will not have a memory location, so we must access metadata. Also,
21337         allow easier reading of strings so that we can read them from
21338         the constant data.
21339
21340         * class.c (mono_class_layout_fields): no need for literal fields here.
21341
21342         * class-internals.h: api changes for const fields
21343
21344         * icall.c (ves_icall_get_enum_info): use new apis for const fields
21345
21346 2004-07-06  Martin Baulig  <martin@ximian.com>
21347
21348         * mono-debug.h: Increment version number to 44.
21349
21350         * mono-debug.c (mono_debug_add_wrapper): The second argument is
21351         now a gpointer, rewrote this whole method.
21352
21353         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
21354         function.  Add information about the wrapper in a new "misc table".
21355
21356         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
21357         for the new misc table.
21358
21359 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
21360
21361         * metadata-internals.h image.c: Add a cache for helper signatures.
21362
21363         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
21364
21365 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
21366
21367         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
21368         delegates from a delegate. Fixes #61033.
21369         
21370         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
21371         marshalling of stringbuilder arrays. Fixes #59900.
21372
21373 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
21374
21375         * icall.c: Add EnumBuilder:setup_enum_type icall.
21376
21377 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
21378
21379         * icall.c: Added a new icall for the property version of
21380         OffsetOfStringData.
21381
21382 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
21383
21384         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
21385         it has a constant size across platforms.
21386
21387         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
21388         stack trace.
21389
21390 2004-06-29  Martin Baulig  <martin@ximian.com>
21391
21392         * mono-debug.c (mono_debug_add_method): Protect the whole function
21393         in mono_debugger_lock(), not just parts of it.
21394
21395 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
21396
21397         * reflection.c: make sure padding bytes in heaps are zeroed.
21398
21399 2004-06-24  David Waite  <mass@akuma.org>
21400
21401         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
21402         image.c, loader.c, locales.c, marshal.c, metadata.c,
21403         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
21404         string-icalls.c, threads.c: change to C90-style comments from C99 /
21405         C++ -style
21406
21407 2004-06-24  Dick Porter  <dick@ximian.com>
21408
21409         * threads.c
21410         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
21411         return createdNew.  Fixes bug 60412.
21412
21413         * threads-types.h: 
21414         * icall.c: Add createdNew parameter to CreateMutex icall
21415
21416 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
21417
21418         * reflection.c, object-internals.h: save default value in params.
21419
21420 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21421
21422         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
21423         no need to build a new path combining that with the application base.
21424         Fixes bug #60442.
21425
21426 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
21427
21428         * reflection.c: fixed minor standard compliance issues.
21429
21430 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
21431
21432         * reflection.c: fixed issue with encoding some custom attributes
21433         (arrays in properties and fields, bug #60411).
21434
21435 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21436
21437         * reflection.c: fix start address when copying the public key token.
21438
21439 2004-06-23  Martin Baulig  <martin@ximian.com>
21440
21441         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
21442         the `exc' object in a static object to put it into the GC's root set.
21443
21444 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
21445
21446         * reflection.c: make mono_reflection_setup_internal_class ()
21447         callable a second time to setup a new parent class.
21448
21449 2004-06-23  Dick Porter  <dick@ximian.com>
21450
21451         * threads.c: Check for WAIT_IO_COMPLETION return values.
21452
21453 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
21454
21455         * appdomain.c: Removed the g_free on the public key token. Now copy 
21456         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
21457         * assembly.c: Added public key token string value when loading 
21458         assemblies. Fix bug #60439.
21459         * icall.c: Added missing informations (like public key) in 
21460         GetReferencedAssemblies. Fix #60519.
21461         * image.h: Changed definition for public key token from const char*
21462         public_tok_value to guchar public_key_token [17];
21463         * reflection.c: Updated for changes to public key token.
21464
21465 2004-06-22  Lluis Sanchez Gual
21466
21467         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
21468         for the field in base classes.
21469
21470 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
21471
21472         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
21473         mark headers as not supported, they are installed only for use by the
21474         debugger.
21475
21476 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
21477
21478         * *.c, *.h: avoid namespace pollution in public headers.
21479
21480 2004-06-21  Martin Baulig  <martin@ximian.com>
21481
21482         * exception.c (mono_get_exception_security): It's in
21483         "System.Security", not in "System".
21484
21485         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
21486         the exception classes.
21487
21488 2004-06-21  Martin Baulig  <martin@ximian.com>
21489
21490         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
21491         Protect the exception object from being finalized.
21492
21493 2004-06-21  Martin Baulig  <martin@ximian.com>
21494
21495         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
21496         public function.
21497
21498 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
21499
21500         * reflection.c: Load the assembly in mono_reflection_type_from_name,
21501         if it was not loaded before. Fix parts of #60439.
21502
21503 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
21504
21505         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
21506         code that was broken since Ben's change: wrappers are now
21507         dependent on the method signature only again.
21508
21509 2004-06-21  Martin Baulig  <martin@ximian.com>
21510
21511         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
21512         added interface support.
21513
21514 2004-06-21  Martin Baulig  <martin@ximian.com>
21515
21516         * class.c (mono_vtable_get_static_field_data): New public method.
21517
21518 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
21519
21520         * filewatcher.c : Windows build fix to be compliant with API changes.
21521
21522 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
21523
21524         * class.h, class.c: more accessors.
21525         * metadata.h, metadata.c: prepare for hiding MonoType and
21526         MonoMethodSignature: people should use the accessors from now on
21527         outside of the tree.
21528
21529 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
21530
21531         * *.c, *.h: more API cleanups.
21532
21533 2004-06-18  Jackson Harper  <jackson@ximian.com>
21534
21535         * assembly.c: Trace loading assemblies.
21536         * loader.c: Trace loading native libraries.
21537         * mono-config.c: Trace loading config files.
21538         
21539 2004-06-18  Dick Porter  <dick@ximian.com>
21540
21541         * locales.c: Tell ICU the lengths of strings, it can cope with
21542         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
21543
21544 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
21545
21546         * image.c: swapped name/filename;
21547
21548 2004-06-18  Martin Baulig  <martin@ximian.com>
21549
21550         * mono-debug-debugger.c (write_class): Write the parent class at
21551         the end of the header.
21552
21553 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
21554
21555         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
21556
21557 2004-06-17  Raja R Harinath  <rharinath@novell.com>
21558
21559         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
21560         (bundle_obj): New conditional define.
21561         (BUILT_SOURCES): Remove.
21562         ($(bundle_srcs)): Make parallel-make safe.
21563         (libmonoruntime_la_LIBADD): Make unconditional.
21564         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
21565         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
21566
21567 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
21568
21569         * culture-info-tables.h: It was inconsistent with the latest
21570           supp info files.
21571
21572 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
21573
21574         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
21575         be loaded.
21576
21577         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
21578         with gcc 2.95.
21579
21580 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
21581
21582         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
21583         cleaned up public header threads.h.
21584
21585 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
21586
21587         * Makefile.am, *.c, *.h: more API cleanups.
21588
21589 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
21590
21591         * Makefile.am: removed monosn from compilation.
21592         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
21593         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
21594         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
21595         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
21596         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
21597         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
21598
21599 2004-06-15  Jackson Harper  <jackson@ximian.com>
21600
21601         * assembly.c: Make locales lower case when searching the GAC for
21602         assemblies. gacutil will always make locales lowercase when
21603         installing so this effectively makes them case insensitive.
21604         
21605 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
21606
21607         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
21608         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
21609           parameter which allows to choose whether the wait can be interrupted or 
21610           not. Also added the method mono_monitor_enter(), which locks the monitor
21611           using an infinite wait and without allowing interruption.
21612           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
21613           interrupted.
21614         * object.h: Added new fields in MonoThread. suspend_event holds the event
21615           used to susped/resume the thread. synch_lock is the lock object to use for
21616           modifying the thread state.
21617         * threads.c: Use the new synch_lock object for locking, instead of "this",
21618           which can generate deadlocks.
21619           Moved thread state change in Thread.Sleep and Thread.Join from managed
21620           to unmanaged code. This avoids a deadlock when the thread was suspended
21621           just after acquiring the thread lock.
21622           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
21623           Implemented Thread.Suspend using an event instead of ThreadSuspend,
21624           which is not fully implemented in the io-layer.
21625         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
21626
21627 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
21628
21629         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
21630         threads-types.h: more API cleanups.
21631
21632 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
21633
21634         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
21635         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
21636         threadpool.c, threads.c: first pass at the exported API cleanup.
21637
21638 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
21639
21640         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
21641
21642 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21643
21644         * icall.c: added internalGetHome.
21645
21646 2004-06-14  Dick Porter  <dick@ximian.com>
21647
21648         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
21649         possible to return successfully when '.' or '..' were the only
21650         entries in a directory, but were skipped.  The MonoIOStat was not
21651         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
21652         Fixes bug 59574.
21653
21654 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
21655
21656         * reflection.c: make binaries run on .Net 1.1 by default.
21657
21658 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
21659
21660         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
21661
21662 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
21663
21664         * marshal.c: keep track of struct size with explicit layout
21665         (bug #59979).
21666
21667 2004-06-12  Martin Baulig  <martin@ximian.com>
21668
21669         * mono-debug-debugger.c: Comment out a debugging g_message().
21670
21671 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
21672
21673         * reflection.c, reflection.h: do not free custom attrs that are cached.
21674         * icall.c: use braces to make code clearer.
21675
21676 2004-06-11  Martin Baulig  <martin@ximian.com>
21677
21678         * class.h (MonoInflatedField): New type.
21679         (MonoClassField): Replaced `MonoType *generic_type' with
21680         `MonoInflatedField *generic_info'.
21681
21682         * icall.c
21683         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
21684
21685 2004-06-11  Martin Baulig  <martin@ximian.com>
21686
21687         * reflection.c (mono_image_create_method_token): Correctly encode
21688         varargs methods.
21689
21690 2004-06-11  Martin Baulig  <martin@ximian.com>
21691
21692         * metadata.c (mono_metadata_parse_method_signature): When parsing
21693         a MethodDef which has VarArgs, also set sentinelpos if we don't
21694         have any parameters.
21695
21696 2004-06-11  Martin Baulig  <martin@ximian.com>
21697
21698         * verify.c (mono_method_verify): In CEE_CALL, use
21699         mono_method_get_signature() to get the method's signature, unless
21700         we're a PInvoke method.
21701
21702 2004-06-10  Jackson Harper  <jackson@ximian.com>
21703
21704         * assembly.c: Use <path>/lib/mono/gac for the extra paths
21705         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
21706         logical name as the supplied path is just a prefix to the gac not
21707         the direct path to it.
21708         
21709 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
21710
21711         * reflection.c: make the token for a created method match
21712         the token of the MethodBuilder it was created from
21713         (IKVM requires this behaviour now).
21714
21715 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
21716
21717         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
21718         reflection.c, socket-io.c: leak fixes.
21719
21720 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
21721
21722         * icall.c: handle sentinel pos in vararg methods in position different
21723         from 0.
21724
21725 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21726
21727         * culture-info-tables.h: freshly generated.
21728
21729 2004-06-09  Martin Baulig  <martin@ximian.com>
21730
21731         * loader.c (mono_get_method_constrained): Call `mono_class_init
21732         (constrained_class)'.   
21733
21734 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
21735
21736         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
21737         any methods. Fixes #59629.
21738
21739 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
21740
21741         * culture-info-tables.h: reflecting locale-builder updates.
21742
21743 2004-06-08  Dick Porter  <dick@ximian.com>
21744
21745         * object.h:
21746         * locales.c: Fixed compile warnings, including a real bug in
21747         CompareInfo_internal_compare.
21748         
21749 2004-06-08  Dick Porter  <dick@ximian.com>
21750
21751         * locales.c
21752         (ves_icall_System_Globalization_CompareInfo_internal_index):
21753         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
21754         Double-check the resuls of usearches, because ICU currently
21755         ignores most of the collator settings here.  Fixes bug 59720.
21756         
21757 2004-06-08  Dick Porter  <dick@ximian.com>
21758
21759         * locales.c
21760         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
21761         Fix memory leak and segfault-causing typo.  No idea how this one
21762         lasted so long without being noticed.
21763
21764 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
21765
21766         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
21767         any methods. Fixes #59629.
21768
21769 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21770
21771         * assembly.c:
21772         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
21773         own the critical section before). Removed dead code (that's done
21774         in the preload hook).
21775
21776         (mono_assembly_load_with_partial_name): call the preload hook.
21777
21778 2004-06-08  Martin Baulig  <martin@ximian.com>
21779
21780         * metadata.c (mono_metadata_signature_alloc): Default
21781         `sentinelpos' to -1.
21782
21783         * reflection.c (mono_image_get_array_token): Likewise.
21784
21785 2004-06-08  Martin Baulig  <martin@ximian.com>
21786
21787         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
21788
21789         * metadata.c (mono_metadata_parse_method_signature): When parsing
21790         a MethodDef which has VarArgs, set sentinelpos.
21791
21792         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
21793         `gint16' since we're using -1 for non-varargs methods.
21794
21795         * reflection.c
21796         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
21797         (method_encode_signature): Added varargs support.
21798         (method_builder_encode_signature): Likewise.
21799         (mono_image_get_varargs_method_token): New static method.
21800         (mono_image_create_method_token): New public method; this is
21801         called via an icall instead of mono_image_create_token() when
21802         calling a varargs method.       
21803
21804 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
21805
21806         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
21807
21808 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
21809
21810         * culture-info-tables.h : Reflecting the latest locale-builder that
21811           fixed empty array representation ({} to {0}).
21812
21813 2004-06-07  Jackson Harper  <jackson@ximian.com>
21814
21815         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
21816         looking up extra gac paths. This allows MONO_GAC_PATH to act
21817         exactly like a prefix.
21818         
21819 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
21820
21821         * reflection.c (mono_reflection_type_from_name): Make a copy of the
21822         type name before modifying it. Fixes #59405.
21823
21824 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
21825
21826         * culture-info.h: added fields for "all datetime patterns".
21827         * locales.c: (  ves_icall_System_Globalization_CultureInfo
21828           _construct_datetime_format ()): fill xxx_patterns fields.
21829         * object.h: added fields for "all datetime patterns" to
21830           MonoDateTimeFormatInfo.
21831         * culture-info-tables.h: reflecting locale-builder updates.
21832
21833 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
21834
21835         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
21836         the event has no add and remove methods. Fixes #59629.
21837
21838 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
21839
21840         * object.c: Fixed possible integer overflow when allocating large
21841         strings.
21842
21843 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
21844
21845         * culture-info-tables.h: reflecting locale-builder updates.
21846
21847 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
21848
21849         * culture-info-tables.h: reflecting locale-builder updates.
21850
21851 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
21852
21853         * culture-info-tables.h: reflecting locale-builder updates.
21854
21855 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
21856
21857         * threads.c: Made Thread.Sleep abortable.
21858
21859 2004-06-02  Martin Baulig  <martin@ximian.com>
21860
21861         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
21862
21863         * debug-mono-symfile.h: Bumped symbol file version number to 37.
21864
21865 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
21866
21867         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
21868
21869 2004-05-30  Jackson Harper  <jackson@ximian.com>
21870
21871         * reflection.c: Do not hardcode assembly versions or public key
21872         tokens anymore. All of this except the corlib section was dead
21873         code anyways.
21874         
21875 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
21876
21877         * object.c (mono_runtime_invoke_array): Automatically create boxed
21878         objects for byref valuetypes if needed. Fixes #59300.
21879         
21880         * object.c (mono_method_return_message_restore): Handle 
21881         MONO_TYPE_OBJECT as well.
21882
21883 2004-05-28  Jackson Harper  <jackson@ximian.com>
21884
21885         * reflection.c: The modified type encoding was causing build
21886         problems. Reverted for now.
21887         
21888 2004-05-28  Jackson Harper  <jackson@ximian.com>
21889
21890         * reflection.c/h: Take an assembly ref so that we dont create
21891         fully qualified names when encoding types in the same assembly as
21892         the custom attribute being emitted.
21893         * appdomain.c: Increment version number.
21894         
21895 2004-05-26  Duncan Mak  <duncan@ximian.com>
21896
21897         * icall.c
21898         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
21899         Set the full version number (major, minor, build, revision).
21900
21901 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
21902
21903         * marshal.c (emit_struct_conv): increment src/dst after blit
21904         (mono_marshal_get_managed_wrapper,
21905         mono_marshal_get_native_wrapper): make sure we have marshalling
21906         info before marshalling params (info computation affects
21907         blittable)
21908
21909         * class.c (class_compute_field_layout): correctly deal with
21910         blittable
21911         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
21912         value types (as per what windows dows by default)
21913         (mono_class_setup_mono_type): System.ValueType is blittable
21914         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
21915         blittable
21916
21917         * marshal.c (mono_marshal_load_type_info): flag types  as
21918         non-blittable if the native layout doesn't match the managed
21919         layout
21920
21921 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21922
21923         * appdomain.c: don't add stuff in the private search path that is
21924         above the application base. If application base is not set, there's
21925         no private search path.
21926
21927 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
21928
21929         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
21930         byref struct arguments in native->managed marshalling.
21931
21932 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
21933
21934         * marshal.c (mono_marshal_get_runtime_invoke): correctly
21935         cache methods using signature (special case for methods
21936         that are value type or string class)
21937         
21938         * image.c (mono_image_close): clean up allocated GSList's
21939         in runtime_invoke_cache.
21940
21941 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21942
21943         * mono-config.c: set the correct path for mono_cfg_dir on windows when
21944         there's no MONO_CFG_DIR environment variable defined.
21945
21946 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21947
21948         * threads.c: windows version must be >= 0x0500 to include OpenThread.
21949
21950 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
21951
21952         * threadpool.c: Really wait for 500ms after the async call, even if the wait
21953           is interrumped.
21954         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
21955           before waiting for it, and call CloseHandle after the wait to unref it.
21956           This will make sure that handles are not disposed too early.
21957
21958 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21959
21960         * appdomain.c:
21961         * appdomain.h:
21962         * icall.c: removed
21963         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
21964         needed now.
21965
21966         * object.c: se the application_base only for the domain that runs
21967         Main. Fixes bug #59216,
21968
21969 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21970
21971         * appdomain.c:
21972         * object.c: only the domain in which Main is run have
21973         SetupInformation.ConfigurationFile set, so moved a few lines from
21974         appdomain.c to object.c.
21975
21976 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21977
21978         * appdomain.c: we tried to load [name].(dll|exe), but according
21979         to bug #57710, we must also try [culture]/[name].(dll|exe) and
21980         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
21981         There's a test case attached to bug #58922.
21982
21983 2004-05-27  Dick Porter  <dick@ximian.com>
21984
21985         * icall.c:
21986         * file-io.c: Implemented icalls for locking and unlocking regions
21987         in a file.
21988         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
21989         FALSE on error (fixes both compiler warning and real bug.)
21990
21991 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
21992
21993         * culture-info-tables.h: reflecting locale-builder updates.
21994
21995           (Added missing ChangeLog entry for 05/26)
21996
21997 2004-05-27  Jackson Harper  <jackson@ximian.com>
21998
21999         * locales.c: Fix some cut and paste errors.
22000         
22001 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22002
22003         * mono-config.c: set the correct path for config. directory on windows.
22004
22005 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
22006
22007         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
22008           on win32.
22009
22010 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
22011
22012         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
22013         from pinvoke functions.
22014         
22015         * marshal.c (mono_ftnptr_to_delegate): Implement this.
22016
22017 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
22018
22019         * culture-info-tables.h: reflecting locale-builder updates.
22020
22021 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
22022
22023         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
22024         #59086.
22025
22026 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
22027
22028         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
22029         * icall.c: Modified icalls for RNG.
22030         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
22031         Windows (CryptoAPI).
22032
22033 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
22034
22035         * locales.c: Fix build.
22036
22037 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
22038
22039         * culture-info-tables.h: reflecting locale-builder updates.
22040
22041 2004-05-25  Jackson Harper  <jackson@ximian.com>
22042
22043         * locales.c: When creating the current culture use the $LANGs
22044         specific culture. So DateTimeFormat and NumberFormat entries are created.
22045         
22046 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
22047
22048         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
22049         a char array as parameter.
22050
22051 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
22052
22053         * image.c: In mono_image_open(), always use an absolute path name to
22054           look for already loaded images.
22055
22056 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
22057
22058         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
22059         missing in the windows build (like older cygwin include files).
22060
22061 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
22062
22063         * icall.c: Fixed check for possible integer overflow in Buffer_
22064         BlockCopy icall. Replaced comments style // by /* */.
22065
22066 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
22067
22068         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
22069         
22070         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
22071         check after MONO_VTADDR. Fixes pinvoke2.exe.
22072
22073         * marshal.h marshal.c metadata.h: Add beginnings of support for
22074         ftnptr -> delegate marshalling.
22075
22076 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
22077
22078         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
22079         * threads.c: Fix warnings.
22080
22081 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
22082
22083         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
22084         * icall.c: Registered icalls for Suspend and Resume.
22085         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
22086           Thread.Abort.
22087         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
22088         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
22089         * process.c: Use WaitForSingleObjectEx.
22090         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
22091           checkpoints.
22092         * threads.c, threads.h: Make use of new Ex wait methods. Improved
22093           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
22094           for Suspend and Resume. Added new mono_thread_stop, used for stoping
22095           background threads. Added basic support for Abort in Windows.
22096           Start new threads using a managed delegate invoke wrapper. This wrapper
22097           has an interruption checkpoint that is needed since an interruption
22098           can be requested before the thread leaves the unmanaged code that starts 
22099           the thread.
22100         * marshal.c: Added interruption checkpoint after every native call, and
22101           also before managed calls for wrappers called from unmanaged code to
22102           go into managed code.
22103         * object.h: Added new field in MonoThread to keep track of interruption
22104           requests.
22105
22106 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
22107
22108         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
22109         calls.
22110
22111 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22112
22113         * appdomain.c:
22114         * assembly.c:
22115         * gc.c:
22116         * locales.c:
22117         * mono-config.c:
22118         * rand.c: getenv -> g_getenv (windows!)
22119
22120         * process.c: complete_path is also used on non-windows platforms.
22121
22122 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22123
22124         * icall.c: new signature for Process_Start.
22125
22126         * process.[ch]: new signature for Process_Start. If we're on windows
22127         and UseShellExecute is false, we have to search for the program by
22128         ourselves if we don't get a full path.
22129
22130 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
22131
22132         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
22133         marshalling and call CleanUpNativeData if needed. Fixes #58646.
22134
22135 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22136
22137         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
22138         Fixes bug #58373.
22139
22140 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22141
22142         * process.c: use double quotes to quote program name and arguments on
22143         windows. Fixes bug #58575.
22144
22145 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22146
22147         * file-io.c: don't return "." and ".." when using windows Find*File.
22148
22149 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
22150
22151         * marshal.c: Don't pass wrappers to message init because method 
22152         addressed used to lookup metadata. part of remoting[2|3] fix.
22153
22154 2004-05-15  Jackson Harper  <jackson@ximian.com>
22155
22156         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
22157         path is essentially the same as MONO_PATH except that it points to
22158         GACs instead of lib directories.
22159         * loader.h: The user gac is gone so we dont need function to
22160         enable/disable it.
22161         * mono-config.c: user gac option is now gone.
22162         
22163 2004-05-15  Jackson Harper  <jackson@ximian.com>
22164
22165         * culture-info.h: Make defines more consistent, add calendar data
22166         to the culture info table.
22167         * culture-info-tables.h: Add basic calendar data. Basically
22168         everyone gets default gregorian until all the data is
22169         updated.
22170         * locales.c: Use the new consistent defines. Set calendar data for
22171         culture info objects.
22172         * object.h: add a field for calendar data to CultureInfo
22173         
22174 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
22175
22176         * image.c: image->runtime_invoke_cache is keyed on signatures now.
22177         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
22178         a signature.
22179         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
22180         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
22181         an extra param that is the pointer of the method to invoke. The IL for
22182         the invoke method is no longer specific to the method, but to the
22183         signature of the method. Thus, we can share the same code for multiple
22184         methods. This reduces the number of methods that have to be compiled.
22185
22186 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
22187
22188         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
22189
22190         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
22191
22192         * icall.c: Optimize Buffer.BlockCopy.
22193
22194 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22195
22196         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
22197         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
22198         quote). Changed them to "MMMM yyyy".
22199
22200 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
22201
22202         * rand.c
22203         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
22204
22205 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
22206
22207         * reflection.h: Updated after changes to managed structures.
22208
22209         * appdomain.c: Bump corlib version.
22210
22211 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22212
22213         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
22214         windows.
22215
22216 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22217
22218         * Makefile.am: link to ../os/libmonoos.la on windows.
22219
22220         * assembly.c:
22221                 -If MONO_DEBUG, warn about non-existing directories in
22222                 MONO_PATH.
22223                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
22224                 compile time variable.
22225                 -Removed init_default_path and call mono_set_rootdir from
22226                 libmonoos.a instead (windows only).
22227
22228         * assembly.h: declare mono_assembly_getrootdir().
22229
22230         * domain.c:
22231         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
22232
22233         * loader.c: s/getenv/g_getenv/
22234
22235 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
22236
22237         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
22238
22239         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
22240
22241         * metadata.h: Add new marshalling conversions.
22242
22243         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
22244         function.
22245
22246         * reflection.c (mono_reflection_get_type): Lookup the type in all
22247         modules of a multi-module assembly. Fixes #58291.
22248
22249 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
22250
22251         * threads.c: Before aborting a background, set the StopRequested
22252         state.  This avoids throwing the Abort exception.
22253         In mono_thread_manage, don't continue with the shutdown until all
22254         aborted threads have actually stopped.
22255
22256 2004-05-10  Jackson Harper  <jackson@ximian.com>
22257
22258         * locales.c: Remove the modifier from culture names.
22259         
22260 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22261
22262         * Makefile.am: monosn is not installed any more. It has been deprecated
22263         in favor of sn.
22264
22265 2004-05-07  Jackson Harper  <jackson@ximian.com>
22266
22267         * locales.c
22268         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
22269         Fix array construction, add bailout if the length is 0.
22270
22271 2004-05-07  Dick Porter  <dick@ximian.com>
22272
22273         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
22274         machine doesn't have a DNS entry.  Patch by Urs Muff
22275         (umuff@quark.com), fixes bug 57928.
22276
22277 2004-05-06  Jackson Harper  <jackson@ximian.com>
22278
22279         * reflection.c: Handle null PublicTokens properly. alloc mem for
22280         assembly names culture so we dont crash when freeing it.
22281         
22282 2004-05-06  Jackson Harper  <jackson@ximian.com>
22283
22284         * assembly.c: Check the usergac when loading with partial names.
22285         
22286 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
22287
22288         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
22289         does nothing for now (not required for Linux/Windows) but the class
22290         library can call it (and a newer or modified runtime could need it).
22291         * icall.c: Registred icall.
22292
22293 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22294
22295         * loader.c: prints a message on module loading error we set MONO_DEBUG
22296         environment variable.
22297
22298 2004-05-05  Jackson Harper  <jackson@ximian.com>
22299
22300         * appdomain.c: Handle PublicKeyToken=null properly.
22301         
22302 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
22303
22304         * environment.c|h: Added icall ves_icall_System_Environment_
22305         GetOSVersionString to get the current OS version as a string.
22306         * icall.c: Registred icall.
22307
22308 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
22309
22310         * object.c: in mono_object_get_virtual_method(), take into account that
22311         non-virtual methods don't have a slot in the vtable. Check needed when
22312         the object is a proxy.
22313
22314 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
22315
22316         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
22317         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
22318
22319         * object.c (mono_class_compute_gc_descriptor): Fix warning.
22320
22321         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
22322         passed when a valuetype is expected.
22323
22324         * object.c (mono_unhandled_exception): Only set the exit code if the
22325         exception happens in the main thread. Fixes thread5.exe.
22326
22327         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
22328         invalid names. Fixes #58047.
22329
22330 2004-05-03  Jackson Harper  <jackson@ximian.com>
22331
22332         * assembly.c: This line was committed accidently and is unneeded.
22333         
22334 2004-05-03  Jackson Harper  <jackson@ximian.com>
22335
22336         * icall.c: Add new icall for Assembly::LoadWithPartialName
22337         * assembly.c/.h: new function that probes the GAC to load partial
22338         assembly names by Paolo Molaro.
22339         
22340 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22341
22342         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
22343         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
22344         (type_get_fully_qualified_name): Added PublicKeyToken when building a
22345         full type name.
22346
22347 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22348
22349         * appdomain.c: fixed check for 'neutral' culture and removed warning.
22350         * reflection.c: fix bug when parsing a full type name and Version is not
22351         the last thing in the string.
22352
22353 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
22354
22355         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
22356         crashes when it is freed.
22357
22358 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22359
22360         * assembly.c: print the compat warning to stderr.
22361
22362 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
22363
22364         * assembly.c (mono_assembly_load_references): Add a compatibility
22365         hack to run old applications that might be still referencing the
22366         3300-based assemblies, only do this for System.xxx.
22367
22368 2004-05-01  Jackson Harper  <jackson@ximian.com>
22369
22370         * appdomain.c: If the culture is neutral we set it to "".
22371         
22372 2004-04-29  Jackson Harper  <jackson@ximian.com>
22373
22374         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
22375
22376 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
22377  
22378         * string-icalls.c: added low overhead function for copying chars
22379         * icall.c: added needed icall for the above function
22380  
22381 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22382
22383         * icall.c: fix return value of get_global_assembly_cache.  Implemented
22384         Environment.GetLogicalDrives.
22385
22386 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
22387
22388         * rand.c: try and talk to egd or prngd
22389         for random bytes if opening devices fail.
22390
22391 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
22392
22393         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
22394         alignment for the type using the native alignment of its members 
22395         instead of using klass->min_align.
22396
22397         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
22398
22399 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22400
22401         * file-io.c:
22402         * socket-io.c: added check for sys/aio.h.
22403
22404 2004-04-28  Dick Porter  <dick@ximian.com>
22405
22406         * threads.c: Don't abort a thread thats already aborting, when
22407         terminating everything.
22408
22409 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22410
22411         * icall.c: added 2 new async calls for Socket.
22412
22413         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
22414         IO on *nix systems.
22415
22416         * threadpool.c: removed unused variable.
22417
22418 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
22419
22420         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
22421
22422 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
22423
22424         * locales.c: put back string_invariant_tolower () and
22425         string_invariant_toupper ().
22426
22427 2004-04-26 David Waite <mass@akuma.org>
22428
22429         * file-io.h:
22430         * socket-io.h:
22431         * threads.h:
22432         * unicode.h: remove comma from end of enumeration declarations
22433
22434 2004-04-26 David Waite <mass@akuma.org>
22435
22436         * debug-mono-symfile.h:
22437         * decimal.c:
22438         * mono_debug.h:
22439         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
22440
22441
22442 2004-04-26  Jackson Harper  <jackson@ximian.com>
22443
22444         * appdomain.c: Increment version number.
22445         
22446 2004-04-26  Jackson Harper  <jackson@ximian.com>
22447
22448         * appdomain.c: Set assembly references public token value when
22449         PublicKeyToken is specified, not the hash_value. Free public token
22450         values when free assembly name data. Previously the public key
22451         token was hex decoded, however we are using hex encoded public key
22452         tokens, so this is not neccasary.
22453         * assembly.c: Lookup assemblies in the gac if their public token
22454         value is set. Add function to allow enabling user gac
22455         lookups. Specify whether or not the assembly was loaded from the
22456         GAC. Compare full assembly names when checking the cache for
22457         assemblies (Temporarily disabled see comment in code). Remove
22458         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
22459         specifies trace-loader they get extra info to stdout on the
22460         loading of assemblies.
22461         * image.h: Add a field for an assembly references public token
22462         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
22463         whether an assembly has been loaded from the GAC.
22464         * image.c: Remove a corlib -> mscorlib name mapping.
22465         * loader.h: Add function to enable/disable the user gac.
22466         * mono-config.c: Check if the usergac is enabled in the config
22467         file.
22468         * icall.c: New icall to determine whether or not an assembly has
22469         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
22470         * tabldefs.h: Add constant for assemblyref flag that specifies a
22471         full public key is used instead of a public token.
22472         * reflection.c: Remove mscorlib -> corlib mappings. Set
22473         PublicTokenValue instead of hash value. This value is a hex
22474         string so it does not need to be expanded.
22475
22476 2004-04-26  Martin Baulig  <martin@ximian.com>
22477
22478         * mono-debug-debugger.c (mono_debugger_initialize): Set
22479         `mono_debugger_initialized' before calling mono_debug_lock().
22480
22481 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
22482
22483         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
22484           InternalToUpper/InternalToLower.
22485         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
22486           removed invariant culture shortcut.  This is now done in managed code.
22487         * locales.c: (string_invariant_toupper/tolower) removed.
22488
22489 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22490
22491         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
22492         Added Poll internal call.
22493
22494         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
22495         call for Poll. Select was too heavy for polling a single socket.
22496
22497         * threadpool.[ch]: added mono_threadpool_cleanup.
22498         * threads.c: use it. Don't use Thread_Abort on windows.
22499
22500 2004-04-23  Martin Baulig  <martin@ximian.com>
22501
22502         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
22503
22504 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
22505
22506         * icall.c: Registred new icalls for key pair protection and added an
22507         icall for Environment.GetFolderPath on Windows.
22508         * security.c|h: Added new icalls for key pair protection.
22509
22510 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22511
22512         * socket-io.c: don't display the non-supported family warning for known
22513         families. Now this is not displayed on windows when checking support
22514         for IPv4/IPv6.
22515
22516 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22517
22518         * class.c: don't display the layout warning for static fields.
22519
22520 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
22521
22522         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
22523         * locales.c, locales.h: Added new icalls for culture-specific
22524         Char.ToLower and Char.ToUpper.
22525
22526 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22527
22528         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
22529         by David Waite.
22530
22531 2004-04-20  Martin Baulig  <martin@ximian.com>
22532
22533         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
22534         of the type name before passing it to mono_reflection_type_from_name().
22535
22536 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
22537
22538         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
22539         encodings here. Fixes #56965.
22540
22541 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
22542
22543         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
22544         fix test on strstr result not that I can see anything that
22545         relies on the result.
22546
22547 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
22548
22549         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
22550         Fixes #57081.
22551
22552         * marshal.c (mono_marshal_get_string_encoding): New helper function.
22553
22554         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
22555         function to determine which marshalling to use for strings. Fixes
22556         #56965.
22557
22558         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
22559
22560         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
22561
22562 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
22563
22564         * icall.c: #include mono-config.h
22565
22566 2004-04-15  Jackson Harper  <jackson@ximian.com>
22567
22568         * culture-info-tables.h: Fix date formats for en-US culture.
22569         
22570 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
22571
22572         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
22573         ThreadPool.SetMinThreads.
22574         * threadpool.c: Implemented ThreadPool.GetMinThreads and
22575         ThreadPool.SetMinThreads.
22576
22577 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
22578
22579         * mono-config.c: also load the .config file in the directory
22580         where the assembly was found.
22581
22582 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
22583
22584         * assembly.c: load per-assembly config files.
22585         * icall.c: decrapified code to get the config dir and moved to
22586         mono-config.c.
22587         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
22588         per-assembly config files. When doing a dll map lookup give precedence
22589         to the per-assembly data.
22590
22591 2004-04-14  Martin Baulig  <martin@ximian.com>
22592
22593         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
22594         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
22595         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
22596
22597         * mono-debugger-debugger.c: While the debugger is locked, remember
22598         whether the symbol tables have changes and send one single
22599         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
22600
22601 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
22602
22603         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
22604
22605         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
22606         function.
22607
22608         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
22609         account when marshalling string arrays. Fixes #56965.
22610
22611 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
22612
22613         * icall.c: Add new icalls mapping for security.
22614         * security.c|h: Add internal calls for WindowsIdentity,
22615         WindowsImpersonationContext and WindowsPrincipal.
22616
22617 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
22618
22619         * class.c: Added comment to ensure the System.MonoDummy class
22620         is removed when no longer necessary
22621
22622 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
22623
22624         * appdomain.c: Pass arguments to the bootstraping exceptions to
22625         minimize JITed methods at boot
22626
22627         * metadata.c (mono_exception_from_name_two_strings): Allow for the
22628         second string to be null.
22629
22630         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
22631         Change the protocol to minimize the JIT methods at startup.  Now
22632         it Returns the internal codepage, if the value of "int_code_page"
22633         is 1 at entry, and we can not compute a suitable code page
22634         number, returns the code page as a string.
22635
22636 2004-04-13  Jackson Harper  <jackson@ximian.com>
22637
22638         * culture-info-tables.h: Fix number of decimal digits for all
22639         english locales.
22640
22641 2004-04-13  Jackson Harper  <jackson@ximian.com>
22642
22643         * icall.c: Clairfy out of sync error message. It is not always
22644         your corlib that is out of sync.
22645
22646 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
22647
22648         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
22649         properties when only the set accessor is overriden. Fixes #55874.
22650
22651 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
22652
22653         * assembly.c (mono_assembly_load_references): Make this thread safe.
22654         Fixes #56327.
22655
22656 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
22657
22658         * monosn.c: Add missing initialization calls.
22659
22660 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
22661
22662         * locales.c:
22663         ves_icall_System_Globalization_CultureInfo_construct_number_format
22664         Fix g_assert so it compiles on fussier compilers re int/ptr
22665         mismatch
22666
22667 2004-04-08  Dick Porter  <dick@ximian.com>
22668
22669         * socket-io.h:
22670         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
22671         53992.  Also rearrange the code so that the internal calls return
22672         an error value and exceptions are thrown from managed code.
22673
22674         * icall.c: Add type info to the socket icalls.
22675
22676 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22677
22678         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
22679         owes me a beer.
22680
22681 2004-04-07  Martin Baulig  <martin@ximian.com>
22682
22683         * class.c (mono_class_from_generic_parameter): Don't default
22684         `klass->parent' to `mono_defaults.object_type'.
22685
22686 2004-04-07  Martin Baulig  <martin@ximian.com>
22687
22688         * reflection.c (mono_reflection_initialize_generic_parameter): Set
22689         `param->pklass->reflection_info'.       
22690
22691 2004-04-07  Jackson Harper  <jackson@ximian.com>
22692
22693         * culture-info-tables.h: Fix date separator symbol.
22694         
22695 2004-04-07  Martin Baulig  <martin@ximian.com>
22696
22697         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
22698         from System.Type to System.MonoType.
22699
22700 2004-04-07  Martin Baulig  <martin@ximian.com>
22701
22702         * reflection.h
22703         (MonoReflectionGenericParam): Added `has_reference_type' and
22704         `has_value_type' fields.
22705
22706         * reflection.c (mono_image_get_generic_param_info): Encode the
22707         correct flags if we have the `class' or `struct' constraint.
22708
22709 2004-04-07  Martin Baulig  <martin@ximian.com>
22710
22711         * reflection.h
22712         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
22713
22714 2004-04-07  Jackson Harper  <jackson@ximian.com>
22715
22716         * appdomain.c: Revert extra patches, just wanted to bump the
22717         version number.
22718         
22719 2004-04-07  Jackson Harper  <jackson@ximian.com>
22720
22721         * Makefile.am: Add culture-info private headers.
22722         * icall.c: Add new icalls for contructing locales.
22723         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
22724         * locales.h: Declare new culture info construction methods.
22725         * object.h: Add new fields used to avoid the CultureMap to
22726         MonoCultureInfo.
22727         * culture-info.h: Definition of structs used in the culture info
22728         tables.
22729         * culture-info-tables.h: Autogenerated tables that contain culture
22730         info data. This file was generated with the locale-builder tool.
22731         * appdomain.c: Incement corlib version number.
22732         
22733 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
22734
22735         * appdomain.c: (mono_runtime_init) move mono_thread_init
22736         to before mono_object_new calls so critical sections
22737         are initialized before use.
22738
22739 2004-04-07  Martin Baulig  <martin@ximian.com>
22740
22741         * icall.c
22742         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
22743         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
22744         (ves_icall_MonoGenericParam_initialize): Removed.
22745         (monogenericparam_icalls): Removed.
22746         (generictypeparambuilder_icalls): Added new table for
22747         System.Reflection.Emit.GenericTypeParameterBuilder.
22748
22749         * reflection.c
22750         (mono_reflection_define_generic_parameter): Removed.
22751         (mono_reflection_initialize_generic_parameter): This is now called
22752         from GenericTypeParameterBuilder's .ctor.
22753
22754 2004-04-06  Martin Baulig  <martin@ximian.com>
22755
22756         * class.c (mono_class_init): Don't inflate nested classes in a
22757         generic instance.
22758         (mono_type_get_name_recurse): Include the generic arguments for
22759         generic instances and generic type declarations.
22760         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
22761         (_mono_class_get_instantiation_name): Removed.
22762         (mono_class_create_generic): Always use `gklass->name' as our name.
22763
22764         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
22765
22766         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
22767         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
22768         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
22769         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
22770         closed generic methods here.
22771
22772         * reflection.c
22773         (mono_reflection_generic_inst_get_nested_types): Removed.
22774         (inflate_mono_method): Copy the generic parameters from the
22775         MonoMethodHeader into out MonoGenericMethod.
22776
22777 2004-04-06  Martin Baulig  <martin@ximian.com>
22778
22779         * row-indexes.h
22780         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
22781
22782         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
22783
22784         * reflection.c (build_compressed_metadata): If we have any entries
22785         in the GenericParam, MethodSpec or GenericParamConstraint tables,
22786         set the header version to 1.1.
22787
22788 2004-04-06  Martin Baulig  <martin@ximian.com>
22789
22790         * class.c (mono_class_init): If we're a generic instance,
22791         initialize our nested classes, too.
22792         (_mono_class_get_instantiation_name): Deal with the new `!%d'
22793         suffix. 
22794
22795 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22796
22797         * process.c: quote the argument passed to the shell on windows.
22798
22799 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
22800
22801         * threads.c (mono_alloc_special_static_data): Allow this to be
22802         called during startup.
22803
22804 2004-04-02  Martin Baulig  <martin@ximian.com>
22805
22806         * icall.c
22807         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
22808
22809 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
22810
22811         * icall.c: Fix build.
22812
22813 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
22814
22815         * Makefile.am: Added security.c|h.
22816         * icall.c: Added icall for get_UserName;
22817         * security.c: New file for security related icalls. Added function
22818         get_UserName for System.Environment (fix #56144).
22819         * security.h: New. Header file for security.c
22820
22821 2004-04-02  Dick Porter  <dick@ximian.com>
22822
22823         * icall.c: Deleted the icalls that were obsoleted some time ago
22824         by the ICU string code, and which were mixed into the icall
22825         rearranging.  Fixes bug 55969.
22826
22827         * string-icalls.h: 
22828         * string-icalls.c: Deleted the code that those icalls reference.
22829
22830 2004-04-01  Martin Baulig  <martin@ximian.com>
22831
22832         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
22833
22834         * class.c (mono_class_from_generic_parameter): Don't set 
22835         TYPE_ATTRIBUTE_INTERFACE.
22836         (my_mono_class_from_generic_parameter): Likewise.
22837
22838 2004-04-01  Martin Baulig  <martin@ximian.com>
22839
22840         * loader.c (find_method): Added an optional `MonoClass *ic'
22841         argument to search in a specific interface.
22842         (mono_get_method_constrained): New public function.
22843
22844 2004-04-01  Martin Baulig  <martin@ximian.com>
22845
22846         * reflection.c (mono_image_get_generic_field_token): Use the
22847         `handleref' cache here.
22848
22849 2004-04-01  Martin Baulig  <martin@ximian.com>
22850
22851         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
22852
22853         * reflection.c (create_generic_typespec): Use the `typespec' hash
22854         here, not the `typeref' one.    
22855
22856 2004-04-01  Martin Baulig  <martin@ximian.com>
22857
22858         * class.c (mono_class_inflate_generic_type): Moved the
22859         functionality into a new static inflate_generic_type() which
22860         returns NULL if it didn't do anything.  Only increment the
22861         `mono_stats.inflated_type_count' if we actually inflated
22862         something.
22863         (mono_class_get_full): Check the classes type to see whether we
22864         need to inflate it; also inflate MONO_TYPE_(M)VAR.
22865
22866 2004-04-01  Jackson Harper  <jackson@ximian.com>
22867
22868         * reflection.c: Set culture for assembly references.
22869         
22870 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
22871
22872         * reflection.[ch], icall.[ch], Fix support for pinning variables.
22873
22874 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22875
22876         * assembly.c:
22877         (do_mono_assembly_open): the critical section also covers
22878         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
22879
22880 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22881
22882         * threads.c:
22883         (mono_manage_threads): abort the background threads when finishing.
22884         Fixes bug #47232.
22885
22886 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22887
22888         * gc.c: only close the done_event handle if there was no timeout.
22889         C-ified comments.
22890
22891 2004-03-30  Martin Baulig  <martin@ximian.com>
22892
22893         * icall.c (icall_entries): It's called "System.Activator", not
22894         "System.Activation".    
22895
22896 2004-03-30  Martin Baulig  <martin@ximian.com>
22897
22898         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
22899         (mono_class_create_from_typespec): Likewise.
22900
22901 2004-03-30  Martin Baulig  <martin@ximian.com>
22902
22903         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
22904         `has_ctor_constraint' and `initialized'.
22905
22906 2004-03-30  Martin Baulig  <martin@ximian.com>
22907
22908         * reflection.c (encode_new_constraint): New static function to add
22909         the constructor constraint attribute to a type parameter.
22910         (encode_constraints): Call encode_new_constraint() if necessary.
22911
22912         * reflection.h
22913         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
22914
22915         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
22916         
22917 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
22918
22919         * reflection.c, icall.c: add support for pinning variables. 
22920
22921 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
22922
22923         * marshal.c (mono_marshal_get_managed_wrapper):
22924         init bool local with zero rather than null.
22925
22926 2004-03-29  Martin Baulig  <martin@ximian.com>
22927
22928         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
22929         the "official" behavior here.
22930         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
22931
22932 2004-03-29  Martin Baulig  <martin@ximian.com>
22933
22934         * icall.c: Reflect latest API changes.
22935
22936 2004-03-29  Martin Baulig  <martin@ximian.com>
22937
22938         * loader.c (mono_get_method_from_token): Also call
22939         mono_metadata_load_generic_params () for abstract and interface
22940         methods; replace the type arguments in the method signature with
22941         the ones which are loaded from the metadata.
22942
22943 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
22944
22945         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
22946         of the lock is not the current thread. MS.NET don't do it, in spite of
22947         what the documentation says. See bug #56157.
22948
22949 2004-03-28  Martin Baulig  <martin@ximian.com>
22950
22951         * class.c (mono_class_init): Don't call init_properties() and
22952         init_events() for generic instances; set `prop->parent' when
22953         inflating properties.
22954
22955         * reflection.c (mono_generic_inst_get_object): Call
22956         `mono_class_init (ginst->klass)'.
22957         (mono_type_get_object): Only create a MonoGenericInst if your
22958         generic type is a TypeBuilder.
22959         (do_mono_reflection_bind_generic_parameters): Only set
22960         `ginst->is_dynamic' if our generic type is a TypeBuilder.
22961
22962 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
22963
22964         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
22965         Fixes #56091.
22966
22967 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22968
22969         * icall.c: added Kill_internal icall.
22970         * process.[ch]: added Kill_internal icall.
22971
22972 2004-03-25  Martin Baulig  <martin@ximian.com>
22973
22974         * class.h (MonoStats): Added `generic_instance_count',
22975         `inflated_method_count', `inflated_type_count' and
22976         `generics_metadata_size'.       
22977
22978 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22979
22980         * reflection.c: no warnings now.
22981
22982 2004-03-25  Martin Baulig  <martin@ximian.com>
22983
22984         * class.c (mono_class_get_full): New public function; does a
22985         mono_class_get(), but also takes a `MonoGenericContext *'.
22986
22987         * loader.c (mono_field_from_memberref): Renamed to
22988         `field_from_memberref', made static and added `MonoGenericContext *'
22989         argument.
22990         (mono_field_from_token): Added `MonoGenericInst *' argument.
22991         (method_from_memberef): Likewise.
22992         (mono_get_method_from_token): Likewise.
22993         (mono_get_method_full): New public function; does a
22994         mono_get_method(), but also takes a `MonoGenericContext *'.
22995
22996         * verify.c (mono_method_verify): Get the method's generic context
22997         and pass it to mono_field_from_token(), mono_get_method_full() and
22998         mono_class_get_full().
22999
23000 2004-03-25  Martin Baulig  <martin@ximian.com>
23001
23002         * class.c (mono_class_inflate_generic_type): Take a
23003         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
23004         `MonoGenericMethod *'.
23005
23006 2004-03-25  Martin Baulig  <martin@ximian.com>
23007
23008         * loader.h (MonoMethodInflated): Store the MonoGenericContext
23009         instead of the MonoGenericMethod here.
23010
23011 2004-03-25  Martin Baulig  <martin@ximian.com>
23012
23013         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
23014         each time we create a new MonoGenericInst, we also create a new
23015         context which points back to us.
23016
23017         * class.c (inflate_method): Use `ginst->context' instead of
23018         creating a new context.
23019
23020         * loader.c (method_from_memberref): Use
23021         `klass->generic_inst->context' instead of creating a new context.
23022
23023 2004-03-25  Martin Baulig  <martin@ximian.com>
23024
23025         * class.h (MonoGenericContext): New struct.
23026         (MonoGenericMethod): Removed `generic_inst'.
23027
23028         * class.c (mono_class_inflate_generic_method): Take a
23029         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
23030
23031 2004-03-25  Martin Baulig  <martin@ximian.com>
23032
23033         * loader.h (MonoMethodInflated): New typedef.
23034
23035         * metadata.h (MonoMethodSignature): Removed `gen_method', make
23036         `generic_param_count' consume just 30 bits, added `is_inflated'
23037         and `has_type_parameters' flags (one bit each).
23038
23039         * class.c (mono_class_inflate_generic_method): Create a
23040         MonoMethodInflated instead of a MonoMethodNormal and set
23041         `is_inflated' in the method signature.
23042
23043         * class.h (MonoGenericMethod): Removed `generic_method'.
23044
23045 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
23046
23047         * image.c: Make sure the name of a MonoImage is always an absolute path.
23048           This fixes bug #54415.
23049
23050 2004-03-24  Martin Baulig  <martin@ximian.com>
23051
23052         * class.c (mono_class_setup_vtable): If we're a generic instance,
23053         use our generic type's vtable size.
23054
23055 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
23056
23057         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
23058         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
23059         problems.
23060
23061 2004-03-23  Martin Baulig  <martin@ximian.com>
23062
23063         * class.h (MonoDynamicGenericInst): Added `int count_events' and
23064         `MonoEvent *events'.
23065
23066         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
23067         (typebuilder_icalls): Added "get_event_info"; calls
23068         mono_reflection_event_builder_get_event_info(). 
23069
23070         * reflection.c (mono_reflection_generic_inst_initialize): Added
23071         `MonoArray *events'.
23072         (mono_reflection_event_builder_get_event_info): New function.
23073
23074 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
23075
23076         * object.h: add mono_type_initialization_init
23077
23078         * object.c (mono_runtime_class_init): 
23079         implement class constructor synchronization rules
23080         to cope with threading issues.  
23081         add mono_type_initialization_init
23082
23083         * appdomain.c (mono_runtime_init): call 
23084         mono_type_initialization_init
23085
23086         * class.h: removing initializing field from MonoVTable
23087
23088 2004-03-23  Martin Baulig  <martin@ximian.com>
23089
23090         * class.c (my_mono_class_from_generic_parameter): Use
23091         `param->name' if it's not NULL. 
23092
23093 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
23094
23095         * class.c: do not insert non-virtual methods in the vtable.
23096         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
23097         that means the method is non-virtual. This never would have
23098         happened before.
23099
23100 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
23101
23102         * profiler.c: Added lock for accessing coverage_hash.
23103
23104 2004-03-22  Martin Baulig  <martin@ximian.com>
23105
23106         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
23107         `method->method->signature->generic_param_count != 0' to make it
23108         work for interface methods.
23109
23110 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23111
23112         * process.c: quote the string passed to the shell using g_shell_quote.
23113
23114 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23115
23116         * threads.c:
23117         (mono_threads_manage): don't remove the finalizer thread and self
23118         from the threads hash table so that mono_thread_manage can be called
23119         more than once.
23120
23121 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23122
23123         * process.c: quote the arguments when UseShellExecute is true. Fixes
23124         bug #55790.
23125
23126 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23127
23128         * threads.c: set mono_thread_detach as a cleanup routine for every
23129         thread. This way it's always executed upon thread termination, either
23130         aborted or finished normally. No more xsp hangs!
23131
23132 2004-03-17  Martin Baulig  <martin@ximian.com>
23133
23134         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
23135         `int count_nested' and a `MonoType **nested'.
23136
23137         * reflection.c (mono_reflection_bind_generic_parameters): Moved
23138         most of the functionality into a new static
23139         do_mono_reflection_bind_generic_parameters() and don't take a
23140         `MonoType *nested_in' argument any more.  Don't compute nested
23141         types here.
23142         (mono_reflection_generic_inst_get_nested_types): New public method
23143         to get nested types.
23144
23145         * class.c (mono_class_create_generic): Set `klass->nested_in' if
23146         we're a nested class.
23147
23148         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
23149         mono_reflection_generic_inst_get_nested_types() to compute the
23150         nested types.
23151
23152 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
23153
23154         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
23155         descriptive error message under windows.
23156         
23157 2004-03-17  Martin Baulig  <martin@ximian.com>
23158
23159         * class.c (dup_type): Added `const MonoType *original' argument;
23160         copy the attrs from the original type.
23161
23162 2004-03-17  Martin Baulig  <martin@ximian.com>
23163
23164         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
23165         `m->generic_inst_cache' here.
23166
23167 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
23168
23169         * exception.h exception.c: Add stack_overflow_exception.
23170
23171 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23172
23173         * threadpool.c:
23174         (overlapped_callback): call SetEvent *after* invoking the callback.
23175         No need to call CloseHandle.
23176
23177 2004-03-16  Martin Baulig  <martin@ximian.com>
23178
23179         * reflection.c (mono_image_get_fieldref_token): Take a
23180         `MonoReflectionField *' instead of a `MonoClassField *' and a
23181         `MonoClass *'; store the `MonoReflectionField *' in the hash.
23182
23183 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23184
23185         * appdomain.c: don't add the culture to the filename we're looking for
23186         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
23187
23188 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23189
23190         * locales.c: don't ignore symbols when doing case insensitive compares.
23191         Thanks Dick! Fixes bug #54046.
23192
23193         * threads.c: surround 'threads' usage with enter/leave in
23194         mono_thread_manage.
23195
23196 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
23197
23198         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
23199         implicitly marshalled as [Out]. Fixes #55450.
23200
23201         (mono_marshal_get_runtime_invoke): Zero out the result if there is
23202         an exception.
23203
23204 2004-03-16  Martin Baulig  <martin@ximian.com>
23205
23206         * class.c (mono_class_from_generic_parameter): Use the actual
23207         parameter name. 
23208
23209 2004-03-16  Martin Baulig  <martin@ximian.com>
23210
23211         * reflection.c (type_get_signature_size): New static function.
23212         Compues the size of the type in a method signature.
23213         (method_get_signature_size): New static function; calls
23214         type_get_signature_size() to compute the actual size of the
23215         method's signature.
23216         (method_encode_signature): Use method_get_signature_size() to get
23217         the signature's size rather than using `nparams * 10'.
23218
23219 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23220
23221         * file-io.h: define here WapiOverlapped on windows. I don't want the
23222         regular OVERLAPPED one.
23223
23224         * file-io.c:
23225         * threadpool.c: somehow, BindIoCompletionCallback is not found.
23226         Disabling AIO on windows.
23227
23228 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23229
23230         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
23231         bug #55385.
23232
23233 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23234
23235         * appdomain.c: upgraded corlib version.
23236
23237         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
23238         and BeginWrite. Allow opening files for asynchrnous operations.
23239
23240         * file-io.h: new struct that maps FileStreamAsyncResult.
23241         * icall.c: added new icalls.
23242         * process.[ch]: support setting child process environment variables
23243         and use the SHELL or COMSPEC when UseShellExecute is true.
23244
23245         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
23246         callback for async. IO is here and also BindHandle.
23247
23248         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
23249         from here.
23250
23251 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
23252
23253         * reflection.c (create_custom_attr): Allow len == 0.
23254
23255         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
23256         computation on big-endian machines.
23257
23258 2004-03-13  Martin Baulig  <martin@ximian.com>
23259
23260         * class.h (MonoGenericInst): Added `int count_ifaces'.
23261
23262         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
23263         `ginst->count_ifaces' instead `klass->interface_count' since we
23264         may get called before the vtable is created.
23265
23266         * loader.c (mono_method_get_param_names): If we're a generic
23267         instance, return and don't initialize the class.
23268
23269         * reflection.c (mono_reflection_setup_generic_class): Don't call
23270         ensure_runtime_vtable().
23271         (mono_reflection_bind_generic_parameters): Set
23272         `ginst->count_ifaces'.
23273
23274 2004-03-11  Jackson Harper <jackson@ximian.com>
23275
23276         * icall.c:
23277         * unicode.c:
23278         * unicode.h: Remove unused System.Char icalls.
23279         
23280 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
23281
23282         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
23283         code when we P/Invoke the first library in Windows.Forms, instead
23284         of when we first open the assembly.
23285
23286         * assembly.c: Drop the lookup from here.
23287
23288 2004-03-10  Martin Baulig  <martin@ximian.com>
23289
23290         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
23291         class for properties, fields and events.  Finally fixes #54945.
23292
23293 2004-03-10  Martin Baulig  <martin@ximian.com>
23294
23295         * metadata.c (mono_metadata_class_equal): New static function;
23296         checks whether two generic instances or two generic parameters are
23297         equal.
23298         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
23299         compare classes.        
23300
23301 2004-03-10  Martin Baulig  <martin@ximian.com>
23302
23303         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
23304
23305         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
23306         argument and write it into the `reflection_info' field.
23307
23308         * icall.c
23309         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
23310         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
23311
23312 2004-03-09  Jackson Harper  <jackson@ximian.com>
23313
23314         * char-conversions.h: use 8 bits for numeric data its all we need
23315         * icall.c: numeric data is only 8 bits now.
23316
23317 2004-03-09  Martin Baulig  <martin@ximian.com>
23318
23319         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
23320
23321         * class.c (init_properties, init_events): Initialize the new
23322         `parent' field.
23323
23324         * reflection.c (typebuilder_setup_properties): Likewise.
23325         (typebuilder_setup_events): Likewise.
23326
23327         * reflection.h (MonoEventInfo): Replaced `parent with
23328         `declaring_type' and `reflected_type'.
23329
23330         * icall.c (ves_icall_get_property_info): Distinguish between
23331         declaring and reflected type.
23332         (ves_icall_get_event_info): Likewise.
23333
23334 2004-03-09  Martin Baulig  <martin@ximian.com>
23335
23336         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
23337         (ves_icall_Type_GetField): Correctly set field->klass.
23338
23339 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
23340
23341         * loader.h: Fix warning.
23342
23343 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
23344
23345         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
23346         library routine if present.  Notice that it will still continue
23347         executing even if its missing, for those working on the Gtk#
23348         edition of Windows.Forms.
23349
23350         * assembly.c (do_mono_assembly_open): If loading the
23351         System.Windows.Forms call mono_loader_wini_init.
23352
23353 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
23354
23355         * class.h: Added MonoRemoteClass struct.
23356         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
23357         function for MonoStrings.
23358         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
23359         Added internal call for getting the proxy type.
23360         * marshal.c: Get the type of transparent proxies from its remote_class.
23361         Added methods that generate the IL for type checks and casts:
23362         mono_marshal_get_isinst, mono_marshal_get_castclass, 
23363         mono_marshal_get_proxy_cancast.
23364         * marshal.h: Declaration of the previous new methods.
23365         * object.c: Added new moethods for creating and updating MonoRemoteClass
23366         instances: mono_remote_class, mono_upgrade_remote_class, 
23367         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
23368         * verify.c: FIx transparent_proxy_fields layout.
23369         * appdomain.c: Bump corlib version.
23370
23371 2004-03-04  Jackson Harper  <jackson@ximian.com>
23372
23373         * icall.c: Add icall to access char conversion tables.
23374         * char-conversions.h: Character conversion tables.
23375         * Makefile.am: Add char-conversions.h private header file.
23376         
23377 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
23378
23379         * appdomain.c (unload_thread_main): Increase unloading timeout to
23380         10 sec as a temporary workaround for Nant problems.
23381
23382 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
23383
23384         * gc.c: Add checks for GC_enable and GC_disable.
23385
23386         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
23387         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
23388         (bug #54988).
23389         
23390 2004-02-27  Martin Baulig  <martin@ximian.com>
23391
23392         * reflection.c (mono_reflection_bind_generic_parameters): Take a
23393         `MonoReflectionType *' instead of a `MonoType *'.
23394
23395 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
23396
23397         * gc.c (run_finalize): Avoid finalizing the object representing the
23398         finalizer thread.
23399         (finalizer_thread): Fix warning.
23400
23401 2004-02-25  Martin Baulig  <martin@ximian.com>
23402
23403         * class.c (_mono_class_get_instantiation_name): Added `int offset'
23404         argument for nested types.
23405         (mono_class_create_generic): Added support for nested generictypes.
23406
23407         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
23408         `GList *nested'.
23409
23410         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
23411
23412         * reflection.c (method_encode_signature): Increase the minimum
23413         value of `size' from 10 to 11.
23414         (mono_reflection_bind_generic_parameters): Take `int type_argc'
23415         and `MonoType **types' arguments instead of the `MonoArray
23416         *types'; added `MonoType *nested_in'.  Recursively instantiate
23417         nested classes. 
23418
23419 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
23420
23421         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
23422         stack_overflow_ex members which are used by exception handling.
23423
23424         * appdomain.c (mono_runtime_init): Initialize the new members.
23425
23426         * gc.c (mono_gc_enable): New helper function.
23427         * gc.c (mono_gc_disable): New helper function.
23428
23429 2004-02-23  Martin Baulig  <martin@ximian.com>
23430
23431         * icall.c: I must have been really stupid - make it actually work
23432         this time ;-)
23433
23434 2004-02-23  Martin Baulig  <martin@ximian.com>
23435
23436         * loader.c (method_from_memberref): Only inflate the method if
23437         it's in another klass.
23438
23439 2004-02-23  Martin Baulig  <martin@ximian.com>
23440
23441         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
23442         (mono_class_init): If we're a generic instance and an interface,
23443         compute `class->interface_id'; also create `class->interfaces'
23444         here and inflate them.
23445
23446         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
23447         `ginst->is_open'.
23448         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
23449
23450         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
23451
23452 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
23453
23454         * reflection.c (method_encode_code): Improved the error message
23455         generated by the exception.
23456
23457 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23458
23459         * icall.c: Martin did not do what he said in the ChangeLog for
23460         2004-02-18, but put back the changes for properties and events.
23461         Commenting those changes out again and adding comment to bug #54518.
23462         
23463         * process.c: removed warning.
23464
23465 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
23466
23467         * marshal.c (emit_struct_conv): Print an error message instead of
23468         asserting when a type does not have the StructLayout attribute.
23469
23470 2004-02-20  Martin Baulig  <martin@ximian.com>
23471
23472         * reflection.c (mono_type_get_object): Also use the cache for
23473         generic instances.
23474         (mono_reflection_bind_generic_parameters): Always compute
23475         `ginst->ifaces'.        
23476
23477 2004-02-20  Martin Baulig  <martin@ximian.com>
23478
23479         * class.h (MonoGenericMethod): Removed `klass'.
23480
23481         * class.c (mono_class_inflate_generic_method): Added `MonoClass
23482         *klass' argument.
23483
23484 2004-02-20  Martin Baulig  <martin@ximian.com>
23485
23486         * reflection.c (method_encode_methodspec): Actually use the
23487         uninflated signature for the memberref.
23488
23489 2004-02-20  Martin Baulig  <martin@ximian.com>
23490
23491         * class.h (MonoGenericMethod): Removed `declaring'.
23492
23493         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
23494         is NULL, compute it here.
23495
23496 2004-02-20  Martin Baulig  <martin@ximian.com>
23497
23498         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
23499
23500         * metadata.c (mono_metadata_generic_inst_hash): New method.
23501         (mono_metadata_generic_inst_equal): New method.
23502
23503         * reflection.c (mono_reflection_bind_generic_parameters): Use the
23504         `klass->image->generic_inst_cache' cache to avoid creating
23505         duplicate MonoGenericInst's.
23506
23507         * class.c (mono_class_inflate_generic_type): Use the cache.
23508
23509 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
23510
23511         * object.c: fixed gc descriptor calculation for embedded valuetypes.
23512
23513 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23514
23515         * icall.c: added Socket.WSAIoctl icall.
23516
23517         * socket-io.[ch]: implemented
23518         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
23519
23520 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
23521
23522         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
23523
23524 2004-02-18  Urs C Muff  <umuff@quark.com>
23525
23526         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
23527         this work on PPC and other big-endian architectures.
23528
23529         * debug-mono-symfile.h: Prepended the names of all the `guint32'
23530         fields with an underscore to make sure they're only accessed by
23531         the read32() macro.
23532
23533 2004-02-18  Martin Baulig  <martin@ximian.com>
23534
23535         * icall.c: Put the klass->refclass changes back for methods and
23536         fields, but not for properties and events.  We're currently not
23537         distinguishing between DeclaringType and ReflectedType for
23538         properties and events, that's what caused the regressions.
23539
23540 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23541
23542         * object.c:
23543         (mono_async_result_new): the handle can be NULL.
23544
23545         * threadpool.c: Use an event instead of a semaphore, don't initialize
23546         it until needed. This saves quite a few semaphores from being created
23547         when using the threadpool.
23548
23549 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
23550
23551         * object.c (mono_string_is_interned_lookup): Fix interning of long
23552         strings. Fixes #54473.
23553
23554         * domain.c (ldstr_equal): Optimize if the two strings are equal.
23555
23556         * icall.c: Revert the klass->refclass changes since they introduce
23557         regressions (bug #54518).
23558
23559 2004-02-18  Martin Baulig  <martin@ximian.com>
23560
23561         * class.c (mono_class_init): If we're a generic instance and don't
23562         come from a TypeBuilder, inflate our members here.
23563         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
23564         (mono_class_create_generic): New public method.
23565         (mono_class_initialize_generic): Removed.
23566         (get_instantiation_name): Renamed to
23567         _mono_class_get_instantiation_name() and made it public.
23568
23569 2004-02-18  Martin Baulig  <martin@ximian.com>
23570
23571         * class.c (mono_class_inflate_generic_type): Clear the new
23572         instance's `nginst->klass' when inflating a generic instance.
23573         (mono_class_is_subclass_of): Added (basic) support for generic
23574         instances.
23575
23576 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
23577
23578         * appdomain.h, domain.c: use a MonoCodeManager instead of a
23579         MonoMempool to hold compiled native code.
23580
23581 2004-02-17  Martin Baulig  <martin@ximian.com>
23582
23583         * class.h (MonoDynamicGenericInst): Added `count_properties' and
23584         `properties'.
23585
23586         * reflection.c (mono_reflection_generic_inst_initialize): Added
23587         `MonoArray *properties' argument.
23588
23589         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
23590
23591 2004-02-17  Martin Baulig  <martin@ximian.com>
23592
23593         * icall.c (ves_icall_Type_GetFields): Renamed to
23594         ves_icall_Type_GetFields_internal() and added a
23595         `MonoReflectionType *rtype' argument; pass it to
23596         mono_field_get_object() to set the field's "reflected" type.
23597         (ves_icall_Type_GetConstructors): Likewise.
23598         (ves_icall_Type_GetEvents): Likewise.
23599         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
23600         argument; pass it to mono_method_get_object() to set the method's
23601         "reflected" type.       
23602
23603 2004-02-17  Martin Baulig  <martin@ximian.com>
23604
23605         * class.h (MonoDynamicGenericInst): New type.
23606         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
23607
23608         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
23609         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
23610         (ves_icall_MonoGenericInst_GetFields): New interncall.
23611
23612         * class.c (mono_class_from_generic): Don't call
23613         mono_class_initialize_generic() if this is a dynamic instance;
23614         ie. it's being created from a TypeBuilder.
23615         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
23616         `class->byval_arg.type'.
23617
23618         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
23619         to `inflate_method' and made static.
23620         (mono_reflection_inflate_field): Removed.
23621         (mono_reflection_generic_inst_initialize): New public method.
23622
23623         * reflection.h (MonoReflectionGenericInst): Removed `methods',
23624         `ctors' and `fields'; added `initialized'.
23625
23626 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
23627
23628         * debug-helpers.c (mono_method_full_name): Fix output for empty
23629         namespaces.
23630
23631 2004-02-12  Martin Baulig  <martin@ximian.com>
23632
23633         * class.h (MonoClassField): Added `MonoType *generic_type'.
23634
23635         * reflection.c (mono_image_get_fieldref_token): Added support for
23636         instantiated generic types.
23637         (field_encode_inflated_field): Removed.
23638         (mono_image_get_inflated_field_token): Removed.
23639         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
23640
23641         * reflection.h (MonoReflectionInflatedField): Removed.
23642
23643 2004-02-12  Martin Baulig  <martin@ximian.com>
23644
23645         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
23646         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
23647
23648         * reflection.c (mono_image_get_methodspec_token): Take a
23649         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
23650         (mono_image_create_token): Check whether we have a
23651         `method->signature->gen_method' and call
23652         mono_image_get_methodspec_token() if appropriate.
23653         (inflated_method_get_object): Removed.
23654         (mono_reflection_bind_generic_method_parameters): Return a
23655         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
23656         (mono_reflection_inflate_method_or_ctor): Likewise.
23657
23658         * reflection.h (MonoReflectionInflatedMethod): Removed.
23659
23660 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
23661
23662         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
23663         for custom valuetype marshalling.
23664
23665         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
23666
23667 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23668
23669         * icall.c: fixed WSAGetLastError_internal name.
23670
23671 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
23672
23673         * threads.c (mono_thread_attach): Allow this to be called multiple
23674         times for a thread.
23675         
23676         * threads.c (build_wait_tids): Do not wait for ourselves.
23677
23678         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
23679         appdomain list is empty.
23680
23681         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
23682         memory returned by mono_string_builder_to_utf16, since it points into
23683         managed memory. Thanks to Bernie Solomon for noticing this.
23684
23685         * icall.c: Add AppDomainSetup icalls.
23686
23687         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
23688
23689         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
23690         types.
23691
23692         * reflection.c (reflection_methodbuilder_to_mono_method): Save
23693         custom attributes to the method_aux struct. Also fix array indexes etc.
23694
23695         * loader.c (mono_method_get_param_names): Make dynamic case work again.
23696         
23697 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
23698
23699         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
23700         (both static and runtime) and reduce startup time.
23701
23702 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
23703
23704         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
23705         AsAny marshalling conversion instead of crashing.
23706
23707         * marshal.c: Fix warnings.
23708
23709 2004-02-09  Martin Baulig  <martin@ximian.com>
23710
23711         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
23712
23713         * reflection.h (MonoReflectionInflatedMethod): Removed the
23714         `declaring' field, it's now in the unmanaged MonoGenericMethod.
23715
23716         * reflection.c (method_encode_methodspec): Removed the `method'
23717         argument; we get it from `gmethod->declaring'.
23718         (inflated_method_get_object): Removed the `declaring' argument.
23719
23720 2004-02-09  Martin Baulig  <martin@ximian.com>
23721
23722         * class.h (MonoGenericMethod): New type.
23723         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
23724         `generic_method'.
23725
23726         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
23727         a `MonoGenericMethod *gen_method' one.
23728
23729         * class.c (mono_class_inflate_generic_type): Take an additional
23730         `MonoGenericMethod * argument.  This is only non-NULL if we're
23731         inflating types for a generic method.   
23732         (mono_class_inflate_generic_signature): Renamed to
23733         inflate_generic_signature() and made static; take a
23734         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
23735         (inflate_generic_header): Take a `MonoGenericMethod *' argument
23736         instead of a `MonoGenericInst *' one.
23737         (mono_class_inflate_generic_method): Likewise.
23738
23739         * reflection.c (encode_generic_method_sig): Take a
23740         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
23741         (method_encode_methodspec): Likewise.
23742         (inflated_method_get_object): Likewise. 
23743
23744         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
23745         field with a `MonoGenericMethod *gmethod' one.  
23746
23747 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
23748
23749         * class.h (mono_class_has_parent): add parens to expansion
23750         so you can ! this.
23751
23752 2004-02-08  Martin Baulig  <martin@ximian.com>
23753
23754         * image.h (MonoImage): Removed `generics_cache'.
23755
23756         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
23757         instead of a `MonoType *' argument; removed the `inflate_methods'
23758         argument.  Don't inflate methods here.
23759
23760         * loader.c (find_method): If it's a generic instance, call
23761         mono_class_init() on the `sclass->generic_inst->generic_type'.
23762
23763         * metadata.c (mono_type_size): Make this work on uninitialized
23764         generic instances; call it on the `ginst->generic_type's class.
23765
23766         * reflection.c (mono_reflection_bind_generic_parameters): Call
23767         mono_class_from_generic() to create the `ginst->klass'.
23768
23769 2004-02-08  Martin Baulig  <martin@ximian.com>
23770
23771         * class.h (MonoClass): Changed type of `generic_inst' from
23772         `MonoType *' to `MonoGenericInst *'.
23773
23774 2004-02-08  Martin Baulig  <martin@ximian.com>
23775
23776         * icall.c (ves_icall_Type_BindGenericParameters): Just call
23777         mono_type_get_object(), this is now creating a `MonoGenericInst'
23778         for MONO_TYPE_GENERICINST.
23779         (ves_icall_MonoGenericInst_GetParentType): Likewise.
23780         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
23781
23782         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
23783         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
23784         (inflated_method_get_object): Added `MonoClass *refclass' argument.
23785         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
23786         and reflected type.
23787
23788         * reflection.h (MonoReflectionInflatedMethod): Removed
23789         `declaring_type' and `reflected_type'.
23790
23791 2004-02-08  Martin Baulig  <martin@ximian.com>
23792
23793         * class.h (MonoGenericInst): Added `MonoType *parent' and
23794         `MonoType **ifaces'.
23795
23796         * reflection.h (MonoReflectionGenericInst): Removed `klass',
23797         `parent' and `interfaces'.
23798
23799         * reflection.c (mono_reflection_bind_generic_parameters): Take a
23800         `MonoType *' argument and return a `MonoType *'.
23801
23802         * icall.c
23803         (ves_icall_MonoGenericInst_GetParentType): New interncall.
23804         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
23805
23806 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
23807
23808         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
23809         valuetype marshalling.
23810
23811 2004-02-06  Martin Baulig  <martin@ximian.com>
23812
23813         * class.c
23814         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
23815         (my_mono_class_from_generic_parameter): Likewise.
23816
23817 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
23818
23819         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
23820         contents of the symbol files lazily.
23821
23822         * object.h (MonoThread): Add 'name' and 'name_len' fields.
23823
23824         * threads.h threads.c icall.c: New icalls for getting and setting the
23825         threads name.
23826
23827 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
23828
23829         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
23830         Raise an exception when the domain is not found.
23831
23832 2004-02-03  Martin Baulig  <martin@ximian.com>
23833
23834         * reflection.c (mono_image_get_methodspec_token): Use the
23835         uninflated signature; fixes gen-33.
23836
23837 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
23838
23839         * gc.c threads.c: Make the finalizer thread a normal managed thread so
23840         the finalizer code can use thread functionality.
23841
23842         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
23843         the finalizer thread.
23844
23845         * threads.c: Make some functions more robust.
23846
23847         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
23848
23849         * metadata.h: Add new marshalling conventions.
23850
23851         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
23852         stringbuilder marshalling. Fixes #53700.
23853
23854         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
23855
23856         * reflection.c (mono_image_get_type_info): Save declarative security
23857         info.
23858
23859         * reflection.c (mono_image_get_field_info): Handle uninitialized 
23860         unmanaged fields as well.
23861
23862         * appdomain.c: Bump corlib version.
23863
23864 2004-02-01  Martin Baulig  <martin@ximian.com>
23865
23866         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
23867         method type arguments.  
23868
23869 2004-01-30  Duncan Mak  <duncan@ximian.com>
23870
23871         * marshal.h: Add prototype for
23872         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
23873         and
23874         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
23875         fix the build.
23876
23877 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
23878
23879         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
23880         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
23881
23882 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
23883
23884         * marshal.c (mono_marshal_get_native_wrapper): Add support for
23885         custom marshalling of valuetypes.
23886
23887         * marshal.c: Fix some warnings.
23888
23889 2004-01-29  Martin Baulig  <martin@ximian.com>
23890
23891         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
23892         for generic method parameters.
23893
23894         * reflection.c (method_encode_methodspec): Write the uninflated
23895         signature into the methodspec table.
23896         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
23897         is always the uninflated method.
23898         (reflection_methodbuilder_to_mono_method): Copy the generic
23899         parameters from the MethodBuilder into `header->gen_params'.
23900
23901 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
23902
23903         * class.c (mono_class_from_generic_parameter): Fix warning.
23904
23905 2004-01-27  Martin Baulig  <martin@ximian.com>
23906
23907         * class.c (mono_class_from_generic_parameter): Don't create
23908         `klass->methods' here.  
23909
23910 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
23911
23912         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
23913         extension since it does not work with libraries named lib<FOO>.dll.so.
23914
23915 2004-01-25  Martin Baulig  <martin@ximian.com>
23916
23917         * class.c (mono_class_inflate_generic_type): Added support for
23918         MONO_TYPE_GENERICINST.
23919
23920         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
23921         inflate methods on open constructed types.      
23922
23923 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23924
23925         * object.c: fire ProcessExit event in the root AppDomain after running
23926         Main. Fixes bug #53299.
23927
23928 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
23929
23930         * socket-io.c: include the new socket-wrappers.h header.
23931         Use the wrappers instead of the unix socket functions to make the code
23932         more clear.
23933
23934 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
23935
23936         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
23937
23938         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
23939         Fixes #22532.
23940
23941 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
23942
23943         * reflection.c (mono_image_create_pefile): Handle the case when the
23944         entry point is not a MethodBuilder.
23945
23946         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
23947         field to ReflectionMethod since it is not allways a builder.
23948
23949         * reflection.c (type_get_fully_qualified_name): New helper function to
23950         return the fully qualified name of a type.
23951
23952         * reflection.c (encode_marshal_blob): Always emit the fully qualified
23953         type name for custom marshallers.
23954
23955         * reflection.c (mono_marshal_spec_from_builder): Ditto.
23956
23957         * class.c (mono_class_setup_vtable): If a parent class already 
23958         implements an interface, use the implementing methods from that class.
23959         Fixes #53148.
23960
23961 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23962
23963         * threadpool.c: just return instead of ExitThread to allow for thread
23964         clean up earlier.
23965
23966 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
23967
23968         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
23969         when closing resource modules.
23970
23971         * reflection.c (mono_image_create_pefile): Handle the case when the
23972         entry point is not a MethodBuilder.
23973
23974         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
23975         field to ReflectionMethod since it is not allways a builder.
23976
23977 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
23978
23979         * marshal.c (mono_marshal_get_managed_wrapper): 
23980         mono_marshal_alloc takes native int so CONV_I
23981         the arg for 64bits.
23982
23983 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
23984
23985         * reflection.c (fixup_cattrs): New function to fixup the methoddef
23986         tokens in the cattr table. Fixes #53108.
23987
23988 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23989
23990         * loader.c: don't trim ".dll" before looking up in the config file.
23991         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
23992
23993 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
23994
23995         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
23996         Return the module which contains the resource as well.
23997         (ves_icall_System_Reflection_Module_Close): New icall.
23998
23999         * appdomain.c: Bump corlib version number.
24000
24001         * image.c (mono_image_addref): New public function.
24002
24003         * assembly.c: Call mono_image_addref.
24004
24005         * reflection.c (mono_module_get_object): Increase reference count of 
24006         the image.
24007
24008         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
24009         Fixes #22532.
24010
24011         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
24012         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
24013         proper exceptions on DllImport problems.
24014
24015 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
24016
24017         * class.c, metadata.c: eliminate CSIZE macro.
24018
24019 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
24020
24021         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
24022         * object.h: Added async_callback field in MonoAsyncResult.
24023         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
24024         * verify.c: Added async_callback in MonoAsyncResult layout.
24025
24026 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
24027
24028         * reflection.c (mono_reflection_get_custom_attrs): Add support
24029         for Modules.
24030
24031 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
24032
24033         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
24034         marshalling.
24035         (mono_marshal_method_from_wrapper): Add null pointer check.
24036
24037 2004-01-16  Martin Baulig  <martin@ximian.com>
24038
24039         * debug-mono-symfile.h: Set version number to 36 and reflect
24040         latest symbol writer changes.
24041
24042 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
24043
24044         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
24045         multi-dimensional arrays.
24046         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
24047         (mono_class_from_mono_type): Use bounded_array_class_get.
24048         
24049         * class.c (mono_bounded_array_class_get): New function which takes
24050         a 'bounded' bool argument to distinguish vectors from one dimensional
24051         arrays.
24052
24053         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
24054         bounded_array_class_get if the array has bounds.
24055
24056         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
24057         Search modules loaded using AssemblyBuilder:AddModule as well.
24058
24059 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24060
24061         * appdomain.c: increased corlib version.
24062         * filewatcher.c: removed g_print.
24063         * icall.c:
24064         (get_property_info): only allocate what is actually requested.
24065         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
24066
24067 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24068
24069         * Makefile.am: added filewatcher.[ch]
24070         * filewatcher.[ch]: FileSystemWatcher runtime support.
24071         * icall.c: added new FSW icalls.
24072
24073 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
24074
24075         * string-icalls.c: fix stringbuilder regression as suggested by
24076         Iain McCoy <iain@mccoy.id.au>.
24077
24078 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
24079
24080         * process.c (process_read_stringtable_block): Recognize '007f' as
24081         a language neutral stringtable block.
24082
24083 2004-01-12  Patrik Torstensson
24084
24085         * object.h (MonoStringBuilder) : Changed layout to support our
24086         new stringbuilder class.
24087         * marshal.c: Change marshalling to support the new layout of 
24088         string builder.
24089         * appdomain.c: increased version number because new layout of
24090         string builder.
24091
24092 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
24093
24094         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
24095         assembly name as an string instead of an AssemblyName, since it is
24096         easier to extract info from it.
24097
24098         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
24099         the culture subdirectories too. Fixes #52231.
24100
24101 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24102
24103         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
24104         It takes 2 new parameters with an optional name for the method to look
24105         for and case ignoring info.
24106
24107         * threadpool.c: removed unused variable.
24108
24109 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24110
24111         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
24112         It takes 2 new parameters with an optional name for the property to look
24113         for and case ignoring info.
24114         Fixes bug #52753.
24115
24116 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
24117
24118         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
24119         Fix #52451.
24120
24121 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24122
24123         * appdomain.c:
24124         * assembly.c: escape the uri before passing it to g_filename_from_uri.
24125         Fixes bug #52630.
24126
24127 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
24128
24129         * reflection.c: Add support for more than one unmanaged resource.
24130
24131         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
24132         in field->def_value, as done in all other cases.
24133
24134         * reflection.c (mono_reflection_get_custom_attrs): Add support for
24135         TypeBuilders.
24136
24137         * reflection.c (mono_reflection_create_runtime_class): Remove 
24138         errorneous assignment to klass->element_class, since it is already
24139         done in mono_reflection_setup_internal_class.
24140
24141 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24142
24143         * gc.c: added missing LeaveCriticalSection.
24144         * icall.c: indented a couple of lines.
24145         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
24146         if we call EndInvoke inside a callback. Fixes bug #52601.
24147
24148 2004-01-07  Martin Baulig  <martin@ximian.com>
24149
24150         * mono-debug-debugger.h
24151         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
24152
24153 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
24154
24155         * appdomain.c: Use messages in NotImplementedException.
24156
24157         * exception.c (mono_get_exception_not_implemented): Now this takes
24158         a message argument.
24159
24160         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
24161         exception instead of g_asserting an aborting when something is not
24162         implemented.
24163
24164         Add some inline docs.
24165
24166 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
24167
24168         * reflection.h: Update after changes to object layout.
24169
24170         * reflection.c: Implement saving of unmanaged aka win32 resources.
24171
24172         * appdomain.c: Bump version number.
24173
24174         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
24175         Handle missing domains gracefully.
24176
24177 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
24178
24179         * file-io.c : On Windows, there are much more invalid_path_chars.
24180
24181 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
24182
24183         * class.h, object.c: prepare for GetType () speedup.
24184
24185 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
24186
24187         * profiler.c: workaround for --profile null reference exception on
24188           cygwin. Patch by Patrik Torstensson.
24189
24190 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
24191
24192         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
24193         make work for unaligned access.
24194
24195 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
24196
24197         * class.c: small cleanup (class->fields [i] -> field).
24198         * image.c: check address of metadata is valid.
24199
24200 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
24201
24202         * assembly.h assembly.c (mono_assembly_loaded): New public function to
24203         search the list of loaded assemblies.
24204
24205         * reflection.c (mono_reflection_type_from_name): Use 
24206         mono_assembly_loaded instead of mono_image_loaded.
24207
24208         * reflection.c: Fix warnings.
24209
24210 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
24211
24212         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
24213         is dynamic. This is needed since an assembly can contain both dynamic and
24214         non-dynamic images.
24215
24216         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
24217         assembly->dynamic.
24218
24219         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
24220
24221         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
24222         to store modules loaded using AddModule.
24223
24224         * reflection.c (mono_image_fill_file_table): Generalize this so it works
24225         on Modules.
24226
24227         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
24228
24229         * reflection.c (mono_image_fill_export_table_from_module): New function to
24230         fill out the EXPORTEDTYPES table from a module.
24231
24232         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
24233         into a separate function. Also handle loaded non-dynamic modules.
24234
24235         * reflection.c (mono_image_basic_init): Fix memory allocation.
24236
24237         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
24238
24239         * assembly.c (mono_assembly_load_references): Make this public.
24240
24241 2003-12-19  Martin Baulig  <martin@ximian.com>
24242
24243         * class.c (mono_class_initialize_generic): Made this static, take
24244         a `MonoGenericInst *' instead of a `MonoClass *'.
24245         (mono_class_from_generic): Call mono_class_initialize_generic()
24246         unless we're already initialized or being called from
24247         do_mono_metadata_parse_generic_inst().
24248
24249         * class.h (MonoGenericInst): Added `initialized' and
24250         `init_pending' flags.
24251
24252         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
24253         `mono_class_init (gklass)' or mono_class_initialize_generic()
24254         here; set `generic_inst->init_pending' while parsing the
24255         `type_argv'.
24256
24257 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
24258
24259         * locales.c: include string.h for memxxx prototypes
24260
24261 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
24262
24263         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
24264         constructor when accessing literal fields.
24265
24266 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
24267
24268         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
24269
24270         * reflection.c (assembly_add_resource_manifest): New function to fill
24271         the MANIFESTRESOURCE table.
24272
24273         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
24274
24275         * reflection.h: Update to changes in class layout.
24276
24277         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
24278         Reenable call to mono_runtime_is_shutting_down ().
24279
24280         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
24281         determine if the runtime is shutting down.
24282
24283 2003-12-16  Jackson Harper <jackson@ximian.com>
24284
24285         * icall.c: comment out call to mono_runtime_is_shutting_down to
24286         fix build.
24287         
24288 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
24289
24290         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
24291         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
24292
24293 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
24294
24295         * reflection.c: move definition of swap_with_size
24296         to before its first call
24297
24298 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
24299
24300         * appdomain.c (mono_runtime_is_shutting_down): New public function.
24301
24302         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
24303         icall.
24304
24305         * object.c: Fix warnings.
24306
24307         * icall.c (ves_icall_Type_Get...): Only consider inherited static
24308         members if FlattenHierarchy is set.
24309
24310         * reflection.c (mono_image_add_decl_security): New function to emit
24311         declarative security.
24312
24313         * reflection.h reflection.c: Add support for declarative security.
24314
24315         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
24316         
24317 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
24318
24319         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
24320         
24321         * appdomain.c verify.c: Moved corlib version checking into its own
24322         function in appdomain.c since it needs to create vtables etc.
24323
24324 2003-12-13  Patrik Torstensson <p@rxc.se>
24325
24326         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
24327         instead of unwrapped server.
24328
24329 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
24330
24331         * verify.c (check_corlib): Fix field index.
24332
24333 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
24334
24335         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
24336         GetGacPath icall.
24337
24338 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
24339
24340         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
24341         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
24342         cope with sizeof(size_t) != sizeof(guint32).
24343
24344 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24345
24346         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
24347         in case of failure.
24348
24349 2003-12-10  Mark Crichton <crichton@gimp.org>
24350
24351         * icall.c: removed the GetNonZeroBytes.  We now handle this case
24352         in managed code.
24353
24354         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
24355
24356 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
24357
24358         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
24359         marked as deleted.
24360
24361 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
24362
24363         * verify.c (check_corlib): Handle the case when the version field is 
24364         initialized by a static constructor.
24365
24366 2003-12-08  Patrik Torstensson  <p@rxc.se>
24367
24368     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
24369
24370 2003-12-08  Martin Baulig  <martin@ximian.com>
24371
24372         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
24373         a MonoReflectionGenericParameter, also take the parameter index
24374         and name as arguments.
24375         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
24376         (ves_icall_MonoGenericParam_initialize): New interncall.
24377         (ves_icall_Type_make_byref_type): New interncall.
24378
24379         * reflection.h (MonoReflectionGenericParam): Derive from
24380         MonoReflectionType, not just from MonoObject.  Added `refobj' and
24381         `index' fields.
24382
24383         * reflection.c (mono_reflection_define_generic_parameter): Create
24384         and return a new MonoReflectionGenericParam; don't initialize the
24385         constraints here.
24386         (mono_reflection_initialize_generic_parameter): New public method;
24387         initializes the constraints and creates the `param->pklass'.
24388
24389 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
24390
24391         * reflection.h reflection.c: Use the new fields 'num_types', 
24392         'num_fields' and 'num_methods' to track the number of types etc.
24393
24394         * verify.c (check_corlib): Check corlib version number.
24395
24396 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
24397
24398         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
24399         function works on all methods.
24400
24401 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
24402
24403         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
24404         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
24405         the custom_type_info flag of the transparent proxy.
24406         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
24407         objects that supports IRemotingTypeInfo.
24408         * object.h: Added custom_type_info field in transparent proxy.
24409
24410 2003-12-06  Martin Baulig  <martin@ximian.com>
24411
24412         * class.c (mono_class_create_from_generic): Removed.
24413         (mono_class_from_generic): Check `ginst->klass' before doing
24414         anything else.  This is important to fully support "recursive"
24415         generic types.
24416
24417         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
24418         empty `generic_inst->klass' before doing anything else.
24419
24420 2003-12-06  Dick Porter  <dick@ximian.com>
24421
24422         * verify.c: 
24423         * object.h:
24424         * icall.c:
24425         * locales.c: Use C structs to access class fields.  Don't do a
24426         conversion between MonoString and UChar because both are
24427         platform-endian UTF-16.  Compare now takes startindex and count
24428         parameters.  Add a char overload for IndexOf.  Speed up the
24429         invariant string IndexOf.
24430
24431 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
24432
24433         * Makefile.am (monosn_LDADD): Fix parallel build.
24434
24435 2003-12-04  Martin Baulig  <martin@ximian.com>
24436
24437         * icall.c
24438         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
24439         (ves_icall_Type_make_array_type): New interncall.       
24440
24441 2003-12-04  Martin Baulig  <martin@ximian.com>
24442
24443         * locales.c: also change it in the !HAVE_ICU case.
24444
24445 2003-12-04  Dick Porter  <dick@ximian.com>
24446
24447         * icall.c:
24448         * locales.c: construct_compareinfo is now in CompareInfo, not
24449         CultureInfo.
24450
24451 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
24452
24453         * image.c (mono_image_load_file_for_image): Cache loaded images in the
24454         image->files array.
24455
24456         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
24457         table as well.
24458
24459         * assembly.c (mono_assembly_load_references): Only load references
24460         once.
24461
24462         * class.c (mono_class_from_name): Avoid linear search of the 
24463         EXPORTEDTYPE table.
24464
24465         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
24466
24467 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
24468
24469         * image.h (MonoImage): Add 'field_cache' field.
24470
24471         * loader.c (mono_field_from_token): Cache field lookups.
24472         
24473         * reflection.c (mono_module_get_object): Fix name property.
24474
24475         * icall.c (ves_icall_get_enum_info): Update after changes to 
24476         mono_metadata_get_constant_index ().
24477
24478         * icall.c: Get rid of get_type_info icall, use a separate icall for
24479         each type property to avoid needless memory allocations. Fixes #51514.
24480
24481         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
24482         to avoid needless binary searches.
24483
24484         * class.c (class_compute_field_layout): Move the initialization of
24485         field->def_value to mono_class_vtable ().
24486
24487         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
24488         non-corlib types.
24489
24490         * object.c (mono_object_allocate): Make it inline.
24491
24492         * object.c (mono_object_allocate_spec): Make it inline.
24493         
24494 2003-12-02  Dick Porter  <dick@ximian.com>
24495
24496         * locales.c (create_NumberFormat): NumberFormatInfo construction.
24497         Patch by Mohammad DAMT (mdamt@cdl2000.com).
24498
24499 2003-12-01  Dick Porter  <dick@ximian.com>
24500
24501         * threads.c: Fix signature and call in CreateMutex and
24502         CreateEvent.
24503
24504 2003-12-01  Dick Porter  <dick@ximian.com>
24505
24506         * icall.c: 
24507         * locales.c: Implement string compares and searching
24508
24509         * object.h: Add extra Thread field
24510
24511 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
24512
24513         * reflection.c (fixup_method): Add support for MonoCMethod.
24514
24515 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
24516
24517         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
24518
24519         * reflection.c (assembly_name_to_aname): Allow extra characters in
24520         assembly names. Fixes #51468.
24521
24522 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
24523
24524         * exception.c (mono_exception_from_name_domain): New helper function.
24525
24526         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
24527         exception object in the correct domain.
24528
24529         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
24530         formatting + make a copy a the input data.
24531
24532         * loader.c (mono_get_method_from_token): Methods which contain
24533         native code do not have entries in the ImplMap.
24534
24535         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
24536         Thanks to Gonzalo for spotting this.
24537         
24538         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
24539         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
24540
24541         * assembly.h (mono_assembly_load_from): Split the second part of 
24542         assembly loading into a new public function.
24543
24544         * exception.h (mono_get_exception_bad_image_format): New function.
24545
24546 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
24547
24548         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
24549         Enumerate all modules inside a dynamic assembly. Fixes #51293.
24550         
24551         * icall.c: Add new icall for creating dynamic methods.
24552
24553         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
24554
24555         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
24556
24557         * reflection.c (mono_reflection_create_dynamic_method): New icall to
24558         create a dynamic method.
24559
24560         * reflection.c (resolve_object): New helper function.
24561
24562         * reflection.c: Generalize ReflectionMethodBuilder and the functions
24563         which manipulate it so they can also work on dynamic methods.
24564
24565         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
24566         creating the MonoReflectionMethodAux structure if it is not needed.
24567         
24568         * reflection.h verify.c: Update after changes to object layout.
24569
24570         * reflection.c (method_builder_encode_signature): Fix compilation on
24571         gcc 2.95.x.
24572
24573 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
24574
24575         * appdomain.h: Added support for context static fields. Added static_data
24576           field to MonoAppContext and renamed thread_static_fields to a more
24577           generic special_static_fields in MonoAppDomain, since it can now contain
24578           context static fields.
24579         * domain.c: Updated hashtable name.
24580         * object.c: Replaced field_is_thread_static() for a more generic
24581           field_is_special_static() which also checks for context static attribute.
24582           In mono_class_vtable(), added support for static context fields.
24583         * threads.c: Changed methods that manage thread static fields to more
24584           generic methods so they can be reused both for thread and context static
24585           data.
24586         * threads.h: Declared some new methods.
24587
24588 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
24589
24590         * reflection.h: Update after changes to the managed types.
24591
24592         * reflection.c (encode_custom_modifiers): New helper function.
24593
24594         * reflection.c (method_encode_signature): Emit custom modifiers.
24595
24596         * reflection.c (field_encode_signature): Emit custom modifiers.
24597
24598 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
24599
24600         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
24601
24602         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
24603         implementation.
24604
24605         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
24606         icall.
24607
24608         * object.c (mono_field_get_value_object): New function.
24609
24610         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
24611         specific.
24612
24613 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
24614
24615         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
24616         return a preallocated out-of-memory exception instance.
24617
24618         * object.c (out_of_memory): Use the new function.
24619
24620         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
24621         flag is before the custom modifiers. Fixes #49802.
24622
24623 2003-11-16  Martin Baulig  <martin@ximian.com>
24624
24625         * class.c (mono_class_is_open_constructed_type): Implemented the
24626         MONO_TYPE_GENERICINST case.
24627
24628 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
24629
24630         * assembly.c (mono_assembly_fill_assembly_name): New function to
24631         fill out the MonoAssemblyName structure.
24632         (mono_assembly_open): Use the new function.
24633
24634         * icall.c (fill_reflection_assembly_name): New helper function.
24635
24636         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
24637         new function.
24638
24639         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
24640
24641 2003-11-15  Martin Baulig  <martin@ximian.com>
24642
24643         * class.c (mono_class_is_open_constructed_type): New public
24644         function; checks whether a type is an open constructed type,
24645         ie. whether it still contains type parameters.
24646         (mono_class_inflate_generic_type): If we're a type parameter and
24647         the inflated type is also a MONO_TYPE_(M)VAR, return the original
24648         type.
24649
24650         * class.h (MonoGenericInst): Added `guint32 is_open'.
24651
24652         * loader.c (method_from_methodspec): Check whether we're an open
24653         or closed constructed type and set `ginst->is_open'.
24654
24655         * reflection.c (mono_reflection_bind_generic_parameters): Check
24656         whether we're an open or closed constructed type and set
24657         `ginst->is_open'.
24658         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
24659         from open constructed types.
24660
24661 2003-11-15  Martin Baulig  <martin@ximian.com>
24662
24663         * reflection.c (mono_reflection_bind_generic_parameters): If we're
24664         a generic instance (instead of a generic type declaration) with
24665         unbound generic parameters, bind them to our actual types.
24666
24667 2003-11-14  Martin Baulig  <martin@ximian.com>
24668
24669         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
24670
24671         * reflection.c (mono_reflection_bind_generic_parameters): If we're
24672         an interface type, populate `res->interfaces' with instantiated
24673         versions of all the interfaces we inherit.
24674
24675 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
24676
24677         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
24678         when MONO_PATH is set but doesn't contain the install dir.
24679
24680 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24681
24682         * icall.c:
24683         (ves_icall_Type_GetInterfaces): don't return an interface twice when
24684         it's also implemented in base classes. Fixes bug #50927.
24685
24686 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
24687
24688         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
24689         if this method is called from a finalizer. Fixes #50913.
24690
24691 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
24692
24693         * threads.c: Implement VolatileRead/VolatileWrite
24694
24695         * icall.c: Add new icalls for VolatileRead/VolatileWrite
24696
24697 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
24698
24699         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
24700         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
24701         2.95.3.
24702
24703         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
24704         from Peter Ross (pro@missioncriticalit.com).
24705         
24706 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
24707
24708         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
24709
24710 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
24711
24712         * assembly.c (mono_assembly_load_references): Disable check because it
24713         triggers on older corlibs which lots of people have.
24714
24715 2003-11-12  Jackson Harper  <jackson@ximian.com>
24716
24717         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
24718         load corlib.dll if mscorlib.dll is not found.
24719         * assembly.h: Remove corlib name define.
24720         * class.c:
24721         * domain.c:
24722         * image.c: Change corlib name to mscorlib.
24723         
24724 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
24725
24726         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
24727
24728 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
24729
24730         * appdomain.h: Added loader_optimization here to sync with the C#
24731         code, and add disallow_binding_redirects field.
24732
24733 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
24734
24735         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
24736
24737         * reflection.c (mono_image_build_metadata): Fix crash on modules
24738         with no types.
24739
24740         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
24741
24742         * icall.c (ves_icall_get_method_info): Return callingConvention as
24743         well.
24744
24745         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
24746         namespaces from the EXPORTEDTYPE table as well.
24747
24748         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
24749         from all modules inside the assembly.
24750         
24751 2003-11-11  Martin Baulig  <martin@ximian.com>
24752
24753         * reflection.c (mono_reflection_bind_generic_parameters): Make
24754         this work for interfaces.
24755
24756 2003-11-11  Martin Baulig  <martin@ximian.com>
24757
24758         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
24759
24760 2003-11-11  Martin Baulig  <martin@ximian.com>
24761
24762         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
24763         "MonoInflatedMethod" and "MonoInflatedCtor".
24764
24765 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
24766
24767         * reflection.c (resolution_scope_from_image): Use the assembly table
24768         from the manifest module, since other modules don't have it.
24769
24770         * debug-helpers.c (mono_type_full_name): New helper function.
24771
24772         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
24773
24774         * image.c (mono_image_load_file_for_image): New public function which
24775         is a replacement for the load_file_for_image in class.c.
24776
24777         * assembly.c (mono_assembly_load_module): A wrapper for the function
24778         above which does assembly association and reference loading too.
24779
24780         * class.c (mono_class_from_name): Call mono_assembly_load_module.
24781
24782 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24783
24784         * appdomain.c: not all of the attributes for the full assembly name
24785         are required and the order doesn't matter. Fixes bug #50787.
24786
24787 2003-11-10  Dick Porter  <dick@ximian.com>
24788
24789         * locales.c: Use platform-endian UTF16
24790
24791 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
24792
24793         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
24794         
24795 2003-11-10  Martin Baulig  <martin@ximian.com>
24796
24797         * metadata.c
24798         (mono_metadata_load_generic_params): Make this actually work.
24799
24800         * reflection.c (mono_reflection_bind_generic_parameters): If our
24801         parent is a generic instance, pass all the `types' to it, no
24802         matter whether it has the same number of type parameters or not.
24803
24804 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
24805
24806         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
24807
24808         * assembly.c (mono_assembly_load_references): Move the image<->assembly
24809         assignment code to this function so it gets called recursively for all
24810         modules.
24811
24812         * image.c (load_modules): Remove the assembly assignment since it is
24813         now done by mono_assembly_load_references.
24814         
24815         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
24816         Add 'module' argument.
24817         (mono_module_get_types): New helper function.
24818         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
24819
24820 2003-11-08  Martin Baulig  <martin@ximian.com>
24821
24822         * class.c (mono_class_inflate_generic_method): Interface method
24823         don't have a header.
24824
24825         * reflection.c (mono_image_get_methodspec_token): Take an
24826         additional `MonoGenericInst *' argument instead of reading it from
24827         the header; this is necessary to support interfaces.
24828         (mono_image_create_token): Pass the `MonoGenericInst *' from the
24829         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
24830         (inflated_method_get_object): Take an additional `MonoGenericInst *'
24831         argument.
24832
24833         * reflection.h (MonoReflectionInflatedMethod): Added
24834         `MonoGenericInst *ginst'.
24835
24836 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
24837
24838         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
24839
24840 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
24841
24842         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
24843
24844 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
24845
24846         * reflection.c 
24847         (reflection_methodbuilder_from_method_builder):
24848         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
24849         initialize a ReflectionMethodBuilder structure.
24850         (mono_image_get_methodbuilder_token):
24851         (mono_image_get_ctorbuilder_token): New functions to emit memberref
24852         tokens which point to types in another module inside the same assembly.
24853
24854         * reflection.c: Use the new helper functions.
24855         
24856         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
24857
24858         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
24859         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
24860
24861         * reflection.c (resolution_scope_from_image): Emit a moduleref if
24862         neccesary.
24863
24864         * reflection.c (mono_image_build_metadata): Emit metadata only for the
24865         current module. Emit the manifest only for the main module.
24866
24867         * reflection.c (mono_image_create_token): Add assertion when a 
24868         memberref needs to be created.
24869
24870         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
24871
24872         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
24873         larger buffer for the custom attribute blob. Fixes #50637.
24874         
24875 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24876
24877         * threadpool.c: notify listener on async processing handles after
24878         invoking the async callback. Thanks to Zoltan.
24879
24880 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
24881
24882         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
24883         avoid code duplication.
24884
24885         * reflection.h (MonoDynamicImage): New type which is currently unused,
24886         but will be used through the ref.emit code in place of 
24887         MonoDynamicAssembly.
24888
24889         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
24890         object layout.
24891
24892         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
24893         a MonoDynamicImage instead of just a MonoImage.
24894         
24895         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
24896         icalls to ModuleBuilder but keep their semantics, so they will work
24897         with moduleb->assemblyb. This will change later.
24898         
24899 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
24900
24901         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
24902         object layout.
24903
24904         * reflection.c (mono_image_build_metadata): Avoid creation of a default
24905         main module, since it is now done by the managed code.
24906
24907 2003-11-03  Martin Baulig  <martin@ximian.com>
24908
24909         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
24910         `ginst->klass' here.
24911         (method_encode_methodspec): Don't use the `ginst->generic_method's
24912         klass if it's a generic instance, use `ginst->klass' in this case.
24913
24914 2003-11-03  Martin Baulig  <martin@ximian.com>
24915
24916         * reflection.c (mono_image_get_generic_method_param_info):
24917         Removed, use mono_image_get_generic_param_info() instead.
24918         (mono_image_get_type_info): Write the GenericParam table before
24919         the Method table.  This is neccessary because in the GenericParam
24920         table, type parameters of the class (ie. '!0' etc.) must come
24921         before the ones from its generic methods (ie. '!!0' etc).
24922
24923 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
24924
24925         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
24926
24927 2003-11-02  Martin Baulig  <martin@ximian.com>
24928
24929         * reflection.c (create_generic_typespec): Take a
24930         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
24931         the generic parameters from it.
24932
24933 2003-11-02  Martin Baulig  <martin@ximian.com>
24934
24935         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
24936         instead of a `MonoClassField *' since we just need the type.
24937         (create_generic_typespec): New static function.  Creates a
24938         TypeSpec token for a generic type declaration.
24939         (mono_image_get_generic_field_token): New static function.
24940         (mono_image_create_token): If we're a FieldBuilder in a generic
24941         type declaration, call mono_image_get_generic_field_token() to get
24942         the token.
24943
24944 2003-11-02  Martin Baulig  <martin@ximian.com>
24945
24946         * reflection.h
24947         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
24948         `MonoReflectionGenericInst *declaring_type' and
24949         `MonoReflectionGenericInst *reflected_type' fields.
24950
24951         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
24952         `MonoReflectionGenericInst *declaring_type' and a
24953         `MonoReflectionGenericInst *reflected_type' argument instead of a
24954         single `MonoReflectionGenericInst *type' one.  Set
24955         `res->declaring_type' and `res->reflected_type' from them.
24956         (mono_reflection_inflate_field): Likewise.      
24957
24958 2003-11-02  Martin Baulig  <martin@ximian.com>
24959
24960         * class.c (mono_class_setup_vtable): Don't store generic methods
24961         in the vtable.  
24962
24963 2003-11-02  Martin Baulig  <martin@ximian.com>
24964
24965         * reflection.h (MonoReflectionGenericInst): Added
24966         `MonoReflectionType *declaring_type'.
24967
24968         * reflection.c (mono_reflection_bind_generic_parameters): Use
24969         `if (tb->parent)' instead of `klass->parent'.
24970
24971 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
24972
24973         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
24974         with an empty ASSEMBLY table.
24975
24976         * reflection.c (mono_image_build_metadata): Avoid using the same loop
24977         variable in the inner and outer loops.
24978
24979 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
24980
24981         * metadata.h (mono_metadata_make_token): Put parentheses around macro
24982         argument.
24983
24984         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
24985         
24986         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
24987         icalls. Instead, do everything in managed code. This is needed since
24988         it is hard to restore the original domain etc. in unmanaged code in the
24989         presence of undeniable exceptions.
24990
24991         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
24992         New icalls to push and pop appdomain refs.
24993
24994 2003-10-31  Martin Baulig  <martin@ximian.com>
24995
24996         * class.c (inflate_generic_type): Renamed to
24997         mono_class_inflate_generic_type() and made it public.
24998
24999         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
25000         New interncall.
25001
25002         * loader.c (mono_field_from_memberref): Also set the retklass for
25003         typespecs.
25004
25005         * fielder.c (mono_image_get_inflated_field_token): New static
25006         method; creates a metadata token for an inflated field.
25007         (mono_image_create_token, fixup_method): Added support for
25008         "MonoInflatedField".
25009         (fieldbuilder_to_mono_class_field): New static function.
25010         (mono_reflection_inflate_field): New public function.
25011
25012         * reflection.h
25013         (MonoReflectionGenericInst): Added `MonoArray *fields'.
25014         (MonoReflectionInflatedField): New typedef.     
25015
25016 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
25017
25018         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
25019         for Solaris and other platforms without s6_addr16
25020
25021 2003-10-30  Martin Baulig  <martin@ximian.com>
25022
25023         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
25024         argument instead of two.
25025         (mono_class_inflate_generic_signature): Likewise.
25026         (inflate_generic_header): Likewise.
25027         (mono_class_inflate_generic_method): Likewise.  In addition, if
25028         `ginst->klass' is set, it becomes the new `method->klass'.
25029
25030         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
25031         field.
25032
25033         * reflection.c (encode_generic_method_sig): Write a 0xa as the
25034         first byte. [FIXME]
25035         (method_encode_methodspec): If we have generic parameters, create
25036         a MethodSpec instead of a MethodRef.
25037         (fixup_method): Added support for "MonoInflatedMethod" and
25038         "MonoInflatedCtor".
25039         (mono_image_create_token): Added support for "MonoInflatedMethod"
25040         and "MonoInflatedCtor".
25041         (inflated_method_get_object): New static function; returns a
25042         managed "System.Reflection.MonoInflatedMethod" object.
25043         (mono_reflection_bind_generic_method_parameters): Return a
25044         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
25045         (mono_reflection_inflate_method_or_ctor): Likewise.
25046         (mono_image_get_generic_method_param_info): Initialize unused
25047         fields to zero.
25048         (mono_image_get_generic_param_info): Likewise.
25049
25050         * reflection.h (MonoReflectionInflatedMethod): New public
25051         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
25052         "S.R.MonoInflatedCtor" classes.
25053
25054         * loader.c (method_from_memberref): If we're a TypeSpec and it
25055         resolves to a generic instance, inflate the method.
25056
25057 2003-10-28  Dick Porter  <dick@ximian.com>
25058
25059         * object.c (mono_runtime_run_main): Convert command-line arguments
25060         into utf8, falling back to the user's locale encoding to do so.
25061
25062 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
25063
25064         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
25065         at this time.
25066
25067         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
25068
25069         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
25070         up icalls at method definition time. Partially fixes #33569.
25071
25072 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
25073
25074         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
25075         marshalling of arrays. Fixes #50116.
25076
25077         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
25078
25079         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
25080         points to a vtable in the dying appdomain.
25081
25082         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
25083         listeners into unmanaged code inside the lock.
25084
25085         * object.c (mono_class_vtable): Turn off typed allocation in non-root
25086         domains and add some comments.
25087
25088 2003-10-25  Martin Baulig  <martin@ximian.com>
25089
25090         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
25091
25092         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
25093
25094         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
25095         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
25096         currently parsing.  Create the generic class and store it in
25097         `generic_inst->klass' before parsing the type arguments.  This is
25098         required to support "recursive" definitions; see mcs/tests/gen-23.cs
25099         for an example.
25100         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
25101         to support recursive typespec entries.
25102
25103         * class.c (mono_class_setup_parent): If our parent is a generic
25104         instance, we may get called before it has its name set.
25105         (mono_class_from_generic): Splitted into
25106         mono_class_create_from_generic() and mono_class_initialize_generic().
25107
25108 2003-10-25  Martin Baulig  <martin@ximian.com>
25109
25110         * icall.c (ves_icall_Type_BindGenericParameters): Return a
25111         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
25112         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
25113         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
25114
25115         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
25116         (create_typespec): Likewise.
25117         (mono_reflection_bind_generic_parameters): Return a
25118         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
25119         (mono_reflection_inflate_method_or_ctor): New public function.
25120
25121         * reflection.h (MonoReflectionGenericInst): New typedef.        
25122
25123 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
25124
25125         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
25126         inside the domain lock. Fixes #49993.
25127         
25128         * object.c (mono_class_vtable): When typed allocation is used, 
25129         allocate vtables in the GC heap instead of in the mempool, since the
25130         vtables contain GC descriptors which are used by the collector even
25131         after the domain owning the mempool is unloaded.
25132
25133         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
25134
25135         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
25136         reflect what it does. Also invalidate mempools instead of freeing
25137         them if a define is set.
25138
25139         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
25140         of the appdomain.
25141         
25142         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
25143         hold the finalizable objects in this domain.
25144
25145         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
25146         appdomain.
25147
25148         * appdomain.c (mono_domain_set): New function to set the current
25149         appdomain, but only if it is not being unloaded.
25150
25151         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
25152         appdomain which is being unloaded.
25153         
25154         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
25155         unloading of the root appdomain.
25156
25157         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
25158         icall to execute a method in another appdomain. Intended as a 
25159         replacement for InternalSetDomain, which can confuse the code 
25160         generation in the JIT.
25161
25162         * appdomain.c (mono_domain_is_unloading): New function to determine
25163         whenever an appdomain is unloading.
25164
25165         * appdomain.c (mono_domain_unload): New function to correctly unload
25166         an appdomain.
25167
25168         * assembly.c (mono_assembly_load_references): Check that an assembly
25169         does not references itself.
25170
25171         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
25172         domain manually, it asks the finalizer thread to do it, then waits for
25173         the result. Also added a timeout.
25174
25175         * icall.c: Register the new icalls.
25176
25177         * threads.h threads.c: Export the mono_gc_stop_world and 
25178         mono_gc_start_world functions.
25179         
25180         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
25181         function to fill out the mempool with 0x2a.
25182
25183 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
25184
25185         * reflection.h (MonoReflectionMethodAux): New structure to store
25186         information which is rarely used, thus is not in the MonoMethod
25187         structure.
25188
25189         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
25190         store the aux info.
25191
25192         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
25193         and marshalling info into the aux structure.
25194
25195         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
25196         from the aux structure.
25197
25198         * loader.c (mono_method_get_param_names): Retrieve the param names from
25199         the aux structure.
25200         
25201 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
25202
25203         * exception.h exception.c: Add AppDomainUnloadedException && fix 
25204         warning.
25205
25206 2003-10-21  Dick Porter  <dick@ximian.com>
25207
25208         * socket-io.c
25209         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
25210         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
25211
25212 2003-10-21  Martin Baulig  <martin@ximian.com>
25213
25214         * reflection.c (mono_reflection_bind_generic_parameters):
25215         `klass->parent' is NULL for interfaces.
25216
25217 2003-10-21  Martin Baulig  <martin@ximian.com>
25218
25219         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
25220
25221 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
25222
25223         * exception.c (mono_exception_from_name_msg): New helper function for
25224         creating exceptions and initializing their message field.
25225
25226         * exception.c: Simplify functions using the new helper.
25227
25228         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
25229         New function.
25230
25231         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
25232         mono_raise_exception, since otherwise gcc doesn't generate the function
25233         epilog for raise_exception, confusing the stack unwinding in the JIT.
25234         Fixes #45043.
25235
25236         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
25237         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
25238         Fixes #49499.
25239
25240 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25241
25242         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
25243         utf8.
25244
25245 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
25246
25247         * icall.c: Removed GetUninitializedObject method because
25248           AllocateUninitializedClassInstance does the same.
25249
25250 2003-10-18  Martin Baulig  <martin@ximian.com>
25251
25252         * class.c (inflate_generic_signature): Renamed to
25253         mono_class_inflate_generic_signature() and made it public.
25254         (my_mono_class_from_generic_parameter): New static function; if we
25255         don't already have the generic parameter's MonoClass, create a
25256         very simple one which is just used internally in the runtime and
25257         not passed back to managed code.
25258
25259         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
25260
25261         * metadata.h (MonoMethodSignature): Moved the
25262         `MonoGenericParam *gen_params' to the MonoMethodHeader.
25263         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
25264
25265         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
25266         ves_icall_MonoMethod_GetGenericArguments(); this is now an
25267         interncall on the MonoMethod class, not on MethodInfo.
25268         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
25269         calling mono_reflection_bind_generic_method_parameters() directly.
25270
25271         * loader.c (mono_method_get_signature): If this is a MethodSpec;
25272         return the already computed `method->signature'.
25273         (method_from_methodspec): New static function to load a method
25274         from a MethodSpec entry.
25275         (mono_get_method_from_token): Call the new method_from_methodspec()
25276         for MethodSpec tokens.  
25277         (mono_get_method_from_token): If we're a generic method, load the
25278         type parameters.
25279
25280         * reflection.c (mono_image_get_memberref_token): Allow
25281         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
25282         table.
25283         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
25284         (mono_image_create_token): First check whether it's a generic
25285         method (so we'd need to create a MethodSpec), then do the other
25286         two alternatives.
25287         (mono_reflection_bind_generic_method_parameters): Return a
25288         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
25289         called directly from the interncall.
25290
25291 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
25292
25293         * reflection.c (load_public_key): Move loading of the public key
25294         into managed code.
25295
25296         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
25297
25298         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
25299         fields.
25300
25301         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
25302         culture, hash_alg and public_key. Fixes #49555.
25303
25304 2003-10-17  Martin Baulig  <martin@ximian.com>
25305
25306         * class.h (MonoGenericInst): Moved this declaration here and added
25307         `MonoMethod *generic_method'.
25308
25309         * icall.c
25310         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
25311         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
25312
25313         * metadata.c (mono_metadata_type_equal): Two types of
25314         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
25315         index; ie. don't compare the address of the `MonoGenericParam'
25316         structure.
25317         (mono_metadata_load_generic_params): Removed the `MonoMethod
25318         *method' argument.
25319
25320         * metadata.h (MonoGenericInst): Moved declaration to class.h.
25321         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
25322
25323         * reflection.c (method_encode_signature): Encode the number of
25324         generic parameters.
25325         (encode_generic_method_sig): New static function.
25326         (method_encode_methodspec): New static function; creates an entry
25327         in the MethodSpec table for a generic method.
25328         (mono_image_get_methodspec_token): New static function.
25329         (mono_image_create_token): Call mono_image_get_methodspec_token()
25330         for generic methods.
25331         (mono_reflection_bind_generic_method_parameters): New public
25332         function.  Instantiates a generic method.
25333
25334 2003-10-16  Martin Baulig  <martin@ximian.com>
25335
25336         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
25337         *gen_params' here from MonoMethodHeader.
25338
25339         * metadata.c (mono_metadata_parse_method_signature): If we have
25340         generic parameters, initialize `method->gen_params' and then set
25341         the correct `type->data.generic_param' in all the parameters.
25342
25343 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
25344
25345         * threads.c (mono_threads_get_default_stacksize): New function to 
25346         return the default stacksize.
25347
25348         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
25349         termination of the finalizer thread, since the previous method had
25350         race conditions. Fixes #49628.
25351
25352         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
25353         as for the other managed threads.
25354
25355 2003-10-16  Martin Baulig  <martin@ximian.com>
25356
25357         * class.c (inflate_generic_signature): Copy `generic_param_count'
25358         and `gen_params'.
25359
25360         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
25361         New interncall.
25362
25363         * metadata.c (mono_metadata_parse_method_signature): Actually set
25364         the `method->generic_param_count' here.
25365         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
25366
25367 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
25368
25369         * object.h: Add a new field to TypedRef to simplify the implementation
25370         of the REFANY opcodes in the JIT.
25371
25372         * icall.c: Make use of the new field.
25373
25374         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
25375         dynamically.
25376
25377 2003-10-15  Martin Baulig  <martin@ximian.com>
25378
25379         * class.c (mono_class_from_gen_param): Renamed to
25380         mono_class_from_generic_parameter() and moved most of the
25381         functionality from mono_reflection_define_generic_parameter()
25382         here; ie. we create a "real" class here.
25383         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
25384         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
25385         previously been called.
25386
25387         * class.h (MonoGenericParam): Moved the declaration of this struct
25388         here from metadata.h and added `MonoMethod *method'.
25389
25390         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
25391         interncall.
25392
25393         * loader.c (mono_get_method_from_token): If we have any generic
25394         parameters, call mono_metadata_load_generic_params() to read them
25395         from the MONO_TABLE_GENERICPAR.
25396
25397         * metadata.c (mono_metadata_load_generic_params): Added
25398         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
25399
25400         * metadata.h (MonoMethodSignature): Replaced
25401         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
25402         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
25403
25404         * reflection.c (mono_reflection_define_generic_parameter): Moved
25405         most of the functionality into the new
25406         mono_class_from_generic_parameter(); set the `method' field if
25407         we're a method parameter.       
25408
25409 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
25410
25411         * marshal.c (emit_struct_conv): if native size is 0
25412         emit no code.
25413
25414 2003-10-14  Martin Baulig  <martin@ximian.com>
25415
25416         * icall.c: The generics API has changed in the spec since it was
25417         added to System.Type; these modifications make it match the spec
25418         again.
25419         (ves_icall_Type_GetGenericParameters): Renamed to
25420         `ves_icall_Type_GetGenericArguments'.
25421         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
25422         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
25423         `ves_icall_MonoType_get_HasGenericArguments'.
25424         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
25425         `ves_icall_MonoType_get_IsGenericParameter'.
25426         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
25427         this is no interncall anymore.
25428         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
25429         `ves_icall_TypeBuilder_get_IsGenericParameter'.
25430
25431 2003-10-14  Martin Baulig  <martin@ximian.com>
25432
25433         * reflection.c (mono_reflection_bind_generic_parameters): Also
25434         inflate generic methods if we're reading the class from IL.
25435
25436 2003-10-13  Martin Baulig  <martin@ximian.com>
25437
25438         * reflection.c (mono_reflection_define_generic_parameter): This
25439         method isn't called directly from the icall anymore; take a
25440         `MonoReflectionAssemblyBuilder *' so we can use this for type and
25441         method generic parameters.
25442         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
25443         (method_builder_encode_signature): Encode generic parameters.
25444         (mono_image_get_method_info): Write generic params to the
25445         MONO_TABLE_GENERICPARAM table.
25446
25447         * reflection.h (MonoReflectionMethodBuilder): Added
25448         `MonoArray *generic_params'.
25449
25450         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
25451
25452         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
25453         wrapper for mono_reflection_define_generic_parameter().
25454         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
25455
25456 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
25457
25458         * marshal.h: Add missing function to fix build.
25459
25460         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
25461         the SetLastError pinvoke attribute.
25462
25463         * marshal.c (mono_marshal_set_last_error): New helper function called
25464         by the generated code.
25465         
25466         * marshal.c (mono_mb_emit_branch): New helper function.
25467
25468         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
25469
25470         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
25471         classes as parameters and return values of delegates. Fixes #29256. 
25472
25473 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
25474
25475         * locales.c: use gint32 in non HAVE_ICU case
25476
25477 2003-10-11  Martin Baulig  <martin@ximian.com>
25478
25479         * mono-debug.c (mono_debug_add_method): Added a workaround for
25480         bug #48591.
25481
25482 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
25483
25484         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
25485         delegates passed to native code must use the STDCALL calling 
25486         convention. Fixes #35987.
25487
25488 2003-10-10  Martin Baulig  <martin@ximian.com>
25489
25490         * class.c (inflate_generic_type): If we're inflating for a generic
25491         type instance (and not for a generic method), return
25492         MONO_TYPE_MVAR unchanged.
25493
25494 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25495
25496         * string-icalls.c: Join ignores null strings in the source array.
25497         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
25498         * threads.c: GetAvailableTheads is slightly more accurate.
25499
25500 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
25501
25502         * threads.h threads.c : add mono_threads_set_default_stacksize
25503         and pass default to CreateThread calls.
25504
25505 2003-10-09  Dick Porter  <dick@ximian.com>
25506
25507         * icall.c:
25508         * locales.h:
25509         * locales.c: Internal calls for constructing CultureInfo and
25510         related objects from libicu (if its available.)
25511
25512 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
25513
25514         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
25515
25516 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25517
25518         * threadpool.c: added an argument to async_invoke_thread that is the
25519         item to process, pass the MonoAsyncResult to the thread start function
25520         when creating a new thread. This way we don't need to acquire any lock
25521         when we're creating a new thread. Readded a semaphore for faster
25522         response times (instead of that Sleep i added).
25523
25524 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
25525
25526         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
25527         get daylight change dates better on Windows, fix handling
25528         of platforms without tm_gmtoff.
25529
25530 2003-10-06  Martin Baulig  <martin@ximian.com>
25531
25532         * class.c (inflate_generic_method): Renamed to
25533         mono_class_inflate_generic_method() and made public.
25534         (mono_class_init): Don't inflate the generic methods here.
25535         (mono_class_from_generic): Added `gboolean inflate_methods'
25536         argument.  Inflate the methods here.
25537
25538         * loader.c (mono_method_get_param_names): Ignore instances of
25539         generic types for the moment.
25540
25541         * reflection.c (fixup_method): Added support for inflated methods.
25542         (mono_image_create_token): Use mono_image_get_methodref_token()
25543         for inflated methods.
25544         (mono_custom_attrs_from_param): Ignore instances of generic types
25545         for the moment.
25546         (mono_reflection_bind_generic_parameters): New public function.
25547         Moved all the functionality from
25548         ves_icall_Type_BindGenericParameters() here and added support for
25549         dynamic types.
25550         (mono_reflection_define_generic_parameter): Initialize
25551         `klass->methods' here.
25552
25553         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
25554         functionality into mono_reflection_define_generic_parameter().
25555         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
25556         TypeBuilder, return that TypeBuilder.
25557
25558 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25559
25560         * appdomain.c: removed mono_delegate_semaphore.
25561
25562         * threadpool.c:
25563         (mono_thread_pool_add): moved hash table creation inside and the thread 
25564         creation outside of the critical region.
25565         (mono_thread_pool_finish): removed obsolete code.
25566         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
25567         continue or exit the thread depending on the queue.
25568
25569 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
25570
25571         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
25572         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
25573         handle more bool marshalling options
25574
25575 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
25576
25577         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
25578         arrays of structs. Also add a more descriptive error message when
25579         a structure member is marshalled as LPArray.
25580
25581 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
25582
25583         * marshal.c (mono_marshal_get_native_wrapper): Add support for
25584         marshalling arrays of complex types. Fixes #29098. Also remove an
25585         usused and incomplete function.
25586
25587 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
25588
25589         * gc.c: report heap_size - free_bytes as total memory allocated
25590         (bug#49362).
25591
25592 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
25593
25594         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
25595         fix timezone handling problems on Windows.
25596         
25597         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
25598         asserts when the year is outside the range handled by ms the functions.
25599
25600         * class.c (setup_interface_offsets): If the class is an interface,
25601         fill out its interface_offsets slot.
25602
25603 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25604
25605         * threadpool.c: mark threadpool threads as background.
25606
25607 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
25608
25609         * decimal.c - define DECINLINE to nothing if not using GCC
25610
25611 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
25612
25613         * assembly.c: More refcount fixes.
25614
25615 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25616
25617         * string-icalls.c: if we're not trimming, return the same string.
25618         When not splitting, don't create a new string.
25619
25620 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25621
25622         * image.c:
25623         (mono_image_open): increment the ref_count inside the critical section.
25624
25625 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
25626
25627         * image.c (mono_image_open): Fix reference counting bug.
25628
25629 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
25630
25631         * marshal.c (mono_marshal_type_size) struct alignment changed for 
25632         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
25633         64bits. Avoid leak in mono_marshal_get_native_wrapper when
25634         mono_lookup_pinvoke_call throws.        
25635
25636 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
25637
25638         * reflection.c (mono_reflection_parse_type): Fix #49114.
25639
25640         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
25641         temporary workaround for cygwin header problem.
25642
25643         * object.c (mono_object_isinst): Synchronize this with the code
25644         generated by the JIT for casts.
25645
25646 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
25647
25648         * reflection.c (encode_type): Fix #38332.
25649
25650 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
25651
25652         * marshal.c (mono_marshal_method_from_wrapper): New function to return
25653         the original method from the wrapper method.
25654
25655 2003-09-25  Martin Baulig  <martin@ximian.com>
25656
25657         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
25658         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
25659         (ves_icall_Type_get_IsGenericInstance): New interncall.
25660
25661 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
25662
25663         * object.c: fix cast warning in big endian code.
25664
25665 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
25666
25667         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
25668         
25669 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25670
25671         * assembly.c: don't call check_env from mono_assembly_load. It's
25672         already done once in mono_assemblies_init and may cause headaches when
25673         multiple threads are loading assemblies.
25674
25675 2003-09-19  Martin Baulig  <martin@ximian.com>
25676
25677         * reflection.c (mono_reflection_define_generic_parameter): Don't
25678         allocate `klass->methods', set `klass->flags' to
25679         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
25680
25681 2003-09-18  Martin Baulig  <martin@ximian.com>
25682
25683         * class.c (mono_class_init): Don't create `class->methods' if it's
25684         already initialized.
25685
25686         * metadata.c (mono_metadata_load_generic_params): Make this
25687         actually work.
25688
25689         * reflection.c (mono_reflection_define_generic_parameter): Set
25690         parent class and interfaces from the constraints.
25691
25692         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
25693         to keep this struct in sync with the declaration in TypeBuilder.cs.
25694
25695 2003-09-17  Martin Baulig  <martin@ximian.com>
25696
25697         * metadata.h (MonoType): Replaced the data's `int type_param'
25698         field with `MonoGenericParam *generic_param'.
25699         (MonoGenericParam): Added `MonoClass *klass'.
25700
25701         * class.c (mono_class_from_gen_param): Removed the
25702         `MonoImage *image' and `int type_num' arguments.
25703
25704         * metadata.c (mono_metadata_parse_generic_param): New static
25705         method; creates a MonoGenericParam which just contains the index.
25706         (do_mono_metadata_parse_type): Call
25707         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
25708         MONO_TYPE_MVAR.
25709
25710         * reflection.c (mono_image_typedef_or_ref): Generic type
25711         parameters may be in the same assembly, but never use a typedef
25712         for them.
25713         (mono_reflection_define_generic_parameter): We're now creating a
25714         "real" class for the type parameter; it's now safe to call
25715         mono_class_from_mono_type() on the class'es type, it'll do the
25716         right thing.
25717
25718 2003-09-16  Martin Baulig  <martin@ximian.com>
25719
25720         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
25721         `symfile->range_entry_size' and `symfile->class_entry_size' here;
25722         the `symfile' data structure must be fully initialized before it
25723         gets added to the table.
25724
25725 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
25726
25727         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
25728
25729         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
25730         class init trampolines.
25731
25732 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
25733
25734         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
25735         to the built-in profiler to turn off time and allocation profiling
25736         respectively.
25737
25738 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
25739
25740         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
25741         g_direct_equal.
25742
25743         * debug-helpers.c (mono_method_full_name): Print the wrapper type
25744         in human readable form.
25745
25746 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
25747
25748         * reflection.c icall.c: Fixed warnings.
25749
25750         * image.c (load_class_names): Use a temporary hash table to hold the
25751         namespaces in order to avoid doing many string comparisons.
25752
25753         * image.h: Fix typo.
25754
25755         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
25756         Pass NULL instead of g_direct_equal to the GHashTable constructor 
25757         since the NULL case is short-circuited inside g_hash_table_lookup, 
25758         leading to better performance.  
25759
25760         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
25761         obtain the first custom attribute for a given index. Depends on the
25762         CustomAttribute table being sorted by the parent field.
25763
25764         * reflection.c (mono_custom_attrs_from_index): Use the new function 
25765         for better performance.
25766
25767 2003-09-07  Martin Baulig  <martin@ximian.com>
25768
25769         * class.c (mono_class_init): If we're a generic instance, inflate
25770         all our methods instead of loading them from the image.
25771         (mono_class_from_generic): Set `class->methods = gklass->methods'.
25772
25773 2003-09-07  Martin Baulig  <martin@ximian.com>
25774
25775         * mono-debug-debugger.c: Added support for constructors.
25776
25777 2003-09-06  Martin Baulig  <martin@ximian.com>
25778
25779         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
25780         New interncall.
25781
25782         * reflection.c (mono_reflection_setup_generic_class): Call
25783         ensure_runtime_vtable() to create the vtable.
25784
25785 2003-09-05  Martin Baulig  <martin@ximian.com>
25786
25787         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
25788         MONO_TYPE_MVAR.
25789
25790 2003-09-04  Martin Baulig  <martin@ximian.com>
25791
25792         * reflection.c (mono_reflection_define_generic_parameter): Generic
25793         parameters start with zero.
25794
25795 2003-09-04  Martin Baulig  <martin@ximian.com>
25796
25797         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
25798
25799         * reflection.h (MonoReflectionGenericParam): New typedef.
25800         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
25801         the generic parameters from the managed TypeBuilder.
25802
25803         * reflection.c (mono_reflection_define_generic_parameter): New function.
25804         (mono_reflection_create_runtime_class): Encode generic parameters.
25805         (mono_reflection_setup_generic_class): New function; this is
25806         called after adding adding all generic params to the TypeBuilder.
25807         (encode_type): Added MONO_TYPE_VAR.
25808
25809 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
25810
25811         * class.h class.c (mono_class_needs_cctor_run): Moved this method
25812         here from the JIT.
25813
25814         * assembly.h assembly.c: Moved the AOT loading code into an assembly
25815         load hook.
25816
25817 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
25818
25819         * reflection.h reflection.c class.h class.c: Delete duplicate 
25820         definition of mono_type_get_name () from reflection.c and export the
25821         one in class.c.
25822
25823         * class.c: Class loading fixes from Bernie Solomon 
25824         (bernard@ugsolutions.com).
25825
25826         * reflection.c: Endianness fixes from Bernie Solomon 
25827         (bernard@ugsolutions.com).
25828         
25829 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
25830
25831         * assembly.h assembly.c: Define a file format version for AOT
25832         libraries.
25833         
25834         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
25835
25836         * appdomain.h (MonoJitInfo): New field to determine whenever the
25837         code is domain neutral.
25838         
25839 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
25840
25841         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
25842
25843 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
25844
25845         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
25846         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
25847         Avoid caching the result since strings must be domain specific. Fixes
25848         #48050.
25849
25850 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
25851
25852         * marshal.c (mono_marshal_init): Make this callable multiple times
25853         since it is hard to find a correct place to call it.
25854
25855         * object.c (mono_runtime_class_init): Execute static constructors in
25856         the correct appdomain.
25857
25858         * image.c (build_guid_table): Handle the case when multiple images have
25859         the same GUID.
25860
25861 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25862
25863         * icall.c: added a couple of icalls for System.Web.
25864
25865 2003-08-28  Martin Baulig  <martin@ximian.com>
25866
25867         * icall.c (ves_icall_Type_BindGenericParameters): Use
25868         `klass->generic_inst' instead of `&klass->byval_arg' in the
25869         mono_type_get_object() call.  The returned type must be
25870         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
25871
25872 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
25873
25874         * NOTES: New file.
25875
25876         * object.c (mono_class_proxy_vtable): Make it thread safe.
25877
25878         * pedump.c: Fix warning.
25879
25880         * object.c appdomain.h: Get rid of metadata_section. 
25881         It is no longer needed and it was causing deadlocks with domain->lock.
25882
25883         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
25884
25885 2003-08-26  Martin Baulig  <martin@ximian.com>
25886
25887         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
25888
25889 2003-08-26  Martin Baulig  <martin@ximian.com>
25890
25891         * pedump.c (main): Call mono_metadata_init(),
25892         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
25893         and mono_loader_init().
25894
25895 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
25896
25897         * loader.h: Add missing include to fix build.
25898
25899         * image.h: mono_image_load_references is no more.
25900
25901         * assembly.c: Reworked assembly loading to make it really thread safe.
25902         After these changes, the assembly returned by mono_assembly_open is
25903         fully initialized, i.e. all its references assemblies are loaded.
25904
25905         * assembly.c (mono_image_load_references): Renamed to 
25906         mono_assembly_load_references, and made private, since clients no
25907         longer need to call it.
25908
25909         * class.c: Removed calls to mono_assembly_load_references, since it was
25910         a source of deadlocks.
25911
25912         * loader.h loader.c class.h class.c: Protect data structures using a 
25913         new lock, the loader lock.
25914
25915         * class.c (mono_class_setup_vtable): Create temporary hash tables and
25916         GPtrArrays only when needed.
25917
25918         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
25919         into empty structures by mcs. Fixes pinvoke7.cs.
25920         
25921         * domain.c (mono_init): Call a new initialization function.
25922
25923         * appdomain.c (mono_runtime_init): Call the new initializer function
25924         of the marshal module.
25925
25926         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
25927         inserted into empty structures by mcs. Fixes pinvoke7.cs.
25928
25929         * marshal.h marshal.c: Added locks around the wrapper caches to make
25930         this module thread safe.
25931
25932         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
25933         this argument. Fixes pinvoke1.exe.
25934
25935 2003-08-25  Lluis Sanchez <lluis@ximian.com>
25936
25937         * object.h: Added call_type field to MonoMethodMessage and the corresponding
25938         enumeration of values. Removed fields to store remote call output values in
25939         MonoAsyncResult. Not needed any more.
25940         * object.c: Initialize call_type and async_result fields in mono_message_init.
25941         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
25942         dispatching the message.
25943         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
25944         async call to finish. To do it use a message with EndInvoke call type.
25945
25946 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
25947
25948         * loader.h loader.c (mono_method_hash_marhal_info): New function which
25949         determines whenever a method has marshalling info.
25950
25951 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25952
25953         * assembly.c: fix the build on windows.
25954
25955 2003-08-22 Lluis Sanchez <lluis@ximian.com>
25956
25957         * object.cs: Fixed bug #47785.
25958
25959 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
25960
25961         * string-icalls.c (StringReplace): If their are no occurances of
25962         the old string found return a reference to the supplied
25963         string. This saves some memory and matches MS behavoir.
25964         
25965 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25966
25967         * socket-io.c: fixed compilation for systems that define AF_INET6
25968         and don't define SOL_IP/SOL_IPV6.
25969
25970 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
25971
25972         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
25973         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
25974
25975         * rawbuffer.c rawbuffer.h: Make this module thread safe.
25976
25977         * domain.c: Make this module thread safe.
25978
25979         * domain.c (mono_init): Call new initialization function.
25980
25981         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
25982         reference types too. Fixes #38812.
25983
25984         * image.c (mono_image_init): Fixed warnings.
25985
25986         * class.c (mono_class_from_typeref): Handle assembly load failure
25987         correctly.
25988
25989         * appdomain.c (add_assemblies_to_domain): Handle the case when
25990         the references of an assembly are not yet loaded.
25991
25992         * metadata.c image.c assembly.c: Moved initialization of global
25993         variables to a separate function called at startup since lazy 
25994         initialization of these variables is not thread safe.
25995         
25996         * image.c assembly.c: Made this module thread safe by adding locks in 
25997         the appropriate places.
25998
25999         * domain.c (mono_init): Call the new initialization functions of the
26000         three modules.
26001
26002 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
26003
26004         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
26005           make a direct call. It is proxy's work to make the call asynchronous.
26006           mono_delegate_end_invoke(): If the targe is a proxy, just collect
26007           the return values.
26008         * object.cs: mono_method_call_message_new(): read AsyncResult and
26009           state object from parameters list, if this info is requested.
26010         * object.h: Added fields to store remote call output values in
26011           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
26012
26013 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
26014
26015         * object.h: add needed fields to MonoThread.
26016         * threads.c, threads.h: allow registering a function to cleanup data
26017         allocated per thread by the JIT.
26018
26019 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
26020
26021         * loader.h: portability fix by Bernie Solomon
26022         * <bernard@ugsolutions.com>.
26023
26024 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
26025
26026         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
26027         return a MonoArray. This simplifies the code and also ensures that
26028         the cache allways contains an object reference as a value.
26029
26030         * icall.c (ves_icall_get_parameter_info): Simplified using the new
26031         function.
26032
26033 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26034
26035         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
26036         fixes a problem with byte ordering when getting the address family for
26037         a socket.
26038
26039 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
26040
26041         * .cvsignore: Added monosn.
26042
26043         * reflection.h reflection.c loader.c: Added support for parameter
26044         marshalling to dynamically created types. Fixes #47295.
26045
26046 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
26047
26048         * rand.c: remove useless warnings.
26049
26050 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
26051
26052         * class.c: implemented ldtoken for methods and fieldrefs.
26053
26054 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26055
26056         * threadpool.c: when mono_async_invoke was called, no one took care of
26057         monitoring the queue. So if the method invoked took some time and we
26058         got new async invoke requests after 500 ms (the thread created waited
26059         that long in WaitForSingleObject), the new async invoke was not called
26060         until the previous one finished.
26061
26062         This is fixed now. Thanks to Totte for helping with it.
26063
26064 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26065
26066         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
26067
26068 2003-08-11  Martin Baulig  <martin@ximian.com>
26069
26070         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
26071
26072 2003-08-06  Martin Baulig  <martin@ximian.com>
26073
26074         * mono-debug-debugger.c: Added support for static fields,
26075         properties and methods.
26076
26077 2003-08-06  Martin Baulig  <martin@ximian.com>
26078
26079         * mono-debug-debugger.c: Don't store the MonoString's vtable to
26080         make this work for applications with multiple application domains.
26081
26082 2003-08-04  Martin Baulig  <martin@ximian.com>
26083
26084         * mono-debug-debugger.c: Completely reworked the type support; the
26085         most important thing is that we're now just using one single
26086         `MonoType' instance per type.
26087
26088 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
26089
26090         * mono-endian.h, mono-endian.c, icall.c: Added icall
26091         ves_icall_System_Double_AssertEndianity to assert double word endianity
26092         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
26093
26094 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
26095
26096         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
26097         support, icalls and fixes.
26098
26099 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
26100
26101         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
26102         classes that are a punctuation character in .NET is not the same a
26103         g_unichar_ispunct.
26104
26105 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
26106
26107         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
26108
26109 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
26110
26111         * icall.c: Add new MemCopy internalcall.
26112         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
26113         Simplified code; It is not necessary to handle all the cases here,
26114         as the C# code takes care of it.  Only handle the case of the name
26115         resource embedded into the assembly.
26116
26117         Changed signature to return the data pointer and the size of the
26118         data. 
26119
26120 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
26121
26122         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
26123         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
26124
26125 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
26126
26127         * socket-io.c: ignore EINTR error in select.
26128
26129 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
26130
26131         * class.h, class.c: removed unused subclasses field in MonoClass.
26132
26133 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
26134
26135         * icall.c: improve fix of get_base_definition(). If the parent class
26136           doesn't have the mehod, look at the parent of the parent.
26137         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
26138           to check if a parameter is an in or out parameter
26139           (PARAM_ATTRIBUTE_IN is not set by default).
26140           mono_method_return_message_restore(): Use mono_class_value_size to
26141           get the size of a value type. mono_type_stack_size (parameterType)
26142           does not return the correct value if parameterType is byRef.
26143           mono_load_remote_field(), mono_load_remote_field_new(),
26144           mono_store_remote_field(), mono_store_remote_field_new():
26145           raise exception if the remote call returns an exception.
26146
26147 2003-07-28  Martin Baulig  <martin@ximian.com>
26148
26149         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
26150         method.  This is a wrapper around mono_runtime_invoke() which
26151         boxes the instance object if neccessary.
26152
26153 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
26154
26155         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
26156         metadata.h, row-indexes.h, verify.c: first cut of generics support.
26157
26158 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
26159
26160         * icall.c: disable mcs bug workaround.
26161
26162 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
26163
26164         * object.c (mono_runtime_class_init): Take the metadata_section
26165         mutex before obtaining the domain mutex.
26166
26167         * appdomain.h: Added definition of metadata_section mutex here. 
26168
26169         * object.c: define metadata_mutex here.
26170
26171 2003-07-24  Ravi Pratap  <ravi@ximian.com>
26172
26173         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
26174         fixed.
26175
26176 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
26177
26178         * reflection.c: Fix bug #46669
26179
26180 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26181
26182         * exception.c:
26183         * exception.h:
26184         * icall.c:
26185         * object.h: fill in the type name for TypeLoadException.
26186
26187 2003-07-23  Ravi Pratap  <ravi@ximian.com>
26188
26189         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
26190         relationship between TypeBuilders while compiling corlib) and bug
26191         45993 (Array types returned from the runtime while compiling
26192         corlib were from the loaded corlib).
26193
26194 2003-07-22  Martin Baulig  <martin@ximian.com>
26195
26196         * mono-debug-debugger.c: Reworked the type support a bit more;
26197         distinguish between types and classes.
26198
26199 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
26200
26201         * icall.c: add IsArrayImpl icall.
26202
26203 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
26204
26205         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
26206         initializing real_size only once. Also fix bug #46602.
26207
26208 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
26209
26210         * object.c: Renamed mono_metadata_section to metadata_section.
26211
26212 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
26213
26214         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
26215           empty array if the type is an array. Fixed.
26216           ves_icall_MonoMethod_get_base_definition: if the base method
26217           is abstract, get the MethodInfo from the list of methods of
26218           the class.
26219         * reflection.c: ParameterInfo.PositionImpl should be zero-based
26220           and it was 1-based. Fixed in mono_param_get_objects.
26221
26222 2003-07-20  Martin Baulig  <martin@ximian.com>
26223
26224         * mono-debug.h: Set version number to 31.
26225         (mono_debug_init): Added `MonoDomain *' argument.
26226
26227         * mono-debug-debugger.c: Reworked the type support; explicitly
26228         tell the debugger about builtin types; pass the `klass' address to
26229         the debugger.
26230
26231 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
26232
26233         * image.c: Allow new metadata tables to be loaded without a
26234         warning. Also update the warning message to give the new constant value.
26235                 
26236 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
26237
26238         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
26239         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
26240         array type representation changes.
26241
26242 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
26243
26244         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
26245         on Environment.Exit () call.
26246
26247 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
26248
26249         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
26250         requires a matching corlib.
26251
26252 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
26253
26254         * Changelog: My editor decided to add a CR to each line. Sorry about that.
26255           Committed again without the CRs.
26256         
26257 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
26258
26259         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
26260           getting it from the "this" socket instance. Did not work
26261           if the socket is a subclass of Socket.
26262           Also fixed bug #35371.
26263
26264 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
26265
26266         * metadata.c: fixed size for TypedByRef.
26267         * loader.c: when searching for a method, consider the vararg amrker.
26268         * unicode.c, decimal.c: constify some arrays.
26269
26270 2003-07-15  Dick Porter  <dick@ximian.com>
26271
26272         * socket-io.c: Fixed compilation for gcc < 3.2.
26273
26274         Fixed compilation for machines that don't have AF_INET6 (thanks to
26275         Bernie Solomon <bernard@ugsolutions.com> for that part.)
26276
26277         Fixed compile warnings.
26278         
26279         Fixed formatting and line endings.
26280
26281 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
26282
26283         * socket-io.h:
26284         * socket-io.c: Added IPv6 support.
26285
26286 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
26287
26288         * class.c (mono_class_is_assignable_from): New function to implement
26289         the is_assignable_from logic. Used by mono_object_isinst, 
26290         Type::IsAssignableFrom () and the interpreter.
26291
26292         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
26293         Object, even interfaces.
26294         
26295         * object.c (mono_object_isinst): Implement in terms of 
26296         is_assignable_from.
26297
26298         * icall.c (ves_icall_type_is_assignable_from): New icall.
26299
26300 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
26301
26302         * domain.c (foreach_domain): fix compiler warning.
26303
26304 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
26305
26306         * image.c (load_metadata_ptrs): use g_strndup because strndup is
26307         not available on all plattforms
26308
26309 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
26310
26311         * image.h image.c: Store the metadata version string in MonoImage.
26312         * icall.c: New icall to retrieve the image version.
26313         * reflection.c (create_dynamic_image): Fill in the image version field
26314         * reflection.c (build_compressed_metadata): Use the image version
26315         from the image structure.
26316
26317 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26318
26319         * appdomain.c: modified comment.
26320         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
26321         That will be its last iteration when mono_gc_cleanup is called from
26322         mono_runtime_cleanup and before the domain is unloaded.
26323
26324         Fixes bug #45962.
26325
26326 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
26327
26328         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
26329         attributes.
26330
26331 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
26332
26333         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
26334         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
26335         Bernie Solomon <bernard@ugsolutions.com>.
26336
26337 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
26338
26339         * object.c, object.h: provide mono_object_new_fast() for faster
26340         allocation in some special cases.
26341
26342 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
26343
26344         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
26345         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
26346
26347 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
26348
26349         * threadpool.c: fix leaks.
26350
26351 2003-07-01  Dick Porter  <dick@ximian.com>
26352
26353         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
26354         using MonoGHashTables.  Fixes threadpool bug posted to list.
26355
26356 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
26357
26358         * image.h, image.c: added support to load an assembly from a byte array.
26359         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
26360         assembly bundle support.
26361
26362 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
26363
26364         * threadpool.c (mono_thread_pool_add): keep a reference to the
26365         AsyncResult to prevent GC
26366
26367 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
26368
26369         * class.c: leak fix.
26370
26371 2003-06-25  Dick Porter  <dick@ximian.com>
26372
26373         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
26374         for the async object, the WaitHandle object will close the handle.
26375         Fixes bug 45321.
26376
26377 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
26378
26379         * class.c: in mono_array_class_get (), lookup from the hash with the
26380         same type we insert: this works around a bug in
26381         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
26382         lluis. The real fix will have to wait for after the release.
26383
26384 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
26385
26386         * icall.c: fix memory leak when getting type members.
26387
26388 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
26389
26390         * reflection.c: added more pubtoken special cases.
26391
26392 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
26393
26394         * class.c: handle field offset correctly when class size
26395         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
26396
26397 2003-06-20  Martin Baulig  <martin@ximian.com>
26398
26399         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
26400         *image' field.
26401
26402 2003-06-20  Martin Baulig  <martin@ximian.com>
26403
26404         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
26405
26406 2003-06-20  Martin Baulig  <martin@ximian.com>
26407
26408         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
26409         just distinguish between variables in registers and variables at
26410         an offset relative to a register.
26411
26412 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26413
26414         * icall.c: #ifdef out latest changes until mcs is fixed.
26415
26416 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
26417
26418         * icall.c: return members in metadata order.
26419
26420 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
26421
26422         * icall.c: avoid infinite loop in GetTimeZoneData.
26423
26424 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
26425
26426         * icall.c: added Marshal.Prelink/All icalls.
26427
26428 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
26429
26430         * object.c, object.h: fix warnings and do some overflow checking
26431         when creating arrays.
26432
26433 2003-06-17  Dick Porter  <dick@ximian.com>
26434
26435         * file-io.h:
26436         * file-io.c: File attributes need to be tweaked slightly when
26437         passed from the managed to the w32 world.
26438
26439 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
26440         * profiler.h profiler-private.h profiler.c: Rework last patch
26441         based on suggestion by Paolo.
26442         
26443 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
26444
26445         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
26446         instruction level coverage data collection.
26447         * profiler.h profiler.c (: Added new callback function which can be
26448         used by the profiler to limit which functions should have coverage
26449         instrumentation.
26450         * profiler.c (mono_profiler_load): Call g_module_build_path to
26451         generate the file name of the profiler library.
26452
26453 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
26454
26455         * profiler.c, profiler.h, profiler-private.h: added basic block 
26456         coverage profiling API.
26457
26458 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
26459
26460         * reflection.c (mono_reflection_create_runtime_class): Add support
26461         for events in dynamically generated code.
26462
26463         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
26464         not allocated.
26465
26466 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
26467
26468         * icall.c: when getting timezone info, return reasonable values if we
26469         can't get the actual data.
26470
26471 2003-06-14  Dick Porter  <dick@ximian.com>
26472
26473         * threads.c (start_wrapper): Remove the reference to the thread
26474         object in the TLS data, so the thread object can be finalized.
26475         This won't be reached if the thread threw an uncaught exception,
26476         so those thread handles will stay referenced :-( (This is due to
26477         missing support for scanning thread-specific data in the Boehm GC
26478         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
26479
26480 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
26481
26482         * reflection.c: ensure streams and tables are first allocated with
26483         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
26484
26485 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
26486
26487         * icall.c: fixed GetElementType for byrefs (bug# 44792).
26488
26489 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
26490
26491         * reflection.c (mono_reflection_create_runtime_class): Add support for
26492         properties to dynamically created classes.
26493         * reflection.c: Fix a few places where non-MonoObjects were inserted
26494         into the tokens hashtable.
26495
26496 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
26497
26498         * object.c: some support to handle out of memory exceptions.
26499
26500 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
26501
26502         * marshal.c (mono_marshal_get_native_wrapper): support reference
26503         return types
26504
26505 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
26506
26507         * object.h, object.c: more portability stuff from Bernie Solomon.
26508         Unexport mono_object_allocate(). Added mono_object_unbox ().
26509         Set exitcode when an unhandled exception is thrown.
26510
26511 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
26512
26513         * marshal.c (mono_marshal_get_native_wrapper): use custom
26514         marshaler for return types.
26515
26516 2003-06-10  Dick Porter  <dick@ximian.com>
26517
26518         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
26519         ip_mreq is available
26520
26521 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
26522
26523         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
26524         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
26525         by Bernie Solomon <bernard@ugsolutions.com>.
26526
26527 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
26528
26529         * gc.c (mono_gc_init): Avoid error message on shutdown when
26530         GC_DONT_GC=1 is used.
26531
26532         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
26533         New icall to return the GUID of a module.
26534
26535 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
26536
26537         * class.c: ensure instance size always includes the parent's size
26538         even whem class size is set explicitly (fixes bug#44294).
26539
26540 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
26541
26542         * profiler.h, profiler.c: made the simple profiler thread-safe,
26543         get more accurate timing info. Allow the loading of an
26544         externally-developed profiler module.
26545
26546 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
26547
26548         * marshal.c (mono_marshal_get_native_wrapper): improved
26549         class/byref arguments.
26550         (mono_marshal_get_native_wrapper): better string marshaling support.
26551
26552 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
26553
26554         * class.c: ensure .pack and .size are handled correctly and
26555         simplified layout of static fields.
26556
26557 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
26558
26559         * appdomain.c
26560         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
26561
26562         * loader.c (mono_lookup_pinvoke_call): look for modules in the
26563         current directory (fix bug 44008)
26564
26565 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
26566
26567         * marshal.c (mono_marshal_get_native_wrapper): started support for
26568         custom marshalers.
26569         (mono_delegate_to_ftnptr): consider marshalling specifications
26570
26571 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
26572
26573         * reflection.c, reflection.h: emit custom marshal info.
26574
26575 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26576
26577         * object.c: free the GError.
26578         * icall.c: added CloseEvent_internal.
26579         * threads.[ch]:
26580         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
26581         call.
26582
26583 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
26584
26585         * loader.c (mono_method_get_signature): Add support for dynamic
26586         assemblies.
26587
26588 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
26589
26590         * reflection.c: fixed bug #43905.
26591
26592 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
26593
26594         * class.c, domain.c, icall.c, metadata.h, object.h: support for
26595         handling TypedReference and ArgIterator.
26596         * loader.c, loader.h: added function to get signature at call site.
26597
26598 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
26599
26600         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
26601         data readonly. Buglets and warning fixes. Some MethodSpec support.
26602
26603 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
26604
26605         * class.h, class.c, object.c: remove relative numbering support.
26606
26607 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
26608
26609         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
26610         free the string, until we get a chance to fix Gtk#
26611
26612 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26613
26614         * marshal.c: revert last patch.
26615
26616 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
26617
26618         * icall.c: updates for new mono_class_vtable() not calling
26619         the type constructor anymore.
26620
26621 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
26622
26623         * object.h, object.c: separate vtable creation from type
26624         initialization. Make running the .cctor thread safe.
26625
26626 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
26627
26628         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
26629
26630 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
26631
26632         * loader.c (mono_get_method): consider calling convention
26633
26634 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
26635
26636         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
26637         to return the invisible global type for a module.
26638
26639         * reflection.c (mono_image_build_metadata): Emit global fields too.
26640
26641 2003-05-20  Peter Williams  <peterw@ximian.com>
26642
26643         * loader.c (mono_lookup_internal_call): Add a few newlines.
26644
26645 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
26646
26647         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
26648         literal strings.
26649
26650         * appdomain.c (set_domain_search_path): Recalculate search path when
26651         AppDomainSetup.PrivateBinPath changes.
26652
26653         * object.c (mono_class_compute_gc_descriptor): It turns out some
26654         parts of the class libs (like System.Thread) holds pointers to
26655         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
26656         to treat native int a pointer type here.
26657         
26658 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
26659
26660         * appdomain.h, domain.c: add hashtable for jump target resolution.
26661
26662 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
26663
26664         * reflection.h reflection.c icall.c: Added new icalls 
26665         GetManifestResourceInfoInternal, GetModulesInternal and support
26666         infrastructure.
26667
26668 2003-05-16  Dick Porter  <dick@ximian.com>
26669
26670         * icall.c:
26671         * file-io.h:
26672         * file-io.c: Implement System.IO.MonoIO::GetTempPath
26673
26674 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
26675
26676         * object.c: mono_store_remote_field: little fix to previous patch.
26677
26678 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
26679
26680         * class.c: add constructors to array classes.
26681         * icall.c: special case array construction for InternalInvoke (),
26682
26683 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
26684
26685         * class.h class.c reflection.c object.c: Added support for field
26686         defaults in dynamically generated classes.
26687
26688 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
26689
26690         * reflection.c: properly encode charset for ddlimport.
26691
26692 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
26693
26694         * threads.c: allow compiling without GC.
26695
26696 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
26697
26698         * appdomain.h, object.c, object.h, threads.c, threads.h: added
26699         handling of thread static data.
26700
26701 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
26702
26703         * reflection.h, reflection.c: added mono_custom_attrs_free ().
26704
26705 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
26706
26707         * class.c (mono_array_class_get): always set the serializable flags
26708         (mono_array_class_get): always set the SEALED attribute for array types
26709
26710 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
26711
26712         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
26713         attributes (fix for bug 42021).
26714
26715 2003-05-12  Dick Porter  <dick@ximian.com>
26716
26717         * gc.c: Don't run finalizers when the finalizer thread is
26718         finishing up, because the default domain has already been
26719         destroyed.
26720
26721 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
26722
26723         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
26724         value is null, we should throw an exception.   This is slightly
26725         different than the other conventions used for the constructor.
26726
26727 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26728
26729         * socket-io.c: fixed windows build.
26730
26731 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26732
26733         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
26734
26735 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
26736
26737         * object.c (mono_string_new_wrapper): Compatibility fix for MS
26738         compilers.
26739
26740 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
26741
26742         * class.c (mono_class_layout_fields): Add experimental GC aware
26743         auto layout facility. Requires class library changes to work correctly.
26744
26745         (mono_class_setup_vtable): Avoid overriding explicit interface
26746         method implementations. Fixes iface3.exe test.
26747
26748         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
26749         object reference.
26750         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
26751         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
26752
26753         * metadata.h: Add new type classification macro which determines
26754         whenever the type holds an object reference.
26755
26756 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
26757
26758         * marshal.c (mono_marshal_get_native_wrapper): cleanups
26759
26760 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
26761
26762         * gc.c (finalizer_thread): Work around a GC bug.
26763
26764 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
26765
26766         * marshal.c (emit_struct_conv): allow unions
26767
26768         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
26769
26770 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
26771
26772         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
26773
26774 2003-05-06  Martin Baulig  <martin@ximian.com>
26775
26776         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
26777
26778 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26779
26780         * socket-io.c:
26781         (Select_internal): allow NULLs, don't create arrays if not needed.
26782         Coupled with Socket.cs changes.
26783
26784         * threadpool.c:
26785         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
26786         register a finalizer for it that will close the semaphore handle. This
26787         fixes the leak and make Lupus' test run with > 4080 loops.
26788
26789 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
26790
26791         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
26792         Jerome Laban (bug #42287)
26793
26794 2003-05-02  Martin Baulig  <martin@ximian.com>
26795
26796         * debug-mono-symfile.h
26797         (MonoSymbolFile): Moved declaration into mono-debug.h.
26798         (MonoDebugMethodJitInfo): Likewise.
26799         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
26800         argument.
26801         (_mono_debug_address_from_il_offset): Take a
26802         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
26803
26804         * mono-debug.h
26805         (MonoDebugDomainData): New struct.
26806         (mono_debug_get_domain_data): New function.
26807         (mono_debug_add_method): Take an additional `MonoDomain *'
26808         argument.
26809         (mono_debug_source_location_from_address): Likewise.
26810         (mono_debug_il_offset_from_address): Likewise.
26811         (mono_debug_address_from_il_offset): Likewise.
26812
26813 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
26814
26815         * reflection.c: one more check for null type in custom attrs.
26816
26817 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26818
26819         * reflection.c: avoid warning (comparison is always false due to limited
26820         range of data type).
26821
26822 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26823
26824         * icall.c: throw an exception in Type.GetField if the argument 'name'
26825         is NULL.
26826
26827 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
26828
26829         * reflection.c: fixed handling of enums in named arguments to custom
26830         attributes (bug #42123).
26831
26832 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
26833
26834         * reflection.c: use the right array element type and handle
26835         a null for a Type argument, too.
26836
26837 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
26838
26839         * reflection.c: handle arrays as arguments to custom attributes.
26840
26841 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
26842
26843         * reflection.c: handle a string value in a custom attr
26844         ctor that takes an object.
26845
26846 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
26847
26848         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
26849         (fix bug #42063)
26850
26851 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
26852
26853         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
26854
26855 2003-04-27  Martin Baulig  <martin@ximian.com>
26856
26857         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
26858         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
26859         MONO_DEBUGGER_EVENT_BREAKPOINT.
26860         (mono_breakpoint_trampoline_code): Removed.
26861         (mono_debugger_event_handler): The last argument is now a
26862         `guint32'.
26863         (mono_debugger_insert_breakpoint_full): Removed the
26864         `use_trampoline' argument.
26865         (mono_debugger_method_has_breakpoint): Likewise.
26866         (mono_debugger_trampoline_breakpoint_callback): Renamed to
26867         mono_debugger_breakpoint_callback(); take the method and
26868         breakpoint number as arguments.
26869
26870 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
26871
26872         * metadata.c: fix off by one when loading parameters attributes.
26873
26874 2003-04-24  Martin Baulig  <martin@ximian.com>
26875
26876         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
26877
26878 2003-04-24  Martin Baulig  <martin@ximian.com>
26879
26880         * mono-debug-debugger.c: Moved all code which interacts with the
26881         Mono Debugger here.
26882
26883         * debug-mono-symfile.c: This code now just deals with the symbol
26884         file itself, the debugger code is now in mono-debug-debugger.c.
26885
26886 2003-04-23  Martin Baulig  <martin@ximian.com>
26887
26888         * mono-debug.c (mono_debug_source_location_from_il_offset):
26889         New method; like mono_debug_source_location_from_address(), but
26890         takes an IL offset instead of a machine address.
26891
26892 2003-04-23  Martin Baulig  <martin@ximian.com>
26893
26894         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
26895         `line' field; this is now computed by the debugger.
26896
26897 2003-04-23  Martin Baulig  <martin@ximian.com>
26898
26899         * mono-debug.[ch]: New files.  This is the new debugging interface.
26900
26901         * mono-debug-debugger.[ch]: New files.  Moved all code which
26902         interacts with the Mono Debugger here.
26903
26904 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
26905
26906         * domain.c (mono_init): initialize mono_defaults.monitor_class
26907
26908 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
26909
26910         * reflection.c (method_encode_code): Add a spicy exception to help
26911         future compiler authors.
26912
26913 2003-04-21  Martin Baulig  <martin@ximian.com>
26914
26915         * icall.c
26916         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
26917         Make this work with relative pathnames; g_filename_to_uri() needs
26918         an absolute filename.
26919
26920 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
26921
26922         * icall.c: Track name changes in Object and ValueType.
26923
26924 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
26925
26926         * metadata.c (mono_type_stack_size): size should be a multiple of
26927         sizeof (gpointer)
26928
26929 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26930
26931         * gc.c:
26932         (internal_domain_finalize): moved into mono_domain_finalize. No need
26933         to create another thread because the finalizers will be run in the
26934         finalizer thread.
26935         
26936         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
26937         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
26938         to be run (MS does this too).
26939
26940 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
26941
26942         * object.c (mono_class_compute_gc_descriptor): Update comment.
26943
26944         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
26945
26946         * image.h: Add synchronized wrapper cache.
26947
26948         * image.c (do_mono_image_open): Initialize cache.
26949
26950         * reflection.c (create_dynamic_mono_image): Initialize cache.
26951
26952 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26953
26954         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
26955         ves_icall_System_Buffer_ByteLengthInternal.
26956
26957 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
26958
26959         * reflection.c: setup klass->nested_in earlier. Allow
26960         a dash in the assembly name.
26961
26962 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
26963
26964         * metadata.c (mono_type_to_unmanaged): dont access
26965         type->data.klass for MONO_TYPE_OBJECT
26966         (mono_type_to_unmanaged): consider System.Delegate class
26967
26968 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
26969
26970         * class.c: just setup supertypes in the proper place instead of
26971         initializing the full element class for arrays.
26972
26973 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
26974
26975         * class.c: ensure the element class of arrays is initialized.
26976         Setup the supertype info for array classes, too.
26977
26978 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
26979
26980         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
26981
26982 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26983
26984         * Makefile.am: re-added -m option when running cygpath. This way,
26985         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
26986         separator.
26987         * mono-config.c: same codepath for locating mono config file for WIN32
26988         and the rest.
26989         * assembly.c: if mono_assembly_setrootdir is called, don't override
26990         the value set.
26991
26992 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26993
26994         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
26995         MONO_ASSEMBLIES variable.
26996
26997 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
26998
26999         * icall.c: added Assembly::GetNamespaces() icall.
27000
27001 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27002
27003         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
27004
27005 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
27006
27007         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
27008         * object.c: fixed bug in the construction of vtable for proxies
27009
27010 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
27011
27012         * object.c (mono_array_new): Mark mono_array_new as an icall.
27013
27014 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27015
27016         * class.c: fixed test for public method when overriding interfaces.
27017         Closes bug #40970.
27018
27019 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
27020
27021         * appdomain.h, domain.c: added mono_domain_foreach() to
27022         be able to access the currently loaded appdomains.
27023         * object.c: make string interning work across sppdomains.
27024         Mark some functions for use as icalls.
27025
27026 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
27027
27028         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
27029
27030         * reflection.h reflection.c: Allocate long living data using 
27031         GC_MALLOC_ATOMIC so the collector does not need to scan it.
27032
27033         * reflection.c: Double the allocation size in streams instead of
27034         increasing it, to prevent unneccesary copying on large assemblies.
27035         
27036         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
27037         creation if the assembly does not have the Run flag set.
27038
27039 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
27040
27041         * class.h: avoid the C++ keywords in header files (Jerome Laban
27042         spotted and fixed this).
27043
27044 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27045
27046         * object.c:
27047         (mono_unhandled_exception): fill in the arguments for the
27048         UnhandledException event. Only trigger that event for the default
27049         domain (as MS does).
27050
27051 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
27052
27053         * object.c: Improve typed allocation stuff based on suggestions from
27054         Paolo. Also turn it on if the GC library supports it.
27055
27056 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
27057
27058         * object.c object.h class.h: Added experimental typed allocation
27059         facility using the interfaces in gc_gcj.h.
27060
27061         * os/gc_wrapper.h: Added new include files.
27062         
27063 2003-04-03  Martin Baulig  <martin@ximian.com>
27064
27065         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
27066         which is not yet enabled by default.
27067
27068         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
27069         functions.
27070         (mono_gc_lock, mono_gc_unlock): New static functions.
27071
27072         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
27073         functions; stop/start the world for the garbage collector.  This
27074         is using the windows API; we need to complete the SuspendThread()/
27075         ResumeThread() implementation in the io-layer to make this work on Unix.
27076         (mono_gc_push_all_stacks): New public function; tells the garbage
27077         collector about the stack pointers from all managed threads.
27078
27079 2003-04-03  Martin Baulig  <martin@ximian.com>
27080
27081         * object.h (MonoThread): Added `gpointer stack_ptr'.
27082
27083         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
27084
27085 2003-04-03  Martin Baulig  <martin@ximian.com>
27086
27087         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
27088
27089 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
27090
27091         * reflection.c (typebuilder_setup_fields): Initialize field.first and
27092         field.last.
27093
27094 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
27095
27096         * loader.c (mono_lookup_internal_call): Report the corlib that is
27097         out of sync.
27098
27099 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
27100
27101         * icall.c (ves_icall_type_GetTypeCode): fixed check for
27102         System.DBNull (it's class not valuetype).
27103
27104 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
27105
27106         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
27107         if the array method was already assigned a token (fixes bug#40646).
27108
27109 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
27110
27111         * reflection.c (mono_reflection_get_type): Attempt type resolve even
27112         if no assembly is given.
27113
27114 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
27115
27116         * metadata.h: Added the new tables.
27117
27118         * row-indexes.h: Added definitions for new tables.
27119
27120         * metadata.c: Add schemas for new tables, and add support for
27121         computing the sizes of them.
27122
27123         * class.c: Update for handling the new type cases.
27124
27125 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
27126
27127         * metadata.h (MONO_TYPE_IS_VOID): new macro
27128
27129 2003-03-31  Martin Baulig  <martin@ximian.com>
27130
27131         * threads.h (MonoThreadCallbacks): Added `thread_created'.
27132
27133         * threads.c (mono_thread_new_init): Call `thread_created' in the
27134         mono_thread_callbacks.
27135
27136 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
27137
27138         * loader.h: added marshalbyrefobject_class to mono_defaults
27139         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
27140         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
27141           generation of output parameters.
27142           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
27143         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
27144           contextbound and the target object belongs to the context of the caller.
27145         * object.h: added context and unwrapped_server variables in MonoRealProxy.
27146         * object.c: Implemented support for interfaces and abstract classes
27147           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
27148           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
27149
27150 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
27151
27152         * class.h class.c (mono_class_is_subclass_of): New function.
27153         
27154         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
27155         routines for most common case (calls from ArrayList::ToArray).
27156
27157         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
27158         routine so programs which call Environment::Exit() can be profiled.
27159
27160         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
27161         Added MONO_ARCH_SAVE_REGS.
27162
27163         * icall.c (ves_icall_type_is_subtype_of): Use new function.
27164
27165 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
27166
27167         * blob.h: Add a couple of new MonoType types definitions.
27168
27169         * tabledefs.h: Add a couple of new call convs.
27170
27171 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
27172
27173         * reflection.h (MonoReflectionDynamicAssembly): track changes in
27174         the layout of the class.
27175
27176         * reflection.c (alloc_table): double the size on overflow to avoid
27177         unnecessary copying.
27178
27179         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
27180         avoid filling out metadata tables and blobs. Also set mb->ilgen to
27181         null so it can be garbage collected.
27182         
27183 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
27184
27185         * reflection.c (mono_reflection_get_type): Return the resolved type
27186         only if it is in the assembly we searched.
27187
27188         * reflection.c (ensure_runtime_vtable): Initialize method slots.
27189
27190         * class.c (mono_class_setup_vtable): Set the slot of the overriding
27191         method.
27192
27193 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27194
27195         * appdomain.c:
27196         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
27197         the right one is 'file:///blah', but MS allows it.
27198         * assembly.c:
27199         (mono_assembly_open): allow 'file://blah'
27200
27201         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
27202
27203 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
27204
27205         * socket-io.c: fixes bug #40310.
27206
27207 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
27208
27209         * reflection.c (mono_reflection_parse_type): handle deeply nested
27210         types correctly.
27211
27212         * reflection.c (mono_image_create_token): Use unique token values
27213         since they will be put into a hash table.
27214
27215         * class.c (mono_class_setup_vtable): If a method occurs in more than
27216         one place in the vtable, and it gets overriden, then change the
27217         other occurances too.
27218
27219         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
27220         object as return type.
27221
27222 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
27223
27224         * icall.c: Deleted "ToString" implementation for double and float
27225         because they are full implemented in managed code.
27226
27227 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
27228
27229         * reflection.c, reflection.h: implemented and exported functions
27230         to retrieve info about custom attributes.
27231
27232 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27233
27234         * appdomain.c: moved Uri handling to assembly.c
27235         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
27236         work when using a file Uri in *nix and windows.
27237
27238         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
27239         GetReferencedAssemblies.
27240
27241 2003-03-18  Dick Porter  <dick@ximian.com>
27242
27243         * icall.c: Rename a couple of internal calls
27244
27245         * threads.c: Set the thread state to Stopped when a thread exits.
27246         Fixes bug 39377.
27247
27248 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
27249
27250         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
27251         New icall.
27252
27253         * object.c (mono_class_vtable): fix warning.
27254
27255 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
27256
27257         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
27258
27259         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
27260         memory.
27261         (method_encode_clauses): Create exception info structures in the right
27262         order.
27263         (mono_reflection_setup_internal_class): Initialize supertypes field.
27264
27265         * class.c object.c: Handle interfaces which implement other interfaces 
27266         correctly.
27267
27268         * class.h class.c: Move the supertypes array initialization code into 
27269         a separate function so it can be used for dynamic types too. Also call
27270         it earlier, in mono_class_init(), since it can be used before the
27271         type is initialized.
27272
27273 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27274
27275         * Makefile.am:
27276         * assembly.c:
27277         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
27278
27279         * appdomain.c:
27280         * appdomain.h:
27281         * marshal.c:
27282         * object.c: remove warnings.
27283
27284 2003-03-13  Martin Baulig  <martin@ximian.com>
27285
27286         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
27287         (MonoDebugLexicalBlockEntry): New types.
27288
27289         * debug-mono-symfile.c
27290         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
27291
27292 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27293
27294         * process.c: ret can be any non-zero value accroding to MS doc.
27295
27296 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
27297
27298         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
27299         fixing a warning for a miss-used prototype, would have cause
27300         random memory corruption.
27301
27302 2003-03-07  Martin Baulig  <martin@ximian.com>
27303
27304         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
27305         getting really annoying ....
27306
27307 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
27308
27309         * reflection.c (fixup_method): added support for array methods.
27310
27311 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
27312
27313         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
27314         (pointed out by Michael Adams).
27315
27316 2003-03-04  Dick Porter  <dick@ximian.com>
27317
27318         * icall.c: Temporarily reverted the Double and Single ToString()
27319         change, because it broke nunit.
27320
27321 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
27322
27323         * object.h, threads.h: make include files compatible with C++
27324         (patch by Jerome Laban <jlaban@wanadoo.fr>).
27325
27326 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
27327
27328         * icall.c: Erased ToString helper functions for Double and Single.
27329         Now, that implementations ar all in managed code (Double and Single
27330         Formatters).
27331
27332 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
27333
27334         * appdomain.c: Added method for initializing the default context of
27335         a domain. Added internal call for getting the default context.
27336         * appdomain.h: Added context variable in MonoDomain struct.
27337         * domain.c: mono_domain_set also sets the default context of the domain
27338         * icall.c: Mapped internal method InternalGetDefaultContext.
27339         * object.c: mono_object_get_virtual_method returns always a remoting
27340         wrapper if the object is a transparent proxy.
27341         mono_runtime_invoke_array: when creating an object by calling the
27342         constructor, if the created object is a proxy, then the constructor should
27343         be called using the a remoting wrapper.
27344
27345 2003-03-03  Dick Porter  <dick@ximian.com>
27346
27347         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
27348         variable so it compiles on solaris.  Problem spotted by
27349         Christopher Taylor <ct@cs.clemson.edu>
27350
27351 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27352
27353         * appdomain.c:
27354         (get_info_from_assembly_name): don't leak value.
27355
27356         * icall.c:
27357         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
27358         result.
27359
27360 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
27361
27362         * assembly.c: export mono_image_load_references ().
27363         * class.c: handle function pointers. mono_class_from_name() now
27364         supports nested type names directly.
27365
27366 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
27367
27368         * reflection.h reflection.c: Encode already created dynamic methods 
27369         and fields correctly as a DEF instead of a REF.
27370
27371         * reflection.c: Get rid of the force_ref argument to 
27372         mono_image_typedef_or_ref since it was wrong in the first place.
27373
27374         * string-icalls.c: add error checking to string constructors according
27375         to the MSDN docs.
27376
27377         * reflection.c: Emit types in the order their TypeBuilders were 
27378         created. Previously, a new table index was assigned to each type before
27379         the tables were emitted. This was wrong because the signature blob
27380         might already refer to a type by its original table index.
27381
27382 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
27383
27384         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
27385         change.
27386         
27387 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27388
27389         * Makefile.am: make assemblies dir have \ instead of / on windows.
27390
27391 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
27392
27393         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
27394         iterate over the NESTEDCLASS table using a linear search since the
27395         table is not guaranteed to be sorted by the secondary key.
27396
27397         * class.c (mono_class_create_from_typedef): fixed up call to
27398         mono_metadata_nesting_typedef.
27399         
27400 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
27401
27402         * marshal.c (mono_string_to_byvalstr): clear the memory as
27403         suggested by Jerome Laban <jlaban@wanadoo.fr>
27404
27405 2003-02-26  Dick Porter  <dick@ximian.com>
27406
27407         * process.c: Cope with padding in .rsrc blocks
27408
27409 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
27410
27411         * metadata.h: reverted the filter_len change, it breaks reflection
27412         
27413 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
27414
27415         * metadata.h: added a new field to store the filter_len
27416         
27417
27418 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
27419
27420         * reflection.c: handle custom attributes for types and members
27421         created with Reflection.Emit (bug#38422).
27422
27423 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
27424
27425         * reflection.c: define RTSpecialName automatically for constructors for
27426         compatibility with MS.NET.
27427
27428         * reflection.c (mono_reflection_create_runtime_class): initialize
27429         nested_in field of dynamically created classes.
27430
27431 2003-02-22  Martin Baulig  <martin@ximian.com>
27432
27433         * debug-mono-symfile.h: Incremented version number.
27434
27435 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
27436
27437         * object.h icall.c process.c: fix warnings.
27438
27439 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
27440
27441         * appdomain.h appdomain.c:
27442         (mono_domain_try_type_resolve): split the 
27443         name_or_tb argument into a name and a tb argument.
27444         (mono_domain_has_type_resolve): new function to check whenever the
27445         application has registered a TypeResolve event handler.
27446         
27447         * icall.c reflection.h reflection.c: move the type resolve logic into
27448         mono_reflection_get_type () so it will be invoked when 
27449         Assembly::GetType () is called.
27450
27451         * reflection.c:
27452         (mono_reflection_get_type): renamed to get_type_internal.
27453         (mono_reflection_get_type): fixed type name generation so it works 
27454         for nested types too.
27455         (mono_reflection_get_type): call has_type_resolve () to avoid the 
27456         costly type name generation if there is no resolve event handler.
27457
27458 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
27459
27460         * class.c, image.c: load exported types from file references.
27461
27462 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
27463
27464         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
27465           used to cache the managed methods used to create proxies and make 
27466           remote invocation of methods.
27467         * class.h: Added in MonoVTable a flag to indicate that a class needs 
27468           to be remotely created.
27469         * object.c: Modified the method mono_class_vtable(). It now initializes 
27470           the remote flag of the vtable. Modified mono_object_new_specific(), 
27471           so now it checks the remote flag.
27472         * icall.c: Added a couple of internal methods, one for enabling instance 
27473           creation interception for a type, and one for creating objects bypassing
27474           the remote check.
27475
27476 2003-02-18  Martin Baulig  <martin@ximian.com>
27477
27478         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
27479         New interncall to get a method's metadata token.
27480
27481         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
27482         New interncall for the debugger.
27483
27484 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
27485
27486         * class.c (mono_class_setup_vtable): allocate supertype array
27487
27488 2003-02-18  Martin Baulig  <martin@ximian.com>
27489
27490         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
27491
27492 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27493
27494         * reflection.c:
27495         (assembly_name_to_aname): jump over unknown properties (i've found
27496         something like: 'type, assembly, version=xxx, custom=null, public...',
27497         so now will ignore custom=null and still get the rest of the values).
27498
27499 2003-02-17  Dick Porter  <dick@ximian.com>
27500
27501         * threads.c: Have Thread.Start() wait for a semaphore to signal
27502         that the thread has set up all its local data.  This fixes bug
27503         34323, where Abort() raced the new thread's TLS data.
27504
27505         Also removes the handle_store() call from start_wrapper, because
27506         threads are now always created suspended and there is no longer a
27507         race between the parent and child threads to store the info.
27508
27509 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
27510
27511         * image.c: explain the #- heap issue in a message, hopefully
27512         avoiding FAQs on mono-list.
27513
27514 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27515
27516         * icall.c:
27517         (GetEntryAssembly): if the domain has not invoked
27518         AppDomain.ExecuteAssembly yet, return the assembly of the default
27519         AppDomain.
27520
27521 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
27522
27523         * class.c (mono_ldtoken): make it work in dynamic assemblies.
27524
27525 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
27526
27527         * metadata.c, reflection.c: simple speedup to type hash
27528         and equals code.
27529
27530 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
27531
27532         * image.c, image.h, class.c, assembly.c: move module loading
27533         to MonoImage. When loading metadata, consider alignemnet from
27534         the start of metadata, not from the metadata address in memory.
27535
27536 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
27537
27538         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
27539         AssemblyBuilder objects. Factored out custom attribute creation into
27540         a separate function.
27541         (create_custom_attr): new function to create custom attributes.
27542
27543 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
27544
27545         * Makefile.am: Got tired of typing the full pathname to pedump.
27546         Until there is another option, am installing this.
27547
27548 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
27549
27550         * class.c (class_compute_field_layout): always set field->parent 
27551         (mono_ldtoken): use mono_defaults.fieldhandle_class;
27552
27553 2003-02-11  Dick Porter  <dick@ximian.com>
27554
27555         * threads-types.h:
27556         * monitor.c: Rewrote Monitor, making lock much faster and
27557         Pulse/Wait work as specified.  Also uses much fewer handles, and only
27558         creates them as needed.
27559
27560         * exception.c: Added SynchronizationLockException
27561
27562         * threads.c: Deleted old Monitor implementation.  The new one is
27563         in a new file.
27564
27565 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
27566
27567         * class.c: handled TypedReference type code. Set the correct size for
27568         class data. Setup interface_offsets for interface classes, too.
27569
27570 2003-02-09  Martin Baulig  <martin@ximian.com>
27571
27572         * debug-mono-symfile.h: Reflect latest symbol writer changes.
27573
27574 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
27575
27576         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
27577         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
27578         * object.c: fixed mono_object_get_virtual_method () for interfaces.
27579         * verify.c: check for code that runs after the end of the method.
27580
27581 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
27582
27583         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
27584         "System.Math::Round2".
27585         * sysmath.h: Added Floor, Round and Round2 definitions.
27586         * sysmath.c: Modified certain functions that were not 100% compliant
27587         with MS.NET (math precision) and added the implementation of Floor,
27588         Round and Round2.
27589
27590 2003-02-07  Martin Baulig  <martin@ximian.com>
27591
27592         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
27593
27594 2003-02-07  Martin Baulig  <martin@ximian.com>
27595
27596         * debug-mono-symfile.c: Reflected latest symwriter changes.
27597         (mono_debug_create_mono_symbol_file): Removed.
27598         (mono_debug_open_mono_symbol_file): Take an argument which
27599         specifies whether to create a dynamic symbol file.
27600
27601 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
27602
27603         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
27604
27605 2003-02-05  Martin Baulig  <martin@ximian.com>
27606
27607         * reflection.c (mono_image_build_metadata): Make this public,
27608         protect it against being called multiple times, don't create
27609         resources and don't build the compressed metadata here.
27610         (mono_image_create_pefile): Do this here.
27611
27612         * icall.c
27613         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
27614
27615 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27616
27617         * socket-io.c: fixed bug #36322.
27618
27619 2003-02-06  Piers Haken <piersh@friskit.com>
27620
27621         * appdomain.[ch]:
27622         * class.h:
27623         * debug-mono-symfile.c:
27624         * icall.c:
27625         * loader.c:
27626         * mono-config.c:
27627         * monosn.c:
27628         * reflection.c:
27629         * socket-io.c: warning cleanups
27630
27631 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
27632
27633         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
27634         function. works like remoting invoke, but does a check for the Proxy first.
27635
27636 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
27637
27638         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
27639
27640 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
27641
27642         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
27643         array of pointers.
27644         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
27645         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
27646
27647         * object.c (mono_store_remote_field_new): used by the new jit
27648         instead of mono_store_remote_field
27649         (mono_load_remote_field_new): used by the new jit
27650         instead of mono_load_remote_field
27651
27652 2003-02-05  Patrik Torstensson
27653
27654         * appdomain.c: changed unload to take the domain id instead
27655         of domain
27656         
27657         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
27658
27659
27660 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27661
27662         * appdomain.c: don't look for assemblies in ApplicationBase if
27663         PrivateBinPathProbe is set.
27664
27665 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27666
27667         * object.c: make the first argument in main_args contain the absolute
27668         path to the assembly. Fixes bug #37511.
27669
27670 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27671
27672         * icall.c: get correct UTC offset for countries not using daylight
27673         time saving. Fixes bug #30030.
27674
27675 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27676
27677         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
27678         and 1 are the family).
27679
27680 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
27681
27682         * icall.c (ves_icall_InternalExecute): removed wrong assertion
27683
27684         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
27685
27686 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
27687
27688         * reflection.c: added support for SignatureHelper tokens, which is
27689         needed by the Calli opcode.
27690
27691         * reflection.h: track changes to SignatureHelper class.
27692
27693         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
27694
27695 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27696
27697         * appdomain.c: fixed loading assemblies from PrivateBinPath.
27698
27699 2003-02-03  Patrik Torstensson
27700         * appdomain.[c|h], domain.c : 
27701          - Added support for getting a domain via domain id
27702          - Support for setting and getting domain from System.AppDomain 
27703            (used in cross appdomain channel)
27704          - Added support for get/set for a MonoAppContext on a thread 
27705            (Context class in System.Runtime.Remoting.Contexts),
27706          - Removed hack in Get/SetData and ExecuteAssembly.
27707         
27708         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
27709         the managed world to get control when a proxy is created.
27710
27711         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
27712         
27713 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
27714
27715         * icall.c
27716         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
27717         Populate the codebase field as well.
27718
27719 2003-02-02  Martin Baulig  <martin@ximian.com>
27720
27721         * debug-mono-symfile.c
27722         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
27723         (mono_debug_symfile_add_method): Allow interncalls.
27724
27725 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27726
27727         * icall.c: throw parse exception if strtod fails or the string is empty.
27728
27729 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
27730
27731         * marshal.c: handle object type separately from defined
27732         class types.
27733
27734 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
27735
27736         * marshal.c: handle NATIVE_LPSTR for strings when it's
27737         explicitly specified.
27738
27739 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
27740
27741         * reflection.c, reflection.h, icall.c: setup the reflection
27742         handle cache for ModuleBuilders and AssemblyBuilders.
27743
27744 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
27745
27746         * reflection.c (reflection_methodbuilder_to_mono_method): set
27747         pinvoke flag
27748
27749 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27750
27751         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
27752
27753 2003-01-29  Dick Porter  <dick@ximian.com>
27754
27755         * threads.c: No need for the fake_thread kludge now that Thread
27756         doesn't run a class constructor
27757         
27758 2003-01-29  Dick Porter  <dick@ximian.com>
27759
27760         * threads.c: Use g_direct_hash instead of the rather bogus
27761         g_int_hash
27762
27763 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
27764
27765         * marshal.c (mono_marshal_get_native_wrapper): add check for null
27766         (fix pinvoke12.exe)
27767         (mono_marshal_get_struct_to_ptr): generate valid IL code
27768         (mono_marshal_get_ptr_to_struct): generate valid IL code
27769         (*): correctly set sig->pinvoke, we need to memdup the signature
27770         to do that
27771
27772 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
27773
27774         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
27775         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
27776
27777 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
27778
27779         * profiler.c: provide more callers information.
27780
27781 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
27782
27783         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
27784
27785         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
27786
27787         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
27788
27789 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
27790
27791         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
27792         exception instead of going into an infinite loop on dates which it 
27793         can't yet handle.
27794
27795         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
27796         out-of-range exception if needed.
27797
27798         * class.c (mono_class_setup_vtable): allow a virtual method to provide
27799         an implementation for an interface method and to override an inherited
27800         method at the same time. 
27801         Imagine a scenario when a virtual method is used to override a
27802         virtual abstract method in a parent class, and this same method 
27803         provides an implementation for an method inherited from an interface. 
27804         In this case, the interface resolution code will set im->slot, which 
27805         means that the virtual method override pass will skip this method 
27806         which means a pointer to the abstract method inherited from the parent
27807         will remain in the vtable of this non-abstract class.
27808
27809         * class.c: (mono_class_setup_vtable): continue search for a real 
27810         method if only an abstract method is found.     
27811
27812 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
27813
27814         * reflection.c: add size to encoding for ByValStr and ByValArray
27815         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
27816
27817 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
27818
27819         * class.c (mono_class_setup_vtable): pass the override info as an
27820         argument.
27821
27822         * class.c (mono_class_setup_vtable): set the slot of overriding methods
27823         correctly.
27824         
27825         * reflection.c (ensure_runtime_vtable); add support for method 
27826         overrides.
27827         
27828 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
27829
27830         * reflection.c (resolution_scope_from_image): Hack to work to work with
27831         dynamic assemblies.
27832
27833         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
27834         added a 'force_ref' argument to force this function to allways return 
27835         a TypeRef. This is needed by mono_image_get_memberref_token ().
27836         
27837 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
27838
27839         * reflection.c (mono_image_get_type_info): interfaces really don't have
27840         a parent.
27841
27842         * reflection.c (mono_image_basic_init): fill out missing fields of
27843         image structure.
27844
27845         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
27846         dynamic assemblies. This is required so dynamic assemblies show up in
27847         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
27848         Type::GetType() etc. This is consistent with MS behaviour.
27849
27850         * image.c image.h reflection.c: add newly created classes to the name 
27851         cache so mono_class_get () will find them.      
27852
27853 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
27854
27855         First part of changes to get IKVM.NET running under mono.
27856         
27857         * appdomain.h, appdomain.c: added new function 
27858         mono_domain_try_type_resolve() which will emit TypeResolve events. 
27859         This function will call AppDomain::DoTypeResolve to do the actual work.
27860
27861         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
27862         moved existing code dealing with dynamic tokens to a new function 
27863         called mono_reflection_lookup_dynamic_token (). This function will 
27864         raise TypeResolve events when appropriate. Since reflection.c is not 
27865         part of libmetadata, a new hook function called 
27866         mono_lookup_dynamic_token() is added to class.c which will call this.
27867
27868         * assembly.h assembly.c: make the invoke_load_hook function public,
27869         so it can be called for dynamic assemblies.
27870
27871         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
27872
27873         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
27874         type isn't found.
27875
27876         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
27877         MonoGHashTable, since it contains pointers to objects which the GC 
27878         needs to track.
27879
27880         * assembly.c (search_loaded): remove unused variable.
27881         
27882 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
27883
27884         * object.c: fixed issue exposed by gcc-generated IL programs
27885         that use RVA data for pointers.
27886
27887 2003-01-25  Martin Baulig  <martin@ximian.com>
27888
27889         * threads.c (start_wrapper): Moved the initialization of
27890         `start_func' above the mono_new_thread_init() call to which we
27891         pass it as argument.
27892
27893 2003-01-24  Martin Baulig  <martin@ximian.com>
27894
27895         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
27896         the MonoThread pointer.
27897
27898 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
27899
27900         * icall.c: Rename `PowImpl' to Pow.
27901
27902 2003-01-23  Dick Porter  <dick@ximian.com>
27903
27904         * threads.c (start_wrapper): Create a Thread object if needed, so
27905         the Main() thread can do the class initialisation in a subthread
27906         that has been set up to allow managed code execution.
27907
27908         Pass the thread ID instead of the MonoThread pointer to the thread
27909         start and attach callbacks.  This change is required, because the
27910         jit thread start callback must be called _before_ the Thread
27911         object can be created.
27912         
27913         (mono_thread_init): Removed much object creation code that is no
27914         longer needed.  No managed code is called from here now.
27915
27916         * object.c (mono_runtime_exec_managed_code): Create a subthread
27917         for Main, and call back to the runtime to use it.
27918         Set the exit code when Main exits.
27919
27920         * gc.c: Make sure domain finalisation happens in a subthread.
27921         Re-enable threaded GC, fixing bug 31333 (again).
27922
27923         * environment.c: System.Environment internall calls (so far just
27924         ExitCode is here, the others are still in icall.c)
27925
27926         * appdomain.c (mono_runtime_cleanup): All threads running managed
27927         code should have finished before mono_runtime_cleanup() is
27928         reached, so no need to clean up threads.
27929
27930 2003-01-22  Martin Baulig  <martin@ximian.com>
27931
27932         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
27933         `gpointer func' arguments.      
27934         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
27935         but added `MonoThread *thread' argument.
27936         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
27937
27938         * threads.c (mono_new_thread_init): Added `gpointer func' argument
27939         and pass it to the mono_thread_start_cb callback.
27940         (mono_install_thread_callbacks): New public function to install a
27941         set of callbacks which are set by the debugger.
27942         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
27943
27944 2003-01-22  Martin Baulig  <martin@ximian.com>
27945
27946         * Makefile.am: Install debug-mono-symfile.h.
27947
27948 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
27949
27950         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
27951
27952 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
27953
27954         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
27955         * class.c (mono_ptr_class_get): correctly set access levels of pointers
27956         (mono_array_class_get): correctly set access levels of arrays
27957
27958 2003-01-20      Patrik Torstensson
27959         * image.h (MonoAssemblyName): changed major, minor, build, revision
27960         from signed to unsigned.
27961
27962 2003-01-20  sean kasun <skasun@azstarnet.com>
27963
27964         * reflection.c (load_cattr_value): Now this handles
27965         MONO_TYPE_SZARRAY.  Fixes bug #35629
27966
27967 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
27968
27969         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
27970         integer value
27971
27972 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27973
27974         * decimal.c: fixed bug #26056.
27975
27976 2003-01-17  Martin Baulig  <martin@ximian.com>
27977
27978         * gc.c: Raise an ExecutionEngineException instead of using g_error().
27979
27980 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27981
27982         * exception.[ch]:
27983         (mono_get_exception_type_initialization): new function.
27984
27985         * object.c: throw a TypeInitializationException when an exception is
27986         thrown invoking the class constructor.
27987
27988 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27989
27990         * reflection.c: fixed attribute reading.
27991
27992 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27993
27994         * icall.c:
27995         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
27996         provided, look for the type in the calling assembly and then in
27997         mscorlib; if the assembly name is provided, only try that one.
27998
27999 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
28000
28001         * object.c: register the vtable before there is a chance it's
28002         queried again recursively.
28003
28004 2003-01-13  Duncan Mak  <duncan@ximian.com>
28005
28006         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
28007         gc-internal.h. 
28008         
28009 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
28010
28011         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
28012
28013 2003-01-11  Martin Baulig  <martin@ximian.com>
28014
28015         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
28016         this to 20 for the release.
28017
28018 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
28019
28020         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
28021
28022         * loader.c (mono_method_get_marshal_info): bug fix
28023
28024         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
28025         structures with explicit layout
28026
28027 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
28028
28029         * profiler.c: made the output more readable (and sorted). 
28030         Added caller information for the allocation profiler.
28031
28032 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
28033
28034         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
28035
28036 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28037
28038         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
28039         to get value types.
28040         
28041 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
28042
28043         * object.c, profiler.h, profiler.c, profiler-private.h:
28044         Added object allocation profiler.
28045
28046 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
28047
28048         * reflection.h, reflection.c: handle global methods.
28049         Compress blob entries.
28050
28051 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
28052
28053         * marshal.c: fix compilation.
28054
28055 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
28056
28057         * loader.c (mono_method_get_marshal_info): impl.
28058
28059         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
28060
28061 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28062
28063         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
28064         for reference types.
28065
28066 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
28067
28068         * loader.c: fixed off by one error in loaded parameter names.
28069
28070 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
28071
28072         * marshal.c (mono_marshal_get_icall_wrapper): like
28073         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
28074         instead of a MonoMethod.
28075
28076 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28077
28078         * decimal.c: fixed bug #36537.
28079
28080 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
28081
28082         * marshal.c: throw a missing method exception if a
28083         P/Invoke method is not found.
28084
28085 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
28086
28087         * icall.c: allow a null this for constructors.
28088
28089 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
28090
28091         * icall.c: raise the proper exceptions if the arguments to the
28092         internal Invoke are incorrect.
28093
28094 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
28095
28096         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
28097
28098 2003-01-03  Martin Baulig  <martin@ximian.com>
28099
28100         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
28101
28102 2002-12-31  Martin Baulig  <martin@ximian.com>
28103
28104         * debug-mono-symfile.c: Completely rewrote the type section.
28105         Instead of using individual malloc()ed fields, we use one big
28106         continuous memory area and offsets into this area.
28107         See the comments in the source code for details.
28108
28109 2002-12-30  Martin Baulig  <martin@ximian.com>
28110
28111         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
28112
28113 2002-12-30  Martin Baulig  <martin@ximian.com>
28114
28115         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
28116         line number table in this data blob instead of using an external
28117         pointer.
28118
28119 2002-12-28  Martin Baulig  <martin@ximian.com>
28120
28121         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
28122
28123 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
28124
28125         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
28126         as a boxed return type.
28127
28128 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
28129
28130         * appdomain.c
28131         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
28132         g_build_filename to properly get separators on the filename created.
28133
28134         * object.h: Small change, introduce MonoMarshalByRefObject to
28135         track the layout of that structure in the C# universe as we make
28136         changes there.
28137
28138 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
28139
28140         * object.c: removed assert to allow static fields on interfaces.
28141         * loader.c: a TypeSpec may be used for any type, not just arrays.
28142
28143 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
28144
28145         * class.c, class.h: added mono_class_array_element_size ().
28146         Ignore static methods in interfaces.
28147
28148 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28149
28150         * threads.c: fixed the build under cygwin.
28151
28152 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
28153
28154         * reflection.c: handle nullref constants. Allocate keys for
28155         reflection handles with the GC.
28156
28157 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
28158
28159         * threads.c, threads.h: added mono_thread_get_abort_signal()
28160         to get a suitable signal for thread abort.
28161
28162 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
28163
28164         * metadata.c: fix handling of ExportedType table.
28165
28166 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28167
28168         * icall.c: added WriteWindowsDebugString internal call.
28169
28170 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28171
28172         * reflection.h: added fields to match C# implementation.
28173
28174 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28175
28176         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
28177
28178 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
28179
28180         * gc.h, gc-internal.h: Rename header for GC internal calls to
28181         gc-internal.h from gc.h as to not clash with Boehm GC having its
28182         header installed as <gc.h> in outside include paths.
28183         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
28184         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
28185
28186 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28187
28188         * icall.c: assign minor, build and revision in FillName.
28189
28190 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
28191
28192         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
28193         Added support for running code generated by Reflection.Emit.
28194
28195 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28196
28197         * appdomain.c: check for NULL argument in LoadFrom.
28198
28199 2002-12-10  Dick Porter  <dick@ximian.com>
28200
28201         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
28202
28203 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28204
28205         * appdomain.c: fix buglet when building exe file name.  Handle full
28206         assembly name (needed after latest changes to AssemblyName).
28207         * image.c:
28208         (mono_image_close): free some hashtables.
28209
28210 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
28211
28212         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
28213         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
28214         on some systems (redhat 7.3) 
28215
28216 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
28217
28218         * threads.c: delete the critical section of a sync block,
28219         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
28220
28221 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
28222
28223         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
28224
28225 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28226
28227         * appdomain.[ch]: handle the assembly preload event to try loading the
28228         assemblies using the paths we have in the current domain.
28229
28230         * assembly.[ch]: created an assembly preload hook that is called to try
28231         loading the assembly by other means that the ones provided here.
28232
28233         * domain.c: initialize the domain search path.
28234
28235         From now on, assemblies (TODO: except corlib and System) are loaded
28236         according to these rules when using mono_assembly_load ():
28237
28238                 1. It tries to load the assembly from the ApplicationBase
28239                 of the current domain appending .dll and .exe (TODO: have to
28240                 try loading from name/name.dll and name/name.exe).
28241
28242                 2. It tries the search path specified in PrivateBinPath for the
28243                 current domain (if any).
28244
28245                 3. Previous behavior.
28246
28247 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
28248
28249         * icall.c: implemented GetInterfaceMap() related icall.
28250         * domain.c, loader.h: load MethodInfo in mono_defaults.
28251
28252 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
28253
28254         * gc.c: disable the finalizer thread for now, untill all the issues
28255         with it are resolved.
28256
28257 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
28258
28259         * string-icalls.c: handle embedded nulls in string ctor when the
28260         length is specified.
28261
28262 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
28263
28264         * class.c: look for explicit interface implementation in parent
28265         classes, too.
28266
28267 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
28268
28269         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
28270
28271 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
28272
28273         * gc.c: protect handles with a critical section.
28274
28275 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28276
28277         * icall.c:
28278         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
28279         parameters. If no assembly specified, try getting the type from all
28280         the assemblies in the current domain, else, load the assembly and get
28281         the type from it.
28282
28283 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28284
28285         * marshal.c: applied patch from Aleksey Demakov that fixes
28286         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
28287
28288 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28289
28290         * icall.c: fixed get_location.
28291
28292 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
28293
28294         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
28295         declarations to make it work with older gcc. 
28296
28297         * loader.c (mono_get_method): set signature->pinvoke for native calls
28298
28299 2002-11-20  Dick Porter  <dick@ximian.com>
28300
28301         * threads.c (mono_thread_init): Set the main thread's handle
28302
28303 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
28304
28305         * gc.c: allow compilation without GC support. Changed to match the
28306         mono coding style.
28307
28308 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
28309
28310         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
28311
28312 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
28313
28314         * reflection.c: set a public key token on the core assemblies.
28315
28316 2002-11-18  Dick Porter  <dick@ximian.com>
28317
28318         * threads.c: Split out some thread initialisation so that other
28319         files can set the start callback function.
28320
28321         * gc.c: Run finalisers in a separate thread, to avoid stack
28322         overflow.  Fixes bug 31333.
28323
28324         * appdomain.c: Set up GC finalisation thread.
28325
28326         * reflection.c: 
28327         * object.c: 
28328         * domain.c: Use gc.h macros for GC_malloc
28329         
28330 2002-11-15  Dick Porter  <dick@ximian.com>
28331
28332         * threadpool.c: 
28333         * threads.c:
28334         * appdomain.c: Removed mono_runtime_init_with_attach(),
28335         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
28336         merging the extra parameter with the existing function.  Removed
28337         unneeded code in mono_thread_attach().
28338
28339 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
28340
28341         * image.c (mono_image_loaded_by_guid): a method to get loaded
28342         images by guid. 
28343         (load_metadata_ptrs): we store the guid as string.
28344
28345 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
28346
28347         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
28348
28349         * metadata.c (mono_guid_to_string): imported method form Zoltan
28350         Varga (slightly modified)
28351
28352         * assembly.c (mono_assembly_open): load precompiled code
28353
28354         * loader.h (MonoMethod): we store the method token for use in the
28355         aot compiler. 
28356
28357 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28358
28359         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
28360         the hook function called when an assembly is loaded.
28361         
28362         * domain.c: Modified file.
28363         (mono_domain_assembly_load): removed hash table insertion of assemblies.
28364
28365         Fixes bug #33196.
28366
28367 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
28368
28369         * reflection.c: Map PEFileKind to the value expected by the WinNT
28370         image loader. 
28371
28372 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28373
28374         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
28375         Read until the buffer is filled completely.
28376
28377 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28378
28379         * icall.c: implemented MonoType.InternalGetEvent ().
28380
28381 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28382
28383         * appdomain.c: implemented InitAppDomainSetup. Delayed
28384         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
28385         the entry_assembly.
28386
28387         * assembly.c: base_dir is now an absolute path ending with
28388         G_DIR_SEPARATOR.
28389
28390         * icall.c: modified get_location according to the above changes.
28391
28392         * object.c: init AppDomain.SetupInformation for the default domain after
28393         we have the entry assembly.
28394
28395         * domain.c: when unloading a domain, setup = NULL.
28396
28397 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
28398
28399         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
28400
28401 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
28402
28403         * object.h, object.c: introduced mono_object_get_virtual_method ()
28404         to lookup the method invoked on an object when a callvirt is done on
28405         a method.
28406         * icall.c: make MethodInfo::Invoke() always do a virtual call.
28407
28408 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28409
28410         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
28411         current domain when loaded an assembly and failed to load it.
28412
28413         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
28414
28415 2002-10-31  Dick Porter  <dick@ximian.com>
28416
28417         * icall.c: 
28418         * file-io.h: 
28419         * file-io.c: Return the error status in a parameter, as the
28420         GetLastError() value has long since been blown away if we try and
28421         look it up in a subsequent internal call invocation.  Delete the
28422         GetLastError() internal call, because it's useless.
28423
28424 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
28425
28426         * class.[ch]: added cast_class to fix bug 29517
28427
28428 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
28429
28430         * marshal.c: create valid IL code in the filter clause:
28431         the new JIT is less forgiving:-)
28432
28433 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28434
28435         * icall.c: removed get_property internal call.
28436
28437 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
28438
28439         * appdomain.h domain.c: Added an ID to appdomains.
28440         
28441         * threads.c threads.h icall.c: Implement icall
28442         Thread:GetDomainID(), and remove unused icall 
28443         CurrentThreadDomain_internal.
28444
28445 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28446
28447         * icall.c: Don't recurse through the base types in GetConstructor.
28448         Fixes bug #32063. 
28449
28450 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
28451
28452         * mempool.h, mempool.c: added mono_mempool_empty() and
28453         mono_mempool_stats().
28454
28455 2002-10-23  Dick Porter  <dick@ximian.com>
28456
28457         * file-io.c: 
28458         * file-io.h: 
28459         * icall.c: Added MonoIO.GetFileType internal call
28460
28461 2002-10-17  Dick Porter  <dick@ximian.com>
28462
28463         * appdomain.c (mono_runtime_cleanup): Don't signal the async
28464         delegate semaphore before waiting for all threads to finish,
28465         because new threads can also call async delegates.  Fixes bug
28466         32004.
28467
28468         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
28469         of 3 seconds, in case another async job is queued.  (This part is
28470         needed because the bug fix reintroduced the 3s exit lag.)  This
28471         makes the mono_runtime_shutdown flag superfluous.
28472
28473 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
28474
28475         * reflection.c: include ehader size in method section headers.
28476         Really check for suplicated modules entries.
28477
28478 2002-10-17  Martin Baulig  <martin@gnome.org>
28479
28480         * debug-mono-symfile.c: Added back support for locals.
28481
28482 2002-10-14  Martin Baulig  <martin@gnome.org>
28483
28484         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
28485         MONO_TYPE_VOID.
28486
28487 2002-10-14  Martin Baulig  <martin@gnome.org>
28488
28489         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
28490         mono_class_get() instead of looking in the class cache. 
28491
28492 2002-10-13  Martin Baulig  <martin@gnome.org>
28493
28494         * debug-mono-symfile.c: Set version number to 28, include the
28495         signature in method names.
28496
28497 2002-10-13  Martin Baulig  <martin@gnome.org>
28498
28499         * debug-mono-symfile.h: Set version number to 27.
28500
28501 2002-10-11  Martin Baulig  <martin@gnome.org>
28502
28503         * gc.c: Don't register/unregister NULL pointers as disappearing links.
28504
28505 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
28506
28507         * metadata.c, metadata.h: added helper function to allocate signatures.
28508
28509 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28510
28511         * icall.c: added internal call to get the location of machine.config.
28512
28513 2002-10-08  Martin Baulig  <martin@gnome.org>
28514
28515         * debug-mono-symfile.c: Ignore classes with a pending init for the
28516         moment.
28517
28518 2002-10-03  Dick Porter  <dick@ximian.com>
28519
28520         * threads.c: Freebsd pthread_t is a pointer
28521
28522 2002-10-03  Dick Porter  <dick@ximian.com>
28523
28524         * socket-io.c: Implemented GetHostName_internal
28525
28526 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28527
28528         * mono-config.c:
28529         (mono_config_parse_file): don't leak the text.
28530
28531 2002-10-02  Martin Baulig  <martin@gnome.org>
28532
28533         * debug-mono-symfile.c: Added support for methods.
28534
28535 2002-10-01  Martin Baulig  <martin@gnome.org>
28536
28537         * debug-mono-symfile.c: Don't emit methods and line numbers for
28538         the dynamic symbol file, just write the type table.  We can easily
28539         have an external helper program which creates a symbol file for an
28540         IL file.        
28541
28542 2002-10-01  Dick Porter  <dick@ximian.com>
28543
28544         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
28545         Only add the handle to the cleanup array when we're about to
28546         launch the thread.  Bug 31425 deadlocked when the test was run on
28547         mono under w32.
28548
28549 2002-10-01  Martin Baulig  <martin@gnome.org>
28550
28551         * debug-mono-symfile.c: Added support for properties.
28552
28553 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
28554
28555         * reflection.c: unaligned store fix from Mark Crichton
28556         <crichton@gimp.org>.
28557
28558 2002-09-27  Martin Baulig  <martin@gnome.org>
28559
28560         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
28561         New interncall.
28562
28563 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
28564
28565         * assembly.h, assembly.c: use a sane API to hook into the assembly
28566         loading process instead of a useless special-purpouse hack
28567         (ngen needs a hook, too, for example).
28568
28569 2002-09-27  Dick Porter  <dick@ximian.com>
28570
28571         * threads.c (mono_thread_init): Call GetCurrentProcess() so
28572         io-layer can set up some process handle info.  Not needed on w32,
28573         but doesn't hurt either.
28574
28575         * process.c: Pass the program name in the second parameter to
28576         CreateProcess, so the path is searched.  Include the working
28577         directory. Implemented process name, process enumeration, and some
28578         process detail internal calls.
28579         
28580         * icall.c: Added internal calls for process lookup, and some
28581         process details
28582
28583 2002-09-26  Martin Baulig  <martin@gnome.org>
28584
28585         * assembly.c (mono_install_open_assembly_hook): New global
28586         function to install a function to be invoked each time a new
28587         assembly is loaded.
28588         (mono_assembly_open): Run this callback function if set.
28589
28590         * debug-mono-symfile.c: Put back line numbers for the dynamic
28591         symbol file and also record the .il file as source file.  This
28592         allows us to install the temporary symbol file as `file.dbg' just
28593         like a compiler-generated one.
28594
28595 2002-09-26  Nick Zigarovich <nick@chemlab.org>
28596
28597         * Corrected typo in gc.c (BOHEM vs BOEHM).
28598
28599 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28600
28601         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
28602         GetProperties. Also avoid calling g_slist_length in GetProperties and
28603         GetMethods.
28604
28605 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
28606
28607         * reflection.c: avoid unaligned stores (bug spotted by
28608         Mark Crichton  <crichton@gimp.org>).
28609
28610 2002-09-25  Martin Baulig  <martin@gnome.org>
28611
28612         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
28613         instead of guint64 for addresses and added prologue/epilogue info.
28614
28615 2002-09-25  Martin Baulig  <martin@gnome.org>
28616
28617         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
28618         store line number info.  For the dynamic symbol file, we only need
28619         to provide the JIT generated dynamic line number info for the dynamic
28620         symbol file.
28621
28622 2002-09-25  Martin Baulig  <martin@gnome.org>
28623
28624         * debug-mono-symfile.h: Incremented version number.
28625
28626 2002-09-24  Martin Baulig  <martin@gnome.org>
28627
28628         * class.c (mono_debugger_class_init_func): New global function
28629         pointer variable.
28630         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
28631         call it.
28632
28633         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
28634         function.  This is called via the mono_debugger_class_init_func
28635         hook to add all types to the dynamic type table.
28636         (ves_icall_MonoDebugger_GetType): New interncall to get a class
28637         from its metadata token.
28638
28639         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
28640         New interncall for the debugger.
28641
28642 2002-09-24  Nick Drochak <ndrochak@gol.com>
28643
28644         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
28645         before using it in case it is null.
28646         
28647 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
28648
28649         * metadata.c: allow custom modifiers in local var signatures
28650         (bug spotted by Zoltan Varga).
28651
28652 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
28653
28654         * class.c: deal with the <Module> class that may have a NULL vtable.
28655         Eliminate warnings.
28656
28657 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
28658
28659         * image.c, image.h: more strong name helpers.
28660         * monosn.c: more work: convert pem keys to cryptoapi format.
28661
28662 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
28663
28664         * string-icalls.c: speedup IndexOf.
28665
28666 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
28667
28668         * icall.c: updates from Zoltan.2.Varga@nokia.com.
28669
28670 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
28671
28672         * icall.c: cleanup: use mono_object_domain ().
28673
28674 2002-09-23  Martin Baulig  <martin@gnome.org>
28675
28676         * debug-mono-symfile.c: Improved type support.
28677
28678 2002-09-22  Martin Baulig  <martin@gnome.org>
28679
28680         * debug-mono-symfile.c: Added support for reference types and strings.
28681
28682 2002-09-22  Martin Baulig  <martin@gnome.org>
28683
28684         * debug-mono-symfile.c: Started to work on the type table.
28685
28686 2002-09-21  Martin Baulig  <martin@gnome.org>
28687
28688         * debug-mono-symfile.c: Largely reworked the symbol table format.
28689         The symbol table is now incrementally updated each time a new
28690         method is added.  We're now also using our own magic and version
28691         so that you don't need to recompile all your classes if the
28692         dynamic table changes.
28693         (mono_debug_update_mono_symbol_file): Removed.
28694         (mono_debug_symfile_add_method): New function to add a method.
28695
28696 2002-09-21  Martin Baulig  <martin@gnome.org>
28697
28698         * icall.c
28699         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
28700         New interncall.
28701
28702         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
28703         New interncall to get a method from its metadata token.
28704
28705 2002-09-21  Martin Baulig  <martin@gnome.org>
28706
28707         * debug-mono-symfile.c: Create type table.
28708
28709 2002-09-20  Martin Baulig  <martin@gnome.org>
28710
28711         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
28712
28713 2002-09-20  Martin Baulig  <martin@gnome.org>
28714
28715         * debug-mono-symfile.c: Provide information about params and locals.
28716
28717 2002-09-20  Martin Baulig  <martin@gnome.org>
28718
28719         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
28720         New interncall.
28721
28722         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
28723         interncall to get a method from its metadata token.
28724
28725 2002-09-20  Martin Baulig  <martin@gnome.org>
28726
28727         * debug-mono-symfile.c: Added a few checks for method->header
28728         being non-NULL.  This should never happen, but for the moment
28729         let's use a g_warning() rather than a g_assert().
28730
28731 2002-09-19  Mark Crichton  <crichton@gimp.org>
28732
28733         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
28734         even if support for it isn't present.  Added an #ifdef to fix this.
28735
28736         * socket-io.c: Added checks back for Solaris support.
28737
28738 2002-09-19  Martin Baulig  <martin@gnome.org>
28739
28740         * debug-mono-symfile.c (read_string, write_string): Reflect latest
28741         changes in the symbol file format.
28742
28743 2002-09-18  Martin Baulig  <martin@gnome.org>
28744
28745         * debug-mono-symfile.c: Set version number to 21.
28746
28747 2002-09-18  Dick Porter  <dick@ximian.com>
28748
28749         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
28750         on netbsd.  Fixes bug 30051.
28751
28752 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28753
28754         * reflection.c:
28755         (set_version_from_string): little fix.
28756
28757 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
28758
28759         * monosn.c, Makefile.am: added strong name utility.
28760         * reflection.h, reflection.c: implemented delayed signing,
28761         locale, version and hash id assembly attributes.
28762
28763 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
28764
28765         * loader.c, metadata.c: load param attributes in signatures.
28766
28767 2002-09-16  Martin Baulig  <martin@gnome.org>
28768
28769         * debug-mono-symfile.c: Added string table with all method names.
28770
28771 2002-09-14  Martin Baulig  <martin@gnome.org>
28772
28773         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
28774         fast method lookup.
28775
28776 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
28777
28778         * reflection.c: record the public key token of referenced assemblies.
28779
28780 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
28781
28782         * image.c, image.h: added functions to get the strong name and the
28783         public key of an assembly.
28784         * pedump.c: use them.
28785
28786 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
28787
28788         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
28789
28790 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
28791
28792         * marshal.c (mono_marshal_get_managed_wrapper): Added
28793         MONO_TYPE_BOOLEAN 
28794
28795 2002-09-11  Martin Baulig  <martin@gnome.org>
28796
28797         * gc.c: Call GC_unregister_disappearing_link() on all links when
28798         finalizing them, this is necessary to aviod a crash in boehm's
28799         finalize handler.
28800
28801 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
28802
28803         * gc.c: handle GetTarget for finalized objects spotted and fixed by
28804         nick@chemlab.org.
28805
28806 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
28807
28808         * icall.c: implemented MonoType::Module.
28809         * reflection.c, reflection.h: mono_module_get_object () from
28810         Tomi Pakarinen <tomi.pakarinen@welho.com>.
28811
28812 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
28813
28814         * icall.c: ignore overridden methods in GetMethods ().
28815         Fix for FieldInfo::SetValue().
28816         * object.c: handle float/double in runtime invoke.
28817
28818 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
28819
28820         * object.c: allow a constructor to be called again on an object.
28821
28822 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
28823
28824         * class.h, class.c: move field layout code to it's own function and
28825         export it. Get an interface id earlier. Move fields in MonoClass
28826         so they are more cache friendly and align the bitfields.
28827         * loader.c: temporary handle get_param_names() for a runtime method.
28828         * reflection.c, reflection.h: more code to handle runtime creation of
28829         types.
28830
28831 2002-09-09  Martin Baulig  <martin@gnome.org>
28832
28833         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
28834         signature with the pinvoke field being set for the actual call.
28835
28836 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
28837
28838         * icall.c: removed some unused icalls. Start of map of glib charsets
28839         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
28840
28841 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
28842
28843         * debug-helpers.c: break infinite loop (found and fixed by
28844         Holger Arnold <harnold@gmx.de>).
28845
28846 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
28847
28848         * icall.c: target may be null in create_delegate.
28849
28850 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
28851
28852         * marshal.c: handle a boolean return type.
28853
28854 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
28855
28856         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
28857
28858 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
28859
28860         * gc.c: fix weakreferences.
28861
28862 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
28863
28864         * icall.c: added icall to get default codepage.
28865
28866 2002-09-03  Dick Porter  <dick@ximian.com>
28867
28868         * threads.h: 
28869         * threads.c: Use MonoThread instead of MonoObject where
28870         apropriate.
28871
28872         Store running thread objects in a hash table, so that we have all
28873         the info to hand when waiting for them to finish
28874         (means we don't need OpenThread() any more, so mingw builds should
28875         be fully functional again.)
28876
28877         * verify.c:
28878         * object.h: Added thread ID to MonoThread
28879
28880 2002-09-03  Martin Baulig  <martin@gnome.org>
28881
28882         * icall.c (System.Reflection.Assembly::get_location): New interncall.
28883
28884 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28885
28886         * icall.c: fixed leak in get_temp_path. Thanks lupus.
28887
28888 2002-09-03  Martin Baulig  <martin@gnome.org>
28889
28890         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
28891         argument to store the end address of the disassembled instruction.
28892
28893         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
28894         here from debug-symfile.h.
28895         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
28896         JIT into this struct.
28897         (MonoSymbolFile): Added `char *image_file' field.
28898         (MonoDebugGetMethodFunc): Removed.
28899         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
28900         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
28901         (mono_debug_find_method): New method.
28902
28903         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
28904         create a full symbol file.
28905         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
28906         and static symbol files.
28907         (mono_debug_find_method): The symbol file keeps an internal method hash,
28908         call this to get a MonoDebugMethodInfo from a MonoMethod.
28909
28910         * debug-symfile.[ch]: Removed.
28911
28912 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
28913
28914         * image.c (do_mono_image_open): Remove linker version check.
28915
28916 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
28917
28918         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
28919         wrappers for instance methods.
28920         
28921 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28922
28923         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
28924
28925 2002-08-28  Dick Porter  <dick@ximian.com>
28926
28927         * Makefile.am: Export HOST_CC for w32 builds
28928
28929 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
28930
28931         * file-io.c process.c: MonoString are null terminated, no
28932         need for mono_string_to_utf16() anymore.
28933
28934 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
28935
28936         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
28937
28938 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
28939
28940         * icall.c, reflection.h: speedup System.MonoType.
28941
28942 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
28943
28944         * reflection.c: allow null as the value of a string argument in
28945         custom attributes constructors.
28946
28947 2002-08-27  Martin Baulig  <martin@gnome.org>
28948
28949         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
28950         `trampoline_address' field.
28951
28952 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
28953
28954         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
28955         check (fixes bug #29486) 
28956
28957 2002-08-27  Martin Baulig  <martin@gnome.org>
28958
28959         * debug-mono-symfile.c: Changed the file format in a way that allows us
28960         open it read-only and to use a specially malloced area for all the
28961         dynamic data.  We can now also generate a symbol file on-the-fly if we're
28962         debugging IL code and there is no MCS generated symbol file for it.
28963
28964 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
28965
28966         * object.c: added a define for a good string and array
28967         creation speedup (not enabled by default because we need to deal with
28968         the synch stuff).
28969
28970 2002-08-26  Martin Baulig  <martin@gnome.org>
28971
28972         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
28973         function to create a dynamic symbol file.  This is used by the
28974         debugger to create a symbol file for IL code on-the-fly.
28975
28976 2002-08-26  Martin Baulig  <martin@gnome.org>
28977
28978         * loader.c (mono_lookup_pinvoke_call): Include the error message
28979         from g_module_error() in the error message.
28980
28981 2002-08-24  Martin Baulig  <martin@gnome.org>
28982
28983         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
28984         function to update the symbol file.  The symbol file is mmap()ed
28985         writable, but private.  This allows us to install the symbol file
28986         together with the assembly.
28987
28988 2002-08-24  Martin Baulig  <martin@gnome.org>
28989
28990         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
28991         but they can read the new symbol file format which mcs is now creating.
28992
28993         * debug-symfile.c (mono_debug_find_source_location): Moved to
28994         debug-mono-symfile.c; this is now operating on the new symbol file.
28995
28996 2002-08-23  Martin Baulig  <martin@gnome.org>
28997
28998         * debug-helpers.c (mono_method_desc_from_method): New function to get
28999         a MonoMethodDesc from a MonoMethod.
29000
29001 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
29002
29003         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
29004         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
29005
29006 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
29007
29008         * string-icalls.[ch]: make helper methods static.
29009
29010 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29011
29012         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
29013         types to it and to SetValueInternal.
29014
29015         * object.c: Moved handle_enum label to its proper place. This was the
29016         f... bug! ;-)
29017
29018         This time i compiled mcs and gtk-sharp and they both work.
29019
29020 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29021
29022         * icall.c: reverted partially my previous patch until 
29023         object.c:set_value handles enums correcly.
29024
29025 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29026
29027         * icall.c:
29028         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
29029         (ves_icall_System_Environment_get_MachineName): removed warning when
29030         compiling under cygwin.
29031
29032 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
29033
29034         * object.c: fixed field_get_value() for reference types.
29035
29036 2002-08-22  Dick Porter  <dick@ximian.com>
29037
29038         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
29039         Don't free a buffer while it's still needed.  Patch from Jonathan
29040         Liger <Jonathan.liger@wanadoo.fr>
29041
29042 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
29043
29044         * icall.c (ves_icall_System_Environment_get_Platform): Add new
29045         internal call.
29046
29047 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
29048
29049         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
29050         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
29051
29052         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
29053         we call unmanaged code which throws exceptions.
29054
29055 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
29056
29057         * appdomain.h: added per-domain entry_assembly.
29058         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
29059         arguments.
29060         * icall.c: Assembly::GetEntryAssembly icall.
29061         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
29062         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
29063
29064 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
29065
29066         * appdomain.h, gc.c: added mono_domain_finalize ().
29067
29068 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29069
29070         * object.c:
29071         (mono_print_unhandled_exception): changed g_warning by g_printerr
29072         because g_log has a 1024 characters limit (yeah, i got a big stack
29073         trace). Don't print exception name, that should be in ToString 
29074         returned string.
29075
29076 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29077
29078         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
29079         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
29080
29081 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29082
29083         * object.c:
29084         (mono_print_unhandled_exception): after previous commit, i realized
29085         that MS calls ToString on the exception. I changed this function to
29086         do that. This way we get stack_trace for free.
29087
29088 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29089
29090         * object.c:
29091         (mono_print_unhandled_exception): invoke Message property instead of
29092         getting 'message' field from Exception. Don't allocate memory for
29093         'trace' and 'message' if not needed.
29094
29095 2002-08-18  Dick Porter  <dick@ximian.com>
29096
29097         * unicode.c: Fix asserts to match Encoder.cs checks
29098
29099 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
29100
29101         * marshal.c: fix unaligned store issue and a few wrong
29102         opcode argument types.
29103
29104 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29105
29106         * icall.c: added GetUninitializedObjectInternal internal call.
29107
29108 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
29109
29110         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
29111         to the right domain.
29112
29113 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
29114
29115         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
29116
29117         * class.c (class_compute_field_layout): set blittable to false for Strings
29118
29119         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
29120
29121 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
29122
29123         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
29124         first chunk of code to create types at runtime. Code to
29125         handle ReflectedType/DeclaringType. Make reflection handles
29126         domain specific.
29127
29128 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
29129
29130         * class.c: set correct name in arrays.
29131
29132 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
29133
29134         * appdomain.c (mono_domain_transfer_object): make it work with
29135         valuetypes. bug fixes.
29136
29137 2002-08-12  Dick Porter  <dick@ximian.com>
29138
29139         * object.h: Rename some parameters to avoid c++ keywords (Patch
29140         from Joseph Wenninger <kde@jowenn.at>)
29141
29142 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
29143
29144         * icall.c: added icall to implement Assembly.GetFile*.
29145
29146 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
29147
29148         * reflection.h, reflection.c: code to embed managed resources.
29149
29150 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
29151
29152         * class.c: move all the type size stuff into
29153         class_compute_field_layout().
29154
29155 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
29156
29157         * class.c: ensure enums have always the correct instance size.
29158         * unicode.c: remove wrong assert.
29159
29160 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
29161
29162         * assembly.c: fix mem corruption issue.
29163         * image.h, image.c: added mono_image_get_resource () to access
29164         managed resources.
29165         * icall.c: implemented Assembly.EntryPoint property and some
29166         Managed Resources related internalcalls.
29167
29168
29169 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
29170
29171         * image.c, image.h: impemented mono_image_get_entry_point ().
29172         * appdomain.c: use mono_image_get_entry_point.
29173
29174 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
29175
29176         * reflection.c: support the object type argument when loading
29177         custom attributes.
29178
29179 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
29180
29181         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
29182         String as return type.
29183
29184 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
29185
29186         * reflection.c: fix encoding of named args for custom attrs to match
29187         the ms implementation. Read them back when instantiating custom
29188         attributes.
29189
29190 2002-08-02  Radek Doulik  <rodo@ximian.com>
29191
29192         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
29193         by Dietmar as quick fix
29194         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
29195         16 as stack size, used on more places as quick fix before Dietmar
29196         will fix it properly
29197
29198 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
29199
29200         * object.h, object.c: added accessors for fields and properties.
29201
29202 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
29203
29204         * class.c, class.h: made mono_class_get_field_from_name ()
29205         loop on parent types.
29206         Added mono_class_get_property_from_name ().
29207
29208 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
29209
29210         * class.c, class.h: move the code to setup the type vtable in its own
29211         function so that it can be reused also for types created at runtime.
29212         Eliminate the "class" identifier from the header file.
29213         * reflection.c: setup the vtable for enums so that we can create
29214         objects for use in SetConstant ().
29215
29216 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
29217
29218         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
29219         instead of the delegate itself as this pointer (bug #28383)
29220
29221 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
29222
29223         * marshal.c (mono_marshal_get_managed_wrapper): added return type
29224         conversions.
29225
29226 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
29227
29228         * loader.c: don't set the pinvoke bit on icalls.
29229
29230 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
29231
29232         * debug-helpers.c (mono_method_full_name): only print a number to
29233         indicate wrapper type (so that the output is more readable in traces).
29234
29235 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
29236
29237         * class.c (mono_class_init): include method override patch from Paolo
29238
29239 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
29240
29241         * icall.c: fixed GetTypeCode().
29242
29243 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
29244
29245         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
29246         use real delegate invoke function to make it work with multicast
29247         delegates (fix bug# 28291).
29248
29249 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
29250
29251         * object.c: load constant strings.
29252
29253 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
29254
29255         * reflection.c: no magic numbers.
29256         * tabledefs.h: security action enum.
29257
29258 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
29259
29260         * assembly.c: fix possible memory corruption.
29261
29262 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
29263
29264         * reflection.h, reflection.c: added support for linking resources.
29265         * verify.c: check we have an updated corlib.
29266
29267 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
29268
29269         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
29270         string arrays.
29271         (mono_marshal_string_array): null terminate unmanaged string arrays.
29272         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
29273
29274 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
29275
29276         * icall.c: Type.GetType () can now return also types from the
29277         calling assembly.
29278
29279 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
29280
29281         * loader.h, loader.c: stack walking support.
29282         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
29283         GetCallingAssembly.
29284
29285 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
29286
29287         * marshal.c: added optimisations for blittable types 
29288
29289         * class.c (mono_array_class_get): do not set blittable attribute on arrays
29290         (mono_class_setup_mono_type): set blittable attribute for single
29291         and double.
29292
29293         * marshal.c (mono_string_utf8_to_builder): impl.
29294         (mono_string_builder_to_utf8): impl.
29295         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
29296
29297 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
29298
29299         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
29300         (mono_marshal_get_managed_wrapper): impl. byref types
29301
29302 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29303
29304         * icall.c:
29305         (search_method): don't display debug message. 
29306
29307 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
29308
29309         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
29310
29311 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
29312
29313         * appdomain.c: set the missing filename when throwing exception.
29314
29315 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
29316
29317         * metadata.c (mono_type_size): code cleanup
29318         (mono_type_stack_size): removed some test code
29319
29320 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
29321
29322         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
29323         mono_get_exception_file_not_found now.
29324
29325         * exception.c (mono_exception_from_name_two_strings): New version
29326         that will call a constructor with two string arguments. 
29327         (mono_get_exception_file_not_found): New helper routine, used to
29328         report file-not-found errors.
29329
29330 2002-07-20  Dick Porter  <dick@ximian.com>
29331
29332         * process.h:
29333         * process.c: Pass file handles to CreateProcess
29334         
29335         * icall.c:
29336         * file-io.h:
29337         * file-io.c: Implemented CreatePipe
29338
29339 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
29340
29341         * metadata.c (mono_get_param_info): set alignment for value types
29342
29343 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
29344
29345         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
29346         Constify mono_domain_assembly_open().
29347         * loader.c: handle null namespace in icalls.
29348
29349 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
29350
29351         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
29352         (emit_str_to_ptr_conv): marshal object as structs
29353
29354         * metadata.c (mono_type_to_unmanaged): marshal object as structs
29355
29356         * marshal.c (mono_marshal_get_runtime_invoke): support value types
29357
29358 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
29359
29360         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
29361         (mono_marshal_get_native_wrapper): we an now return value types
29362
29363 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
29364
29365         * verify.c: more checks implemented.
29366
29367 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
29368
29369         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
29370         (fix bug #27695)
29371         (mono_marshal_get_native_wrapper): allow byref arguments
29372         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
29373         impl. PtrToStringXXX methods
29374         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
29375         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
29376         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
29377         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
29378         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
29379
29380 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
29381
29382         * reflection.c: fix buglet in parsing an assembly name.
29383
29384 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
29385
29386         * marshal.c (emit_ptr_to_str_conv): first impl.
29387
29388 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
29389
29390         * object.c, class.h: cache the vtable in the class as suggested by
29391         vargaz@freemail.hu (Zoltan Varga).
29392
29393 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
29394
29395         * class.h, loader.c: added mono_field_from_token().
29396         * verify.c: first cut of type checking code.
29397
29398 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
29399
29400         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
29401
29402 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
29403
29404         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
29405         (fix bug #27782)
29406         (mono_marshal_get_remoting_invoke): impl.
29407         (mono_delegate_begin_invoke): impl.
29408         (mono_mb_emit_save_args): impl.
29409         (mono_delegate_end_invoke): impl.
29410         (mono_marshal_get_delegate_begin_invoke):
29411         (mono_marshal_get_delegate_end_invoke):
29412         (mono_marshal_get_delegate_invoke): generate a special name for
29413         those methods (including the signature) and associate them whith
29414         the delegate class. 
29415
29416 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
29417
29418         * reflection.[ch]: 
29419         (mono_reflection_type_from_name): now it has a MonoImage parameter
29420         which is used as the default image to search the type in. If the image
29421         is NULL or getting the type from it fails, it defaults to corlib.
29422
29423         * icall.c: changed 1 call to mono_reflection_type_from_name to match
29424         new parameter.
29425
29426 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
29427
29428         * reflection.c: update the parameter table index.
29429
29430 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
29431
29432         * domain.c: don't include the mark byte in the string hash.
29433
29434 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
29435
29436         * icall.cs: icall for Type.GetTypeCode ().
29437         * verify: a couple of fixes and disabled local initialization checks.
29438
29439 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
29440
29441         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
29442
29443         * debug-helpers.c (mono_method_full_name): print the type of the
29444         runtime wrapper
29445
29446         * metadata.c (mono_signature_hash): a hash function for signatures
29447         (mono_signature_hash): better hash algorithm
29448
29449         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
29450
29451         * debug-helpers.c (mono_method_full_name): this can now generate
29452         method names with signatures
29453
29454         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
29455         method dont have this pointers.
29456
29457 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
29458
29459         * reflection.c: fixup typebuilder tokens.
29460         * image.c: fix buglet.
29461         * marshal.h: remove whitespace.
29462         * metadata.h, metadata.c: reinstate code that was removed.
29463         * verify.c: handle catch directives and fix another couple of bugs.
29464
29465 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
29466
29467         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
29468         (mono_marshal_get_native_wrapper): make it comp. with the old code
29469         (mono_marshal_get_native_wrapper): support boolean
29470         (mono_marshal_get_managed_wrapper): support more types
29471
29472 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
29473
29474         * class.c (class_compute_field_layout): compute class->blittable attribute.
29475
29476 2002-07-09  Dick Porter  <dick@ximian.com>
29477
29478         * threads.c: Make the thread cleaning up cope with threads that
29479         call ExitThread()
29480
29481 2002-07-08  Radek Doulik  <rodo@ximian.com>
29482
29483         * reflection.c (method_encode_code): use non-translated values to
29484         compute finally_start, this fixes exception handling on ppc, yay!
29485
29486         * decimal.h (struct signscale): fix endianess
29487
29488 2002-07-07  Radek Doulik  <rodo@ximian.com>
29489
29490         * reflection.c: swap box_val and not val
29491
29492 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
29493
29494         * reflection.c, reflection.h: handle full assembly info in type name.
29495         Handle Type arguments when loading custom attributes.
29496         * icall.c: updated to use new mono_reflection_type_from_name () method.
29497
29498 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29499
29500         * loader.c:
29501         (method_from_memberref): also print assembly name when method not found.
29502
29503 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29504
29505         * icall.c:
29506         (ves_icall_TypeGetProperties): fixed bug #27473. 
29507
29508 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29509
29510         * reflection.c: display image name and token when cannot find the
29511         .ctor for an attribute.
29512
29513 2002-07-05  Martin Baulig  <martin@gnome.org>
29514
29515         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
29516
29517 2002-07-04  Dick Porter  <dick@ximian.com>
29518
29519         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
29520         compile on mingw.  This will cause mingw builds to not wait for
29521         subthreads to terminate after the main thread does.  I've lodged a
29522         bug with the mingw developers for them to wrap OpenThread().
29523
29524 2002-07-03  Dick Porter  <dick@ximian.com>
29525
29526         * threads.c: Store thread IDs instead of handles, because
29527         GetCurrentThread() returns a pseudohandle and therefore stores
29528         useless values.  mono_thread_cleanup() continues checking the
29529         array of threads until it is empty, to cope with subthreads
29530         spawning new threads after the main thread has finished.
29531
29532         * profiler.h:
29533         * profiler.c:
29534         * profiler-private.h: Pass the thread ID to thread profiler
29535         functions, instead of a handle
29536
29537 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
29538
29539         * verify.c: fixes to make it more usable.
29540         * pedump.c: added --verify code to verify IL code in an assembly.
29541
29542 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
29543
29544         * reflection.c: turn errors into warnings to allow compiling corlib.
29545
29546 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
29547
29548         * reflection.c: add special cases to compile corlib.
29549
29550 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
29551
29552         * reflection.c: handle properties with only a set method.
29553
29554 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
29555
29556         * opcodes.h: add enum with opcodes in opval order.
29557
29558 2002-07-01  Dick Porter  <dick@ximian.com>
29559         
29560         * object.h:
29561         * object.c (mono_runtime_run_main): Removed unneeded argument
29562
29563 2002-06-28  Martin Baulig  <martin@gnome.org>
29564
29565         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
29566
29567 2002-06-27  Dick Porter  <dick@ximian.com>
29568
29569         * threads.c: Store the handle in both the parent thread and in the
29570         subthread, to minimise the time between starting a new thread and
29571         storing its ID.
29572
29573 2002-06-26  Dick Porter  <dick@ximian.com>
29574
29575         * appdomain.c (mono_runtime_cleanup): Close the socket library
29576         after all the threads have finished, not before
29577
29578 2002-06-26  Martin Baulig  <martin@gnome.org>
29579
29580         * debug-symfile.c (mono_debug_find_source_location): Added
29581         `guint32 *line_number' argument.  If it's not NULL, store the line number
29582         there and return the file name without the line number.
29583
29584 2002-06-25  Dick Porter  <dick@ximian.com>
29585
29586         * icall.c:
29587         * process.h:
29588         * process.c: Process forking and other support functions
29589
29590 2002-06-25  Dick Porter  <dick@ximian.com>
29591
29592         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
29593         things dont happen when the image is closed.
29594         (mono_image_lookup_resource): Walk the resource section looking
29595         for a particular entry
29596
29597         * cil-coff.h: PE resource section decoding
29598
29599 2002-06-25  Dick Porter  <dick@ximian.com>
29600         
29601         * assembly.h:
29602         * assembly.c: 
29603         (mono_assembly_foreach): Accessor functions to walk the list of
29604         loaded assemblies
29605         (mono_assembly_set_main):
29606         (mono_assembly_get_main): Process methods need to know which
29607         assembly is the "main" one
29608
29609         * object.c (mono_runtime_run_main): Record the main assembly
29610
29611         * debug-helpers.c: Fix typo
29612
29613 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
29614
29615         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
29616         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
29617
29618 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
29619
29620         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
29621
29622 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
29623
29624         * image.c (do_mono_image_open): Initialize reference count,
29625         otherwise we leak the MonoImage.
29626
29627 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
29628
29629         * reflection.c: small tweak to handle self-hosting.
29630
29631 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
29632
29633         * reflection.c: fix type name parse code.
29634
29635 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
29636
29637         * reflection.c: break out of the loop.
29638         * image.c: special case corlib.
29639
29640 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
29641
29642         * reflection.c: add all the custom attrs at the end to ensure the
29643         ctors have been properly initialized when the attributes are defined
29644         in the current assembly.
29645
29646 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
29647
29648         * reflection.c: handle correctly multiple-nested types.
29649
29650 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
29651
29652         * row-indexes.h: fix typos.
29653         * reflection.c: adjust for typos and fix method_def_or_ref
29654         encoding in MethodImpl table.
29655
29656 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
29657
29658         * reflection.c: fix entry point patching (thanks Serge!).
29659
29660 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
29661
29662         * verify.c: add check for System.Exception
29663
29664 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
29665
29666         * image.c, class.c: minifix for code just c&p'ed.
29667         * reflection.c: warning fix.
29668         * object.h, loader.h, domain.c: load also StringBuilder.
29669
29670 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
29671
29672         * marshal.h, marshal.c: some support code to handle complex marshaling.
29673
29674 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
29675
29676         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
29677         Better signatures with vtable error dump.
29678
29679 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
29680
29681         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
29682
29683 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
29684
29685         * icall.c (ves_icall_Type_GetField): impl.
29686
29687 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
29688
29689         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
29690         to retrieve a marshal description blob for a field or param.
29691
29692 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
29693
29694         * reflection.h, reflection.c: change order of nested type emission
29695         to avoid table corruption. The NestedTypes table is sorted.
29696         * icall.c: change order of GetConstructor results to workaround mcs bug.
29697
29698 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
29699
29700         * reflection.h, reflection.c: handle field and param marshal
29701         information.
29702
29703 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
29704
29705         * icall.c, marshal.c marshal.h: more Marshal class implementation.
29706
29707 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
29708
29709         * reflection.c: fix call convention.
29710
29711 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
29712
29713         * reflection.h, reflection.c: mono_image_get_memberref_token()
29714         takes a type instead of a class, now. Added
29715         mono_image_get_array_token() to create tokens for the special
29716         multi-dim array methods.
29717
29718 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
29719
29720         * assembly.c: handle modules (no assembly table). Split
29721         loading references in its own function.
29722         * class.c: handle moduleref resolution scope.
29723         * image.c, image.h: cache module name in image.
29724
29725 2002-06-07  Martin Baulig  <martin@gnome.org>
29726
29727         * reflection.c (mono_image_get_type_info): Only add a class layout entry
29728         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
29729
29730 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
29731
29732         * icall.c: more signature fixes that used uint instead of int.
29733
29734 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
29735
29736         * reflection.c: fixed signature of field refs.
29737
29738 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
29739
29740         * class.c, reflection.c: handle typerefs of nested types
29741         (both on read and when writing files).
29742
29743 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
29744
29745         * icall.c: fix method signatures that tried to workaround the previous
29746         typo, d'oh!
29747
29748 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
29749
29750         * debug-helpers.c: fix typo.
29751
29752 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
29753
29754         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
29755         rewrote the PE/COFF writing code (our programs are understood by the
29756         ms runtime, now).
29757
29758 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
29759
29760         * gc.c, gc.h, icall.c: weakreference support.
29761
29762 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
29763
29764         * Makefile.am, mono-config.c: use $(sysconfdir).
29765
29766 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
29767
29768         * icall.c: changed default precision of Double.ToString() to 15.
29769         Fixed memory leak. Unified with Single.ToString.
29770
29771 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
29772
29773         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
29774
29775 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
29776
29777         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
29778         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
29779         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
29780         and myself.
29781
29782 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
29783
29784         * debug-symfile.c, sysmath.c: yet more compilation fixes.
29785
29786 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
29787
29788         * reflection.c, socket-io.c: more compilation fixes.
29789
29790 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
29791
29792         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
29793         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
29794         unicode.c: warning and compiler compatibility fixes.
29795
29796 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
29797
29798         * class.h, metadata.c: fixed warnings/compilation errors.
29799
29800 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
29801
29802         * Makefile.am, mono-config.c, mono-config.h: configuration file
29803         support routines.
29804         * loader.c, loader.h: make Dll mapping configurable at runtime in the
29805         config file. Export methods to insert and lookup mappings.
29806
29807 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
29808
29809         * reflection.c: handle types and boxed objects in custom attr
29810         constructors.
29811
29812 2002-05-30  Martin Baulig  <martin@gnome.org>
29813
29814         * debug-symfile.c
29815         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
29816
29817 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
29818
29819         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
29820         to lookup the implmap row for a P/Invoke method.
29821         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
29822         P/Invoke method from the runtime on an as needed basis.
29823
29824 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
29825
29826         * metadata.c (mono_metadata_parse_signature): impl.
29827
29828 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
29829
29830         * class.c: handle .pack directive.
29831
29832 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
29833
29834         * object.c: initialize static fields with RVA data.
29835
29836 2002-05-25  Martin Baulig  <martin@gnome.org>
29837
29838         * debug-symfile.c
29839         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
29840
29841 2002-05-24  Martin Baulig  <martin@gnome.org>
29842
29843         * debug-symfile.c
29844         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
29845         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
29846         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
29847
29848 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
29849
29850         * object.c: special case string ctros in invoke.
29851         * gc.c: silly whitespace changes.
29852
29853 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
29854
29855         * threadpool.[ch]: impl. a threadpool that can
29856         be used by mint and mono.
29857
29858 2002-05-22  Martin Baulig  <martin@gnome.org>
29859
29860         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
29861         The first argument is now a `MonoReflectionModuleBuilder *', the return
29862         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
29863         `methods' field to get the method builder.  The `token' argument is the
29864         unfixed token.
29865
29866         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
29867         invalid characters instead of g_assert_not_reached()ing.  This seems
29868         to be the behaviour of mscorlib.
29869
29870 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
29871
29872         * object.c (mono_runtime_invoke_array): applied patch from Rachel
29873         Hestilow to fix bug #25104
29874
29875 2002-05-21  Martin Baulig  <martin@gnome.org>
29876
29877         * debug-symfile.c (mono_debug_find_source_location): New function.
29878         Looks up an IL offset in the line number table and returns the source
29879         location as a string.
29880
29881 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29882
29883         * icall.c:
29884         (mono_double_ToStringImpl): changed %f by %g until we have something
29885         better.
29886
29887 2002-05-21  Nick Drochak  <ndrochak@gol.com>
29888
29889         * icall.c : Use different name for Math.Pow's icall.  Needed to check
29890         parameters first in C#.
29891
29892 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
29893
29894         * icall.c, reflection.h: added icall to get info about an event.
29895
29896 2002-05-20  Radek Doulik  <rodo@ximian.com>
29897
29898         * object.c (mono_value_box): don't use memcpy for boxing on BIG
29899         endian
29900         (mono_value_box): don't use memcpy for small sizes on
29901         architectures with unaligned access
29902
29903 2002-05-20  Martin Baulig  <martin@gnome.org>
29904
29905         * reflection.c (mono_reflection_setup_internal_class): Don't crash
29906         if `tb->parent == NULL'.
29907         (mono_reflection_create_internal_class): New function.  This is
29908         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
29909         for enum types.
29910
29911         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
29912         New interncall.
29913
29914 2002-05-19  Martin Baulig  <martin@gnome.org>
29915
29916         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
29917         argument to get the length, don't default to the array length.
29918
29919 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
29920
29921         * assembly.c (mono_assembly_setrootdir): New function used to
29922         override the MONO_ASSEMBLIES directory.
29923
29924 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
29925
29926         * icall.c: ValueType_GetHashCode() initialize local var.
29927
29928 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
29929
29930         * reflection.c: sort custom attributes table.
29931
29932 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
29933
29934         * reflection.c: support named args in custom attributes (write support).
29935
29936 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
29937
29938         * reflection.c: fix finally position calculation.
29939
29940 2002-05-15  Radek Doulik  <rodo@ximian.com>
29941
29942         * reflection.c: fixed endianess at many places
29943
29944         * icall.c (ves_icall_InitializeArray): comment out debug msg
29945
29946 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
29947
29948         * object.c (mono_unhandled_exception): new function to handle
29949         unhandled exceptions.
29950         (mono_unhandled_exception): call the UnhandledException event.
29951         (mono_runtime_delegate_invoke): impl.
29952
29953 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
29954
29955         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
29956         returns the RVA, not the direct pointer to the data. Handle the case
29957         when the class size is fixed.
29958
29959 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
29960
29961         * reflection.c: fix some endianess issues.
29962
29963 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
29964
29965         * object.c (mono_runtime_invoke): is now able to catch exceptions.
29966
29967         * threads.c (mono_thread_init): added a callback which is invoked
29968         at thread start.
29969
29970 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
29971         
29972         * icall.c: make GetHashCode return non-negative values.
29973
29974 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
29975
29976         * object.c, icall.c, gc.c: revert to address-based hashcode.
29977
29978 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
29979
29980         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
29981
29982 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
29983
29984         * icall.c, class.c: special case <Module>.
29985
29986 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
29987
29988         * icall.c: fix bug in GetNow().
29989
29990 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
29991
29992         * object.c (mono_runtime_class_init): make sure that we call all
29993         static class constructors.
29994
29995 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
29996
29997         * reflection.c: sort methodsemantics table.
29998
29999 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
30000
30001         * reflection.h, reflection.c: honour init locals setting.
30002
30003 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
30004
30005         * icall.c: copied Double ToStringImpl for Single ToStringImpl
30006
30007 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
30008
30009         * reflection.c: support ContructorBuilders in attribute blob creation.
30010
30011 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
30012
30013         * reflection.c: some changes to build a binary that can be run
30014         directly in windows.
30015
30016 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
30017
30018         * loader.c: print a big message when an icall can't be found.
30019
30020 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
30021
30022         * string-icalls.c: fix bug 24248.
30023
30024 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
30025
30026         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
30027         icall.c, reflection.h: separate assembly loading by pathname and by
30028         assembly name. Use the MONO_PATH env var to search for assemblies.
30029
30030 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
30031
30032         * assembly.c, image.h: add some support for assemblies
30033         with multiple modules.
30034         * class.c, class.h: export mono_class_from_typeref().
30035         * loader.c: remove duplicated code and use mono_class_from_typeref(),
30036         instead.
30037
30038 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
30039
30040         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
30041         documentation says (the ECMA one is correct).
30042
30043 2002-05-02  Dick Porter  <dick@ximian.com>
30044
30045         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
30046         Don't name the synchronisation mutex.
30047
30048 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
30049
30050         * rand.c
30051         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
30052         Make the prototypes match.
30053         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
30054         Same.
30055
30056         * icall.c
30057         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
30058         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
30059         all systems have tm.tm_zone, so use strftime() with %Z to print
30060         the timezone abreviation into a temp string.
30061
30062         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
30063         rather than mono_array_addr() on a MonoString on Big Endian
30064         machines.
30065
30066 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
30067
30068         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
30069         fix bug 24041
30070
30071 2002-04-30  Dick Porter  <dick@ximian.com>
30072
30073         * socket-io.c: Cope with SOCKET being an integer rather than a
30074         pointer now.
30075
30076         * threads.c: Added Thread_free_internal, to deal with thread
30077         handle cleanup.  Moved calls to handle_store() and handle_remove()
30078         to start_wrapper(), so each can only be called once.  Allocate
30079         synchronisation blocks with GC_malloc(), and use GC finalisation
30080         to close the handles.
30081
30082         * icall.c: added System.Threading.Thread::Thread_free_internal
30083
30084 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
30085
30086         * icall.c: support Environment.Exit, CommandLineArgs().
30087
30088 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
30089
30090         * object.c, object.h: added mono_runtime_run_main () and
30091         mono_runtime_get_main_args () for use in System.Environment.
30092
30093 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
30094
30095         * gc.c: fix thinko, enable actual finalization since the jit is now
30096         fixed.
30097
30098 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
30099
30100         * gc.c, object.c: take into account that an object may be offset wrt the address
30101         returned by GC_malloc().
30102
30103 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
30104
30105         * image.c: handle files without entries in the assembly table (modules).
30106
30107 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
30108
30109         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
30110         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
30111         allowed to be null when it's System.Object class setup.
30112
30113 2002-04-27  Martin Baulig  <martin@gnome.org>
30114
30115         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
30116         if `tb->parent == NULL' rather than crashing.
30117
30118 2002-04-28  Nick Drochak  <ndrochak@gol.com>
30119
30120         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
30121         calling acos() where asin() should have been called.
30122
30123 2002-04-26  Martin Baulig  <martin@gnome.org>
30124
30125         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
30126         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
30127         there's a subdirectory called `System', but we don't want to read that
30128         subdirectory as an assembly.
30129
30130 2002-04-25  Martin Baulig  <martin@gnome.org>
30131
30132         * debug-symfile.c: Reflect latest MonoString changes.
30133
30134 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
30135
30136         * rand.c, rand.h: instance method icalls need to have an explicit
30137         this pointer as first argument in the C implementation.
30138
30139 2002-04-25  Nick Drochak <ndrochak@gol.com>
30140
30141         * icall.c: Fix typo in map for GetNonZeroBytes
30142
30143 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
30144
30145         * string-icalls.c : String does now passes unit tests without any 
30146         errors, the following changes has been made:
30147         
30148         Implemented replace methods.
30149         Renaming of methods to (try) follow the standard.
30150         Fixed compare ordinal
30151         Made all memory allocated directly to function instead of via icall function.
30152         Small performance fix in is_in_array function
30153                         
30154  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
30155
30156         c (mono_string_Internal_ctor_charp_int_int):
30157         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
30158         sindex < 0, throw ArgumentOutOfRangeException instead of
30159         ArgumentNullException.
30160
30161         Added new check for length == 0, however
30162         I need to make it return String.Empty from the C code.
30163         
30164         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
30165         that calculate the length for us here.
30166         
30167         (mono_string_Internal_ctor_sbytep_int_int): Replaced
30168         mono_string_new_utf16 with mono_string_new, since value is utf8.
30169
30170 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
30171
30172         * object.c: register the object for finalization if needed.
30173         Allocate one more char in the string for the terminating 0 char.
30174
30175 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
30176
30177         * class.c, class.h, image.c: check if a type implemenst a destructor.
30178         Use the proper key for array class lookups.
30179         * icall.c: register the icalls in the System.GC class.
30180         * gc.c, gc.h: GC-related functions and icalls.
30181
30182 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
30183
30184         * icall.c:
30185         * socket-io.c:
30186         * unicode.c: free some strings gotten from mono_string_to_utf8 and
30187         changed a couple of free () by g_free ().
30188
30189         * decimal.c: one-liner in the comments for decimal2string ().
30190
30191 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
30192
30193         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
30194
30195 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
30196
30197         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
30198         * object.c (mono_runtime_invoke_array) : handle null in params
30199
30200 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
30201
30202         * string-icalls.c: fixed bug in split (one off bug)
30203
30204 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
30205
30206         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
30207         * icalls.c: added String::Equals as internal method
30208
30209 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
30210
30211         * threads.c: fixed bug in the double interlocked functions
30212
30213 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
30214
30215         * threads.c: implemented all of the new interlocked icalls.
30216         * string-icalls.c: fix a bug in insert.
30217         * icalls.c: added the icalls for interlocked, removed old string functions.
30218         
30219 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
30220
30221         * loader.c: fix off-by-one error when reading argument names.
30222
30223 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
30224
30225         * profiler.c: win32 counter implementation (untested).
30226         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
30227         (the latter needs testing and more complete impl. from win32 folks).
30228
30229 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
30230
30231         * object.c: mono_array_new_full workaround mono_array_class_get
30232         problem.
30233
30234 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
30235
30236         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
30237         * object.h (mono_string_chars): Changed casting type.
30238
30239 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
30240
30241         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
30242                            method signatures to use gunichar2 instead of gint16.
30243
30244 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
30245
30246         * object.h, object.c: domain-specific versions of mono_object_new and
30247         mono_array_new.
30248
30249 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
30250
30251         * object.c: changed String layout
30252
30253         * string-icalls.c (mono_string_Internal_ctor_chara): added
30254         internal string constructors.
30255
30256 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
30257
30258         * threads.c: pass 'this' to the thread start routine.
30259
30260 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
30261
30262         * string-icalls.c: fix IndexOf and LastIndexOf. Now
30263         InternalCompareStr don't call twice mono_string_cmp_char for the last
30264         character. Improved performance in mono_string_cmp_char.
30265
30266 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
30267
30268         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
30269         code into its own library: libmonoruntime.
30270
30271 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
30272
30273         * object.h, object.c: changed array format so that szarrays do not
30274         require a bounds structure.
30275         * icall.c, appdomain.c: support for new szarray format.
30276
30277 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
30278
30279         * metadata.c: compare also the retuns type when comparing signatures:
30280         we didn't do this as an optimization since really overloaded methods
30281         must differ also in the arguments, but this doesn't work with
30282         low-level IL code (or when using explicit conversion operators: see
30283         bug#23498 for an example).
30284
30285 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
30286
30287         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
30288
30289 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
30290
30291         * icall.c: make MonoType::GetElementType its own icall.
30292
30293 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
30294
30295         * icall.c: remove MonoMethod_get_Name().
30296         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
30297         object.
30298
30299 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
30300
30301         * string-icalls.c: optimized a few methods.
30302
30303 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
30304
30305         * icall.c: added all new string internal calls
30306         * string-icalls.c: added, new string internal call implementation.
30307         * object.c: added mono_string_new_size for allocating a string a size
30308
30309 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
30310
30311         * object.c (mono_object_isinst): use the same code as in the
30312         optimized x86 version.
30313
30314 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
30315
30316         * profiler.c: TSC-based timer code (faster and more accurate).
30317         Not hooked up in configure, yet (set USE_X86TSC to 1).
30318
30319 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
30320
30321         * profiler.c, profiler.h: track time spent compiling methods.
30322         * threads.c: track thread creation/destruction.
30323
30324 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
30325
30326         * profiler.c, profiler.h, profiler-private.h: profiling interface
30327         and sample implementation. Moved here so that it can be used also by
30328         the jit.
30329
30330 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
30331
30332         * reflection.c, reflection.h: keep types and other handles separate in
30333         the hash tables for referred tokens. Add guid for modules.
30334
30335 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
30336
30337         * assembly.c: fix bugs found with valgrind.
30338         * metadata.h, metadata.c: added mono_metadata_guid_heap().
30339
30340 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
30341
30342         * threads: added icall support for getting current domain for
30343                    the thread.
30344  
30345 2002-04-13  Martin Baulig  <martin@gnome.org>
30346
30347         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
30348         (MonoDebugVarInfo): Added `index' field for register based addresses.
30349         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
30350         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
30351         `MonoDebugVarInfo *params' and `guint32 this_offset' with
30352         `MonoDebugVarInfo *this_var'.
30353
30354         * debug-symfile.c (relocate_variable): New static function to write
30355         a location description for a local variable or method parameter.
30356
30357 2002-04-12  Martin Baulig  <martin@gnome.org>
30358
30359         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
30360         stack offset and begin/end scope address of a local variable.
30361         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
30362         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
30363         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
30364
30365         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
30366         Added new relocation types for start/end scope of a local variable.
30367
30368 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
30369
30370         * object.h: add mono_object_domain() macro.
30371         * reflection.c: handle typespecs.
30372         * icall.c: MonoMethod::get_Name() implementation.
30373
30374 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
30375
30376         * icall.c: String::GetHashCode() icall implementation.
30377
30378 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
30379
30380         * icall.c: String::IndexOfAny icall.
30381         * object.c, object.h: make array->max_length more useful.
30382         Intrduced mono_object_class() and mono_string_length() macros.
30383
30384 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
30385
30386         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
30387         instead of g_unichar_isdigit.
30388
30389 2002-04-11  Nick Drochak  <ndrochak@gol.com>
30390
30391         * icall.c: Implement a simple Double.ToString().
30392
30393 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
30394
30395         * appdomain.h: only io-layer.h is supposed to be included.
30396         * icall.c: explicitly import environ. Fix warning.
30397
30398 2002-04-10  Nick Drochak  <ndrochak@gol.com>
30399
30400         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
30401                 return true even if it's not Daylight Savings time.
30402                 Only return false for the case where the function isn't
30403                 implemented for a plaform (read Windows).
30404
30405 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
30406
30407         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
30408         data with a mutex.
30409
30410 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
30411
30412         * mempool.c (mono_mempool_alloc): only use g_malloc when
30413         absolutely necessary.
30414
30415 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
30416
30417         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
30418
30419         * class.c (mono_class_vtable): use domain mempool to allocate vtable
30420         (mono_class_proxy_vtable): use domain mempool
30421
30422 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
30423
30424         * appdomain.h, appdomain.c: split initialization that requires the
30425         execution engine support into mono_runtime_init().
30426
30427 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
30428
30429         * class.c (mono_class_init): don't include vtable inside MonoClass
30430         to save some memory, gather some statistics.
30431         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
30432
30433 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
30434
30435         * icall.c: internalcall implementation for ValueType.Equals().
30436
30437 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
30438
30439         * object.c (mono_message_init): moved 
30440         (mono_runtime_exec_main): new arch. independent impl.
30441         (mono_runtime_invoke_array): new method - like
30442         mono_runtime_invoke, but you can pass an array of objects.
30443         (mono_remoting_invoke): new arch. independent impl.
30444         (mono_message_invoke): new arch. independent impl.
30445         (mono_runtime_class_init): new arch. independent impl.
30446         (mono_runtime_object_init): new arch. independent impl.
30447
30448 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
30449
30450         * metadata.c, object.c, reflection.c: documented the exported
30451         functions.
30452
30453 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
30454
30455         * icall.c: simpler code to pass the assembly builder data to corlib.
30456         Implement GetNestedTypes() internalcall.
30457
30458 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
30459
30460         * class.c: warn if a type can't be loaded.
30461
30462 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
30463
30464         * image.h: typedef MonoImageOpenStatus
30465         * types.h: removed unused file
30466         
30467 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
30468
30469         * icall.c: Enum_ToObject accepts enum value arguments.
30470
30471 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
30472
30473         * class.c: move initialization of properties, events and nested
30474         classes, so that they happen for interfaces, too.
30475
30476 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
30477
30478         * icall.c: cleanup some ugly casts in Array_SetValue*.
30479
30480 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
30481
30482         * icall.c: the values array fro enums is of the correct type, now.
30483         Implement (correctly) getFullName instead of assQualifiedName for
30484         MonoType.
30485         * reflection.h, reflection.c: added mono_type_get_name ().
30486
30487 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
30488
30489         * assembly.c, image.h: for each MonoImage, record from wich assembly
30490         it was loaded.
30491         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
30492         Make Type.Assembly work.
30493
30494 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
30495
30496         * debug-symfile.h: use char* instead of gpointer to avoid
30497         unnecessary casts.
30498
30499         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
30500
30501         * icall.c (ves_icall_InternalExecute): impl. FielSetter
30502         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
30503
30504 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
30505
30506         * icall.c (mono_message_init): impl. (code cleanup)
30507         (ves_icall_InternalExecute): impl. FieldGetter
30508
30509         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
30510         defined we call all (non-static)methods through the vtable. 
30511
30512 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
30513
30514         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
30515         finalizer even though the memory is still referenced (and the chunk of
30516         memory is not freed).
30517
30518 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
30519
30520         * assembly.c: fix brokeness.
30521
30522 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
30523
30524         * class.c: kill some warnings. Check explicit interface method
30525         implementation also without considering the namespace.
30526         Load also literal strings in static class data.
30527
30528 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
30529
30530         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
30531         (default_assembly_name_resolver): Make the resolver take the
30532         "base" directory where the assembly was originally defined, so we
30533         can load DLLs that are in the same directory as the assembly that
30534         is being referenced.
30535
30536 2002-03-28  Dick Porter  <dick@ximian.com>
30537
30538         * file-io.h: 
30539         * file-io.c:
30540         * socket-io.c: 
30541         * unicode.h: 
30542         * unicode.c: Warning cleanups
30543
30544 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
30545
30546         * object.h, reflection.h: use the correct type instead of MonoObject.
30547
30548 2002-03-28  Martin Baulig  <martin@gnome.org>
30549
30550         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
30551         (mono_debug_update_symbol_file): Initialize classes if necessary.
30552
30553 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
30554
30555         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
30556         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
30557
30558 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
30559
30560         * assembly.h: fix function prototype.
30561         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
30562         * mono-endian.h: use const cast.
30563
30564 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
30565
30566         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
30567
30568 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
30569
30570         * loader.c: don't assert when a typeref can't be loaded, give
30571         a chance to the runtime to trow an exception instead.
30572         * loader.h: fix warning.
30573
30574 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
30575
30576         * class.c (mono_class_proxy_vtable): added proxy support
30577
30578 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
30579
30580         * icall.c: removed last of PAL calls, added System.Environment
30581         * file-io.h, file-io.c: MonoIO implementation
30582         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
30583
30584 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
30585
30586         * appdomain.c: do not use the byte marker in ldstr table lookup.
30587         * debug-helpers.c: allow two ':' to separate class and method name.
30588         * object.c: allocate arrays bounds with the GC, too.
30589         * verify: add a few more checks.
30590
30591 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
30592
30593         * reflection.c: output also literal strings. Allocate parameter data
30594         with GC_malloc() (thanks, Martin, for catching this!).
30595
30596 2002-03-26  Martin Baulig  <martin@gnome.org>
30597
30598         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
30599         include the `this' offset in the `param_offsets'.
30600
30601 2002-03-25  Martin Baulig  <martin@gnome.org>
30602
30603         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
30604         mono_debug_get_class() function to get the classes. Added new
30605         relocation types for arrays and strings.
30606         (mono_debug_get_class): New static function to search in all
30607         referenced assemblies for a metadata token.
30608
30609         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
30610
30611 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
30612
30613         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
30614         hold gc-allocated objects. Make the string heap a stream like the
30615         others. Removed duplicated code when writing stream info.
30616         Added asserts to catch possible buffer overflows. Set the sorted map
30617         for tables that need sorting. Added some documentation.
30618
30619 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
30620
30621         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
30622         for interned strings and vtables.
30623
30624 2002-03-24  Martin Baulig  <martin@gnome.org>
30625
30626         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
30627         it in the array since it was created with g_slist_prepend().
30628
30629 2002-03-24  Martin Baulig  <martin@gnome.org>
30630
30631         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
30632         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
30633         (mono_debug_method_from_token): Renamed to
30634         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
30635         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
30636
30637         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
30638         relocation types.
30639
30640         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
30641
30642 2002-03-24  Martin Baulig  <martin@gnome.org>
30643
30644         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
30645         (mono_debug_method_from_token): New func.
30646
30647         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
30648         New interncall, calls mono_debug_local_type_from_signature().
30649         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
30650         calls mono_debug_method_from_token().
30651
30652 2002-03-23  Martin Baulig  <martin@gnome.org>
30653
30654         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
30655         specifies the number of bytes to be converted, not the array size.
30656         Return the number of chars, not the number of bytes.
30657         (ves_icall_iconv_get_chars): The `byteCount' argument
30658         specifies the number of bytes to be converted, not the array size.
30659
30660 2002-03-23  Martin Baulig  <martin@gnome.org>
30661
30662         * reflection.h (MonoReflectionSigHelper): New type.
30663
30664         * reflection.c (mono_reflection_sighelper_get_signature_local),
30665         (mono_reflection_sighelper_get_signature_local): New functions.
30666
30667         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
30668         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
30669         interncalls.
30670
30671 2002-03-23  Martin Baulig  <martin@gnome.org>
30672
30673         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
30674         is_writeable is set.
30675         (mono_raw_buffer_update): New function to write the modified map
30676         back to disk.
30677
30678         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
30679
30680         * debug-symfile.c (mono_debug_update_symbol_file): Call
30681         mono_raw_buffer_update() when done writing.
30682
30683 2002-03-23  Martin Baulig  <martin@gnome.org>
30684
30685         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
30686
30687         * debug-symfile.c: Added support for arguments and local variables.
30688
30689 2002-03-23  Dick Porter  <dick@ximian.com>
30690
30691         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
30692         protected by ifdefs, hence breaking the w32 build.
30693
30694 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
30695
30696         * object.c: implement is_interned() the right way.
30697
30698 2002-03-21  Martin Baulig  <martin@gnome.org>
30699
30700         * debug-symfile.[ch]: New files to handle debugging information
30701         files. There's also support to dynamically update these symbol
30702         files to include machine dependent information.
30703
30704 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
30705
30706         * threads.c (mono_thread_create): new function to create thread
30707         from C
30708
30709 2002-03-20  Martin Baulig  <martin@gnome.org>
30710
30711         * icall.c (ves_icall_InternalInvoke): Create a new object if the
30712         method is a constructor.
30713         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
30714         points to ves_icall_InternalInvoke().
30715
30716 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
30717
30718         * file-io.c: Flush shouldn't throw exceptions.
30719
30720 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
30721
30722         * file-io.c: FileStream flush support; FileSetLength now
30723         restores file pointer.
30724
30725 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
30726
30727         * class.c: set image for pointer classes.
30728
30729 2002/03/19  Nick Drochak <ndrochak@gol.com>
30730
30731         * sysmath.c: Forgot one.
30732
30733 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
30734
30735         * sysmath.c: Avoid redefining existing names.
30736
30737 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
30738
30739         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
30740         handled by runtime as icall rather than dllimport from libm.so
30741         * file-io.c, file-io.h: fixed handle argument type.
30742
30743 2002-03-18  Dick Porter  <dick@ximian.com>
30744
30745         * reflection.c (mono_image_get_type_info): rename interface to
30746         iface, because of "#define interface struct" on windows.
30747
30748 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
30749
30750         * class.c, class.h: rename and export mono_ptr_class_get().
30751         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
30752         * reflection.c, reflection.h, icall.c: better/saner type name
30753         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
30754         method signatures.
30755
30756 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
30757
30758         * class.c (mono_class_init): removed hardcoded GHC_SLOT
30759
30760         * icall.c (ves_icall_InternalInvoke): impl.
30761
30762 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
30763
30764         * reflection.c: output the interface map table, too.
30765
30766 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
30767
30768         * class.c (class_compute_field_layout): separate computation of 
30769         static field layout
30770
30771 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
30772
30773         * icall.c: added System.Buffer support.
30774         * file-io.c: moved file icalls from PAL to FileStream.
30775
30776 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
30777
30778         * icall.c (ves_icall_System_Object_GetHashCode): impl.
30779
30780 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
30781
30782         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
30783
30784 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
30785
30786         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
30787
30788 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
30789
30790         * debug-helpers.{c,h}: moved here from monograph some useful functions
30791         to locate a method by name/signature in a class or image. Included
30792         also a small and flexible IL disassembler.
30793
30794 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
30795
30796         * reflection.c: fixup tokens in methods with small header size, too.
30797
30798 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
30799
30800         * object.c (mono_string_to_utf8): remove assert(!error), instead
30801         print a warning. 
30802
30803 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
30804
30805         * icall.c: update to the new mono_Array_class_get interface.
30806
30807 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
30808
30809         * appdomain.c, object.c: Boehm-GC enable.
30810         * icall.c: make get_data_chunk() support split data requests.
30811         Ensure a class is initialized in more cases. Return only the first
30812         property found in GetProperties() or the compiler gets confused. 
30813         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
30814         * reflection.h, reflection.c: add fixup mechanism for field and method
30815         tokens. Initialize assembly->typeref in a single place. Output
30816         properties after events. Support custom attributes for events, too.
30817         Typo fix for paramter custom attrs.
30818
30819 2002-03-07  Martin Baulig  <martin@gnome.org>
30820
30821         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
30822
30823 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
30824
30825         * class.c (mono_array_class_get): fix. for multi. dim. arrays
30826
30827 2002-03-06  Martin Baulig  <martin@gnome.org>
30828
30829         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
30830         non-zero lower bounds. See testcases #F10-#F13.
30831
30832 2002-03-05  Martin Baulig  <martin@gnome.org>
30833
30834         * exception.c (mono_get_exception_argument_out_of_range): New exception.
30835
30836         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
30837         ves_icall_System_Array_GetValue(), only calculate the absolute array position
30838         here.
30839         (ves_icall_System_Array_SetValue): Likewise.
30840         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
30841         as argument and does the actual work. This function is used when copying a
30842         multi-dimensional array.
30843         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
30844         now do all the widening conversions of value types.
30845         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
30846
30847 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
30848
30849         * class.c: remove some magic numbers and use the smbolic names,
30850         instead. Added init_events() to load event info at class init time.
30851         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
30852         and mono_metadata_methods_from_event().
30853         * reflection.h, reflection.c: added support for writing out the evnets
30854         related information.
30855
30856 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
30857
30858         * reflection.h, icall.c: use a different method (GetInterfaces)
30859         to gather interface info and add isbyref, isprimitive and
30860         ispointer to the ves_icall_get_type_info() return value.
30861
30862 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
30863
30864         * class.h: stared adding support for events.
30865         * icall.c: split find_members implementation. Added debug icall to get
30866         the address of an object.
30867         * reflection.c: handle TypeBuilders in mono_type_get_object().
30868
30869 2002-03-01  Martin Baulig  <martin@gnome.org>
30870
30871         * icall.c (ves_icall_System_Array_GetLength): This must throw an
30872         ArgumentOutOfRangeException(), not an ArgumentException().
30873         (ves_icall_System_Array_GetLowerBound): Likewise.
30874         (ves_icall_System_Array_GetValue): Improved argument checking.
30875         (ves_icall_System_Array_SetValue): Improved argument checking.
30876
30877 2002-03-01  Martin Baulig  <martin@gnome.org>
30878
30879         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
30880         called with invalid arguments rather than just dying with g_assert().
30881         (ves_icall_System_Array_SetValue): Likewise.
30882         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
30883         raise a NotImplementedException instead.
30884         (ves_icall_System_Array_GetLength): Added argument checking.
30885         (ves_icall_System_Array_GetLowerBound): Added argument checking.
30886
30887 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
30888
30889         * object.h (mono_assert): new macros mono_assert and
30890         mono_assert_not_reached
30891
30892 2002-02-28  Martin Baulig  <martin@gnome.org>
30893
30894         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
30895         and "System::String::IsInterned" to "System::String::_IsInterned".
30896
30897 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
30898
30899         * icall.c: remove hacks for typebuilder. Added icall to create a
30900         modified type from a tybebuilder.
30901         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
30902         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
30903         to create a backing MonoClass for a TypeBuilder.
30904
30905 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
30906
30907         * class.c, class.h: more refactoring of class init.
30908         Export mono_class_setup_mono_type() and mono_class_setup_parent().
30909
30910 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
30911
30912         * marshal.c, marshal.h: start of marshaling interface.
30913
30914 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
30915
30916         * icall.c: fix order in assembly qualified name icall.
30917
30918 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
30919
30920         * class.c: do not free str, since we store it in the hash table.
30921         * reflection.h: add label field to MonoILExceptionInfo.
30922         * reflection.c: handle references to more than one assembly. Handle
30923         case when there isn't a module created in the assembly.
30924
30925 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
30926
30927         * class.c: Fix typo. Start refactoring of class init code.
30928
30929 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
30930
30931         * appdomain.c: exit with 1 on error.
30932         * class.c: we already have the name in MonoClassField.
30933         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
30934         MonoStreamHeader instead of an offset of image->raw_metadata.
30935
30936 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
30937
30938         * appdomain.c (mono_init): Be even more descriptive about the error.
30939
30940 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
30941
30942         * appdomain.c: give the user an informative message when corlib can't
30943         be loaded.
30944
30945 2002-02-26  Martin Baulig  <martin@gnome.org>
30946
30947         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
30948         New icall to get the time zone data.
30949
30950 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
30951
30952         * reflection.c: set virtual and raw size of section correctly.
30953         * threads.c: transfer domain information to newly created threads.
30954
30955 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
30956
30957         * class.c: when instancing a class in a domain, load the default
30958         vaules for static fields from the constant table. Fix System.Enum to
30959         not be an enum.
30960         * icall.c: implement Object::GetType() internalcall. Implemented
30961         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
30962         Fixed checking of binding flags in find_members().
30963         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
30964         * reflection.c: handle enumerations when writing to the constant
30965         table. Use a different object cache for types.
30966
30967
30968 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
30969
30970         * object.c (mono_object_isinst): fix for arrays
30971
30972         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
30973
30974 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
30975
30976         * object.c: don't use mprotect ()  and fix intern pool hash table
30977         lookup for big endian systems.
30978
30979 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
30980
30981         * icall.c: change type_is_subtype_of () signature.
30982
30983 2002-02-21  Mark Crichton  <crichton@gimp.org>
30984
30985         * rand.c, rand.h: Added random number generator for
30986         System.Security.Cryptography classes.
30987
30988         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
30989
30990         * icall.c: Added System.Security.Cryptography calls.
30991
30992 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
30993
30994         * class.c, icall.c, metadata.c: better support for pointer types.
30995         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
30996         * reflection.c: Add support for getting custom attrs for properties
30997         and simplify some code.
30998
30999 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
31000
31001         * icall.c: change getToken () and add custom attribute GetBlob()helper
31002         method.
31003         * reflection.h: add custom attrs array to the reflection builder structures.
31004         * reflection.c: encode and emit custom attributes for all the relevant
31005         reflection objects. Cache fieldref and methodref tokens. Change
31006         mono_image_create_token() interface to take a MonoDynamicAssembly.
31007         More complete custom attributes decoder. Load custom attributes for
31008         Assembly, Field, Method and Constructor objects, too. Make the
31009         returned array an Attribute[] one, not object[]. Added
31010         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
31011         custom attribute constructor.
31012
31013 2002-02-20  Dick Porter  <dick@ximian.com>
31014
31015         * icall.c:
31016         * rawbuffer.c:
31017         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
31018         problem code out for now).
31019
31020 2002-02-19  Radek Doulik  <rodo@ximian.com>
31021
31022         * object.c (mono_ldstr): use hash table to avoid multiple swapping
31023
31024 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
31025
31026         * icall.c: register the GetCustomAttributes method.
31027         * object.c, object.h: add mono_string_new_len ().
31028         * reflection.h, reflection.c: added mono_runtime_invoke(),
31029         mono_install_runtime_invoke(). Added
31030         mono_reflection_get_custom_attrs () to load custom attributes and
31031         create the attribute objects.
31032
31033 2002-02-19  Dick Porter  <dick@ximian.com>
31034         * threads-dummy-types.c:
31035         * threads-dummy-types.h:
31036         * threads-dummy.c:
31037         * threads-dummy.h:
31038         * threads-pthread-types.c:
31039         * threads-pthread-types.h:
31040         * threads-pthread.c:
31041         * threads-pthread.h:  Deleted obsolete files
31042
31043 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
31044
31045         * class.c (mono_class_vtable): runtime init the class when we
31046         allocate static class data.
31047
31048         * icall.c (ves_icall_System_Array_SetValue): check for null values.
31049
31050         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
31051         and String - but we will need generic marshalling support in the
31052         future. 
31053         (mono_init): set the domain name in a ms compatible way
31054
31055         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
31056         String[].
31057
31058 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
31059
31060         * object.c (mono_array_clone): use alloca() instead of g_malloc  
31061         for sizes
31062
31063         * appdomain.c (mono_domain_unload): impl.
31064
31065 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
31066
31067         * appdomain.c, object.c: fix intern pool implementation.
31068         * class.c: fix alignment code.
31069
31070 2002-02-16  Radek Doulik  <rodo@ximian.com>
31071
31072         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
31073         and s2 > s1, just copy lower bytes to be compatible with little
31074         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
31075         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
31076
31077         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
31078         force big_endian to be 1 for big endian machines 
31079         (ves_icall_iconv_new_decoder): ditto
31080
31081 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
31082
31083         * socket-io.c (convert_sockopt_level_and_name): If the system
31084         doesn't define SOL_IP or SOL_TCP, get them by hand using
31085         getprotobyname() and caching the values (because this could be a
31086         slow operation).
31087         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
31088         Use the appropriate struct when the system does support it. Ie,
31089         not all systems have struct ip_mreqn so use struct ip_mreq when
31090         appropriate.
31091
31092 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
31093
31094         * reflection.c: handle finally clauses.
31095
31096 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
31097
31098         * socket-io.c: use g_snprintf() instead of snprintf.
31099
31100 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
31101
31102         * reflection.c (mono_param_get_objects): Cast second argument to
31103         mono_method_get_param_names to a const char** to silence the
31104         compiler warning.
31105
31106         * appdomain.c (mono_domain_assembly_open): Put parens around the
31107         truth statement in the for-loop.
31108
31109         * unicode.c (iconv_convert): Got rid of a compiler warning about
31110         int i being unused when the system has a new iconv.
31111         (iconv_get_length): Same.
31112
31113         * image.c (load_class_names): Cast the second argument to
31114         g_hash_table_insert() to char* to hush compiler warnings about the
31115         arg being a const.
31116         (mono_image_open): Same here.
31117
31118         * socket-io.c: Don't conditionally include sys/filio.h or
31119         sys/sockio.h here anymore since we now get them from
31120         io-layer/io-layer.h
31121         (inet_pton): If the system doesn't support inet_aton, implement
31122         using inet_addr and also #define INADDR_NONE if it isn't defined
31123         by the system.
31124
31125 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
31126
31127         * metadata.c, metadata.h: added function to get packing and size info
31128         of a typedef.
31129         * reflection.h, reflection.c: handle field RVA data. Save info about
31130         the table layout if needed. Assign typedef indexes to all the types
31131         before dumping the info about them to avoid forward reference problems.
31132
31133 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
31134
31135         * socket-io.c (convert_sockopt_level_and_name): ifdef
31136         SO_ACCEPTCONN because it is not defined on my system (old debian)
31137
31138 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
31139
31140         * opcode.c: use stddef.h to get NULL.
31141
31142 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
31143
31144         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
31145         for FIONBIO, FIONREAD and SIOCATMARK.
31146         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
31147         define INADDR_NONE and besides, inet_addr() is deprecated and
31148         should not be used. Use inet_pton() instead - it also has the
31149         added bonus that it can easily handle IPv6 addresses as well.
31150         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
31151
31152 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
31153
31154         * decimal.c: remove _MSC_VER conditional.
31155
31156 2002-02-13  Dick Porter  <dick@ximian.com>
31157
31158         * socket-io.c: 
31159         * icall.c: Internal calls for Blocking, Select, Shutdown,
31160         GetSocketOption and SetSocketOption
31161
31162 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
31163
31164         * assembly.cs: better resolver: use it instead of some kludgy
31165         code.
31166
31167 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
31168
31169         * reflection.c: the best way to speed-up the compiler is to avoid
31170         infinite loops.
31171
31172 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
31173
31174         * class.c (mono_class_vtable): changed the object layout
31175         (obj->vtable->class). 
31176         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
31177
31178 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
31179
31180         * assembly.c: look for assemblies in the assembly dir, too.
31181
31182 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
31183
31184         * class.c: fix thinko in mono_class_from_type().
31185
31186 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
31187
31188         * exception.h, exception.c: added TypeLoadException.
31189         * object.h, object.c: added mono_array_clone ().
31190         * icall.c: handle throwOnError in AssemblyGetType().
31191         Added Array.Clone().
31192         * opcode.h, opcode.c: use a single value for the opcode val.
31193         Compile fix for non-gcc compilers.
31194
31195 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
31196
31197         * opcodes.c, opcodes.h: export interesting info about opcodes.
31198
31199 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
31200
31201         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
31202         icalls. 
31203
31204         * class.c (class_compute_field_layout): set element_class for enums
31205         (mono_class_create_from_typedef): set element_class for normal classes
31206
31207         * icall.c (ves_icall_System_Enum_get_value): impl.
31208
31209         * class.c (mono_class_create_from_typedef): do not set valuetype
31210         flag for System.ValueType and System.Enum
31211
31212 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
31213
31214         * unicode.c (iconv_convert): fix big endian problem.
31215
31216 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
31217
31218         * class.c: add asserts if we are ever going to scribble over memory.
31219         * socket-io.c: not all systems have AF_IRDA defined.
31220
31221 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
31222
31223         * class.c (class_compute_field_layout): do not consider static
31224         fields to compute alignment
31225
31226 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
31227
31228         * appdomain.c (mono_appdomain_get): impl.
31229         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
31230
31231 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
31232
31233         * icall.c: ignore "file://" prefix when loading an assembly.
31234
31235 2002-01-23  Dick Porter  <dick@ximian.com>
31236
31237         * socket-io.c:
31238         * icall.c:
31239         * Makefile.am: Added socket support
31240
31241 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
31242
31243         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
31244         code back.  This should return the assemblies that are loaded by
31245         the runtime on behalf of an application domain. 
31246
31247         The current implementation is still broken, it just returns every
31248         assembly loaded, but until we get real applications domain this
31249         will do.
31250
31251 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
31252
31253         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
31254         AppDomain object.
31255
31256 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
31257
31258         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
31259         the mono_class_from_name lookup.
31260         (ves_icall_get_parameter_info): ditto.
31261         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
31262         method.
31263         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
31264
31265 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
31266
31267         * class.c: load also nested classes on class init.
31268         System.ValueType instance methods gets passed boxed
31269         values, unless methods in derived classed that get a pointer to the
31270         data.
31271         * icall.c: use better name parsing code in GetType().
31272         * image.c, image.h: add mono_image_loaded ().
31273         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
31274         * reflection.c, reflection.h: added mono_reflection_parse_type().
31275
31276 2002-01-22  Veronica De Santis <veron78@interfree.it>
31277
31278         * icall.c : Added mapping of internal calls for Manual and Auto reset events
31279         * threads.c : Added the implementation of internal calls for events
31280         * threads.h : Added prototypes of internal calls for events
31281         
31282 2002-01-21  Radek Doulik  <rodo@ximian.com>
31283
31284         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
31285
31286 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
31287
31288         * class.c (mono_class_init): set min_align to 1 (instead of 0)
31289         (mono_class_value_size): use min_align
31290
31291 2002-01-20  Dick Porter  <dick@ximian.com>
31292
31293         * threads.h:
31294         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
31295         so it compiles on w32.
31296
31297 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
31298
31299         * metadata.c (mono_type_stack_size): impl.
31300
31301         * class.c (mono_class_get_field): impl. memberref token
31302
31303 2002-01-16 Veronica De Santis <veron78@@interfree.it>
31304
31305         * icall.h : Added the internal calls mapping for CreateMutex_internal
31306                     and ReleaseMutex_internal.
31307         * threads.h : Added the prototype of mutexes internal calls.
31308         * threads.c : Added the implementations of mutexes internal calls.
31309
31310 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
31311
31312         * metaparse.h: removed unused file.
31313         * reflection.c, reflection.h: added stream_data_align () function 
31314         to align data in streams and keep stream aligned. Add support for
31315         exception support in method headers.
31316
31317 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
31318
31319         * unicode.c: make iconv_convert () return the number of bytess written
31320         in the output buffer.
31321
31322 2002-01-15  Dick Porter  <dick@ximian.com>
31323         * threads.c: Make the runtime's idea of infinite timeouts coincide
31324         with the class library's
31325
31326         Fix a particularly egregious bug in mono_thread_cleanup(). That
31327         code was so utterly bogus it must have been written on a Monday.
31328
31329 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
31330
31331         * reflection.h: add subtypes field to TypeBuilder.
31332         * reflection.c: encode constants for literal fields.
31333         Handle subtypes. Fix user string token (and add a zero byte)
31334         at the end.
31335         
31336 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
31337
31338         * class.c (mono_class_init): bug fix: assign slot numbers for
31339         abstract methods.
31340
31341 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
31342
31343         * reflection.c: don't try to output a code RVA for abstract methods.
31344         Small fixes for method header format. Output parameter info to the
31345         ParamDef table. Save method overriding info to MethodImpl table.
31346         Fix property support. Allow typedef.extends to be a type in the
31347         building assembly.
31348         * verify.c: fix off-by-one error.
31349
31350 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
31351
31352         * class.c: fix mono_class_from_mono_type () for szarray types.
31353         Remove unused cache check in mono_class_from_type_spec().
31354         * icall.c: *type_from_name () functions handle simple arrays and byref.
31355         * reflection.c: handle byref and szarray types. Handle methods without
31356         body (gets P/Invoke compilation working). Handle types and fields in
31357         get_token ().
31358         * reflection.h: add rank to MonoTypeInfo.
31359
31360 2002-01-10  Dick Porter  <dick@ximian.com>
31361
31362         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
31363         internal calls
31364
31365 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
31366
31367         * icall.c: initialize class in type_from_handle ().
31368         Loop also in parent classes for get_method ().
31369         * reflection.c: properly encode class and valuetype types.
31370         Start on encoding TypeBuilder types. Handle fieldrefs.
31371         Use correct length when registering a user string.
31372         Handle ConstructorBuilder and MonoMethod in get_token ().
31373         Make mono_type_get_object () aware of cached types.
31374         * object.c: back out change to mono_string_new ().
31375
31376 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
31377         * object.c: mono_string_new should return a NULL when the string 
31378         passed in is NULL -- not try to deference it.
31379         
31380 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
31381
31382         * icall.c: hack to make IsSubType work for TypeBuilders.
31383         * reflection.c: emit constructors before methods.
31384         Retrieve param names in mono_param_get_objects().
31385
31386 2002/01/05  Nick Drochak  <ndrochak@gol.com>
31387
31388         * Makefile.am: fix list of headers and sources so automake 1.5
31389         doesn't complain. Removed \# at end of list.
31390
31391 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
31392
31393         * reflection.c: get token for a method ref. Set return type of
31394         constructor to void.
31395         * loader.c: debug message.
31396         * class.c: typo fix.
31397
31398 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
31399
31400         * icall.c: fix array init with rank > 1. FindMembers
31401         loops in parent class as well.
31402         * image.c: do not insert nested types in name cache.
31403         * reflection.c: warning fix.
31404         * reflection.h: add override method (for interface impl).
31405
31406 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
31407
31408         * metadata.c: fix customattr decoding.
31409
31410 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
31411
31412         * rawbuffer.cs: Added native Win32 implementation, avoids using
31413         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
31414
31415 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
31416
31417         * class.c: make the low-level routines handle the cache.
31418
31419 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
31420
31421         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
31422
31423 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
31424
31425         * class.c: fix mono_array_element_size() for objects.
31426         * class.h, class.c: add properties to MonoClass and load them
31427         at init time.
31428         * icall.c: check with isinst() when assigning a value to an array
31429         instead of requiring the classes to match exactly.
31430         Implemented icall for System.Type::GetType().
31431         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
31432         enums. Handle bindingflags when looking for methods and fields.
31433         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
31434         and mono_metadata_methods_from_property().
31435         * reflection.h, reflection.c: added structures for propreties,
31436         parameters and enums. Implemented mono_property_get_object() and
31437         mono_param_get_objects().
31438
31439 2001-12-18  Dick Porter  <dick@ximian.com>
31440
31441         * file-io.c: Use mono_string_to_utf16() instead of
31442         mono_string_chars()
31443
31444         * object.c: Added mono_string_to_utf16(), which copies the non
31445         NULL-terminated MonoString into a new double-null-terminated
31446         buffer.
31447
31448 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
31449
31450         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
31451
31452 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
31453
31454         * file-io.c: raise exceptions if handle is invalid.
31455
31456 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
31457
31458         * assembly.c: yet another check for mscorlib.
31459         * class.c, class.h: load nesting info for classes.
31460         * icall.c: many new functions to support the Reflection classes.
31461         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
31462         * reflection.h, reflection.c: mono_image_create_token(),
31463         mono_assembly_get_object(), mono_type_get_object(),
31464         mono_method_get_object(), mono_field_get_object(): methods to return
31465         objects that parallel the C representation of assemblies, types,
31466         methods, fields.
31467
31468 2001-12-11  Dick Porter  <dick@ximian.com>
31469
31470         * icall.c:
31471         * file-io.c: Internal calls for file IO.
31472
31473 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
31474
31475         * tabledefs.h: missing FileAttributes.
31476         * verify.h, verify.c: use is_valid_string () to simplify and check for
31477         valid strings more correctly. Fix warnings and speeling.
31478         Check more tables: Filed, File, ModuleRef, StandAloneSig.
31479         Check code: branches, maxstack, method calls.
31480
31481 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
31482
31483         * object.c (mono_object_allocate): removed static, so that the jit
31484         can allocate value types.
31485
31486         * icall.c (ves_icall_System_DateTime_GetNow): impl.
31487
31488 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
31489
31490         * class.c: init enum types right away and register the
31491         token->MonoClass map in mono_class_create_from_typedef ().
31492         * verify.h, verify.c: first cut of the verifier.
31493         * pedump.c: add --verify switch to verify metadata tables.
31494         * tabledefs.h: add some missing enums.
31495
31496 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
31497
31498         * class.c (mono_install_runtime_class_init): impl.
31499         (mono_class_init): renamed mono_class_metadata_init to
31500         mono_class_init, also removed the metadata_inited flag
31501
31502         * object.c (mono_object_isinst): use faster algorithm
31503
31504 2001-11-30  Radek Doulik  <rodo@ximian.com>
31505
31506         * mono-endian.h: reverted last change
31507         added function prototypes
31508
31509         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
31510         add mono-endian.c back
31511
31512         * mono-endian.c: returned back, as Paolo pointed out, it's needed
31513         for unaligned access, I've mistaked it with endianess. I am
31514         sorry.
31515         (mono_read16): fix reverted endianess
31516         (mono_read64): ditto
31517         (mono_read32): ditto
31518
31519 2001-11-30  Dick Porter  <dick@ximian.com>
31520
31521         * exception.c: Implement mono_exception_from_name()
31522
31523 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
31524
31525         * metadata.h, metadata.c: remove params_size and locals_size and their
31526         calculation from the metadata code: they are only usefult to the
31527         interp.
31528
31529 2001-11-29  Radek Doulik  <rodo@ximian.com>
31530
31531         * object.c (mono_ldstr): swap bytes here, it's probably not the
31532         best place, but works for me now, I'll redo it once I know mono
31533         better, also note that I add PROT_WRITE and don't reset back, also
31534         note that it's only affects big endians, so x86 should be OK
31535
31536         * mono-endian.h (read16): use just glib macros for both endians
31537
31538         * mono-endian.c: removed as glib macros are used in in
31539         mono-endian.h so we don't need to care about endianess for read
31540         macros as glib does that for us already
31541
31542 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
31543
31544         * class.h, class.h: take minimum alignment into consideration so
31545         that the fields of a class remain aligned also when in an array.
31546
31547 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
31548
31549         * loader.h, loader.c: add mono_method_get_param_names().
31550         * class.c: 0-init class fields.
31551
31552 2001-11-26  Dick Porter  <dick@ximian.com>
31553
31554         * icall.c:
31555         * threads-types.h:
31556         * threads.c: New file that handles System.Threading on all platforms
31557
31558         * object.c: 
31559         * object.h: Remove the synchronisation struct from MonoObject,
31560         replace it with a pointer that gets initialised on demand
31561
31562         * Makefile.am: Replace all the system-specific threading code with
31563         a single file that uses the new wrapper library
31564
31565 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
31566
31567         * class.c, class.h: add mono_install_trampoline() so that the runtime
31568         can register a function to create a trampoline: removes the ugly
31569         requirement that a runtime needed to export arch_create_jit_trampoline.
31570         * object.h, object.c: added mono_install_handler() so that the runtime
31571         can install an handler for exceptions generated in C code (with
31572         mono_raise_exception()). Added C struct for System.Delegate.
31573         * pedump.c: removed arch_create_jit_trampoline.
31574         * reflection.c: some cleanups to allow registering user strings and
31575         later getting a token for methodrefs and fieldrefs before the assembly
31576         is built.
31577         * row-indexes.h: updates and fixes from the new ECMA specs.
31578
31579 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
31580
31581         * class.h, class.c: add enum_basetype field to MonoClass.
31582         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
31583         to get index in the constant table reated to a field, param or
31584         property.
31585         * reflection.h, reflection.c: handle constructors. Set public-key and
31586         version number of the built assembly to 0.
31587         * row-indexes.h: update from new ECMA spec.
31588
31589 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
31590
31591         * class.h, class.c: add a max_interface_id to MonoClass.
31592         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
31593         since it's used to do that. Added mono_type_type_from_obj().
31594         Make GetType() return NULL instead of segfaulting if the type was not
31595         found. Handle simple arrays in assQualifiedName.
31596         * object.h: add a struct to represent an Exception.
31597         * reflection.c: output call convention in method signature.
31598         Add code to support P/Invoke methods and fixed offsets for fields.
31599
31600 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
31601
31602         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
31603         the value.
31604         * icall.c: use mono_array_addr instead of array->vector: fixes the
31605         reflection image writing.
31606         * reflection.c: init call convention byte to 0 in method signature.
31607         Encode the property signature. Don't output property-related methods
31608         twice. Really process the properties for a type (don't cast a field to
31609         a property, my mom always told me that).
31610         Fix 64 bit issues in pointer alignment in a different and more
31611         readable way.
31612
31613 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
31614
31615         * loader.h: Removed type class from MonoDefaults, added monotype
31616
31617         * loader.c: Loaded MonoType, removed loading of Type
31618
31619         * icall.c (my_mono_new_object): Now returns a System.MonoType,
31620         and fills in System.Type._impl with a RuntimeTypeHandle rather
31621         than the actual MonoClass *
31622
31623         (ves_icall_type_from_handle): change from type_class to
31624         monotype_class
31625
31626         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
31627         implemented
31628
31629         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
31630         implemented
31631
31632         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
31633
31634         (ves_icall_System_Reflection_Assembly_GetType): implemented
31635
31636         (ves_icall_System_MonoType_assQualifiedName): implemented
31637
31638         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
31639
31640 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
31641
31642         * assembly.c (mono_assembly_open): Implement a cache for the
31643         assemblies. 
31644
31645         (mono_assembly_close): only destroy the assembly when the last
31646         reference is gone.
31647         
31648 2001-11-09  Dick Porter  <dick@ximian.com>
31649
31650         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
31651
31652 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
31653
31654         * class.c (mono_class_metadata_init): bug fix: compute the right slot
31655
31656 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
31657
31658         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
31659         from Martin Weindel.
31660         * object.h: add mono_string_chars ().
31661
31662 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
31663
31664         * reflection.c (build_compressed_metadata): Eliminates warnings
31665         and uses 64-bit clean code.
31666
31667         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
31668         (mono_type_equal): Change signature to eliminate warnings.
31669
31670 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
31671
31672         * icall.c, loader.c: remove the internalcall array constructors.
31673         Changes to match the new MonoArray structure.
31674         * object.h, object.c: an array object doesn't allocate an extra
31675         vector. Add mono_array_new_full () to create jagged arrays easily.
31676
31677 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
31678
31679         * metadata.h, metadata.c: add mono_metadata_field_info () to
31680         retreive all the info about a field from vairous tables.
31681         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
31682         * class.h, class.c: augment MonoClassField with more info.
31683         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
31684         policy and load a field's RVA if needed.
31685
31686 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
31687
31688         * class.c (mono_class_metadata_init): create a trampoline for all
31689         virtual functions instead of actually compiling them.
31690
31691 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
31692
31693         * class.h, class.c: include name in MonoClassField.
31694         * class.c: fix fundamental type of System.Object and System.String.
31695         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
31696         tokens in ldtoken.
31697         * icall.c: remove internalcalls for the Reflection stuff that is now
31698         done in C# code.
31699         * loader.c: mono_field_from_memberref () implementation.
31700         * mono-endian.c: thinko (s/struct/union/g).
31701         * object.c, object.h: make the mono_string_* prototypes actually use
31702         MonoString instead of MonoObject.
31703         * reflection.c, reflection.h: updates for changes in the reflection
31704         code in corlib: we use C structures that map to the actual C# classes.
31705         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
31706         fat method header if needed and use the info from the ILGenerator for
31707         methods. Handle fields in types. Misc fixes.
31708
31709 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
31710
31711         * class.c (mono_class_metadata_init): bug fix: always allocate
31712         space for static class data
31713
31714 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
31715
31716         * class.c (mono_compute_relative_numbering): use relative
31717         numbering to support fast runtime type checks.
31718
31719 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
31720
31721         * class.c (mono_class_create_from_typeref): added debugging output
31722         to print class name when MonoDummy is returned instead of real class
31723
31724 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
31725
31726         * class.c (mono_class_metadata_init): interface offset table now
31727         contains pointers into the vtable - this is more efficient for the jit
31728
31729 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
31730
31731         * class.c (mono_class_metadata_init): use a temporary vtable (the
31732         old algorithm only worked for the interpreter, but not for the jit)
31733
31734 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
31735
31736         * loader.c (method_from_memberref): use mono_class_get to get the
31737         class of an array instead of using System.Array directly.
31738         (mono_get_method): also add MEMBERREF methods to the method cache
31739         which usefull for arrays.
31740
31741 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
31742
31743         * pedump.c (arch_compile_method): added to compute vtable entry
31744
31745         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
31746         number of interfaces.
31747         
31748         * class.h: merged MonoArrayClass into MonoClass
31749
31750         * class.c (mono_class_create_from_typedef): compute the vtable size and
31751         allocate space to include the vtable inside MonoClass
31752         (mono_class_metadata_init): initialize the vtable
31753
31754 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
31755
31756         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
31757         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
31758         * image.c: endian fixes by Laurent Rioux.
31759         * object.h, object.c: rename MonoStringObject to MonoString and
31760         MonoArrayObject to MonoArray. Change some function names to conform to
31761         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
31762         guint16* as first argument, so don't use char*.
31763         Provide macros to do the interesting things on arrays in a portable way.
31764         * threads-pthread.c: updates for the API changes and #include <sched.h>
31765         (required for sched_yield()).
31766         * icall.c: updates for the API changes above.
31767         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
31768         platforms that need them.
31769
31770 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
31771
31772         * class.c: set the correct type for all the fundamental
31773         type when loading the class.
31774
31775 2001-10-05  Dick Porter  <dick@ximian.com>
31776
31777         * threads-pthread.c (pthread_mutex_timedlock): Simple
31778         compatibility version for C libraries that lack this call.
31779
31780 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
31781
31782         * class.c: MonoTypes stored in MonoClass are stored as
31783         fundamental MonoTypes when the class represents a
31784         fundamental type (System.Int32, ...).
31785         The TypeHandle return by ldtoken is a MonoType*.
31786         * icall.c: ves_icall_get_data_chunk () write out all the
31787         PE/COFF stuff. Implement ves_icall_define_method (),
31788         ves_icall_set_method_body (), ves_icall_type_from_handle ().
31789         * image.c: properly skip unknown streams.
31790         * loader.h, loader.c: add type_class to mono_defaults.
31791         * metadata.c, metadata.h: export compute_size () as
31792         mono_metadata_compute_size () with a better interface.
31793         Typo and C&P fixes.
31794         * pedump.c: don't try to print the entry point RVA if there is no entry point.
31795         * reflection.c, reflection.h: many cleanups, fixes, output method
31796         signatures and headers, typedef and typeref info, compress the metadata
31797         tables, output all the heap streams, cli header etc.
31798         * row-indexes.h: typo fixes.
31799
31800 2001-10-04  Dick Porter  <dick@ximian.com>
31801
31802         * object.h: Add a synchronisation mutex struct to MonoObject
31803
31804         * object.c (mono_new_object): Initialise the object
31805         synchronisation mutexes
31806
31807         * icall.c: System.Threading.Monitor internal calls
31808         
31809         * threads-pthread.h:
31810         * threads-pthread.c: System.Threading.Monitor internal calls
31811
31812         * threads-types.h: New file, includes the system-specific thread
31813         structures
31814         
31815         * threads-pthread-types.h:
31816         * threads-pthread-types.c: New files, handle pthread-specific
31817         synchronisation types
31818
31819         * threads-dummy-types.h: 
31820         * threads-dummy-types.c: New files of dummy support for
31821         thread-specific types
31822
31823         * metadata.c:
31824         * image.c:
31825         * pedump.c: include mono-endian.h not endian.h
31826         
31827         * Makefile.am: More threads files.
31828         Name mono-endian.h not endian.h
31829
31830 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
31831
31832         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
31833         stuff and implement a few more bits.
31834         * icall.c: a field needs to be dereferenced twice. Do not use the same
31835         name for two variables in the same scope.
31836         * image.c, image.h: cleanups.
31837
31838 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
31839
31840         * class.c (mono_class_metadata_init): bug fix: compute the right size
31841
31842 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
31843
31844         * icall.c: implemented some of the Reflection internalcalls.
31845         * image.c, image.h: start writing out the PE/COFF image.
31846         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
31847         that does the reverse than decode_blob_size ().
31848         * object.c: use mono_metadata_encode_value (). Move here
31849         temporary implementation of mono_string_to_utf8 ().
31850         * rawbuffer.c: make malloc_map static.
31851
31852 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
31853
31854         * metadata.c: fix type comparison for arrays.
31855         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
31856         Added a couple of new classes to monodefaults.
31857         * icall.c: added a couple of Reflection-related internalcalls.
31858         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
31859         Added a byval_arg MonoType to MonoClass.
31860
31861 2001-09-28  Dick Porter  <dick@ximian.com>
31862
31863         * icall.c:
31864         * threads-pthread.h: 
31865         * threads-pthread.c: Implemented internal calls for
31866         LocalDataStoreSlot operations.  Applied mutexes around all shared
31867         data.  Reworked the thread creation and Start() operations to
31868         avoid a race condition.
31869         
31870         * threads-dummy.h:
31871         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
31872
31873 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
31874
31875         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
31876
31877 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
31878
31879         * class.c, loader.c: warn and return NULL instead of erroring out.
31880         * icall.c: added System.AppDomain::getCurDomain().
31881         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
31882
31883 2001-09-25  Dick Porter  <dick@ximian.com>
31884
31885         * threads-pthread.h:
31886         * threads-pthread.c: Implemented timed thread joining and added
31887         System.Threading.Thread::Join_internal internal call
31888
31889         * icall.c: Added System.Threading.Thread::Join_internal internal call
31890
31891         * threads-dummy.h:
31892         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
31893
31894 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
31895
31896         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
31897         mono_string_intern () to implement the semantics of the ldstr opcode
31898         and the interning of System.Strings.
31899         * icall.c: provide hooks to make String::IsIntern and String::Intern
31900         internalcalls.
31901
31902 2001-09-23  Dick Porter  <dick@ximian.com>
31903
31904         * threads-dummy.c: 
31905         * threads-dummy.h: New files of dummy threading routines
31906
31907         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
31908         support code based on system specifics
31909
31910         Rename PTHREAD_LIBS to THREAD_LIBS
31911         
31912 2001-09-23  Dick Porter  <dick@ximian.com>
31913
31914         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
31915         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
31916         internal calls.
31917         (mono_thread_init): Set up a Thread object instance to return when
31918         the main thread calls Thread.CurrentThread
31919         (mono_thread_cleanup): Wait for all subthreads to exit
31920
31921         * icall.c: New internal calls for System.Threading.Thread::Sleep
31922         (including Schedule) and CurrentThread
31923
31924         * threads.h: New file, to insulate thread-specific stuff from the
31925         rest of the code
31926
31927 2001-09-21  Dick Porter  <dick@ximian.com>
31928
31929         * threads-pthread.h: 
31930         * threads-pthread.c: New file, for handling pthreads-style
31931         threading support.  Start() now starts a new thread and executes
31932         the ThreadStart delegate instance.
31933
31934         * icall.c: Added the internalcall for
31935         System.Threading.Thread::Start_internal
31936
31937         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
31938
31939 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
31940
31941         * loader.c: work around the different signatures for delegates
31942         constructors csc generates in compiled code vs the ones compiled in mscorlib.
31943
31944 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
31945
31946         * class.h, class.c: add mono_class_get_field_from_name ().
31947         * *: Fix C comments and other ANSI C issues.
31948
31949 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
31950
31951         * endian.h, assembly.c: fix some endianness issues.
31952
31953 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
31954
31955         * loader.h, load.c: add delegate_class to mono_defaults.
31956         Handle runtime provided methods in mono_get_method ().
31957
31958 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
31959
31960         * loader.c (mono_get_method): use pinvoke for internal call
31961
31962         * icall.c: use pinvoke for internal call
31963
31964         * loader.c (method_from_memberref): set the method name
31965
31966 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
31967
31968         * metadata.c: help the compiler generate better code for
31969         mono_class_from_mono_type ().
31970
31971 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
31972
31973         * class.c (mono_class_metadata_init): delayed computing of the
31974         class size to mono_class_metadata_init ()
31975
31976 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
31977
31978         * class.c, class.h: add an interfaces member to MonoClass.
31979         * image.c, image.h: add assembly_name field to MonoImage
31980         from the assembly table.
31981         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
31982
31983 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
31984
31985         * class.c: Handle Array in mono_class_from_mono_type ().
31986         * metadata.c, pedump.c: some endian fixes.
31987
31988 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
31989
31990         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
31991         * metadata.c: fix small problem introduced with the latest commit.
31992
31993 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
31994
31995         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
31996         We don't need a MonoMetadata pointer anymore to compare signatures in
31997         mono_metadata_signature_equal (), update callers.
31998         Reduced memory usage an number of allocations for MonoMethodHeader and
31999         MonoMethodSignature.
32000
32001 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
32002
32003         * metadata.c: added compare for szarray.
32004
32005 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
32006
32007         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
32008         and add a couple more types to it and mono_defaults. Give an hint on
32009         classes that need implementing in our corlib and are referenced
32010         in mscorlib.
32011
32012 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
32013
32014         * class.h, class.c: keep track if a class is also an Enum.
32015         * loader.c: Implement a couple more types for use in libffi
32016         marshalling. Gives better diagnostics when failing to dlopen
32017         a library. Set method->klass for P/Invoke methods, too.
32018
32019 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
32020
32021         * class.c, class.h: add a MonoType this_arg to MonoClass that
32022         represents a pointer to an object of the class' type that
32023         can be used by the interpreter and later the type cache.
32024         Add best guess alignment info for valuetype objects.
32025
32026 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
32027
32028         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
32029         into MonoType: one less level of indirection and allocation and
32030         simplifies quite a bit of code. Added cache for MonoTypes that are
32031         used frequently, so that we don't need to allocate them all the time.
32032
32033 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
32034
32035         * class.c (mono_class_create_from_typedef): System.Enum is also a
32036         value type, although it does not derive from System.ValueType
32037         (maybe a bug in the ms compiler?)
32038
32039         * metadata.c (mono_type_size): return the right size for value types
32040
32041         * loader.c (mono_get_method): only initialize method header if not abstract
32042
32043         * class.c (mono_class_from_mono_type): use mono_default values. 
32044
32045 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
32046
32047         * *: use MonoClass pointers instead of <type_tokens>
32048         
32049         * class.h: new flag: metadata_inited.
32050
32051         * class.c (mono_class_metadata_init): impl.
32052         (mono_class_instance_size): impl.
32053         (mono_class_data_size): impl.
32054
32055 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
32056
32057         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
32058         MonoClass now has the name and name_space fields. 
32059         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
32060         mono_get_method () takes and optional MonoClass as argument.
32061         Removed mono_typedef_from_name() and added mono_class_token_from_name()
32062         instead that takes advantage of a map from class names to typedef
32063         tokens in MonoImage.
32064
32065 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
32066
32067         * metadata.c: zero is not a valid alignment boundary.
32068         Merge MONO_TYPE_VOID in default decoding code.
32069
32070 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
32071
32072         * image.h: merged MonoMetadata into MonoImage
32073
32074         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
32075         identify the type of elements.
32076
32077 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
32078
32079         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
32080         * cil-coff.h: split MonoMSDOSHeader and add size info.
32081         * image.c: add some consistency checks.
32082         * metadata.c: fix row size computation: one programmer
32083         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
32084         add explanation for the locator routine.
32085         Fix decoding of size in method header.
32086         
32087 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
32088
32089         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
32090         (g_concat_dir_and_file): Bring g_concat_dir_and_file
32091         function from gnome-libs.  This uses the right path separator
32092         based on the OS, and also works around a bug in some systems where
32093         a double slash is not allowed. 
32094         (default_assembly_name_resolver): Use g_concat_dir_and_file
32095         (mono_assembly_open): ditto.
32096
32097 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
32098
32099         * metadata.c (mono_metadata_signature_equal): impl.
32100
32101         * *: void is now a realy MonoType (instead of using NULL)
32102         
32103         * metadata.c (do_mono_metadata_parse_type): use
32104         mono_metadata_parse_type to parse void value.
32105
32106 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
32107
32108         * metadata.c, metadata.h: in the signature and method header store
32109         only the space required for holding the loca vars and incoming arguments.
32110
32111 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
32112
32113         * metadata.c (do_mono_metadata_parse_type): treat void like any
32114         other type (instead of assigning NULL);
32115
32116 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
32117
32118         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
32119
32120 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
32121
32122         * image.c (do_mono_image_open): added a cache for arrays.
32123
32124 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
32125
32126         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
32127         decode a single column from a row in a metadata table and changes
32128         to take advantage of it in the typedef locator (gives a nice speed up).
32129         Store offset info for function params.
32130
32131 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
32132
32133         * image.h (MONO_IMAGE_IS_CORLIB): removed 
32134
32135 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
32136
32137         * assembly.c: how could mono_assembly_close () had ever worked?
32138         * metadata.c, metadata.h: provide offset info for local vars.
32139         Implement mono_type_size () to take care of alignment as well
32140         as size (it was mono_field_type_size in cli/class.c before).
32141
32142 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
32143
32144         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
32145
32146         * assembly.h (CORLIB_NAME): set to corlib.dll
32147
32148         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
32149
32150 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
32151
32152         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
32153         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
32154         tokentype.h: massive namespace cleanup.
32155
32156 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
32157
32158         * metadata.h, metadata.c: decode exception clauses when parsing method header.
32159
32160 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
32161
32162         * metadata.c (mono_metadata_free_type): added check for type !=
32163         NULL (void) before calling mono_metadata_free_type()
32164
32165 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
32166
32167         * metadata.h, row_indexes.h: added header with enumerations to use
32168         to index in the columns from tables in metadata and to decode coded
32169         tokens: we should start using this instead of embedding magic numbers
32170         all over the code.
32171
32172 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
32173
32174         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
32175         Move metadata_t info from cli_image_info_t to MonoImage, where
32176         it's easily accessible. Changed all the uses accordingly.
32177         Added the method and class caches to MonoImage.
32178         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
32179         and mono_metadata_decode_value () signature to be more consistent
32180         with the other parse functions (and simplify code). Taken advantage
32181         of zero-length array allocation with GCC. Removed reduntant (and
32182         wrong) MonoFieldType struct and use MonoParam instead. Changed
32183         mono_metadata_parse_field_type () to use common code for parsing.
32184         Added mono_metadata_typedef_from_field () and
32185         mono_metadata_typedef_from_method () to lookup a typedef index from a
32186         field or method token.
32187         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
32188
32189 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
32190
32191         * metadata.c (mono_metadata_parse_field_type): Implement. 
32192         (do_mono_metadata_parse_type): Split engine from
32193         mono_metadata_parse_type, so that we can create smaller structures
32194         for things that just have one pointer to the MonoType (look at
32195         the MonoFieldType)
32196
32197 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
32198
32199         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
32200         as Jan Gray found out, it is incorrect. 
32201
32202 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
32203
32204         * assembly.c: Implement asssembly loading.  This loads an image
32205         and loads all the referenced assemblies.  Come to think of it, we
32206         could always do lazy loading of the assemblies. 
32207
32208         * image.c (mono_image_open): Keep loaded images in a hashtable.
32209
32210         * image.h (MonoImage): Add reference count.
32211
32212 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
32213
32214         * assembly.c (mono_assembly_open): Keep track of the file name in
32215         case the assembly has no ASSEMBLY table.
32216
32217         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
32218         from get.c here.
32219
32220 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
32221
32222         * metadata.c, metadata.h: decode local vars in method header
32223         parse function. Change callers accordingly.
32224
32225 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
32226
32227         * metadata.h, cil-coff.h: protect against multiple inclusion.
32228         Added some new structures to hold information decoded from metadata:
32229         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
32230         and relevant decoding/free functions.
32231         * metadata.c: implement decoding functions. Add warning for out of bounds
32232         index in mono_metadata_locate(). Implement mono_get_method () to retreive
32233         all the info about a method signature and invocation. Remove check on
32234         uninitialized local var in parse_mh() and fix memory leak.
32235
32236 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
32237
32238         * metadata.h: More macros.
32239
32240         * tokentype.h: New file.
32241
32242 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
32243
32244         * assembly.c: added a consistency check and initialize
32245         some structures with g_new0().
32246         * metadata.c: fixed a couple more bugs in table size computation
32247         and add other checks for out-of bound access to metadata.
32248
32249 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
32250
32251         * metatada.c: fix bugs computing table sizes. Spew a
32252         warning when index in string heap is out of bounds.
32253
32254 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
32255
32256         * metadata.h: Add a couple of macros to manipulate tokens. 
32257
32258 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
32259
32260         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
32261         cli_section_tables).
32262
32263 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
32264
32265         * metadata.c (mono_metadata_user_string): New function, provides
32266         access to the UserString heap. 
32267
32268 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
32269
32270         * metadata.c: Add inline documentation.
32271
32272 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
32273
32274         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
32275         files. 
32276
32277 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
32278
32279         * typeattr.h: New file, TypeAttribute flags. 
32280
32281 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
32282
32283         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
32284         mono_assembly_ensure_section): Section loading code.
32285         (load_section_tables): Load the sections.
32286
32287         * mono/metadata/metadata.c (mono_metadata_locate_token,
32288         mono_metadata_locate): Functions to locate the information
32289         definition given a token or a table and an index.
32290         (mono_metadata_compute_table_bases): New.
32291         (compute_size): New function to compute the sizes of the various
32292         tables.
32293
32294         * mono/metadata/metadata.h: Finish listing the different index
32295         types. 
32296
32297         * mono/metadata/pedump.c: Improve to dump new information.
32298
32299 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
32300
32301         * mono/metadata/metadata.c: Entered all the tables matching
32302         Beta2. 
32303
32304         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
32305
32306
32307
32308