0366dde73d9c86e69eb4e6c6f728817f284f898d
[mono.git] / mono / metadata / ChangeLog
1 2008-11-20  Zoltan Varga  <vargaz@gmail.com>
2
3         * marshal.c: Add support for MONO_TYPE_GENERICINST to some functions.
4         Fixes #444715. Fix a warning.
5
6 2008-11-18 Gonzalo Paniagua Javier <gonzalo@novell.com>
7
8         * appdomain.c: write the full path of the assembly to the .ini file
9         created when "shadow-copying"
10         Bug #446353 fixed.
11
12 2008-11-18  Zoltan Varga  <vargaz@gmail.com>
13
14         * debug-helpers.c (mono_method_full_name): Stringify wrapper types even
15         if signature==FALSE.
16
17 2008-11-17  Bill Holmes  <billholmes54@gmail.com>
18
19         * marshal.h : Fix the cygwin build.
20            marshal.c:12442: undefined reference to `_IID_IMarshal'
21           
22         Code is contributed under MIT/X11 license.
23
24 2008-11-17  Bill Holmes  <billholmes54@gmail.com>
25
26         * marshal.h : cominterop_ccw_getfreethreadedmarshaler added to return the
27           free threaded marshaler when QueryInterface is called on a COM callable
28           wrapper requesting the IMarshal interface.
29           
30         Code is contributed under MIT/X11 license.
31
32 2008-11-14  Zoltan Varga  <vargaz@gmail.com>
33
34         * domain-internals.h (MonoDomain): Update MONO_DOMAIN_LAST_GC_TRACKED.
35
36         * reflection.c (mono_type_get_object): Special case the very common
37         void type.
38
39         * domain-internals.h (struct _MonoDomain): Add 'typeof_void' field to
40         hold typeof(void).
41
42 2008-11-13  Bill Holmes  <billholmes54@gmail.com>
43
44         * process.h : Adding method declaration for
45           ves_icall_System_Diagnostics_Process_WaitForInputIdle_internal.
46           
47         * process.c : Adding implementation for
48           ves_icall_System_Diagnostics_Process_WaitForInputIdle_internal.
49           
50         * icall-def.h : Registering ICALL Processs.WaitForInputIdle_internal
51           to ves_icall_System_Diagnostics_Process_WaitForInputIdle_internal.
52
53         Code is contributed under MIT/X11 license.
54
55 2008-11-10  Rodrigo Kumpera  <rkumpera@novell.com>
56
57         * appdomain.c (unload_thread_main): Clean up threadpool by
58         calling mono_thread_pool_remove_domain_jobs.
59
60         * domain-internals.h (struct _MonoDomain): Add new fields to
61         help coordinate the cleanup of the threadpool.
62
63         * threadpool.c (mono_thread_pool_remove_domain_jobs): New fuction
64         that cleans up the threadpool of all jobs associated with an appdomain.
65         It does that by cleaning up the queues and making sure all active
66         threads are accounted.
67
68         * threadpool.c (async_invoke_io_thread): Ignore job if its domain is
69         unloaded or in the process of. Take this is such way that there is
70         no race condition between another thread starting the unload and the
71         current thread acknowledging it.
72
73         * threadpool.c (async_invoke_thread): Same.
74
75         * threadpool.c (start_io_thread_or_queue): Increment threadpool_jobs before
76         firing the new thread.
77
78         * threadpool.c (start_tpthread): Same.
79
80         * theadpool.c (append_job): Increment threadpool_jobs before queueing.
81
82         * threadpool.h: Add mono_thread_pool_remove_domain_jobs.
83
84 2008-11-06  Jonathan Chambers  <joncham@gmail.com>
85
86         * file-io.c (ves_icall_System_IO_MonoIO_DuplicateHandle): 
87         Add support for DuplicateHandle.
88         
89         * file-io.h (ves_icall_System_IO_MonoIO_DuplicateHandle): 
90         Add support for DuplicateHandle.
91         
92         * icall-def.h (ves_icall_System_IO_MonoIO_DuplicateHandle): 
93         Add support for DuplicateHandle.
94
95         Code is contributed under MIT/X11 license.
96
97 2008-11-06  Mark Probst  <mark.probst@gmail.com>
98
99         * class-internals.h: Make min_align into a whole byte.
100
101         * class.c: Set min_align for SIMD types to 16.
102
103 2008-11-05  Geoff Norton  <gnorton@novell.com>
104
105         * attach.c: Default the attacher to enabled for all cases including
106         embedded.
107
108 Wed Nov 5 16:33:41 CET 2008 Paolo Molaro <lupus@ximian.com>
109
110         * monitor.c, class-internals.h, wrapper-types.h: revert incorrect
111         change r117650.
112
113 2008-11-04  Mark Probst  <mark.probst@gmail.com>
114
115         * monitor.c, monitor.h: New function for querying offsets of
116         members of MonoThreadsSync.
117
118 2008-11-04  Zoltan Varga  <vargaz@gmail.com>
119
120         * marshal.c (mono_marshal_get_runtime_invoke): Use runtime_invoke_direct_cache
121         to speed up this function and to avoid the boundless memory growth caused by
122         the signature_dup () calls.
123
124 2008-11-02  Zoltan Varga  <vargaz@gmail.com>
125
126         * monitor.c (mono_monitor_get_fast_enter_method): Add a proper type for the
127         wrapper.
128
129         * class-internals.h (struct _MonoMethod): Increase the size of 'wrapper_type'
130         by 1 bit.
131
132         * wrapper-types.h: Add MONO_WRAPPER_MONITOR_FAST_ENTER/EXIT.
133
134 2008-10-31 Gonzalo Paniagua Javier <gonzalo@novell.com>
135
136         * appdomain.c:
137         * domain-internals.h: made mono_set_private_bin_path_from_config()
138         "internal".
139         * object.c: call the above function after setting the configuration
140         file path for the root domain.
141         Fixes bug #314478.
142
143 2008-10-31 Gonzalo Paniagua Javier <gonzalo@novell.com>
144
145         * assembly.c: when the assembly is loaded from an absolute path, end
146         basedir with a directory separator.
147         Bug #440781 fixed.
148
149 2008-10-30  Mark Probst  <mark.probst@gmail.com>
150
151         * monitor.c (mono_monitor_get_fast_enter_method): If
152         CompareExchange is not available, don't create the fastpath
153         instead of asserting.  (The method is missing in the 1.1 profile.)
154
155 2008-10-30  Mark Probst  <mark.probst@gmail.com>
156
157         * marshal.c, marshal.h: Rename signature_no_pinvoke() and make it non-static.
158
159         * monitor.c, monitor.h: Code for generating Monitor.Enter and
160         Monitor.Exit IL fastpaths.
161
162 2008-10-28  Rodrigo Kumpera  <rkumpera@novell.com>
163
164         * class.c (mono_class_create_from_typedef): Added Vector2ul.
165
166 2008-10-28  Rodrigo Kumpera  <rkumpera@novell.com>
167
168         * class.c (mono_class_create_from_typedef): Added Vector2l.
169
170 2008-10-27  Rodrigo Kumpera  <rkumpera@novell.com>
171
172         * class.c (mono_class_create_from_typedef): Added Vector2d.
173
174 2008-10-27 Gonzalo Paniagua Javier <gonzalo@novell.com>
175
176         * appdomain.c: translate \ into / for cache_path.
177         * domain-internals.h: new mono_is_shadow_copy_enabled().
178         * icall.c: (fill_reflection_assembly_name) do the same path
179         manipulations that get_code_base does.
180         (get_code_base) use mono_is_shadow_copy_enabled.
181
182 2008-10-26 Gonzalo Paniagua Javier <gonzalo@novell.com>
183
184         * appdomain.c: shadow-copied assemblies go to CachePath +
185         ApplicationName when both are set. DynamicBase has nothing to do with
186         shadow copies.
187         Bug #406877 fixed.
188
189 2008-10-26  Zoltan Varga  <vargaz@gmail.com>
190
191         * reflection.c (encode_locals): Use a cache to avoid duplicate entries in the
192         STANDALONESIG table.
193
194         * metadata-internals.h (struct _MonoDynamicImage): Add cache for
195         standalone signatures.
196
197         * marshal.c (mono_marshal_get_runtime_invoke): Rewrite the signature 
198         comparison code: instead of comparing the signatures using a custom
199         equals function, transform them to a common signature and compare that. This
200         works better with AOT.
201
202 2008-10-25  Zoltan Varga  <vargaz@gmail.com>
203
204         * Reapply r116521 with (!mono_debug_using_mono_debugger ()) checks.
205
206         * class.c (mono_class_init): Remove unneccesary mono_class_setup_properties ()
207         call for generic instances.
208         (mono_class_setup_properties): Call setup_properties () before accessing
209         gklass->properties.
210
211         * class.c (mono_class_get_virtual_methods): New helper function to iterate
212         over the virtual methods of a class using metadata if possible, avoiding the
213         creation of MonoMethod's for non-virtual methods.
214         
215         * class.c (mono_class_setup_vtable_general): Rewrite this to use 
216         get_virtual_methods () to iterate over the virtual methods of classes.
217
218 2008-10-25  Martin Baulig  <martin@ximian.com>
219
220         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_DEAD): New #define.
221
222 2008-10-24  Rodrigo Kumpera  <rkumpera@novell.com>
223
224         * class.c (mono_class_create_from_typedef): Added Vector4i.
225
226 2008-10-24  Mark Probst  <mark.probst@gmail.com>
227
228         * marshal.c (mono_marshal_get_synchronized_wrapper): Emit
229         ldtoken+GetTypeFromHandle instead of i4+icall so that the JIT
230         special-casing applies to eliminate the call completely.
231
232 2008-10-24  Rodrigo Kumpera  <rkumpera@novell.com>
233
234         * class.c (mono_class_create_from_typedef): Added Vector8s.
235
236 2008-10-23  Rodrigo Kumpera  <rkumpera@novell.com>
237
238         * class.c (mono_class_create_from_typedef): Added Vector16sb.
239
240 2008-10-23 Gonzalo Paniagua Javier <gonzalo@novell.com>
241
242         * icall.c: get rid of annoying warning.
243
244 2008-10-23 Gonzalo Paniagua Javier <gonzalo@novell.com>
245
246         * threadpool.c: in 1.x, if you change the background status of the
247         threadpool thread, it's not reset.
248         Remove unnecessary calls to SetState.
249
250 2008-10-22 Gonzalo Paniagua Javier <gonzalo@novell.com>
251
252         * threadpool.c: asynchronously create a set of idle threads upon first
253         use of the threadpool. SetMinThreads will now start the appropriate
254         number of idle threads if they are not already running. The default is
255         1 threadpool thread per CPU. Increased the maximum number of threads
256         per CPU to 10.
257
258 2008-10-22  Martin Baulig  <martin@ximian.com>
259
260         Revert r116521 from Zoltan, it breaks the debugger:
261
262         * class.c (mono_class_get_virtual_methods): New helper function to iterate
263         over the virtual methods of a class using metadata if possible, avoiding the
264         creation of MonoMethod's for non-virtual methods.
265         
266         * class.c (mono_class_setup_vtable_general): Rewrite this to use 
267         get_virtual_methods () to iterate over the virtual methods of classes.
268
269 2008-10-22 Gonzalo Paniagua Javier <gonzalo@novell.com>
270
271         * threads.c: when creating a threadpool thread, set its state to
272         'background'.
273         * threadpool.c: reset the background state of a threadpool thread
274         after finishing each work item
275         Bug #437888 fixed.
276
277 2008-10-22  Zoltan Varga  <vargaz@gmail.com>
278
279         * class.c (mono_class_get_vtable_entry): Add an optimization for szarrays.
280         
281         * class.c (mono_class_setup_vtable_general): Add an optimized version for
282         generic instances which works by inflating the methods in the container
283         class's vtable.
284
285         * class.c (mono_class_inflate_generic_type_with_mempool_no_copy): New
286         variant which doesn't make a copy if no inflation was done.
287         (mono_class_setup_fields): Use it.
288
289         * metadata.c (mono_metadata_get_shared_type): New helper function to
290         return a shared instance of a given MonoType.
291
292         * class.c (mono_class_inflate_generic_type_with_mempool): Avoid making
293         a copy of most non-generic types.
294
295 Wed Oct 22 18:00:46 CEST 2008 Paolo Molaro <lupus@ximian.com>
296
297         * threadpool.c: remove one more GetSystemInfo () call.
298
299 Wed Oct 22 17:45:48 CEST 2008 Paolo Molaro <lupus@ximian.com>
300
301         * mono-perfcounters.c, icall-def.h, environment.c, environment.h:
302         use the code in mono-proclib.h to get processor information.
303
304 2008-10-22 Gonzalo Paniagua Javier <gonzalo@novell.com>
305
306         * appdomain.c: fixed the logic that determines whether assemblies in a
307         directory are "shadow-copied" or not. Bug #433483 fixed.
308
309 2008-10-22  Zoltan Varga  <vargaz@gmail.com>
310
311         * process.c (ves_icall_System_Diagnostics_Process_GetProcessData): Fix a
312         warning.
313
314 2008-10-21  Zoltan Varga  <vargaz@gmail.com>
315
316         * marshal.c (runtime_invoke_signature_equal): Don't shared wrappers
317         returning a vtype.
318
319         * class.c debug-helpers.c object.c class-internals.h marshal.c icall.c
320         reflection.c: Use mono_field_get_name () for accessing a field's name.
321
322         * class-internals.h (MONO_CLASS_HAS_STATIC_METADATA): Move this here from
323         class.c
324
325         * class.c (mono_field_get_rva): Fix crash if this is called on a dynamic
326         field.
327
328         * loader.c (find_method_in_class): Reenable the metadata optimization by
329         not using it for generic instances.
330
331         * class-internals.h (MonoFieldDefaultValue): Extract the rarely used 
332         data/def_type fields from MonoClassField into a separate structure.
333         (struct MonoClassField): Remove data/def_type fields.
334         (struct _MonoClass): Add a 'field_def_values' array to store the default
335         values/RVA for fields.
336
337         * class.c reflection.c: Update after the changes.
338         
339         * object.c (mono_class_create_runtime_vtable): Use mono_field_get_data ()
340         for accessing field->data.
341
342         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_InitializeArray): Ditto.
343
344         * loader.c (find_method_in_class): Revert the last change for now as
345         it breaks Mono.C5 unit tests.
346
347         * class-internals.h (struct _MonoDynamicGenericClass): Add fields
348         'field_generic_types' and 'field_objects' which contain the information
349         previously stored in MonoInflatedField.
350         (MonoInflatedField): Delete.
351         (struct _MonoClassField): Delete 'generic_info' field.
352
353         * reflection.c: Store the information which was previously in 
354         field->generic_info in MonoDynamicGenericClass instead.
355
356         * metadata.c (free_generic_class): Update after MonoDynamicGenericClass/
357         MonoClassField changes.
358
359 Tue Oct 21 17:07:55 CEST 2008 Paolo Molaro <lupus@ximian.com>
360
361         * marshal.c, method-builder.c: get rid of wrapper_hash and instead
362         store the value inside the data array of the MonoMethodWrapper.
363         This saves memory, is faster and fixes the lifetime issues (methods
364         were never removed from the hash previously). May also fix bug#436996.
365
366 2008-10-21  Zoltan Varga  <vargaz@gmail.com>
367
368         * reflection.c (mono_image_get_fieldref_token): For fields of non-dynamic 
369         generic instances, compute the type from the generic definition instead of
370         looking in field->generic_info.
371
372         * class.c (mono_class_setup_fields): Don't create a MonoInflatedField
373         for inflated fields, the only user was get_fieldref_token () which no
374         longer needs it.
375
376         * class.c (mono_class_init): Revert the last change as it seems to cause
377         crashes.
378
379         * class-internals.h (struct _MonoClassField): Reorder fields to save 4
380         bytes on 64 bit platforms.
381
382         * object.c (mono_class_create_runtime_vtable): Fix a warning.
383         
384         * object.c (mono_class_create_runtime_vtable): Don't initalize
385         field->data/field->def_type here, it is done lazily by 
386         mono_class_get_field_default_value ().
387
388         * icall.c (ves_icall_get_enum_info): Call 
389         mono_class_get_field_default_value () instead of directly accessing
390         field->data and field->def_type.
391
392         * object.c (get_default_field_value): Ditto.
393
394         * class.c (mono_field_get_data): Ditto.
395         
396         * class.c (mono_class_init): Remove unneccesary mono_class_setup_methods ()
397         call for generic instances.
398
399         * loader.c (find_method_in_class): If klass != from_class, then inflate
400         the method with the context of from_class, since the caller assumes this.
401
402 2008-10-20  Zoltan Varga  <vargaz@gmail.com>
403
404         * class.c (mono_method_get_vtable_index): Use mono_method_get_vtable_slot ()
405         for accessing method->slot.
406
407 2008-10-20  Cedric Vivier  <cedricv@neonux.com>
408
409         * icall-def.h, icall.c: Add icall for Debugger.IsAttached.
410
411 2008-10-19  Zoltan Varga  <vargaz@gmail.com>
412
413         * class.c (mono_method_get_vtable_index): Use
414         mono_method_get_vtable_slot () for accessing method->slot.
415
416         * object.c (build_imt_slots): Use mono_class_get_method_by_index () for
417         accessing klass->methods.
418
419         * class.c (mono_method_get_vtable_slot): New helper function.
420         (mono_class_get_vtable_entry): Ditto.
421         (mono_class_setup_vtable_general): Use mono_method_get_vtable_slot () for
422         accessing method->slot.
423
424         * generic-sharing.c (mono_class_get_method_generic): Pass the declaring
425         method to get_inflated_method ().
426
427         * class.c (mono_class_get_inflated_method): New helper method to obtain
428         a method of an inflated class without calling setup_methods ().
429         (mono_class_get_cctor): Use get_inflated_method.
430
431         * generic-sharing.c (mono_class_get_method_generic): Ditto.
432         
433         * marshal.c image.c: Lazily create all the marshal caches.
434
435         * image.c (mono_image_init): Move initialization of runtime_invoke
436         caches to marshal.c.
437
438         * marshal.c (get_cache): New helper function to lazily initialize a 
439         wrapper cache.
440         (mono_marshal_get_runtime_invoke): Share more runtime invoke wrappers.
441
442         * debug-helpers.c (mono_method_full_name): Include generic arguments.
443
444 Fri Oct 17 10:51:32 CEST 2008 Paolo Molaro <lupus@ximian.com>
445
446         * loader.c: fixed check for interface type.
447
448 Thu Oct 16 20:59:11 CEST 2008 Paolo Molaro <lupus@ximian.com>
449
450         * appdomain.c: check for NULL setup before it's referenced.
451
452 p
453 Thu Oct 16 16:12:23 CEST 2008 Paolo Molaro <lupus@ximian.com>
454
455         * class.c: remove the unused old vtable setup code.
456
457 Thu Oct 16 12:53:29 CEST 2008 Paolo Molaro <lupus@ximian.com>
458
459         * class.c: don't depend on interface order in
460         setup_interface_offsets (bug #435777).
461         * reflection.c: sort the InterfaceImpl table (patch from
462         Jb Evain  <jbevain@novell.com>).
463
464 2008-10-13  Zoltan Varga  <vargaz@gmail.com>
465
466         * assembly.c (mono_assembly_open_full): Avoid loading images while holding
467         the low level assemblies lock.
468
469 Mon Oct 13 16:35:26 CEST 2008 Paolo Molaro <lupus@ximian.com>
470
471         * domain-internals.h, domain.c, icall.c, image.c, marshal.c,
472         object.c, reflection.c, socket-io.c, threads.c: introduced
473         mono_framework_version () to return the major framewrok version,
474         changed the code that was using more complex patterns to use it.
475         Return the correct value for PlatformID for OSX.
476
477 Mon Oct 13 14:38:01 CEST 2008 Paolo Molaro <lupus@ximian.com>
478
479         * icall-def.h, process.h, process.c: added an icall to get info about
480         processes using mono-proclib.
481
482 Mon Oct 13 11:14:44 CEST 2008 Paolo Molaro <lupus@ximian.com>
483
484         * mono-perfcounters.c: use the mono-proclib functions to
485         access process information.
486
487 Mon Oct 13 11:00:49 CEST 2008 Paolo Molaro <lupus@ximian.com>
488
489         * domain.c, assembly.c, debug-mono-symfile.c, debug-mono-symfile.h,
490         monosn.c, Makefile.am, pedump.c, image.c, metadata-internals.h,
491         reflection.c: remove rawbuffer usage: mmap support is more sanely
492         provided by utils/mono-mmap.
493
494 Sat Oct 11 19:46:19 CEST 2008 Paolo Molaro <lupus@ximian.com>
495
496         * gc.c: use posix semaphores when possible so that
497         mono_gc_finalize_notify() is signal safe.
498
499 2008-10-11  Zoltan Varga  <vargaz@gmail.com>
500
501         * reflection.c: Implement DISABLE_REFLECTION_EMIT, remove some
502         #ifdef DISABLE_REFLECTION_SAVE stuff, only the exported functions need to
503         be #ifdef-ed out, the linker will remove the rest.
504
505         * marshal.c: Implement DISABLE_COM.
506
507         * reflection.c: Implement DISABLE_REFLECTION_EMIT_SAVE.
508
509 2008-10-11  Miguel de Icaza  <miguel@novell.com>
510
511         * locales.c (string_invariant_compare_char): Optimization: do not
512         call g_unichar_type unless we actually need the information.
513
514 2008-10-10  Mark Probst  <mark.probst@gmail.com>
515
516         * object.c, class-internals.h: Also create remoting trampolines
517         for generic methods.  Pass the domain to the remoting trampoline
518         creation function, too.
519
520 2008-10-10  Zoltan Varga  <vargaz@gmail.com>
521
522         * class.c (mono_class_init): Fix+re-enable the finalize optimization.
523
524 2008-10-10  Rodrigo Kumpera  <rkumpera@novell.com>
525
526         * class.c (mono_class_create_from_typedef): Vector4u was renamed to
527         Vector4ui.
528
529 2008-10-10 Gonzalo Paniagua Javier <gonzalo@novell.com>
530
531         * assembly.c:
532         * locales.c: remove the use of g_strdown. Fixes bug #322313.
533
534 Fri Oct 10 17:01:42 CEST 2008 Paolo Molaro <lupus@ximian.com>
535
536         * assembly.c: in mono_assembly_load_friends() take the assemblies lock
537         for the least possible amount of time (extending the fix in r113458).
538
539 2008-10-10  Rodrigo Kumpera  <rkumpera@novell.com>
540
541         * class.c (mono_class_create_from_typedef): Retrofit to new type names.
542
543 2008-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
544
545         * class.c (mono_class_create_from_typedef): Added Vector8u and Vector16u
546         as possible simd intrinsic types.
547         Optimized the test to check for the common prefix first.
548
549 Thu Oct 9 17:38:24 CEST 2008 Paolo Molaro <lupus@ximian.com>
550
551         * class.c: back out part of a broken optimization committed on
552         May 23th (bug #433908).
553
554 2008-10-09  Mark Probst  <mark.probst@gmail.com>
555
556         * profiler.c (simple_shutdown): Don't call mono_thread_attach() on
557         Win32.  Should fix #432388 for most cases until we have the new
558         profiler on Win32.
559
560 2008-10-08  Zoltan Varga  <vargaz@gmail.com>
561
562         * metadata.c (mono_metadata_generic_context_hash): Call generic_inst_hash
563         instead of using inst->id so the hash is stable for AOT.
564
565 2008-10-07 Gonzalo Paniagua Javier <gonzalo@novell.com>
566
567         * appdomain.c:
568         * icall.c: create a .ini file for shadow-copied assemblies that
569         contains the location of the original assembly. Use this to return the
570         proper CodeBase for shadow-copied assemblies. Fixes bug #323606.
571         Also fix the number of '/' for windows when returning the CodeBase.
572         Fixes bug #430920.
573
574 2008-10-07  Bill Holmes  <billholmes54@gmail.com>
575
576         * marshal.c (cominterop_get_ccw) : Fixing a copy paste error from r115126.
577
578         Code is contributed under MIT/X11 license.
579
580 2008-10-07  Bill Holmes  <billholmes54@gmail.com>
581
582         * marshal.c (cominterop_get_native_wrapper) : Adding a call to mono_class_setup_vtable
583           if if the class vtable needs initialized.
584
585         Code is contributed under MIT/X11 license.
586
587 2008-10-07  Bill Holmes  <billholmes54@gmail.com>
588
589         * marshal.c (cominterop_get_native_wrapper_adjusted, cominterop_get_ccw) : 
590           Adding default MonoMarshalSpecs for COM methods.  OBJECT->STRUCT,
591           STRING->BSTR, and CLASS->INTERFACE.
592
593         Code is contributed under MIT/X11 license.
594
595 2008-10-07  Marek Habersack  <mhabersack@novell.com>
596
597         * sysmath.h: changed the declaration of the
598         ves_icall_System_Math_Round2 icall by adding an extra
599         away_from_zero parameter.
600
601         * sysmath.c (ves_icall_System_Math_Round2): added support for
602         away from zero rounding. The icall now takes an extra boolean
603         parameter to signal that away from zero operation is requested.
604
605 2008-10-06  Zoltan Varga  <vargaz@gmail.com>
606
607         * marshal.c (mono_marshal_get_delegate_begin_invoke): Put the wrapper in
608         the delegate klass so it can work with full-aot.
609         (mono_marshal_get_delegate_end_invoke): Ditto.
610         (mono_marshal_get_delegate_invoke): Ditto.
611
612 Mon Oct 6 16:10:02 CEST 2008 Paolo Molaro <lupus@ximian.com>
613
614         * gc.c, attach.h, attach.c: remove a bad pattern:
615         add_finalizer_callback () is not implemented correctly, it can't
616         without adding more overhead to the finalizer loop and it's not
617         even needed, since we know exactly what we need to call, so there is
618         no need to do so through an expensive function pointer.
619
620 2008-10-04  Zoltan Varga  <vargaz@gmail.com>
621
622         * gc.c: Define a dummy version of mono_gc_add_finalizer_thread_callback ()
623         for the no-gc case.
624         * attach.c (mono_attach_init): Remove the #ifdef.
625
626 2008-10-04  Andreas Färber  <andreas.faerber@web.de>
627
628         * attach.c (mono_attach_init): Don't use
629         mono_gc_add_finalizer_thread_callback when compiling without GC.
630         Fixes #432306.
631         
632         Code is contributed under MIT/X11 license.
633
634 2008-10-03  Zoltan Varga  <vargaz@gmail.com>
635
636         * class.c (mono_class_create_from_typedef): Remove the 
637         #ifndef DISABLE_SIMD stuff.
638
639 2008-10-03  Rodrigo Kumpera  <rkumpera@novell.com>
640
641         * class-internals.h (MonoClass): Added simd_type bit field.
642
643         * class.c (mono_class_create_from_typedef): Check if type is a simd
644         intrinsic.
645
646 2008-10-03  Mark Probst  <mark.probst@gmail.com>
647
648         * object.c (mono_method_add_generic_virtual_invocation): Only add
649         instantiations to the thunk whose count is at least as large as
650         the threshold.
651
652 2008-10-02 Gonzalo Paniagua Javier <gonzalo@novell.com>
653
654         * icall.c: changed the Type of the exception thrown when trying to
655         invoke a constructor on an abstract class. Part of the fix for bug
656         #324185.
657
658 2008-10-02  Mark Probst  <mark.probst@gmail.com>
659
660         * class.c, class-internals.h (mono_method_get_vtable_index): New
661         function which returns the index into the vtable and properly
662         handles inflated virtual generic methods.
663
664 2008-10-01  Mark Probst  <mark.probst@gmail.com>
665
666         * object.c, domain.c, object-internals.h, domain-internals.h:
667         Generalize IMT thunk machinery to also handle thunks for virtual
668         generic method invokes.  When a virtual generic method is invoked
669         more than a number of times we insert it into the thunk so that it
670         can be called without lookup in unmanaged code.
671
672         * generic-sharing.c, class-internals.h: Fetching a
673         MonoGenericInst* for a method from an (M)RGCTX.
674
675 2008-10-01  Zoltan Varga  <vargaz@gmail.com>
676
677         * marshal.c (emit_marshal_string): Applied a variant of a patch by
678         tom hindle <tom_hindle@sil.org>. Fix byref native-to-managed string
679         marshalling. Fixes #431304.
680
681 2008-10-01  Bill Holmes  <billholmes54@gmail.com>
682
683         * marshal.c (emit_marshal_variant) : Change the attribute checks to 
684           handle when ref is specified without In or Out.
685
686         Code is contributed under MIT/X11 license.
687
688 2008-09-30  Mark Probst  <mark.probst@gmail.com>
689
690         * loader.c (mono_get_method_constrained): Don't expand method with
691         the class's context, because it's already a method of that class.
692
693 2008-09-30  Atsushi Enomoto  <atsushi@ximian.com>
694
695         * attach.c : should be correct build fix.
696
697 2008-09-29  Zoltan Varga  <vargaz@gmail.com>
698
699         * attach.c: Fix the previous change.
700
701 2008-09-29  Atsushi Enomoto  <atsushi@ximian.com>
702
703         * attach.c : quick w32 build fix.
704
705 2008-09-27  Miguel de Icaza  <miguel@novell.com>
706
707         * Turn off MONO_GENERIC_SHARING=all and go back to corlib as it
708         crashes MonoDevelop: #430455.
709
710 2008-09-27  Zoltan Varga  <vargaz@gmail.com>
711
712         * domain-internals.h (struct _MonoDomain): Move most fields used only by
713         the JIT do MonoJitDomainInfo in ../mini/mini.h.
714
715         * domain.c: Remove initialization/cleanup of the removed fields.
716
717 2008-09-27  Mark Probst  <mark.probst@gmail.com>
718
719         * class.c (mono_class_generic_sharing_enabled): Enable generic
720         code sharing for PPC.
721
722 2008-09-26  Bill Holmes  <billholmes54@gmail.com>
723
724         * attach.c : Fixing the Windows builds.
725
726         Code is contributed under MIT/X11 license.
727
728 2008-09-25  Zoltan Varga  <vargaz@gmail.com>
729
730         * class.c (mono_class_generic_sharing_enabled): Experimentally change 
731         the default generic sharing mode to 'all'.
732
733 2008-09-25  Mark Probst  <mark.probst@gmail.com>
734
735         * generic-sharing.c, class-internals.h: New function for checking
736         whether a method needs a static RGCTX invoke wrapper.  A few
737         funtions moved from mini/generic-sharing.c.
738
739         * icall.c: New function used.
740
741 2008-09-25  Mark Probst  <mark.probst@gmail.com>
742
743         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal):
744         Static RGCTX invoke wrapping applies to value type methods, too.
745
746         * class.c (mono_class_setup_vtable_general): In generic-shared
747         value types, wrap methods with a static RGCTX invoke wrapper.
748
749 2008-09-25  Zoltan Varga  <vargaz@gmail.com>
750
751         * attach.c (ipc_connect): Use AF_UNIX instead of AF_FILE to fix the
752         osx build.
753
754 2008-09-24  Zoltan Varga  <vargaz@gmail.com>
755
756         * gc.c (mono_gc_add_finalizer_thread_callback): New function to
757         register a callback which is called when the finalizer thread is woken
758         up.
759         (finalizer_thread): Call the callback if it exists.
760
761         * attach.h attach.c: New files, implementing the attach mechanism.
762
763         * appdomain.c: Init/cleanup the attach mechanism on startup/shutdown.
764         
765         * object.c (mono_object_get_virtual_method): Fix an assertion introduced
766         by the previous change.
767
768 Tue Sep 23 15:24:03 CEST 2008 Paolo Molaro <lupus@ximian.com>
769
770         * class.c, domain-internals.h, domain.c, generic-sharing.c, image.c,
771         loader.c, marshal.c, metadata-internals.h, metadata.c,
772         method-builder.c, object.c, reflection.c: introduced specific functions
773         to allocate from the domain and image mempools and cleaned up most of
774         the code to use them (still missing a few in reflection.c).
775         Keep the loader bytes counter updated.
776
777 Mon Sep 22 17:33:12 CEST 2008 Paolo Molaro <lupus@ximian.com>
778
779         * domain.c, monitor.c, boehm-gc.c, gc.c: update some of the GC and
780         loader-related counters.
781
782 Mon Sep 22 17:29:54 CEST 2008 Paolo Molaro <lupus@ximian.com>
783
784         * mono-perfcounters-def.h, mono-perfcounters.c, class-internals.h:
785         added more MS-compatible counters.
786
787 2008-09-22  Zoltan Varga  <vargaz@gmail.com>
788
789         * class.c (mono_class_setup_fields): Call setup_fields before accessing
790         class->blittable. Fixes #428217.
791
792 2008-09-21  Zoltan Varga  <vargaz@gmail.com>
793
794         * reflection.c (mono_image_get_field_on_inst_token): Call 
795         field_encode_signature () since that handles custom modifiers too.
796         Fixes #424663.
797
798 2008-09-20  Zoltan Varga  <vargaz@gmail.com>
799
800         * reflection.c (add_custom_modifiers): New helper function to merge custom
801         modifiers stored in objects to a MonoType.
802         (fieldref_encode_signature): Encode custom modifiers.
803         (mono_image_get_generic_field_token): Call add_custom_modifiers ().
804         (fieldbuilder_to_mono_class_field): Ditto. Fixes #424663.
805
806 2008-09-19  Kornél Pál  <kornelpal@gmail.com>
807
808         * coree.c (_CorValidateImage): Some 64-bit IL only images have entry point
809         calling _CorDllMain imported from mscoree.dll. Set entry point RVA to 0 for
810         64-bit IL only images because imports are not resolved for IL only images.
811         Special thanks to Bill Holmes for finding this bug and testing the patch.
812         Also fail for 64-bit images marked as CLI_FLAGS_32BITREQUIRED.
813
814         Contributed under MIT/X11 license.
815
816 2008-09-19  Miguel de Icaza  <miguel@novell.com>
817
818         * mono-config.c (dllmap_start): Add support for the bits keyword
819         on dllentry and dllmap to easily detect 32 vs 64 bit systems.
820
821 2008-09-19  Mark Probst  <mark.probst@gmail.com>
822
823         * reflection.c (inflate_mono_method): When the class the method is
824         to be inflated for is itself not inflated, just return the method.
825
826 Fri Sep 19 11:51:36 CEST 2008 Paolo Molaro <lupus@ximian.com>
827
828         * mono-perfcounters.c: use more user friendly process instance names.
829
830 2008-09-18  Bill Holmes  <billholmes54@gmail.com>
831
832         * marshal.c (emit_marshal_variant) : Change the attribute checks to 
833           handle "[in] ref" and "[in][out] ref" cases.
834
835         * marshal.c (cominterop_get_ccw) : The wrong signature was being passed
836           to mono_mb_create_method.  This was causing problems calling native to
837           managed passing Variants by value.
838
839         Code is contributed under MIT/X11 license.
840
841 2008-09-18  Zoltan Varga  <vargaz@gmail.com>
842
843         * class.c (can_access_internals): Call mono_assembly_load_friends ()
844         before accessing the friend_assembly_names field.
845
846         * assembly.c (mono_assembly_load_friends): Make this callable multiple
847         times.
848         (mono_assembly_load_from_full): Avoid calling load_friends (), it is
849         called lazily when it is needed.
850
851         * metadata-internals.h (struct _MonoAssembly): Add 
852         'friend_assembly_names_inited' flag.
853
854 Thu Sep 18 18:18:47 CEST 2008 Paolo Molaro <lupus@ximian.com>
855
856         * mono-perfcounters-def.h: fix the types of a few counters.
857         * mono-perfcounters.c: implemented the instance names getter
858         and a few bugfixes.
859
860 2008-09-18  Atsushi Enomoot  <atsushi@ximian.com>
861
862         * culture-info-table.h : regenerated.
863
864 2008-09-17  Robert Jordan  <robertj@gmx.net>
865
866         * marshal.c (mono_marshal_get_ldflda_wrapper): Add support for
867         context bound objects. Fixes #415577.
868
869         Code is contributed under MIT/X11 license.
870
871 Tue Sep 16 21:03:58 CEST 2008 Paolo Molaro <lupus@ximian.com>
872
873         * icall-def.h, threads-types.h, threads.c: fixed SpinWait()
874         implementation (bug #423582).
875
876 2008-09-16  Zoltan Varga  <vargaz@gmail.com>
877
878         * object.c (mono_object_get_virtual_method): Handle the case method->slot
879         is not set. Fixes #426309.
880
881 2008-09-16  Jb Evain  <jbevain@novell.com>
882
883         * class.c (mono_class_from_name): fix the exported type look up
884         when the type is defined in a referenced assembly.
885
886 2008-09-16  Jb Evain  <jbevain@novell.com>
887
888         * reflection.c (mono_image_fill_export_table_from_type_forwarders):
889         increment the next index counter on each iteration to make that work
890         for more than one type forwarder. Unmanaged part to fix #422929.
891
892 2008-09-15  Mark Probst  <mark.probst@gmail.com>
893
894         * object-internals.h: enum ComInterfaceType in
895         MonoInterfaceTypeAttribute is guint32, not guint16.
896
897 2008-09-12  Mark Probst  <mark.probst@gmail.com>
898
899         * cil-coff.h, image.c, reflection.c: Endianness fixes in image
900         writing code.
901
902 2008-09-11  Mark Probst  <mark.probst@gmail.com>
903
904         * icall.c: Boolean arguments to a runtime invoke are MonoBoolean,
905         not gboolean.
906
907 2008-09-11  Mark Probst  <mark.probst@gmail.com>
908
909         * debug-mono-symfile.c (mono_debug_symfile_lookup_location):
910         Endianness fixes for MonoSymbolFileOffsetTable.
911
912 2008-09-10  Bill Holmes  <billholmes54@gmail.com>
913
914         * process.c (complete_path) : Removing quotes from the 
915           input path.  The glib file routines do not handle file paths
916           that have quotes around them.
917
918         Code is contributed under MIT/X11 license.
919
920 2008-09-10  Bill Holmes  <billholmes54@gmail.com>
921
922         * socket-io.h : Adding a comment to provide locations where 
923           changes to MonoSocketAsyncResult need to be synced.
924
925         Code is contributed under MIT/X11 license.
926
927 2008-09-10  Zoltan Varga  <vargaz@gmail.com>
928
929         * marshal.c (emit_marshal_custom): Call NativeToManaged for non-out 
930         parameters as well. Fixes #425001.
931
932 2008-09-08  Miguel de Icaza  <miguel@novell.com>
933
934         * console-io.c (ves_icall_System_ConsoleDriver_TtySetup): Fix
935         windows build.
936
937 2008-09-07  Miguel de Icaza  <miguel@novell.com>
938
939         * console-io.c: Add support for tracking the window size if it
940         changes.
941
942         The setup is very simple: the TtySetup function will now return a
943         pointer to a location in memory that tracks the current console
944         size.  The managed code checks its current value every time its
945         queried against the last value set, and updates accordingly.
946
947         With this setup we can work with multiple consoles, and we do not
948         require to poke into managed code from a signal handler.
949
950         Additionally, the environment for COLUMNS and LINES is now handled
951         in unmanaged code.
952
953         (ves_icall_System_ConsoleDriver_GetTtySize): This is now gone.
954
955 2008-09-07  Mark Probst  <mark.probst@gmail.com>
956
957         * marshal.c (mono_type_native_stack_size): Treat
958         MONO_TYPE_TYPEDBYREF like MONO_TYPE_VALUETYPE.
959
960 2008-09-04  Jb Evain  <jbevain@novell.com>
961
962         * class.c (mono_class_is_assignable_from): fix assignability of nullables
963         to nullables.
964
965 2008-09-03 Rodrigo Kumpera  <rkumpera@novell.com>
966
967         * verify.c (verify_type_compatibility_full): Revert change
968         to allow converting a native int to unmanaged pointer be verifiable
969         under non-strict mode.
970         It turns out that "(IntPtr)null" is indeed unverifiable, go figure.
971
972         * verify.c: Added some TODOs.
973
974 2008-09-02  Bill Holmes  <billholmes54@gmail.com>
975
976         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi,
977           ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni) :
978           Changed to use GlobalAlloc for the memory returned on Windows platforms.
979
980         Code is contributed under MIT/X11 license.
981
982 2008-09-02  Jb Evain  <jbevain@novell.com>
983
984         * object.c (mono_ldstr_metdata_sig): renamed to mono_ldstr_metadata_sig.
985
986 2008-09-02 Rodrigo Kumpera  <rkumpera@novell.com>
987
988         reflection.c (typebuilder_setup_fields): Handle classes with
989         explicit size.
990
991 2008-09-01 Rodrigo Kumpera  <rkumpera@novell.com>
992
993         class.c (mono_class_setup_events): Add memory barrier due to
994         double checked locking.
995         
996         class.c (mono_class_setup_properties): Same.
997
998 2008-08-31  Zoltan Varga  <vargaz@gmail.com>
999
1000         * class.c (mono_class_is_assignable_from): Fix the build.
1001         
1002         * class.c (mono_class_is_assignable_from): Call mono_class_setup_vtable ()
1003         before accessing klass->interface_bitmap. Fixes #421744.
1004
1005 2008-08-28  Zoltan Varga  <vargaz@gmail.com>
1006
1007         * appdomain.c (mono_runtime_set_no_exec): New internal function setting
1008         the runtime into no-exec mode, useful when running the AOT compiler.
1009
1010         * appdomain.c gc.c object.c: Avoid executing managed code when running
1011         in no-exec mode.
1012         
1013         * rawbuffer.c (mono_raw_buffer_load_mmap): Disable this on the iphone.
1014
1015         * reflection.c (_mono_reflection_get_type_from_info): Handle the 
1016         special case when the mono_assembly_loaded () returns NULL because the 
1017         search hook is not installed.
1018
1019 2008-08-25  Zoltan Varga  <vargaz@gmail.com>
1020
1021         * marshal.c: Applied patch from tom hindle (tom_hindle@sil.org) to fix
1022         crashes in bstr marshalling on linux.
1023
1024 2008-08-24  Zoltan Varga  <vargaz@gmail.com>
1025
1026         * debug-helpers.c (mono_type_get_desc): Fix printing of generic instances
1027         with more than one parameter.
1028
1029 2008-08-24  Miguel de Icaza  <miguel@novell.com>
1030
1031         * console-io.c (ves_icall_System_ConsoleDriver_TtySetup): Disable
1032         start/stop flow control as well when turning off ICANON (allows
1033         C-s and C-q to be read by Console.ReadKey).
1034
1035 2008-08-24  Zoltan Varga  <vargaz@gmail.com>
1036
1037         * class.c (mono_class_init): Move the initialization of nested classes
1038         into mono_class_get_nested_types (). Fixes #418433.
1039
1040         * class-internals.h (struct _MonoClass): Add a new 'nested_classes_inited'
1041         flag.
1042
1043         * class.c reflection.c icall.c: Use mono_class_get_nested_types () for 
1044         iterating tough the nested classes of a class.
1045
1046 2008-08-23  Zoltan Varga  <vargaz@gmail.com>
1047
1048         * class.c (mono_class_generic_sharing_enabled): Enable generic sharing
1049         on arm.
1050
1051 2008-08-22  Miguel de Icaza  <miguel@novell.com>
1052
1053         * console-io.c (sigcont_handler): Support signal chaining for
1054         SIGCONT.
1055
1056         (console_set_signal_handlers): Use best practices with sigaction,
1057         clear the structure before using it. 
1058
1059 2008-08-22  Robert Jordan  <robertj@gmx.net>
1060
1061         * console-io.c (ves_icall_System_ConsoleDriver_TtySetup):
1062         Fix the Windows build.
1063
1064 2008-08-22  Zoltan Varga  <vargaz@gmail.com>
1065
1066         * class.c (mono_class_generic_sharing_enabled): Make the default
1067         sharing mode 'corlib'.
1068
1069 2008-08-21  Zoltan Varga  <vargaz@gmail.com>
1070
1071         * console-io.c (console_set_signal_handlers): Fix a warning.
1072
1073         * marshal.c (mono_marshal_get_synchronized_wrapper): Call the wrapper
1074         method normally, the JIT will take care of avoiding recursion.
1075
1076 2008-08-20  Bill Holmes  <billholmes54@gmail.com>
1077
1078         * console-io.c : Fixing builds for platforms that do not have <termios.h>.
1079
1080         Code is contributed under MIT/X11 license.
1081
1082 2008-08-20  Miguel de Icaza  <miguel@novell.com>
1083
1084         * console-io.c (sigcont_handler): We need to restore the entire
1085         termios state, not only the original settings, as things like echo
1086         can be controlled after this (Booish exposes this issue with its
1087         own ReadLine implementation).
1088
1089         Additionally, we need to set the terminal back into keypad_xmit
1090         mode.
1091         
1092         (ves_icall_System_ConsoleDriver_TtySetup): Take the keypad xmit
1093         string as a paramter as well.   Otherwise we get different
1094         keyboard sequences.
1095
1096 2008-08-20  Zoltan Varga  <vargaz@gmail.com>
1097
1098         * marshal.c (emit_marshal_object): Avoid managed-to-native marshalling of
1099         delegates with byref out parameter passing. Fixes #351520.
1100
1101         * debug-helpers.c (mono_context_get_desc): New helper function to stringify
1102         a generic context.
1103         (mono_type_get_desc): Add the type arguments for GENERICINST.
1104         (mono_method_full_name): Stringify the class name using mono_type_full_name
1105         so it picks up generic arguments.
1106
1107 2008-08-19  Gert Driesen  <drieseng@users.sourceforge.net>
1108
1109         * console-io.c: Removed debug output.
1110
1111 2008-08-19 Rodrigo Kumpera  <rkumpera@novell.com>
1112
1113         reflection.c (mono_reflection_create_runtime_class): Alloc
1114         the nested classes linked list using the dynamic image mempool.
1115         Fixes leak in corlib compilation.
1116
1117 2008-08-19  Miguel de Icaza  <miguel@novell.com>
1118
1119         * console-io.c: Fix incredibly annoying behavior on the console
1120         after resuming execution after control-z.   This affected every
1121         console application.
1122
1123 2008-08-18 Rodrigo Kumpera  <rkumpera@novell.com>
1124
1125         * mempool-internals.h: Header for mono private mempool functions. The first
1126         two function are for allocating glib linked lists using pools.
1127
1128         * mempool.c: Added g_list_prepend_mempool and g_slist_prepend_mempool.
1129
1130         * Makefile.am: Added mempool-internals.h.
1131
1132 2008-08-16  Zoltan Varga  <vargaz@gmail.com>
1133
1134         * domain.c (mono_domain_create): Call the JIT domain hook if installed.
1135         (mono_domain_free): Ditto.
1136
1137         * domain-internals.h (struct _MonoDomain): Add 'runtime_info' field, this could
1138         be used by the JIT to store its domain-specific information, instead of putting
1139         it directly into MonoDomain.
1140
1141         * domain.c (mono_install_create_domain_hook): New helper function to install
1142         a hook which initializes domain->runtime_info.
1143
1144         * domain.c (mono_install_free_domain_hook): Ditto.
1145         
1146 2008-08-15  Zoltan Varga  <vargaz@gmail.com>
1147
1148         * marshal.c (mono_delegate_end_invoke): Raise an exception instead of
1149         asserting if the ares parameter is null.
1150
1151         * mono-perfcounters.c: Fix warnings.
1152
1153         * marshal.c (mono_marshal_get_delegate_begin_invoke): Don't set save_lmf, it
1154         is not needed, don't check for interruptions either.
1155         (mono_marshal_get_delegate_end_invoke): Ditto.
1156
1157 2008-08-15  Marek Habersack  <mhabersack@novell.com>
1158
1159         * mono-perfcounters.c (predef_readonly_counter): added support for
1160         reading the ASP.NET Requests Queued counter from another process.
1161
1162 2008-08-12  Zoltan Varga  <vargaz@gmail.com>
1163
1164         * metadata-internals.h: Move the 'aot_module' field from MonoAssembly to
1165         MonoImage to simplify the AOT code.
1166
1167 2008-08-10  Zoltan Varga  <vargaz@gmail.com>
1168
1169         * marshal.c (emit_marshal_object): Implement native-to-managed StringBuilder
1170         marshalling. Fixes #416078.
1171
1172 2008-08-08  Zoltan Varga  <vargaz@gmail.com>
1173         
1174         * marshal.c (mono_marshal_get_native_wrapper): Add an 'aot' argument, when
1175         it is set, looking up the icall address is deferred to the JIT, since 
1176         in embedded scenarios, the icall might not be registered in the runtime
1177         doing the AOT compilation. Backported from the 2.0 branch.
1178
1179 2008-08-08  Zoltan Varga  <vargaz@gmail.com>
1180
1181         * marshal.c (mono_remoting_wrapper): Handle nullable types correctly.
1182         Fixes #415621.
1183
1184 2008-08-05  Marek Habersack  <mhabersack@novell.com>
1185
1186         * Makefile.am: added support for cross-compilation.
1187
1188 2008-08-04  Zoltan Varga  <vargaz@gmail.com>
1189
1190         * socket-io.c (get_socket_assembly): Make 'moonlight' variable static.
1191
1192 Fri Aug 1 18:47:48 CEST 2008 Paolo Molaro <lupus@ximian.com>
1193
1194         * mono-perfcounters.c: jitted methods and jitted bytes counters.
1195
1196 Fri Aug 1 16:07:09 CEST 2008 Paolo Molaro <lupus@ximian.com>
1197
1198         * class-internals.h, icall-def.h, mono-perfcounters-def.h,
1199         mono-perfcounters.c: performance counters implementation.
1200
1201 2008-07-31  Zoltan Varga  <vargaz@gmail.com>
1202
1203         * metadata-internals.h (struct _MonoAssembly): Change the type of 'aot_module'
1204         to gpointer, letting the AOT code decide what to store in it.
1205
1206 2008-07-31  Bill Holmes  <billholmes54@gmail.com>
1207
1208         * marshal.c (cominterop_get_native_wrapper) : Adding a call to 
1209           mono_class_setup_methods if the methods are not initialized.
1210
1211         Code is contributed under MIT/X11 license.
1212
1213 2008-07-30 Rodrigo Kumpera  <rkumpera@novell.com>
1214
1215         * verify.c: Remove some debug code I commited by accident.
1216
1217         * verify.c (mono_method_is_valid_in_context): Change the return value
1218         to make possible to distinguish between invalid and unverifiable.
1219
1220         * verify.c (verifier_load_method): Don't return NULL for unverifiable
1221         methods.
1222
1223 2008-07-30 Rodrigo Kumpera  <rkumpera@novell.com>
1224
1225         * verify.c (mono_generic_param_is_constraint_compatible): Inflate type
1226         constraints. Fixes regression in gtest-253.
1227
1228 2008-07-30 Rodrigo Kumpera  <rkumpera@novell.com>
1229
1230         * verify.c (mono_verifier_verify_class): Don't allow generic types
1231         with explicit layout.
1232
1233         * verify.c (mono_method_verify): Check locals and argument types.
1234
1235 2008-07-29  Zoltan Varga  <vargaz@gmail.com>
1236
1237         * monitor.c (mono_monitor_try_enter_internal): Allow nterruption of the
1238         wait if the thread is in StopRequested state.
1239
1240         * class.c (mono_class_from_name): Refactor the module searching code into
1241         a separate function so it can be reused in the AOT case too.
1242
1243 2008-07-28 Rodrigo Kumpera  <rkumpera@novell.com>
1244
1245         * verify.c (mono_type_is_valid_in_context): Improve the error message.
1246         Check both the type and it's generic type definition for loader errors.
1247         
1248         * verify.c (mono_method_is_valid_in_context): Don't generate another
1249         error when a type errors occur, this leads to the wrong exception been
1250         thrown.
1251
1252 2008-07-28  Dick Porter  <dick@ximian.com>
1253
1254         * icall-def.h
1255         * process.c
1256         (ves_icall_System_Diagnostics_Process_ProcessHandle_duplicate):
1257         New internal calls to duplicate and close a process handle.
1258
1259 2008-07-27  Andreas Färber  <andreas.faerber@web.de>
1260
1261         * object.c (CHECK_ADD_OVERFLOW_UN): Add missing bracket. Fixes #412499.
1262
1263 2008-07-27  Zoltan Varga  <vargaz@gmail.com>
1264
1265         * appdomain.c (unload_thread_main): Attach the unload thread to the runtime.
1266
1267 2008-07-27  Robert Jordan  <robertj@gmx.net>
1268
1269         * class.c (mono_class_init): Don't compute class.has_finalize for
1270         valuetypes. Fixes #412477.
1271
1272 2008-07-25 Rodrigo Kumpera  <rkumpera@novell.com>
1273
1274         * verify.c: Implement constraint equivalence checking.
1275         This is required when a generic parameter is used as
1276         argument to a constrained one.
1277
1278         Fixes #410637.
1279
1280 2008-07-24  Zoltan Varga  <vargaz@gmail.com>
1281
1282         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1283
1284         * domain-internals.h (struct _MonoDomain): Add 'method_code_hash' field.
1285
1286         * object-internals.h (struct _MonoDelegate): Add 'method_code' field,
1287         synch with managed object layout.
1288
1289 2008-07-24 Rodrigo Kumpera  <rkumpera@novell.com>
1290
1291         * verify.c (do_branch_op): Handle valuetypes and generic
1292         arguments properly.
1293
1294         * verify.c (do_cmp_op): Same.
1295
1296         Fixes #410383.
1297
1298 2008-07-24  Mark Probst  <mark.probst@gmail.com>
1299
1300         * generic-sharing.c: Fix memory leaks.
1301
1302         * class.c, class-internals.h: Make
1303         mono_class_inflate_generic_type_with_mempool() non-static.
1304
1305 2008-07-24 Rodrigo Kumpera  <rkumpera@novell.com>
1306
1307         * pedump.c (dump_verify_info): Dump full class name.
1308
1309 2008-07-24  Mark Probst  <mark.probst@gmail.com>
1310
1311         * generic-sharing.c: Removed some old code that didn't do anything.
1312
1313 2008-07-24  Massimiliano Mantione  <massi@ximian.com>
1314         * profiler.c: Added runtime_initialized_event,
1315         mono_profiler_install_runtime_initialized and
1316         mono_profiler_runtime_initialized. This new hook tells the profiler
1317         when the runtime is sufficiently initialized to be able to call
1318         mono_thread_attach on the root appdomain.
1319         * profiler.h, profiler-private.h: Likewise.
1320
1321 2008-07-23 Rodrigo Kumpera  <rkumpera@novell.com>
1322
1323         * verify.c (do_cast): Do boxing for generic arguments as well.
1324
1325         * class.c (is_nesting_type): Drop generic instantiations before
1326         checking for nesting.
1327
1328         * class.c (can_access_instantiation): Allow access to generic
1329         arguments.
1330
1331 2008-07-23 Rodrigo Kumpera  <rkumpera@novell.com>
1332
1333         * verify.c (verify_class_for_overlapping_reference_fields):
1334         On some cases, the field size might be zero, guard against that.
1335         Fix the explicit layout check to work as expected.
1336
1337 2008-07-23  Zoltan Varga  <vargaz@gmail.com>
1338
1339         * threads.c (ves_icall_System_Threading_Thread_Abort): Avoid calling 
1340         mono_thread_resume () during shutdown, since the thread we want to abort
1341         might be suspended.
1342
1343 2008-07-22  Zoltan Varga  <vargaz@gmail.com>
1344
1345         * mono-debug-debugger.c (mono_debugger_check_breakpoints): Fix a 
1346         warning.
1347
1348         * debug-mono-symfile.c: Fix a warning.
1349
1350         * mono-perfcounters.c (get_cpu_times): Fix a warning.
1351
1352         * object.c (mono_class_vtable): Check if exception_type is set, and return
1353         NULL as defined by the function comments.
1354
1355 2008-07-22  Mark Probst  <mark.probst@gmail.com>
1356
1357         * mempool.c: Use malloc for every single mempool allocation if the
1358         configure option is set.  This makes it easier to track mempool
1359         allocations with tools like Valgrind.
1360
1361 2008-07-22  Jb Evain  <jbevain@novell.com>
1362
1363         * reflection.c (create_dynamic_mono_image): emit the same
1364         metadata version that SL2 does when creating a SL2 image.
1365
1366 2008-07-21 Rodrigo Kumpera  <rkumpera@novell.com>
1367
1368         * icall-def.h:
1369         * icall.c: New icall System.Enum:get_hashcode. This function
1370         avoids the overhead of boxing the enum to the underlying type.
1371
1372 2008-07-21  Mark Probst  <mark.probst@gmail.com>
1373
1374         * reflection.c (mono_method_get_object): Don't let static RGCTX
1375         invoke wrappers get into MonoReflectionMethods.
1376
1377 2008-07-17 Rodrigo Kumpera  <rkumpera@novell.com>
1378
1379         * object-internals.h:
1380         * object.c: New mono_runtime_class_init_full function
1381         that makes throwing the exception optinal.
1382
1383         * class-internals.h: New exception type MONO_EXCEPTION_OBJECT_SUPPLIED
1384         for the case where the exception object is supplied.
1385
1386 2008-07-16  Kornél Pál  <kornelpal@gmail.com>
1387
1388         * coree.h: Define __ImageBase as _image_base__ on cygwin that fixes build with
1389         old ld versions.
1390
1391         Contributed under MIT/X11 license.
1392
1393 2008-07-16 Rodrigo Kumpera  <rkumpera@novell.com>
1394
1395         * string-icalls.c (ves_icall_System_String_InternalSplit):
1396         Optimize array allocation by caching the MonoClass of the
1397         array type.
1398
1399         * icall.c (ves_icall_Type_GetMethodsByName): Same.
1400
1401         * reflection.c (mono_param_get_objects): Same.
1402
1403 2008-07-16 Rodrigo Kumpera  <rkumpera@novell.com>
1404
1405         * icall-def.h:
1406         * icall.c: New ves_icall_MonoGenericClass_InflateType icall.
1407         It inflates the given type using the class context.
1408
1409 2008-07-15 Rodrigo Kumpera  <rkumpera@novell.com>
1410
1411         * object.c (mono_class_try_get_vtable): New function. Tries to fetch
1412         the vtable if it already exists.
1413
1414         * object-internals.h: Add mono_class_try_get_vtable as part of the
1415         internal API.
1416
1417         * reflection.c (mono_type_get_object): Use the MonoObject from the
1418         vtable when possible. Reduces locking contention on reflection heavy
1419         code.
1420
1421 2008-07-15  Zoltan Varga  <vargaz@gmail.com>
1422
1423         * decimal.c (my_g_bit_nth_msf): Implement this directly without calling
1424         g_bit_nth_msf () since that macro is not implemented in eglib.
1425
1426 2008-07-13  Zoltan Varga  <vargaz@gmail.com>
1427
1428         * class.c (mono_class_generic_sharing_enabled): Always disable generic sharing
1429         on platforms which do not support it.
1430
1431 2008-07-12  Zoltan Varga  <vargaz@gmail.com>
1432
1433         * marshal.c (mono_signature_to_name): Encode sig->hasthis as well.
1434
1435 2008-07-11  Martin Baulig  <martin@ximian.com>
1436
1437         * mono-debug-debugger.h
1438         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_INTERRUPTION_REQUEST'.
1439
1440         * mono-debug-debugger.c
1441         (_mono_debugger_interruption_request): New global volatile variable.
1442         (mono_debugger_check_interruption): New public function.
1443
1444         * threads.c
1445         (mono_thread_current_check_pending_interrupt): Call
1446         mono_debugger_check_interruption().
1447         (mono_thread_interruption_checkpoint_request): Likewise.
1448
1449 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
1450
1451         * verify.c: Add more type checks for loaded types. Verify the result
1452         handle from ldtoken.
1453
1454 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
1455
1456         * loader.c (field_from_memberref): Don't crash if the field
1457         wasn't found.
1458
1459 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
1460
1461         * verify.c: Verify if type and method instantiations
1462         don't have invalid VAR or MVAR arguments.
1463
1464 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
1465
1466         * verify.c: Fix double free of function pointer list.
1467
1468 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
1469
1470         * object.c (mono_string_to_utf8): Comment the new code as it
1471         breaks under eglib.
1472
1473 2008-07-08 Rodrigo Kumpera  <rkumpera@novell.com>
1474
1475         * object.c (mono_string_to_utf8): Avoid allocating a temp array.
1476
1477 2008-07-07  Bill Holmes  <billholmes54@gmail.com>
1478
1479         * threads.c : Thread.Interrupt changes to ensure that ThreadInterruptedException
1480           is not throw too many times.
1481
1482         Code is contributed under MIT/X11 license.
1483
1484 2008-07-07  Zoltan Varga  <vargaz@gmail.com>
1485
1486         * mono-debug.c (mono_debug_find_method): Allow this to be called even when
1487         debugging is turned off.
1488
1489 2008-07-06  Zoltan Varga  <vargaz@gmail.com>
1490
1491         * generic-sharing.c (mono_method_lookup_rgctx): Fix a warning.
1492
1493 2008-07-04  Mark Probst  <mark.probst@gmail.com>
1494
1495         * class-internals.h, class.c: Added new generic sharing option:
1496         Share only stuff in System.Collections.Generic, which is now the
1497         default.
1498
1499 2008-07-04  Mark Probst  <mark.probst@gmail.com>
1500
1501         * generic-sharing.c, class-internals.h: New function for getting a
1502         generic method in a generic class given the corresponding method
1503         for a different instantiation of the class.  Partly refactored
1504         from mini-trampolines.c.
1505
1506         * class.c: Make sure generic methods have a class_inst if they are
1507         part of a generic class.
1508
1509         * metadata.c (mono_type_stack_size_internal): Handle type
1510         variables.
1511
1512 2008-07-04  Mark Probst  <mark.probst@gmail.com>
1513
1514         * domain-internals.h: New field (has_this) in MonoGenericJitInfo.
1515         Signifies whether information on the this/vtable/mrgctx variable
1516         is available.
1517
1518 2008-07-04  Mark Probst  <mark.probst@gmail.com>
1519
1520         * object.c, object-internals.h, icall.c: New function
1521         mono_delegate_ctor_with_method(), which does the same as
1522         mono_delegate_ctor(), but takes an explicit method argument
1523         instead of taking the method from the jit info.
1524
1525         * marshal.c: When creating a delegate with an inflated method take
1526         the "this" argument as the target class for the castclass.
1527
1528 2008-07-03  Mark Probst  <mark.probst@gmail.com>
1529
1530         * domain.c (mono_jit_info_table_find): Fixed a bug that caused
1531         mono_jit_info_table_find() to perform very badly in some cases.
1532
1533 2008-07-02  Zoltan Varga  <vargaz@gmail.com>
1534
1535         * icall.c (type_from_typename): Handle 'string'.
1536
1537         * marshal.c (mono_marshal_get_runtime_invoke): Don't insert runtime invoke
1538         wrappers into the wrapper_hash, since the key is not a MonoMethod.
1539
1540 2008-07-01  Zoltan Varga  <vargaz@gmail.com>
1541
1542         * icall.c (mono_get_jit_icall_info): New function to return the jit icall hash table.
1543
1544         * *-gc.c (mono_gc_get_managed_allocator_types): New function to return the
1545         number of available managed allocator types.
1546
1547         * marshal.c (mono_marshal_init): Register Thread:ResetAbort as an icall ().
1548         (mono_marshal_get_runtime_invoke): Call ResetAbort as an icall.
1549
1550 2008-06-30  Zoltan Varga  <vargaz@gmail.com>
1551
1552         * domain-internals.h (struct _MonoDomain): Add 'jit_code_hash_lock' field,
1553         which is a low level lock protecting just the 'jit_code_hash' hash table.
1554
1555         * domain.c: Initialize+cleanup jit_code_hash_lock.
1556         
1557 2008-06-30  Kornél Pál  <kornelpal@gmail.com>
1558
1559         * coree.c (mono_load_coree): Set coree_module_handle global variable only
1560         after initialization.
1561
1562         * coree.h: Make MonoFixupExe internal.
1563
1564         Contributed under MIT/X11 license.
1565
1566 2008-06-30  Kornél Pál  <kornelpal@gmail.com>
1567
1568         * coree.c (_CorValidateImage): Retain IMAGE_DIRECTORY_ENTRY_SECURITY
1569         because that is platform independent. Check NumberOfRvaAndSizes in PE32
1570         as well.
1571         (MonoLoadImage): New wrapper function around LoadLibrary to ensure that the
1572         image being loaded is a CLI image and _CorValidateImage gets called.
1573
1574         * coree.h: Add MonoLoadImage.
1575
1576         * image.c (mono_image_open_full): Load CLI images using MonoLoadImage
1577         instead of LoadLibrary.
1578
1579         Contributed under MIT/X11 license.
1580
1581 2008-06-29 Rodrigo Kumpera  <rkumpera@novell.com>
1582
1583         * icall.c (ves_icall_System_ValueType_Equals): Avoid allocating objects
1584         for any primitive type.
1585
1586 2008-06-29  Zoltan Varga  <vargaz@gmail.com>
1587
1588         * object.c (mono_array_new_specific): Optimize this and the other allocation
1589         functions a bit.
1590         
1591         * object.c (mono_class_create_runtime_vtable): Use typed allocation in other
1592         domains too if mono_dont_free_domains is set.
1593
1594         * domain-internals.h (mono_dont_free_domains): New internal option controlling
1595         whenever to free appdomain data after it has been unloaded.
1596
1597         * domain.c (mono_domain_free): Don't free appdomain data if the option is set.
1598         
1599 2008-06-28  Zoltan Varga  <vargaz@gmail.com>
1600
1601         * icall.c (ves_icall_System_Enum_get_underlying_type): New icall.
1602         (mono_method_get_equivalent_method): Fix a warning.
1603
1604         * object.c (mono_message_init): Avoid looking up array types for each call.
1605
1606 2008-06-27  Zoltan Varga  <vargaz@gmail.com>
1607
1608         * object.c (mono_message_invoke): Avoid looking up the object[] type for each
1609         call.
1610
1611         * icall.c (ves_icall_System_ValueType_Equals): Optimize the comparison of enums
1612         even more.
1613
1614         * class.c (mono_class_get_fields): Avoid calling setup_fields_locking () for
1615         each iteration.
1616
1617         * icall.c (ves_icall_System_ValueType_Equals): Avoid traversing all the static
1618         fields of an enum.
1619
1620 2008-06-26 Rodrigo Kumpera  <rkumpera@novell.com>
1621
1622         * object.c (mono_value_box): Fix boxing of nullables.
1623
1624 2008-06-26  Kornél Pál  <kornelpal@gmail.com>
1625
1626         * assembly.c (mono_set_rootdir): Use __ImageBase instead of
1627         mono_module_handle that is defined by the linker; no initialization required.
1628         * coree.h: Remove mono_module_handle, add __ImageBase, update
1629         mono_image_open_from_module_handle.
1630         * coree.c (_CorValidateImage): Convert platform independent PE32 images to
1631         PE32+ on 64-bit Windows that makes the OS able to load CIL images as modules.
1632         (MonoFixupCorEE): Export Address Table RVAs are 32-bit unsigned integers so
1633         memory has to be allocated for trampolines (x64) or procedure labels (IA64) up
1634         to 4 GB away from image base address. IA64 version is not tested but was very
1635         easy to implement and should work if we ever need it.
1636         * domain.c (mono_init_internal): Avoid system error message boxes.
1637         * image.c (mono_image_open_from_module_handle): Replace ref_count argument
1638         with has_entry_point. Handle do_mono_image_load fauilre correctly.
1639         (mono_image_open_full, mono_image_close): Use has_entry_point instead of
1640         coff_attributes that is a more reliable way to detect if _CorDllMain was called.
1641         * metadata-internals.h: Add has_entry_point to _MonoImage on Windows.
1642
1643         Contributed under MIT/X11 license.
1644
1645 2008-06-25 Rodrigo Kumpera  <rkumpera@novell.com>
1646
1647         * class.c, class-internals.h: Export mono_class_get_generic_type_definition
1648         as part of the private mono API.
1649         
1650         * loader.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandleInternalType):
1651         Do proper argument checking for methods that belong to generic classes.
1652         Do proper type resolution for GMFH/2.
1653         Fixes #377324.
1654         
1655 2008-06-25 Rodrigo Kumpera  <rkumpera@novell.com>
1656
1657         * verify.c (do_switch): Fix a memory corruption bug with
1658         the jump index is out of bound.
1659
1660 2008-06-25 Rodrigo Kumpera  <rkumpera@novell.com>
1661
1662         * verify.c: Disable debug code.
1663
1664 2008-06-25 Rodrigo Kumpera  <rkumpera@novell.com>
1665
1666         * reflection.c (mono_image_get_methodbuilder_token): Use
1667         mono_image_get_methodspec_token_for_generic_method_definition
1668         instead of mono_image_get_memberref_token. We cache more memberef
1669         entries now.
1670
1671 2008-06-24 Rodrigo Kumpera  <rkumpera@novell.com>
1672
1673         * verify.c: Inflate exception clause types.
1674         Fixes #402606.
1675         
1676 2008-06-24 Rodrigo Kumpera  <rkumpera@novell.com>
1677
1678         * reflection.c (mono_image_get_methodbuilder_token): Don't leak
1679         name.
1680
1681         * reflection.c (mono_image_get_ctorbuilder_token): Same.
1682
1683         * reflection.c (mono_image_create_method_token): Same.
1684
1685 2008-06-24 Rodrigo Kumpera  <rkumpera@novell.com>
1686
1687         * reflection.c: Added mono_image_get_methodref_token_for_methodbuilder.
1688         It does the same as mono_image_get_methodref_token but works on
1689         MethodBuilder.
1690
1691         * reflection.c: Use mono_image_get_methodspec_token_for_generic_method_definition
1692         and always generate a methodspec. This follows the old behavior and fixes
1693         the regressions in System.Core. 
1694
1695 2008-06-24  Zoltan Varga  <vargaz@gmail.com>
1696
1697         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Collect exceptions for classes where 
1698         don't event mono_class_get () succeeds. Fixes #402182.
1699
1700 2008-06-20 Rodrigo Kumpera  <rkumpera@novell.com>
1701
1702         * metadata-internals.h: Added MonoDynamicImage::methodspec
1703         hashtable to store methodspec tokens created for MethodBuilders.
1704
1705         * reflection.c (mono_image_get_methodbuilder_token): Encode generic
1706         MethodBuilders as open instantiations if a methodspec was requested.
1707
1708         * reflection.c (fixup_method): Skip MethodBuilder with methodspec tokens.
1709
1710         * reflection.c (create_dynamic_mono_image): Create the methodspec hashtable.
1711
1712         * reflection.c (mono_dynamic_image_free): Release the methodspec hashtable.
1713
1714         Fixes bug #349190.
1715
1716 2008-06-20 Rodrigo Kumpera  <rkumpera@novell.com>
1717
1718         * loader.c (method_from_methodspec): Avoid crashing if the
1719         method lookup fails.
1720
1721 2008-06-20  Dick Porter  <dick@ximian.com>
1722
1723         * socket-io.c (get_socket_assembly): Cope with Moonlight network
1724         classes being in a different assembly.  Fixes bug 399184.
1725
1726 2008-06-20  Zoltan Varga  <vargaz@gmail.com>
1727
1728         * loader.c (mono_loader_init): Make this callable multiple times.
1729         (mono_dllmap_insert): Call mono_loader_init () so this works even before
1730         the runtime is initialized. Fixes #401755.
1731
1732 2008-06-19  Dick Porter  <dick@ximian.com>
1733
1734         * socket-io.c (convert_socketflags): Ignore SocketFlags.Partial.
1735         Fixes bug 349688.
1736
1737 2008-06-19  Dick Porter  <dick@ximian.com>
1738
1739         * socket-io.c:
1740         * icall-def.h: Implement Socket generic Send() and Receive()
1741         methods.  Fixes bug 395168.
1742
1743 2008-06-19  Kornél Pál  <kornelpal@gmail.com>
1744
1745         * icall-def.h, icall.c: Add ves_icall_System_Reflection_Module_GetHINSTANCE.
1746
1747         Contributed under MIT/X11 license.
1748
1749 2008-06-18  Martin Baulig  <martin@ximian.com>
1750
1751         * mono-debug.h (MONO_DEBUGGER_VERSION): Split into
1752         `MONO_DEBUGGER_MAJOR_VERSION' and `MONO_DEBUGGER_MINOR_VERSION';
1753         set to 80.0.  The debugger <-> runtime interface is now frozen as
1754         well.   
1755
1756         * mono-debug.c
1757         (mono_debug_debugger_version): Bump to 4.
1758
1759 2008-06-18  Martin Baulig  <martin@ximian.com>
1760
1761         * debug-mono-symfile.c
1762         (load_symfile): Don't check the minor version.
1763
1764         * debug-mono-symfile.h: Bump the version number to 50.0.
1765
1766 2008-06-18  Martin Baulig  <martin@ximian.com>
1767
1768         * debug-mono-symfile.c
1769         (load_symfile): Treat `MONO_SYMBOL_FILE_MINOR_VERSION' as a
1770         minimum required version.
1771
1772 2008-06-17 Rodrigo Kumpera  <rkumpera@novell.com>
1773
1774         * reflection.c (mono_custom_attrs_from_property): Fix support for
1775         retriveving cattrs of dynamic inflated generic types.
1776
1777         * reflection.c (mono_custom_attrs_from_event): Same.
1778
1779         * reflection.c (mono_custom_attrs_from_field): Same;
1780
1781         * reflection.c (typebuilder_setup_events): Same cattrs of events.
1782
1783         * loader.c (-mono_metadata_get_corresponding_field_from_generic_type_definition):
1784         Moved to metadata.c.
1785
1786         * metadata.c: New functions to retrive the equivalent field, event
1787         of property from the generic type definition.
1788
1789         * metadata-internals.h: Added new functions from metadata.c.
1790
1791 2008-06-17 Rodrigo Kumpera  <rkumpera@novell.com>
1792
1793         * reflection.c (mono_custom_attrs_from_builders): Mark MonoCustomAttrInfo
1794         to cached in a mempool is used.
1795
1796         * metadata.c (free_generic_class): In some situations field generic_info type
1797         is not properly dup'ed and leads to double free'ing.
1798
1799         Fixes #400643.
1800
1801 2008-06-17  Mark Probst  <mark.probst@gmail.com>
1802
1803         * marshal.c (mono_marshal_get_static_rgctx_invoke): Also handle
1804         this arguments (will be needed later for generic methods).
1805         Collect stats.
1806
1807 2008-06-17  Mark Probst  <mark.probst@gmail.com>
1808
1809         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal):
1810         Create a static RGCTX invoke wrapper for methods which require it.
1811
1812 2008-06-17  Mark Probst  <mark.probst@gmail.com>
1813
1814         * object.c, class-internals.h: New function for checking whether
1815         an individual field is special static.
1816
1817 2008-06-15  Zoltan Varga  <vargaz@gmail.com>
1818
1819         * metadata.c (mono_metadata_get_generic_param_row): Use bsearch instead of
1820         linear search since the table is sorted.
1821
1822         * gc.c (mono_gc_cleanup): Abort the finalizer thread more gracefully.
1823         Fixes #324180.
1824
1825 2008-06-14  Zoltan Varga  <vargaz@gmail.com>
1826
1827         * appdomain.c (unload_thread_main): Applied patch from Tim Howard 
1828         (timh@ict.om.org). Remove the timeouts when waiting for appdomains to unload.
1829
1830         * gc.c (mono_domain_finalize): Allow an infinite timeout.
1831
1832         * threads.c (mono_threads_abort_appdomain_threads): Ditto.
1833         
1834         * threads.c (mono_thread_request_interruption): Get rid of locking, use
1835         InterlockedCompareExchange to query and modify 
1836         thread->interruption_requested.
1837
1838         * object-internals.h (struct _MonoThread): Change interruption_requested
1839         to a gint32 so it can be modified by atomic operations. Add 
1840         'critical_region_level' from the managed side, change small_id to a guint32,
1841         add new set of 'unused' fields.
1842
1843         * appdomain.c: Bump corlib version.
1844
1845 2008-06-13  Zoltan Varga  <vargaz@gmail.com>
1846
1847         * class.c (mono_class_from_name): Search modules as well. Fixes
1848         #322332.
1849
1850 2008-06-13  Mark Probst  <mark.probst@gmail.com>
1851
1852         * generic-sharing.c: Code for maintaining the MRGCTX and MRGCTX
1853         templates.  Templates are generalized with an additional type_argc
1854         argument.  RGCTX templates have type_argc==0, MRGCTX templates
1855         have type_argc>0.
1856
1857         * domain-internals.h, domain.c: New hash table for looking up
1858         MRGCTXs.
1859
1860         * metadata.c, metadata-internals.h: Rename hash and equal
1861         functions for MonoGenericInst's and make them public.
1862
1863         * class-internals.h: New data structures for the MRGCTX.  Macros
1864         for distinguishing slots in the RGCTX and the MRGCTX.
1865
1866 2008-06-13  Mark Probst  <mark.probst@gmail.com>
1867
1868         * object.c (mono_method_get_imt_slot): Put the same methods of
1869         different instantiations of the same generic interface in the same
1870         IMT slots, to make generic sharing simpler.
1871
1872 2008-06-12 Rodrigo Kumpera  <rkumpera@novell.com>
1873
1874         * metadata-internals.h: Added mono_metadata_field_info_with_mempool.
1875
1876         * metadata.c (mono_metadata_field_info_with_mempool): Added.
1877         This function works just like mono_metadata_field_info, but
1878         accept a mempool as argument to be used allocating memory.
1879
1880         * marshal.c (mono_marshal_load_type_info): Use new function
1881         to load marshal data into image mempool.
1882
1883 2008-06-12 Rodrigo Kumpera  <rkumpera@novell.com>
1884
1885         * class.c (mono_class_inflate_generic_type_with_mempool):
1886         This function allows to inflate a generic type using
1887         a mempool.
1888
1889         * class.c (inflate_generic_type): Take a mempool as argument
1890         and use it to do type dup'ing.
1891
1892         * class.c (mono_class_setup_fields): Field type for generic
1893         generic classes are allocated from the image mempool.
1894
1895         * metadata.c (free_generic_class): Inflated field type is
1896         now allocated in the image mempool.
1897
1898 2008-06-12 Rodrigo Kumpera  <rkumpera@novell.com>
1899
1900         * threads.c (thread_cleanup): Free MonoThread::name.
1901
1902 2008-06-12  Marek Habersack  <mhabersack@novell.com>
1903
1904         * appdomain.c (ensure_directory_exists): avoid unnecessary
1905         mkdir(2) calls when the shadow directory already exists.
1906         (mono_make_shadow_copy): copy also satellite assemblies from the
1907         private bin directories.
1908
1909 2008-06-11  Zoltan Varga  <vargaz@gmail.com>
1910
1911         * threads.c (mono_thread_get_stack_bounds): Align the stack in all cases.
1912         
1913         * threads.c (mono_thread_get_stack_bounds): Align the stack address to
1914         a page boundary. Fixes #396219.
1915
1916 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
1917
1918         * marshal.c (mono_marshal_load_type_info): Add a memory barrier
1919         due to double-checked locking.
1920
1921 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
1922
1923         * assembly.c (build_assembly_name): Release memory on failure.
1924
1925         * assembly.c (mono_assembly_name_parse_full): Release memory on failure.
1926
1927 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
1928
1929         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Release
1930         memory on failure.
1931
1932 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
1933
1934         * icall.c (ves_icall_System_Reflection_AssemblyName_ParseName): Release
1935         memory on failure.
1936
1937 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
1938
1939         * loader.c (field_from_memberref): Check if field signature type is equal
1940         to the non-inflated type of the field. Fixes #398980.
1941
1942 2008-06-11  Zoltan Varga  <vargaz@gmail.com>
1943
1944         * assembly.c (mono_assembly_load_from_full): Call 
1945         mono_assembly_load_friends () outside the assemblies lock, since it can
1946         acquire the loader lock. Fixes #323696.
1947
1948         * reflection.c (resolve_object): Inflate the inst with the context for
1949         FieldOnTypeBuilderInst. Fixes #399010.
1950
1951 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
1952
1953         * reflection.c (mono_image_get_field_on_inst_token): Don't
1954         inflate the field to encode it's signature. If it's a
1955         VAR or MVAR it should stay that way in the signature.
1956         Fixes #399047.
1957
1958 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
1959
1960         * reflection.c (resolve_object): Release memory of inflated types.
1961
1962 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
1963
1964         * loader.c (mono_method_get_signature_full): Remove assert about
1965         loading a methodspec to a generic method. We have such methods, such as
1966         System.Threading.Interlocked::CompareExchange<T>.
1967         This assert was removed since it crashes the verifier when it checks
1968         methods calling CompareExchange<T>.
1969
1970 2008-06-10  Marek Safar  <marek.safar@gmail.com>
1971
1972         * icall.c (ves_icall_MonoMethod_GetGenericArguments): Creates an instance
1973         of Type array and not MonoType.
1974
1975 2008-06-10  Marek Habersack  <mhabersack@novell.com>
1976
1977         * profiler.c: fix a segfault on shutdown. Patch from Paolo Molaro
1978         <lupus@ximian.com>
1979
1980 2008-06-10  Martin Baulig  <martin@ximian.com>
1981
1982         * debug-mono-symfile.h
1983         (MONO_SYMBOL_FILE_MINOR_VERSION): Bump to 6.  There were no
1984         changes to the file format, but we were generating incorrect
1985         source file indices in the line number table due to a bug, which
1986         made backtraces report an incorrect source file.
1987
1988 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
1989
1990         * mono-debug.c: Moved mono_debug_free_method_jit_info from
1991         mini/debug-mini.c to here.
1992
1993         * mono-debug.c (il_offset_from_address): Free memory from find_method.
1994
1995         * mono-debug.h: Export mono_debug_free_method_jit_info, users should
1996         use it to release structs returned by mono_debug_find_method.
1997
1998 2008-06-10  Zoltan Varga  <vargaz@gmail.com>
1999
2000         * class.c (mono_class_setup_vtable): Call setup_methods even for interfaces
2001         since it needs to set method->slot for all interface methods.
2002
2003 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
2004
2005         * class-internals.h: Forgot to add.
2006
2007 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
2008
2009         * class-internals.h: Added MONO_PROP_DYNAMIC_CATTR.
2010
2011         * reflection.c (lookup_custom_attr): Added a MonoImage argument.
2012         Lookup the custom attributes from property_hash.
2013
2014         * reflection.c (mono_save_custom_attrs): Save the custom attributes
2015         in property_hash. Allocate all data using the image mempool.
2016
2017         * reflection.c: Removed dynamic_custom_attrs. Changed all checks
2018         for dynamic_custom_attrs to checks if the image is dynamic.
2019
2020 2008-06-09  Zoltan Varga  <vargaz@gmail.com>
2021
2022         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Free the
2023         assemblies array.
2024         
2025         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Avoid calling
2026         runtime functions while holding the domain assemblies lock.
2027
2028 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
2029
2030         * verify.c: Reapplied the last bit of the reverted changes.
2031
2032 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
2033
2034         * verify.c: Reapplied more of the reverted changes.
2035
2036 2008-06-09  Martin Baulig  <martin@ximian.com>
2037
2038         * debug-mono-symfile.c (load_symfile): Check the major version
2039         first; if it's wrong, don't print the minor version in the error message.
2040
2041 2008-06-09  Zoltan Varga  <vargaz@gmail.com>
2042
2043         * appdomain.c (set_domain_search_path): Make this use the domain assemblies
2044         lock instead of the domain lock to avoid deadlocks, since the thread might
2045         already hold the loader lock.
2046
2047         * threads.c (start_wrapper): Call mono_monitor_init_tls ().
2048         (mono_thread_attach): Ditto.
2049
2050         * monitor.c: Use a TLS variable for holding the current thread id instead
2051         of calling pthread_self ().
2052         (mono_monitor_init_tls): New internal function to initialize the TLS
2053         variable.
2054         (mono_monitor_try_enter_internal): Put the owner == id check after the
2055         owner == 0 check.
2056
2057         * object-internals.h (_G_BOOLEAN_EXPR): Redefine this glib macro to avoid
2058         missed optimizations when using gcc-4.3.
2059
2060 2008-06-08 Rodrigo Kumpera  <rkumpera@novell.com>
2061
2062         * reflection.c (mono_dynamic_image_free): Free the memory
2063         used by MonoGenericParam in MonoDynamicImage::gen_param.
2064
2065         * reflection.c (mono_reflection_setup_generic_class): Allocate
2066         container from mempool.
2067
2068         * reflection.c (mono_reflection_initialize_generic_parameter): Allocate
2069         container from mempool.
2070
2071 2008-06-07  Zoltan Varga  <vargaz@gmail.com>
2072
2073         * threads.c (mono_set_pending_exception): New internal function to set the
2074         pending exception of the current thread.
2075         (mono_thread_get_and_clear_pending_exception): Check for 
2076         thread->pending_exception as well.
2077
2078         * object-internals.h (struct _MonoThread): Add 'pending_exception' field.
2079
2080         * boehm-gc.c (mono_gc_base_init): Set GC_no_dls before calling GC_init () since
2081         it can trigger a collection.
2082
2083 2008-06-06  Martin Baulig  <martin@ximian.com>
2084
2085         Merged the `debugger-kahalo' branch.
2086
2087         * mono-debug.h
2088         (MONO_DEBUGGER_VERSION): Bumped to 72.
2089
2090         * debug-mono-symfile.h
2091         (MonoSymbolFileMethodIndexEntry): Removed.
2092         (MonoSymbolFileMethodEntry): New public typedef.
2093         (MonoSymbolFileOffsetTable): Added `_is_aspx_source'.
2094         (MonoSymbolFileSourceEntry): Remove everything except `index' and
2095         `data_offset'.
2096         (MonoSymbolFileMethodEntry): Removed.
2097         (MonoSymbolFileLexicalBlockEntry): Removed.
2098         (MonoSymbolFileLineNumberEntry): Removed.
2099         (MonoDebugLexicalBlockEntry): Removed.
2100         (MonoDebugMethodInfo): Replaced `entry' by `guint32 entry_offset';
2101         removed `num_il_offsets' and `il_offsets'.
2102         (MonoSymbolFile): Replace `version' with `major_version' and
2103         `minor_version'.
2104         (MONO_SYMBOL_FILE_VERSION): Replace with
2105         `MONO_SYMBOL_FILE_MAJOR_VERSION' and
2106         `MONO_SYMBOL_FILE_MINOR_VERSION'.
2107
2108         * debug-mono-symfile.c
2109         (mono_debug_symfile_lookup_location): Add support for the new line
2110         number table format.
2111
2112 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
2113
2114         * metadata.c (free_generic_class): Release the inflated
2115         MonoClass of dynamic generic classes if it's not a generic
2116         type definition.
2117
2118 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
2119
2120         * verify.c: Reapplied more of the reverted changes.
2121
2122 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
2123
2124         * reflection.c (lookup_custom_attr): Clean the cached flag or
2125         nobody will free it. Fixes a memleak in MonoCustomAttrs::IsDefinedInternal
2126         for SRE types.
2127
2128 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
2129
2130         * verify.c: Reapplied a small part of the reverted changes.
2131
2132 2008-06-07  Zoltan Varga  <vargaz@gmail.com>
2133
2134         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
2135
2136         * monitor.c (mono_monitor_try_enter_internal): Add NULL check which was 
2137         previously in managed code.
2138         (mono_monitor_exit): Ditto.
2139         (ves_icall_System_Threading_Monitor_Monitor_exit): Removed, not needed anymore.
2140
2141         * icall-def.h: Rename the Enter/Exit icalls to simply Enter/Exit to match
2142         the managed definition.
2143
2144 2008-06-06 Rodrigo Kumpera  <rkumpera@novell.com>
2145
2146         * verify.c: Revert changes to see if it helps with weird buildbot crashes.
2147
2148 2008-06-06  Zoltan Varga  <vargaz@gmail.com>
2149
2150         * monitor.c: Redefine GetCurrentThreadId () with a macro on !win32.
2151         
2152         * monitor.c: Add some micro optimizations.
2153
2154         * icall.c (type_from_typename): Handle 'bool'.
2155
2156 2008-06-06 Rodrigo Kumpera  <rkumpera@novell.com>
2157
2158         * verify.c: Implement constructor verification per P III 1.8.1.4.
2159         Fixes #396716.
2160
2161 2008-06-06  Zoltan Varga  <vargaz@gmail.com>
2162
2163         * assembly.c (mono_assembly_loaded_full): Avoid calling the search hooks while
2164         holding the assemblies lock here too.
2165
2166 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
2167
2168         * verify.c: Kill stack_top function.
2169
2170 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
2171
2172         * verify.c: Kill stack_get function.
2173
2174 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
2175
2176         * verify.c (mono_method_verify): Last change broke the build. Fixed.
2177
2178 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
2179
2180         * verify.c (verify_type_compatibility_full): Make SZARRAY checks
2181         more reliable.
2182
2183         * verify.c (mono_method_verify): Inflate params and locals to avoid
2184         mismatch when checking for compatibility.
2185
2186 2008-06-05  Jonathan Chambers  <joncham@gmail.com>
2187
2188         * metadata.c (mono_string_from_bstr): Fix BSTR marshalling.
2189         Length prefix should be size in bytes. Fix bug #339530.
2190         
2191         * metadata.c (mono_string_to_bstr): Fix BSTR marshalling.
2192         Length prefix should be size in bytes. Fix bug #339530.
2193
2194         Code is contributed under MIT/X11 license.
2195
2196 2008-06-05  Bill Holmes <billholmes54@gmail.com>
2197
2198         * decimal.c:  Adding MSVC implementation to my_g_bit_nth_msf.
2199
2200         Contributed under MIT/X11 license.
2201
2202 2008-06-05  Martin Baulig  <martin@ximian.com>
2203
2204         * mono-debug-debugger.c
2205         (mono_debugger_check_breakpoints): Reflect latest runtime changes.
2206
2207 2008-06-05  Zoltan Varga  <vargaz@gmail.com>
2208
2209         * assembly.c (mono_assembly_load_from_full): Avoid calling the search hooks
2210         while holding the assemblies lock to prevent deadlocks. Handle the case
2211         where the search hook returns NULL but the assembly was still loaded.
2212         Fixes #323696.
2213
2214         * appdomain.c (set_domain_search_path): Acquire the domain lock since we
2215         modify domain state.
2216
2217 2008-06-05  Andreas Färber  <andreas.faerber@web.de>
2218
2219         * boehm-gc.c: Add DTrace probes gc-{begin,end}.
2220         * Makefile.am (pedump_LDADD): Post-process object files and
2221         add dtrace-generated object file, if necessary.
2222
2223         Code is contributed under MIT/X11 license.
2224
2225 2008-06-04 Rodrigo Kumpera  <rkumpera@novell.com>
2226
2227         * reflection.c (mono_dynamic_image_free): Free MonoDynamicImage::public_key.
2228
2229 2008-06-04 Rodrigo Kumpera  <rkumpera@novell.com>
2230
2231         * class.c (mono_type_get_full): Add a work-around for generic type definitions.
2232
2233 2008-06-04  Mark Probst  <mark.probst@gmail.com>
2234
2235         * threads.c: Try to free everything from the delayed free table
2236         when shutting down threads, and set the variable to NULL after the
2237         table is freed so that calling
2238         mono_thread_hazardous_try_free_all() when shutting down the root
2239         domain doesn't crash.
2240
2241 2008-06-04 Rodrigo Kumpera  <rkumpera@novell.com>
2242
2243         * class.c (mono_type_retrieve_from_typespec): Add an argument to inform
2244         the caller if resulting type was inflated.
2245
2246         * class.c (mono_class_create_from_typespec): Free the MonoType if it
2247         was inflated.
2248
2249         * class.c (mono_type_get_full): Free the MonoType if it was inflated.
2250
2251
2252 2008-06-04  Zoltan Varga  <vargaz@gmail.com>
2253
2254         * decimal.c (rescale128): Rework the code a bit so it no longer crashes the
2255         class library tests.
2256
2257         * icall.c (ves_icall_InternalInvoke): Applied patch from Andy Hume 
2258         (andyhume32@yahoo.co.uk). Add more useful exception messages. Fixes
2259         #396989.
2260
2261 2008-06-04  Mark Probst  <mark.probst@gmail.com>
2262
2263         * domain.c, domain-internals.h: The JIT infos are now freed by the
2264         JIT info table code.  They are freed immediately if there only a
2265         single JIT info table in circulation.  If there is more, the free
2266         is delayed via a queue.
2267
2268         * threads.c, threads-types.h: New hazard pointer function for
2269         freeing all freeable delayed items in one sitting.
2270
2271 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
2272
2273         * reflection.c (typebuilder_setup_fields): Use mempool for allocations.
2274
2275         * reflection.c (typebuilder_setup_properties): Same.
2276
2277         * reflection.c (typebuilder_setup_events): Same.
2278
2279 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
2280
2281         * reflection.c (mono_custom_attrs_from_builders): Receive a MonoMemPool
2282         and use it for allocating memory.
2283
2284         * reflection.c (mono_marshal_spec_from_builder): Same.
2285
2286         * reflection.c: Change code to use new signatures.
2287
2288         * metadata.c (mono_metadata_type_dup): Add a FIXME note.
2289
2290 2008-06-03  Zoltan Varga  <vargaz@gmail.com>
2291
2292         * decimal.c (rescale128): Put back one line which was accidently commented
2293         out.
2294         
2295         * decimal.c (rescale128): Disable the code added by the last patch, as it seems
2296         to cause crashes.
2297
2298 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
2299
2300         * reflection.c (mono_reflection_generic_class_initialize): Name must
2301         be always malloc'ed so we can free it later on. Do this for field, property
2302         and event.
2303
2304         * metadata.c (free_generic_class): Free field, property and event names.
2305
2306 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
2307
2308         * reflection.c (fieldbuilder_to_mono_class_field): Use mono_metadata_type_dup
2309         instead of g_memdup.
2310
2311         * reflection.c (typebuilder_setup_fields): Same.
2312
2313 2008-06-03  Zoltan Varga  <vargaz@gmail.com>
2314
2315         * decimal.c (rescale128): Optimize this function a bit more.
2316
2317 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
2318
2319         * metadata.c (free_generic_class): Release some memory from
2320         SRE generic classes.
2321
2322 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
2323
2324         * reflection.c (mono_image_get_generic_field_token): No reference
2325         to name is kept, free it.
2326
2327         * reflection.c (mono_reflection_generic_class_initialize): Free
2328         more memory of the inflated field.
2329
2330 2008-06-03  Zoltan Varga  <vargaz@gmail.com>
2331
2332         * decimal.c (mono_decimalDiv): Moved equality checks here from managed
2333         code.
2334
2335 2008-06-02 Rodrigo Kumpera  <rkumpera@novell.com>
2336
2337         * reflection.c (mono_dynamic_image_free): Release memory used by
2338         MonoDynamicImage::array_methods elements.
2339
2340         * reflection.c (assembly_add_win32_resources): Release memory after
2341         encoding.
2342
2343 2008-06-02  Zoltan Varga  <vargaz@gmail.com>
2344
2345         * decimal.c (log2_32): Use an optimized version for this function too.
2346         
2347         * decimal.c (log2_64): Fix this on 32 bit machines.
2348
2349 2008-06-02 Rodrigo Kumpera  <rkumpera@novell.com>
2350
2351         * class.c (mono_dup_array_type): Implement allocation using a mempool.
2352
2353         * class.c (mono_metadata_signature_deep_dup): Same.
2354
2355         * metadata.c (mono_metadata_signature_dup_full): Added, allow dup'ng with
2356         a mempool.
2357
2358         * metadata.c (mono_metadata_signature_dup): Delegate to the _full version.
2359
2360         * metadata.c (mono_metadata_type_dup): Remove asserts and FIXME.
2361
2362         * metadata-internals.h: Added mono_metadata_signature_dup_full.
2363
2364         * class-internals.h: Update signatures to take a MonoMemPool.
2365
2366 2008-06-02  Dick Porter  <dick@ximian.com>
2367
2368         * icall.c (ves_icall_System_ComponentModel_Win32Exception_W32ErrorMessage): 
2369         * icall-def.h: Add
2370         System.ComponentModel.Win32Exception.W32ErrorMessage, using the
2371         FormatMessage API to get the error text.  Fixes bug 321827.
2372
2373 2008-06-02  Zoltan Varga  <vargaz@gmail.com>
2374
2375         * decimal.c: Add some micro optimizations to make decimal operations faster.
2376
2377 2008-06-01 Rodrigo Kumpera  <rkumpera@novell.com>
2378
2379         * reflection.c (method_encode_clauses): Take a mempool
2380         as parameter and use it to allocate the clause array.
2381
2382         * reflection.c (mono_image_get_field_on_inst_token): Free
2383         the inflated type after encoding it.
2384
2385         * reflection.c (mono_dynamic_image_free): Free each element
2386         of MonoDynamicImage::gen_params.
2387
2388         * reflection.c (reflection_methodbuilder_to_mono_method):
2389         Allocate the generic param array from the mempool.
2390         Allocate signature params from the mempool.
2391
2392         * reflection.c (mono_reflection_generic_class_initialize):
2393         Free inflated fields after been used.
2394
2395 2008-05-30 Rodrigo Kumpera  <rkumpera@novell.com>
2396
2397         * icall.c: Reapply the memory leak fixes as they no
2398         longer make mono crash.
2399
2400 2008-05-30 Rodrigo Kumpera  <rkumpera@novell.com>
2401
2402         * reflection.c (mono_type_get_object): Don't store the suplied
2403         MonoType with type_hash. A caller which pass a type that
2404         was mono_metadata_type_dup'ed cannot free it reliably, as type_hash
2405         might end with a pointer to freed memory.
2406         The solution is to use byval_arg or this_arg from the associated
2407         MonoClass of the supplied type.
2408
2409 2008-05-29  Zoltan Varga  <vargaz@gmail.com>
2410
2411         * icall.c: Revert the rest of the last change as it breaks the build too.
2412
2413 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
2414
2415         * icall.c: Revert a leak fix as it's breaking the build.
2416
2417 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
2418
2419         * appdomain.c (mono_make_shadow_copy): Fix another leak of dir_name.
2420
2421 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
2422
2423         * appdomain.c (mono_make_shadow_copy): We leaked dir_name.
2424
2425 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
2426
2427         * icall.c: Fix some memory leaks.
2428
2429 2008-05-29  Dick Porter  <dick@ximian.com>
2430
2431         * threadpool.c (mono_thread_pool_remove_socket): Always remove the
2432         async socket operations from the pending list when a socket
2433         closes.  Leaving it until the threadpool services the event
2434         exposes a race condition when a socket descriptor is reused.
2435         Fixes bug 377589.
2436
2437 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
2438
2439         * object.c: Fix negative index check for array alocation.
2440
2441 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
2442
2443         * icall.c, marshal.c: Delegate wrappers should skip visibility.
2444         This check is performed by the verifier for IL created delegates
2445         and by Delegate::CreateDelegate for programatically created ones.
2446         Fixes #372406.
2447
2448 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
2449
2450         * sockey-io.c (ves_icall_System_Net_Sockets_Socket_Select_internal):
2451         Fix code to use mono_array_size_t instead of int.
2452
2453         Based on patch by Luis F. Ortiz.
2454         Contributed under X11 license.
2455         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
2456
2457 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
2458
2459         * icall.c: Added ves_icall_System_Array_GetLongLength and
2460         ves_icall_System_Array_CreateInstanceImpl64. Both allow handling big
2461         arrays.
2462
2463         * icall.h: Export both new functions.
2464
2465         Based on patch by Luis F. Ortiz.
2466         Contributed under X11 license.
2467         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
2468
2469 2008-05-28  Martin Baulig  <martin@ximian.com>
2470
2471         The debugger now requires exactly r103463.
2472
2473         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 71.
2474         This version is not supported by the debugger, wait for 72.
2475
2476 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
2477
2478         * object.h: Changed array related functions to use
2479         mono_array_size_t instead of guint32. Forgot to commit this file.
2480
2481         Patch by Luis F. Ortiz.
2482         Contributed under X11 license.
2483         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
2484
2485
2486 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
2487
2488         * object.h: Don't use G_MAXINT32 or G_MAXUINT32 as old glibs
2489         don't define it. Use the number literal instead.
2490
2491 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
2492
2493         * icall.c: Changed array related functions to use
2494         mono_array_size_t instead of guint32.
2495
2496         * icall.c (ves_icall_System_Array_GetLength): Check for length
2497         overflow under MONO_BIG_ARRAYS.
2498
2499         Based on patch by Luis F. Ortiz.
2500         Contributed under X11 license.
2501         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
2502
2503 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
2504
2505         * object.c: Add 64bits bounds check for arrays under MONO_BIG_ARRAYS.
2506
2507         Based on patch by Luis F. Ortiz.
2508         Contributed under X11 license.
2509         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
2510
2511 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
2512
2513         * object.c, object.h: Changed array related functions to use
2514         mono_array_size_t instead of guint32.
2515
2516         Patch by Luis F. Ortiz.
2517         Contributed under X11 license.
2518         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
2519
2520 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
2521
2522         * object.h: Introduced mono_array_size_t typedef. This must be used
2523         in all places an array length is expected. This is 64bits wide if
2524         MONO_BIG_ARRAYS is enabled.
2525
2526         Patch by Luis F. Ortiz.
2527         Contributed under X11 license.
2528         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
2529
2530 2008-05-27  Zoltan Varga  <vargaz@gmail.com>
2531
2532         * security-manager.c class.c: Set the class exception info by calling
2533         mono_class_set_failure ().
2534
2535         * class.c (mono_class_get_exception_data): New accessor function.
2536         (mono_class_set_failure): Store exception_data in the property hash.
2537
2538         * class-internals.h (struct _MonoClass): Store 'exception_data' outside
2539         the struct as a property.
2540
2541         * loader.c (mono_get_method_full): Store the lookup result for method
2542         tokens in method_cache, the others in methodref_cache to decrease the memory
2543         usage of hash tables.
2544
2545         * image.c (mono_image_close): Destroy method_cache and methodref_cache.
2546         (mono_image_init): method_cache is lazy inited now.
2547
2548         * metadata-internals.h (struct _MonoImage): Change method_cache to
2549         a MonoValueHashTable, add a separate methodref_cache.
2550
2551 2008-05-27  Eyal Alaluf <eyala@mainsoft.com>
2552
2553         * number-formatter.h: Fix tables to avoid arithemtic overflow in
2554           Double.ToString as exposed by Bug #383531.
2555
2556 2008-05-26  Zoltan Varga  <vargaz@gmail.com>
2557
2558         * number-formatter.h: Make some tables static.
2559
2560         * class.c (mono_method_set_generic_container): New accessor function.
2561         (mono_method_get_generic_container): Ditto.
2562
2563         * class-internals.h (struct _MonoMethod): Remove rarely used 
2564         'generic_container' field, store it in the property hash instead. Add 
2565         'is_generic' boolean field instead.
2566
2567         * image.c (mono_image_init): Initialize property_hash.
2568         (mono_image_close): Destroy property_hash.
2569
2570         * metadata-internals.h (struct _MonoImage): Add 'property_hash' hash table to
2571         hold rarely used fields of runtime structures belonging to this image.
2572
2573         * class.c loader.c verify.c icall.c reflection.c: Use the new accessor functions
2574         to get/set method->generic_container.
2575
2576         * loader.c (mono_get_method_from_token): Avoid loading the method header for
2577         generic methods.
2578
2579 2008-05-25  Zoltan Varga  <vargaz@gmail.com>
2580
2581         * class.c (mono_class_inflate_generic_method_full): Don't increase
2582         mono_stats.inflated_method_count for methods found in the cache.
2583
2584         * threads.c (mono_thread_request_interruption): Add a comment about 
2585         QueueUserAPC ().
2586
2587 2008-05-24  Zoltan Varga  <vargaz@gmail.com>
2588
2589         * class.c (setup_interface_offsets): Use sizeof (guint16) when allocating the
2590         interface_offsets_packed table.
2591         
2592         * class.c (mono_class_init): Remove some dead code.
2593
2594         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Call
2595         mono_class_setup_vtable () when CAS is active to detect security problems.
2596
2597 2008-05-23 Rodrigo Kumpera  <rkumpera@novell.com>
2598
2599         * verify.c (mono_delegate_type_equal): Handle VAR, MVAR and GENERICINST.
2600
2601         * verify.c (mono_delegate_signature_equal): Don't compar number of generic
2602         parameters as it's irrelevant for delegate checking.
2603
2604 2008-05-23  Zoltan Varga  <vargaz@gmail.com>
2605
2606         * class-internals.h class.c: Correct the name of the 'mono_no_setup_vtable_in_class_init' variable.
2607
2608         * class.c (mono_class_init): Control the creation of a generic vtable using
2609         a global which is true by default, but set to false by the runtime startup code.
2610         
2611         * class.c (mono_class_init): Avoid constructing a generic vtable in most cases.
2612         Disabled for now since it breaks the embedding API.
2613         Move the setup of class->methods for arrays to mono_class_setup_methods ().
2614         (mono_class_setup_methods): Add a memory barrier.
2615
2616         * object.c (mono_class_create_runtime_vtable): Add code to handle the case
2617         when mono_class_init () doesn't compute the generic vtable.
2618         
2619 2008-05-23  Massimiliano Mantione  <massi@ximian.com>
2620         * profiler.c: Added mono_profiler_install_statistical_call_chain,
2621         mono_profiler_stat_get_call_chain_depth and mono_profiler_stat_call_chain
2622         to support call chains (backtrace) in the stat profiler.
2623         * profiler.c, profiler-private.h: Likewise.
2624
2625 2008-05-22  Mark Probst  <mark.probst@gmail.com>
2626
2627         * generic-sharing.c: Init generic class when a method of it is
2628         requested via a runtime generic context.
2629
2630 2008-05-22  Zoltan Varga  <vargaz@gmail.com>
2631
2632         * class.c (mono_class_init): Add a comment about trying to avoid calling this.
2633
2634         * reflection.c (mono_type_get_object): Add a FIXME.
2635
2636         * loader.c (find_method_in_class): Use mono_class_get_method_by_index ().
2637
2638         * class.c (mono_class_get_method_by_index): New helper function, returning an
2639         entry in the class->methods array.
2640
2641 2008-05-21  Zoltan Varga  <vargaz@gmail.com>
2642
2643         * class.c (mono_class_init): Only do the array optimization for szarrays. 
2644         Avoid creating a generic vtable for generic instances as well.
2645         (mono_class_get_method_from_name_flags): Don't search in the metadata for
2646         generic instances.
2647
2648 2008-05-21 Rodrigo Kumpera  <rkumpera@novell.com>
2649
2650         * loader.c (mono_get_method_constrained): Inflate the signature
2651         with class context. Fix #325283.
2652
2653 2008-05-21  Zoltan Varga  <vargaz@gmail.com>
2654
2655         * object.c (mono_class_create_runtime_vtable): Add a comment.
2656
2657         * class.c (get_implicit_generic_array_interfaces): Call mono_class_init ()
2658         where needed.
2659         (setup_interface_offsets): Handle the case when this is called twice for arrays.
2660         (mono_class_setup_vtable_general): Add an assert.
2661         (mono_class_init): Avoid creating a generic vtable for arrays.
2662
2663         * class.c (mono_generic_class_get_class): Don't call setup_interface_offsets ()
2664         here, let mono_class_init () do that.
2665
2666         * class.c (mono_class_init): Avoid calling mono_class_setup_methods () for
2667         interfaces in mscorlib.
2668
2669         * class.c (mono_class_setup_vtable): Avoid calling setup_methods () for
2670         interfaces. Add some comments.
2671         (mono_class_init): Call mono_class_setup_methods () here since it is no
2672         longer called by mono_class_setup_vtable ().
2673
2674         * object.c (mono_class_proxy_vtable): Null out entries in pvt->vtable which are
2675         not set in class->vtable.
2676         (mono_class_create_runtime_vtable): Reenable the disabled code.
2677
2678         * object.c (mono_class_create_runtime_vtable): Disable the last change for
2679         now as it causes some test failures.
2680
2681         * object.c (mono_class_create_runtime_vtable): Avoid creating a generic vtable
2682         if using the vtable trampoline. Also remove some strange code which put the
2683         generic methods themselves into the vtable slots. Remove the AOT init_vtable
2684         stuff as it is no longer needed.
2685
2686 2008-05-19 Rodrigo Kumpera  <rkumpera@novell.com>
2687
2688         * pedump.c: Give make --verify all option check code as well.
2689         Using --verify code won't check for metadata now.
2690
2691 2008-05-19  Martin Baulig  <martin@ximian.com>
2692
2693         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 70.
2694
2695         * mono-debug.c
2696         (_mono_debug_using_mono_debugger): New global variable; it's set
2697         directly by the debugger, so mono_debug_using_mono_debugger() also
2698         works after attaching.
2699
2700 2008-05-18 Rodrigo Kumpera  <rkumpera@novell.com>
2701
2702         * object.c (mono_class_create_runtime_vtable): Use memory barriers
2703         as we do double checked locking on MonoClass::runtime_info and
2704         MonoClassRuntimeInfo::domain_vtables.
2705
2706 2008-05-18  Zoltan Varga  <vargaz@gmail.com>
2707
2708         * debug-helpers.c (print_field_value): Fix a warning.
2709
2710 2008-05-16  Zoltan Varga  <vargaz@gmail.com>
2711
2712         * object.c (mono_object_get_virtual_method): Fix a crash if method->slot is not
2713         set in the AOT case.
2714
2715 2008-05-16 Rodrigo Kumpera  <rkumpera@novell.com>
2716
2717         * class.c (mono_class_setup_vtable_general): Use memory barriers
2718         as we do double checked locking on MonoClass::vtable.
2719
2720 2008-05-16 Rodrigo Kumpera  <rkumpera@novell.com>
2721
2722         * reflection.c (resolve_object): Inflate only if the generic context
2723         is not null. Fixes #389886.
2724
2725 2008-05-15  Jonathan Chambers  <joncham@gmail.com>
2726
2727         * metadata.c (emit_marshal_string): Free return strings using mono_marshal_free
2728         instead of g_free.
2729
2730         Code is contributed under MIT/X11 license.
2731
2732 2008-05-14 Rodrigo Kumpera  <rkumpera@novell.com>
2733
2734         * class.c: Revert unrelated change.
2735
2736 2008-05-14 Rodrigo Kumpera  <rkumpera@novell.com>
2737
2738         * verify.c (check_is_valid_type_for_field_ops): Type on stack can be
2739         a generic instantiation, use mono_class_from_mono_type instead of playing
2740         with MonoType directly.
2741
2742 2008-05-14 Rodrigo Kumpera  <rkumpera@novell.com>
2743
2744         * class.c: Added mono_class_has_parent_and_ignore_generics. Visibility
2745         checks must ignore generic instantiations, so mono_class_has_parent is not
2746         suitable. Fixes #390128.
2747
2748 2008-05-14  Zoltan Varga  <vargaz@gmail.com>
2749
2750         * reflection.c (mono_image_create_token): Add a 'register_token' argument, and use
2751         it to avoid registering tokens during metadata generation. Fixes #390023.
2752
2753 2008-05-14  Kornél Pál  <kornelpal@gmail.com>
2754
2755         * coree.c: Rename dwOldProtect to OldProtect that makes naming convention
2756         consistent.
2757
2758         Contributed under MIT/X11 license.
2759
2760 2008-05-14  Kornél Pál  <kornelpal@gmail.com>
2761
2762         * domain.c (mono_init_internal): Enable LoadLibrary support. Load EXE image
2763         even when get_runtimes_from_exe didn't load it that allows mono_fixup_exe_image
2764         to fixup the EXE image.
2765         (mono_cleanup): Use mono_close_exe_image.
2766         (mono_close_exe_image): New function.
2767         * image.c: Include "marshal.h".
2768         (mono_image_open_from_module_handle): Add ref_count argument. Return the image.
2769         (mono_image_open_full, mono_image_close): Fix LoadLibrary/FreeLibrary reference
2770         counting when the image is loaded outside of mono_image_open_full. Set status
2771         based on GetLastError.
2772         * coree.c: Include required headers. Add init_from_coree.
2773         (_CorDllMain): Support fix in mono_image_open_full, mono_image_close. Call
2774         mono_assembly_open only when the image has vtfixups. Set init_from_coree.
2775         (_CorExeMain): Set init_from_coree.
2776         (CorExitProcess): Only call ExitProcess for now.
2777         (CorBindToRuntimeEx): New stub implementation.
2778         (CorBindToRuntime): New function.
2779         (MonoFixupCorEE): Fixup CorBindToRuntime and CorBindToRuntimeEx.
2780         (MonoFixupExe): ILONLY executables require no fixups.
2781         (mono_set_act_ctx): New function to set activation context.
2782         (mono_load_coree): Use init_from_coree. Call mono_set_act_ctx.  
2783         * coree.h: Move STATUS_SUCCESS and STATUS_INVALID_IMAGE_FORMAT to header.
2784         Declare mono_module_handle, coree_module_handle, mono_get_module_file_name,
2785         mono_load_coree, mono_fixup_exe_image and mono_image_open_from_module_handle
2786         as MONO_INTERNAL.
2787         * domain-internals.h: Add mono_close_exe_image.
2788
2789         Contributed under MIT/X11 license.
2790
2791 2008-05-13 Rodrigo Kumpera  <rkumpera@novell.com>
2792
2793         * metadata.c (mono_metadata_compute_size): Correctly calculate field
2794         size for generic param and event tables. Fixes #388977.
2795
2796 2008-05-13  Zoltan Varga  <vargaz@gmail.com>
2797
2798         * loader.c (mono_method_signature): Use memory barriers because of the double
2799         checked locking pattern.
2800
2801         * threads.c (remove_and_abort_threads): Stop and wait for threads which are
2802         aborting or aborted as well. Fixes #376391.
2803         
2804         * threads.c (mono_thread_execute_interruption): Avoid depending on no longer
2805         existing runtime state in the Suspend handler during shutdown.
2806
2807 2008-05-12  Zoltan Varga  <vargaz@gmail.com>
2808
2809         * threads.c (mono_thread_request_interruption): Add some FIXMEs.
2810
2811         * threads.c (mono_thread_suspend_all_other_threads): Add support for threads 
2812         which are starting up or shutting down.
2813
2814         * threads.c (mono_threads_set_shutting_down): Don't return a value since
2815         this function never returns if the runtime is already shutting down.
2816
2817         * icall.c (ves_icall_System_Environment_Exit): Update after 
2818         mono_threads_set_shutting_down () signature change.
2819         
2820 2008-05-09 Rodrigo Kumpera  <rkumpera@novell.com>
2821
2822         * class.c: Added can_access_instantiation to verify if the instantiation
2823         is visible. Fix access check for nested types as they returned TRUE
2824         before doing type and generic instantiation visibility checks.
2825
2826 2008-05-08 Rodrigo Kumpera  <rkumpera@novell.com>
2827
2828         * reflection.c (mono_reflection_create_generic_class): The created type
2829         must have a different container from its TypeBuilder. Otherwise they
2830         will end sharing generic arguments, which is wrong.
2831
2832         Due to the sharing, making a generic instance of the created type using
2833         the TypeBuider generic arguments resulted in the generic type definition
2834         been returned, which is wrong as well.
2835
2836         As a bonus the code was leaking the type_params array. This memory should
2837         be allocated from the image mempool.
2838
2839         This fixes bug #354047.
2840
2841 2008-05-08 Rodrigo Kumpera  <rkumpera@novell.com>
2842
2843         * metadata-internals.h: Move MONO_SECMAN_FLAG macros from mini/declsec.h
2844         to here         as they are now used in assembly.c new code.
2845         Added a skipverification flag to MonoAssembly.
2846         New internal function mono_assembly_has_skip_verification.
2847
2848         * assembly.c: New function mono_assembly_has_skip_verification. It checks
2849         if an assembly has a version 2.0 SkipVerification security attribute. Fixes
2850         part of #387274.
2851
2852 2008-05-07  Zoltan Varga  <vargaz@gmail.com>
2853
2854         * object.c (mono_object_get_virtual_method): Inflate the resulting method if
2855         needed. Fixes #387034.
2856
2857         * class.c (mono_class_inflate_generic_type): Avoid a crash if context is NULL.
2858
2859 2008-05-06  Miguel de Icaza  <miguel@novell.com>
2860
2861         * assembly.c (mono_assembly_load_reference): Prevent crash while
2862         disassembling Silverlight 2.0 executables while we still do not
2863         have GACed libraries.
2864
2865 2008-05-07  Zoltan Varga  <vargaz@gmail.com>
2866
2867         * reflection.c: Special case generic type definitions as well. Fixes #383444.
2868
2869 2008-05-06  Zoltan Varga  <vargaz@gmail.com>
2870
2871         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Fix handling
2872         of the dynamic case. Fixes #387404.
2873
2874 2008-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
2875
2876         *verify.c (mono_verifier_is_class_full_trust): If under
2877         verify_all and the verifier mode was not set, only
2878         gac and corlib types are fulltrust. This makes --verify-all
2879         usable to detect unverifiable code, which is the expected
2880         use case.
2881
2882 2008-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
2883
2884         * verify.h: Ops, commited the header with debug
2885         enabled.
2886
2887 2008-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
2888
2889         * verify.c (merge_stack): Use the new value on unverifiable
2890         stack merges.
2891
2892         * verify.c (verify_type_compatibility_full): Comparison
2893         of nullable types can't use mono_class_is_assignable_from.
2894
2895         * verify.c, verify.h: Added MONO_VERIFY_REPORT_ALL_ERRORS
2896         that makes all verification errors be reported.
2897
2898         * pedump.c: Pass MONO_VERIFY_REPORT_ALL_ERRORS to
2899         mono_method_verify.
2900
2901 2008-05-05  Robert Jordan  <robertj@gmx.net>
2902
2903         * marshal.c (mono_marshal_get_thunk_invoke_wrapper):
2904         support for value types. See #386415.
2905
2906         * object.c: comments.
2907
2908         Code is contributed under MIT/X11 license.
2909
2910 2008-05-05  Martin Baulig  <martin@ximian.com>
2911
2912         * debug-mono-symfile.h
2913         (MONO_SYMBOL_FILE_COMPATIBILITY_VERSION): Removed; dropped support
2914         for old pre-terrania symbol files.
2915
2916 2008-05-05  Andreas Färber  <andreas.faerber@web.de>
2917
2918         * mono-config.c: Add ppc64 architecture.
2919
2920         Code is contributed under MIT/X11 license.
2921
2922 2008-05-05  Andreas Färber  <andreas.faerber@web.de>
2923
2924         * object.c (mono_create_ftnptr, mono_get_addr_from_ftnptr):
2925           PPC64 uses function descriptors as well.
2926
2927         Code is contributed under MIT/X11 license.
2928
2929 2008-05-04  Zoltan Varga  <vargaz@gmail.com>
2930
2931         * object.c (compute_class_bitmap): Ignore literal static fields.
2932
2933         * sgen-gc.c (mono_gc_base_init): Print some help when the MONO_GC_DEBUG env
2934         var has an invalid format.
2935         (describe_ptr): Add some sanity checks for the vtable.
2936         (add_nursery_frag): Clear unused nursery fragments.
2937         (major_collection): Clear all remaining nursery fragments.
2938
2939 2008-05-03  Robert Jordan  <robertj@gmx.net>
2940
2941         * image.c, metadata-internals.h: add thunk_invoke_cache.
2942
2943         * marshal.c, marshal.h: implement
2944         mono_marshal_get_thunk_invoke_wrapper ().
2945
2946         * object.c, object.h: implement mono_method_get_unmanaged_thunk ().
2947
2948         Code is contributed under MIT/X11 license.
2949
2950 2008-05-02 Rodrigo Kumpera  <rkumpera@novell.com>
2951
2952         * verify.c (do_leave): Empty the stack.
2953
2954 2008-05-02 Rodrigo Kumpera  <rkumpera@novell.com>
2955
2956         * class.c (mono_class_is_assignable_from): Variance
2957         doesn't work between reference and value types. For example,
2958         given type C<T+>, C<int32> is not assignable to C<object>.
2959         Break the argument checking loop on first error. 
2960
2961 2008-05-02  Atsushi Enomoto  <atsushi@ximian.com>
2962
2963         * icall.c : base64_to_byte_array() needs some more strict
2964           check for sequence of '=' characters. Patch by Santa
2965           Marta (http://deee.g.hatena.ne.jp/santamarta).
2966
2967           Contributed under MIT/X11 license.
2968           (see http://www.lingr.com/room/mono-jp/archives/2008/04/20)
2969
2970 2008-05-02  Jonathan Chambers  <joncham@gmail.com>
2971
2972         * domain.c: Disable LoadLibrary support to fix Win32 build.
2973
2974         Code is contributed under MIT/X11 license.
2975
2976 2008-05-02  Zoltan Varga  <vargaz@gmail.com>
2977
2978         * sgen-gc.c: Add support for clearing nursery memory when a tlab is allocated,
2979         to help with cache behaviour.
2980
2981 2008-05-01  Miguel de Icaza  <miguel@novell.com>
2982
2983         * appdomain.c (mono_domain_from_appdomain): Add new accessor
2984         method. 
2985
2986 2008-05-01  Zoltan Varga  <vargaz@gmail.com>
2987
2988         * sgen-gc.c: Implement thread-local allocation and a managed allocation routine.
2989
2990 2008-05-01  Dick Porter  <dick@ximian.com>
2991
2992         * process.c (process_get_fileversion): Only pass 16 bits of
2993         language ID to VerLanguageName.  Fixes bug 381204.
2994
2995 2008-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
2996
2997         * verify.c (mono_method_verify): Fix the comparison
2998         operator for code bounds check.
2999
3000 2008-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
3001
3002         * verify.c (mono_method_verify): Check the bounds of
3003         all access of the code array.
3004
3005 2008-04-29  Kornél Pál  <kornelpal@gmail.com>
3006
3007         * appdomain.c: Use HAVE_SYS_UTIME_H that fixes MSVC build.
3008
3009 2008-04-28  Zoltan Varga  <vargaz@gmail.com>
3010
3011         * image.c (mono_image_strong_name_position): Fix return value when the rva is
3012         not valid.
3013
3014 2008-04-28  Kornél Pál  <kornelpal@gmail.com>
3015
3016         * loader.c (mono_get_method_from_token, mono_method_signature): Add
3017         support for METHOD_IMPL_ATTRIBUTE_NATIVE.
3018         * domain.c (mono_init_internal): Load and fixup mscoree.dll on startup and
3019         fixup main EXE images when using mono.exe for mixed-mode assembly support.
3020         * domain-internals.h: Add MonoLoadFunc, mono_install_runtime_load and
3021         mono_runtime_load.
3022         * appdomain.c: Add mono_install_runtime_load, mono_runtime_load to support
3023         runtime initialization from metadata.
3024         * assembly.c: Remove obsolete ceGetModuleFileNameA.
3025         (mono_set_rootdir): Use mono_get_module_file_name.
3026         (mono_assembly_load_from_full): Call mono_image_fixup_vtable for module
3027         handles.
3028         * cil-coff.h: Add MonoVTableFixup. Update mono_cli_rva_image_map signature.
3029         * metadata-internals.h: Add is_module_handle to _MonoImage on Windows.
3030         * image.c (mono_cli_rva_image_map): Use MonoImage instead of
3031         MonoCLIImageInfo. Add support for module handles.
3032         (load_cli_header): Update mono_cli_rva_image_map signature.
3033         (load_metadata_ptrs): Update mono_cli_rva_image_map signature.
3034         (mono_image_strong_name_position): Use mono_cli_rva_image_map.
3035         (mono_image_rva_map): Add support for module handles.
3036         (mono_image_ensure_section_idx): Add support for module handles.
3037         (mono_image_close): Add support for module handles.
3038         (do_load_header): Add support for module handles.
3039         (mono_image_open_from_module_handle): New function for internal use.
3040         (mono_image_open_full): Load normal images using LoadLibrary on Windows.
3041         (mono_image_load_module): Call mono_image_fixup_vtable for module handles.
3042         (mono_image_load_file_for_image): Call mono_image_fixup_vtable for module
3043         handles.
3044         (mono_image_fixup_vtable): New function for mixed-mode assembly support.
3045         * image.h: Add mono_image_fixup_vtable.
3046         * coree.c: New file for mscoree.dll functions and mixed-mode assembly
3047         support.
3048         * coree.h: New file.
3049         * marshal.c (mono_marshal_get_native_wrapper): Throw exception for
3050         unsupported native code.
3051         (mono_marshal_set_callconv_from_modopt): New function splitted from
3052         mono_marshal_get_managed_wrapper.
3053         (mono_marshal_get_managed_wrapper): Use
3054         mono_marshal_set_callconv_from_modopt.
3055         (mono_marshal_get_vtfixup_ftnptr): New function for mixed-mode assembly support.
3056         * marshal.h: Add mono_marshal_get_vtfixup_ftnptr.
3057         * gc.c (mono_gc_init): Don't wait for the finalizer thread on Windows because
3058         that results in a deadlock when the runtime is loaded in _CorDllMain.
3059         * Makefile.am: Add coree.c and coree.h.
3060
3061         Contributed under MIT/X11 license.
3062
3063 2008-04-28  Mark Probst  <mark.probst@gmail.com>
3064
3065         * generic-sharing.c: Search for type arguments in array element
3066         types as well.
3067
3068 2008-04-28  Mark Probst  <mark.probst@gmail.com>
3069
3070         * class-internals.h, generic-sharing.c: New, small runtime generic context.
3071
3072         * metadata-internals.h, domain.c, image.c: Less bookkeeping is required for the new RGCTX.
3073
3074         * object.c: Don't setup the RGCTX when the vtable is created,
3075         because we're setting it up lazily now.
3076
3077 2008-04-26  Zoltan Varga  <vargaz@gmail.com>
3078
3079         * sgen-gc.c: Make the 'desc' variables an mword instead of a guint32 to fix 
3080         64 bit support.
3081
3082 2008-04-24 Rodrigo Kumpera  <rkumpera@novell.com>
3083
3084         * verify.c (verify_class_for_overlapping_reference_fields): 
3085         If class is under fulltrust allow reference types to overllap
3086         if they have the same RVA.
3087
3088 2008-04-24 Rodrigo Kumpera  <rkumpera@novell.com>
3089
3090         * pedump.c: Added new flag valid-only, that makes the verifier
3091         behaves just like --security=validil. It won't fail type load
3092         due to unverifiable restrictions.
3093
3094 2008-04-23 Rodrigo Kumpera  <rkumpera@novell.com>
3095
3096         * class-internals.h (struct MonoMethod): Added a verification_success
3097         field to cache verifier executions. Reduced MonoMethod:slot size by
3098         one bit.
3099
3100 2008-04-23  Zoltan Varga  <vargaz@gmail.com>
3101
3102         * sgen-gc.c (OBJ_RUN_LEN_SIZE): Make this and other macros take a 'desc' argument
3103         instead of a 'vt' argument to save an indirection and to allow these to be used
3104         for valuetypes.
3105         (scan_vtype): New helper function to scan an area using a gc descriptor.
3106         (mono_gc_wbarrier_value_copy): Implement this.
3107         (handle_remset): Add support for REMSET_VTYPE.
3108         (find_in_remset_loc): Ditto.
3109         (mono_gc_base_init): Allow some debugging options to be controlled through the
3110         use of the MONO_GC_DEBUG env variable.
3111         (mono_gc_alloc_obj): Add support the 'collect-before-allocs' debug option.
3112         (collect_nursery): Add support for the 'check-at-minor-collection' debug option.
3113
3114 2008-04-23  Martin Baulig  <martin@ximian.com>
3115
3116         * domain.c (mono_domain_create): Move the call to
3117         mono_debug_domain_create() down, after allocating the domain id.
3118
3119 2008-04-23 Rodrigo Kumpera  <rkumpera@novell.com>
3120
3121         verify.c (verify_class_for_overlapping_reference_fields): Skip
3122         static fields while verifying for overlapping fields as they
3123         don't matter at all.
3124
3125 2008-04-23  Marek Habersack  <mhabersack@novell.com>
3126
3127         * domain-internals.h: added a declaration of
3128         mono_make_shadow_copy.
3129
3130         * assembly.c (mono_assembly_open_full): shadow copying of
3131         assemblies moved to here, so that all the assemblies within the
3132         application domain's private binary directories can be
3133         processed. Fixes bug #380546
3134
3135         * appdomain.c (mono_make_shadow_copy): make_shadow_copy renamed to
3136         mono_make_shadow_copy and made non-static. The decision whether
3137         to shadow-copy an assembly is made based on its location - it's
3138         copied if it's in one of the private application domain binary
3139         directories and its different to the target file in the shadow
3140         directory. Fixes bug #380546
3141
3142 2008-04-22  Zoltan Varga  <vargaz@gmail.com>
3143
3144         * reflection.c (fixup_method): Handle {Method|Constructor}OnTypeBuilderInst.
3145
3146         * object-internals.h: Add MonoReflection{Method|Constructor}OnTypeBuilderInst
3147         types.
3148
3149         * reflection.c (mono_image_create_token): Handle 
3150         Method/ConstructorOnTypeBuilderInst.
3151         (resolve_object): Ditto.
3152         (inflate_mono_method): Receive the inflated class instead of a MonoGenericClass
3153         so it can be called from resolve_object. Also handle the case when the inflated
3154         class already has its methods setup.
3155
3156 2008-04-21  Martin Baulig  <martin@ximian.com>
3157
3158         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 69.
3159
3160 2008-04-20  Geoff Norton  <gnorton@novell.com>
3161
3162         * icall.c: Fix the _NSGetEnviron define to prevent an impropoer
3163         pointer dereference.
3164
3165 2008-04-15  Marek Habersack  <mhabersack@novell.com>
3166
3167         * appdomain.c (try_load_from): if IOMAP is in effect, call the
3168         portability API to look up the assembly file. Fixes behavior in
3169         situations when the application has a bin/ directory, but the
3170         assembly search patch refers to Bin/ (and thus the requested file
3171         name is Bin/SomeLibrary.dll). Fixes bug #379888
3172
3173 2008-04-15 Rodrigo Kumpera  <rkumpera@novell.com>
3174
3175         verify.c (mono_type_is_generic_argument): Extracted this check
3176         from a dozen places to here.
3177
3178         verify.c: Fixed all issues related to boxing generic arguments
3179         and their constraints.
3180
3181 2008-04-14 Rodrigo Kumpera  <rkumpera@novell.com>
3182
3183         verify.c (mono_class_interface_implements_interface): Fix win32 build.
3184
3185 2008-04-14  Zoltan Varga  <vargaz@gmail.com>
3186
3187         * reflection.c (mono_custom_attrs_construct): Fix crash when the cattr type
3188         isn't finished yet. Fixes #363447.
3189
3190 2008-04-13  Zoltan Varga  <vargaz@gmail.com>
3191
3192         * class.c (mono_bounded_array_class_get): Fix the name of bounded array types.
3193         Fixes #346419.
3194
3195 2008-04-13  Jb Evain  <jbevain@novell.com>
3196
3197         * domain.c: update the 2.1 profile versions.
3198         Merged from the Moonlight 2 branch.
3199
3200 2008-04-12  Zoltan Varga  <vargaz@gmail.com>
3201
3202         * assembly.c (mono_assembly_load_from_full): Do the check for loading other
3203         mscorlibs for the non-refonly case as well.
3204
3205         * image.c (do_mono_image_load): Remove the mscorlib check, it is already done
3206         in mono_assembly_load_from_full (). Fixes #378924.
3207
3208 2008-04-11  Geoff Norton  <gnorton@novell.com>
3209
3210         * icall.c: The global extern environ doesn't exist on Mac.  We
3211         need to call NSGetEnviron instead.
3212
3213 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
3214
3215         verify.c: Add generic method constraint verification.
3216
3217 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
3218
3219         class.c (mono_class_inflate_generic_method_full): Add a long
3220         explanation to the is_mb_open hack. Remove the FIXME.
3221
3222 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
3223
3224         * verify.c (mono_method_verify): Mark all unknown opcodes
3225         as invalid. Mark jmp as unverifiable.
3226
3227 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
3228
3229         * verify.c: Add code to do type constraint verification on class instances.
3230
3231         * verify.c (mono_verifier_verify_class): Use the type constraint 
3232         verification code.
3233
3234 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
3235
3236         * class.c (mono_class_get_field_default_value): Don't pass cindex
3237         as hint to mono_metadata_get_constant_index. The local is not initialized
3238         and should contain garbage most of the time. This could only work
3239         with a lot of luck.
3240
3241 2008-04-09 Rodrigo Kumpera  <rkumpera@novell.com>
3242
3243         * tokentype.h: Add MONO_TOKEN_GENERIC_PARAM.
3244
3245 2008-04-09 Rodrigo Kumpera  <rkumpera@novell.com>
3246
3247         * class-internals.h: Add generic_param_token to MonoClass::sizes union.
3248
3249         * class.c (mono_class_from_generic_parameter): Save the token of the
3250         generic param in MonoClass::sizes.generic_param_token.
3251
3252         * reflection.c (mono_custom_attrs_from_class): If the class type is
3253         VAR or MVAR retrieve the attributes of the generic param.
3254
3255 2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
3256
3257         * class.c (mono_class_init): Do class verification if the verifier
3258         is enabled.
3259
3260 2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
3261
3262         * verify-internal.h: Added mono_verifier_verify_class.
3263
3264         * verify.c: Added mono_verifier_verify_class. It checks for
3265         classes with explicit layout that have overlapping reference fields.
3266
3267         * pedump.c: Init the verifier state prior to verification. Fixed
3268         command line arguments.
3269
3270 2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
3271
3272         * Makefile.am: Added verify-internals.h, hopefully fix the build.
3273
3274 2008-04-08  Zoltan Varga  <vargaz@gmail.com>
3275
3276         * verify-internals.h: Fix a warning.
3277
3278 2008-04-07 Rodrigo Kumpera  <rkumpera@novell.com>
3279
3280         * verify-internals.h: New header with the verifier configuration
3281         extracted from mini.c.
3282
3283         * verify.c: Implemented the new functions exported by verify-internals.h.
3284
3285 2008-04-07 Rodrigo Kumpera  <rkumpera@novell.com>
3286
3287         * verify.c: Add proper verification of ckfinite.
3288
3289 2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
3290
3291         * verify.c (do_conversion): Improved error message to something
3292         more meanfull.
3293
3294         * verify.c (check_is_valid_type_for_field_ops): Fix to work
3295         with primitive types.
3296
3297 2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
3298
3299         * verify.c: Added tail prefix checking. Marked icall
3300         as unverifible.
3301
3302 2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
3303
3304         * verify.c: Fix the detection of branches to the middle
3305         of an instruction.
3306
3307 2008-04-03 Rodrigo Kumpera  <rkumpera@novell.com>
3308
3309         * verify.c: Implemented verification of volatile. and
3310         unaligned. prefix. Check if a type is valid after retrieving it.
3311
3312 2008-04-01  Dick Porter  <dick@ximian.com>
3313
3314         * process.c (process_get_fileversion): If there's no string block,
3315         set the file language to en_US.  Fixes the other new part of bug
3316         374600.
3317
3318 2008-03-29 Rodrigo Kumpera  <rkumpera@novell.com>
3319
3320         * class.c: New functions mono_method_can_access_field_full and
3321         mono_method_can_access_method_full. They perform type visibility
3322         and type site check.
3323
3324         * class-internal.h: Added exported functions.
3325
3326         * verify.c: Use new functions to implement proper visibility checks.
3327
3328 2008-03-29  Zoltan Varga  <vargaz@gmail.com>
3329
3330         * mono-config.h: Add missing G_BEGIN_DECLS/G_END_DECLS. Fixes #375188.
3331
3332 2008-03-28  Dick Porter  <dick@ximian.com>
3333
3334         * process.c (process_get_fileversion): Use the first language ID
3335         we see, rather than insisting on an invariant language.  Fixes bug
3336         374600.
3337
3338 2008-03-28  Zoltan Varga  <vargaz@gmail.com>
3339
3340         * reflection.c (calc_section_size): Use add_stream_zero to align the size of
3341         the streams to fix reading of invalid memory later.
3342
3343         * metadata.h (MonoType): Use 'MonoTypeEnum' instead of int for the 'type' field
3344         to ease debugging.
3345
3346 2008-03-26  Zoltan Varga  <vargaz@gmail.com>
3347
3348         * marshal.c (signature_dup): Use mono_metadata_signature_alloc ().
3349         (cominterop_method_signature): Ditto. Fix the size passed to memcpy.
3350
3351 2008-03-26  Massimiliano Mantione  <massi@ximian.com>
3352         * threads.h: Added MonoThreadManageCallback type and
3353         mono_thread_set_manage_callback prototype
3354         * object-internals.h: In _MonoThread, renamed unused6 to manage_callback
3355         (used to store the mono_thread_manage callback).
3356         * threads.c: Added mono_thread_set_manage_callback, and handle
3357         "MonoThread->manage_callback" in build_wait_tids.
3358
3359 2008-03-26  Dick Porter  <dick@ximian.com>
3360
3361         * process.c (process_get_fileversion): Set FileVersionInfo strings
3362         to Empty when the resource doesn't have the particular info.
3363         Fixes bug 355717.
3364
3365 2008-03-25 Rodrigo Kumpera  <rkumpera@novell.com>
3366
3367         * verify.c (mono_method_verify): Proper prefix validation.
3368
3369 2008-03-25  Zoltan Varga  <vargaz@gmail.com>
3370
3371         * icall.c (ves_icall_InternalInvoke): Return exceptions thrown by the icall
3372         itself in a separate argument instead of throwing them. Fixes #373448.
3373
3374         * appdomain.c: Bump corlib version.
3375
3376 2008-03-24 Rodrigo Kumpera  <rkumpera@novell.com>
3377
3378         * verify.c: Implemented readonly prefix and verify controled mutability pointers.
3379
3380 2008-03-20  Kornél Pál  <kornelpal@gmail.com>
3381
3382         * file-io.c, filewatcher.c, threadpool.c, threads.c: Removed Windows
3383         version macros.
3384
3385 2008-03-20  Mark Probst  <mark.probst@gmail.com>
3386
3387         * generic-sharing.c, class-internals.h: Code for putting
3388         reflection types into the runtime generic context.
3389
3390 2008-03-19 Rodrigo Kumpera  <rkumpera@novell.com>
3391
3392         * icall.c (ves_icall_get_method_info): Return correct values for the call convention.
3393         Fixes #340662. 
3394
3395
3396 2008-03-17 Rodrigo Kumpera  <rkumpera@novell.com>
3397
3398         * verify.c (VerifyContext): Added instruction prefix data to the struct.
3399
3400         * verify.c (is_compatible_boxed_valuetype): Don't check if the type is a valuetype, been boxed is enough.
3401
3402         * verify.c (do_invoke): Support constrained callvirt form. Grouped similar checks together.
3403
3404         * verify.c (do_cast): Let the result value keep the boxed status.
3405
3406         * verify.c (mono_method_verify): Add proper support for prefixed and implement contrained.
3407
3408 2008-03-17  Jb Evain  <jbevain@novell.com>
3409
3410         * reflection.c: when running on a 2.0 runtime, emit
3411         unconditionally the #~ header version as 2.0, and the
3412         CLI header version as 2.5, for symmetry's sake with csc.
3413
3414 2008-03-16  Zoltan Varga  <vargaz@gmail.com>
3415
3416         * class.c: Remove the unused cache_interface_offsets stuff.
3417
3418         * class.c loader.c domain.c verify.c metadata.c debug-helpers.c threadpool.c
3419         profiler.c: Fix warnings.
3420
3421 2008-03-16  Mark Probst  <mark.probst@gmail.com>
3422
3423         * generic-sharing.c, class-internals.h: Support for putting
3424         methods into the runtime generic context.
3425
3426 2008-03-16  Zoltan Varga  <vargaz@gmail.com>
3427
3428         * class.c (mono_class_setup_fields): Ignore calls made to this function for
3429         classes which are generic instances of not-yet finished typebuilders. Fixes
3430         #351172.
3431
3432         * reflection.c (fixup_method): Add support for FieldOnTypeBuilderInst.
3433
3434 2008-03-15  Zoltan Varga  <vargaz@gmail.com>
3435
3436         * metadata-internals.h (MonoDynamicImage): Add 'generic_def_objects' hash table.
3437
3438         * class-internals.h (MonoMethodInflated): Remove the rarely used reflection_info
3439         field, replace it with a hash table in MonoDynamicImage.
3440
3441         * reflection.c (inflate_mono_method): Access the generic definition object from
3442         image->generic_def_objects instead of imethod->reflection_info.
3443
3444         * reflection.c (mono_reflection_bind_generic_method_parameters): Ditto. 
3445
3446         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition): Ditto.
3447         
3448         * image.c (mono_image_close): Move the dynamic image freeing code to a separate
3449         function in reflection.c so it is easier to keep in sync with the dynamic image
3450         creation code.
3451
3452         * reflection.c (mono_dynamic_image_free): New internal function, extracted from
3453         mono_image_close ().
3454
3455 2008-03-15  Mark Probst  <mark.probst@gmail.com>
3456
3457         * class.c (mono_class_generic_sharing_enabled): Disable generic
3458         sharing for all architectures except AMD64 and x86 to fix build.
3459
3460 2008-03-14 Rodrigo Kumpera  <rkumpera@novell.com>
3461
3462         * verify.c: Use the generic definition MonoGenericContext when available.
3463         Remove code for checking generics instance compatibility in favor of
3464         mono_class_is_assignable_from.
3465
3466 2008-03-14  Mark Probst  <mark.probst@gmail.com>
3467
3468         * marshal.c, marshal.h, metadata-internals.h, image.c,
3469         wrapper-types.h: New wrapper for invoking a shared static method
3470         without having to pass the runtime generic context argument.
3471
3472 2008-03-14 Rodrigo Kumpera  <rkumpera@novell.com>
3473
3474         * icall-def.h: Add missing function PerformanceCounterCategory::GetInstanceNames.
3475
3476 2008-03-14  Zoltan Varga  <vargaz@gmail.com>
3477
3478         * reflection.c (mono_image_get_field_on_inst_token): Add caching.
3479         
3480         * reflection.c (mono_image_get_field_on_inst_token): New helper function to
3481         create a token from a FieldOnTypeBuilderInst.
3482         (mono_image_create_token): Handle FieldOnTypeBuilderInst.
3483         (resolve_object): Ditto.
3484
3485         * object-internals.h (MonoReflectionFieldOnTypeBuilderInst): New structure
3486         mirroring System.Reflection.Emit.FieldOnTypeBuilderInst.
3487
3488 2008-03-14  Martin Baulig  <martin@ximian.com>
3489
3490         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 68.
3491
3492         * debug-mono-symfile.h
3493         (MONO_SYMBOL_FILE_VERSION): Bump to 41.
3494         (MONO_SYMBOL_FILE_COMPATIBILITY_VERSION): New #define.
3495
3496 2008-03-10  Martin Baulig  <martin@ximian.com>
3497
3498         * debug-mono-symfile.h
3499         (MonoSymbolFileMethodAddress): Removed `num_lexical_blocks' and
3500         `lexical_block_table_offset'.
3501         (MonoDebugMethodInfo): Removed `num_lexical_blocks' and
3502         `lexical_blocks'.
3503         (MonoSymbolFile): Added `version'.
3504
3505         * mono-debug.h
3506         (MonoDebugLexicalBlockEntry): Removed.
3507         (MonoDebugMethodJitInfo): Removed `num_lexical_blocks' and
3508         `lexical_blocks'.
3509
3510         * mono-debug.c (mono_debug_add_method): Don't compute lexical
3511         blocks here; the debugger now does this internally.
3512
3513 2008-02-27  Martin Baulig  <martin@ximian.com>
3514
3515         * object.c (mono_runtime_exec_main): Call
3516         `mono_debugger_event (MONO_DEBUGGER_EVENT_REACHED_MAIN)' and
3517         `mono_debugger_event (MONO_DEBUGGER_EVENT_MAIN_EXITED)' here.
3518
3519 2008-03-12 Rodrigo Kumpera  <rkumpera@novell.com>
3520
3521         * verify.c (verify_type_compatibility_full): Allow native int to be converted
3522         to native pointer in non-strict mode. Required to "(IntPtr)null" work.
3523
3524 2008-03-12 Rodrigo Kumpera  <rkumpera@novell.com>
3525
3526         * verify.c (verify_ldftn_delegate): Accept a sealed type when using
3527         ldftn with a virtual method.
3528
3529 2008-03-13  Geoff Norton  <gnorton@novell.com>
3530
3531         * decimal.c:  Only include memory.h if the platform has it.
3532
3533 Wed Mar 12 12:11:06 CET 2008 Paolo Molaro <lupus@ximian.com>
3534
3535         * assembly.c, class.c, metadata-internals.h: make sure public key
3536         tokesns are compared in a case-insensitive way. Also, all
3537         the lookups in the GAC use a lowercase public key token
3538         (gaacutil already does the lowercasing on install). Fixes
3539         bug #369541.
3540
3541 2008-03-11 Rodrigo Kumpera  <rkumpera@novell.com>
3542
3543         * verify.c (mono_delegate_signature_equal): Do proper variance check on arguments
3544         and return value.
3545
3546 Tue Mar 11 17:41:38 CET 2008 Paolo Molaro <lupus@ximian.com>
3547
3548         * image.c: when someone loads a mscorlib from a file, return the
3549         currently loaded mscorlib (fixes bug #369253).
3550
3551 Tue Mar 11 16:47:32 CET 2008 Paolo Molaro <lupus@ximian.com>
3552
3553         * class.c: handle types with no parents by forcing them to have
3554         System.Object as a parent and marking them as broken (this currently
3555         allows the first part of bug #369173 to work as well, likely because
3556         we don't check for typeload exceptions everywhere yet).
3557
3558 Tue Mar 11 15:23:54 CET 2008 Paolo Molaro <lupus@ximian.com>
3559
3560         * class.c: more complete check that types belong to corlib
3561         (fixes second part of bug #369173).
3562
3563 2007-03-10  Bill Holmes  <billholmes54@gmail.com>
3564
3565         * generic-sharing.c:  Including glib.h for the MSVC builds to define
3566           "inline" to "__inline" before including mono-membar.h.
3567           
3568         * mono-perfcounters.c:  Adding HAVE_SYS_TIME_H check for MSVC builds.
3569           Rename "Unknown" to "CatTypeUnknown" to avoid name collisions for 
3570           MSVC builds.
3571
3572         Contributed under MIT/X11 license.
3573
3574 2008-03-10 Rodrigo Kumpera  <rkumpera@novell.com>
3575
3576         * verify.c (do_invoke_method): Remove return type validation.
3577
3578         * verify.c (do_ret): Do return type validation at return site instead of
3579         call site.
3580
3581 2008-03-10 Rodrigo Kumpera  <rkumpera@novell.com>
3582
3583         * verify.c (do_invoke_method): Mark callvirt to static methods unverifiable.
3584
3585         * verify.c: Some todos cleaned and improved a few error messages.
3586
3587 2008-03-08  Zoltan Varga  <vargaz@gmail.com>
3588
3589         * class.c (mono_class_setup_mono_type): Improve the test for corlib.
3590
3591 2008-03-07  Zoltan Varga  <vargaz@gmail.com>
3592
3593         * class.c (mono_class_setup_mono_type): Handle types whose name clashes with
3594         system types correctly.
3595
3596         * exception.h exception.c (mono_exception_from_token_two_strings): New helper
3597         function.
3598
3599 2008-03-06  Zoltan Varga  <vargaz@gmail.com>
3600
3601         * assembly.c (build_assembly_name): Fix a warning.
3602
3603 Thu Mar 6 19:43:41 CET 2008 Paolo Molaro <lupus@ximian.com>
3604
3605         * marshal.c: ldfld_remote and stfld_remote needs just one wrapper as
3606         the called function takes an object type argument. Fixes storing or
3607         valuetypes across remoting as well as reducing memory usage.
3608         * image.c, metadata-internals.h: remove now unused ldfld_remote and
3609         stfld_remote wrapper caches.
3610
3611 2008-03-06  Zoltan Varga  <vargaz@gmail.com>
3612
3613         * icall.c (mono_lookup_internal_call): Update the exception message when an icall
3614         is not found.
3615
3616         * reflection.c (mono_image_register_token): New helper function to save
3617         a token->object mapping.        
3618
3619         * icall.c (ves_icall_ModuleBuilder_RegisterToken): New icall to access it from
3620         managed code.
3621
3622         * reflection.c (_mono_reflection_parse_type): Distinguish between vectors and
3623         one dimension arrays. Fixes #367670.
3624         (mono_reflection_get_type_internal): Ditto.
3625
3626 Tue Mar 4 19:04:02 CET 2008 Paolo Molaro <lupus@ximian.com>
3627
3628         * marshal.c: mono_load_remote_field_new() always returns object.
3629         so use the proper signature (fixes bug #366445).
3630
3631 2008-03-04  Zoltan Varga  <vargaz@gmail.com>
3632         
3633         * class-internals.h (MonoMethod): Remove unused uses_this flag, 
3634         add an 'inline_failure' flag instead.
3635
3636 2008-03-04  Mark Probst  <mark.probst@gmail.com>
3637
3638         * domain-internals.h, domain.c: Replaced MonoGenericSharingContext
3639         with a new structure, MonoGenericJitInfo, in the MonoJitInfo.  It
3640         contains the location of "this", used for exception handling.
3641
3642 2008-03-04  Zoltan Varga  <vargaz@gmail.com>
3643
3644         * class.c (mono_class_layout_fields): Set the min alignment of small structs to
3645         their size on all platforms for perf reasons.
3646
3647 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
3648
3649         * reflection.h: Move mono_reflection_is_valid_dynamic_token to
3650         object-internal.h
3651
3652         * object-internal.h: Same.
3653
3654 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
3655
3656         * reflection.h: Fix the build I just broke.
3657
3658 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
3659
3660         * reflection.c (mono_reflection_is_valid_dynamic_token): New function,
3661         Test if a token is valid, this remove explicit usage of 
3662         MonoDynamicImage::tokens from the verifier code.
3663
3664         * reflection.h: Added mono_reflection_is_valid_dynamic_token.
3665
3666         * verify.c (token_bounds_check): Use mono_reflection_is_valid_dynamic_token
3667         instead of direct access to MonoDynamicImage::tokens.
3668
3669 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
3670
3671         * verify.c (token_bounds_check): Fix the build I just broke.
3672
3673 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
3674
3675         * verify.c (token_bounds_check): Fix bounds check for dynamic images.
3676
3677         * verify.c (verifier_load_method): Fixed the errors message.
3678
3679         * verify.c (mono_method_verify): Fixed a debug message.
3680
3681 Thu Feb 28 19:49:45 CET 2008 Paolo Molaro <lupus@ximian.com>
3682
3683         * icall-def.h, domain.c, mono-perfcounters-def.h, mono-perfcounters.c,
3684         mono-perfcounters.h, class-internals.h: support for predefined
3685         writable counters, query of categories and counters, bugfixes.
3686
3687 2008-02-28 Rodrigo Kumpera  <rkumpera@novell.com>
3688
3689         * verify.c (do_refanytype): Verify the refanytype opcode.
3690
3691         * verify.c (mono_method_verify): Use do_refanytype.
3692
3693 2008-02-28 Rodrigo Kumpera  <rkumpera@novell.com>
3694
3695         * verify.c (do_mkrefany): Verify the mkrefany opcode.
3696
3697         * verify.c (mono_method_verify): Use do_mkrefany.
3698
3699 Wed Feb 27 19:49:16 CET 2008 Paolo Molaro <lupus@ximian.com>
3700
3701         * Makefile.am, icall-def.h, icall.c, mono-perfcounters-def.h,
3702         mono-perfcounters.c, mono-perfcounters.h: basic performance counter
3703         implementation.
3704
3705 2008-02-27  Zoltan Varga  <vargaz@gmail.com>
3706
3707         * marshal.c (mono_marshal_get_synchronized_wrapper): Fix the code which throws
3708         the type load exception.
3709
3710 2008-02-27 Rodrigo Kumpera  <rkumpera@novell.com>
3711
3712         * verify.c: Added a few FIXME for method signatures
3713
3714         * verify.c (do_invoke_method): Use mono_method_get_signature_full instead
3715         of mono_method_get_signature and get vararg call working. Removed unused
3716         checks for return value.
3717
3718         * verify.c (do_refanyval): Verify the refanyval opcode.
3719
3720         * verify.c (mono_method_verify): Implemented verification of arglist and
3721         use do_refanyval.
3722
3723 2008-02-27  Zoltan Varga  <vargaz@gmail.com>
3724
3725         * class.c (mono_class_setup_methods): Move the check for synchronized methods on
3726         vtypes to marshal.c.
3727
3728         * marshal.c (mono_marshal_get_synchronized_wrapper): Do the vtype check here so
3729         it works for AOT as well.
3730
3731 Tue Feb 26 17:46:32 CET 2008 Paolo Molaro <lupus@ximian.com>
3732
3733         * monitor.c, threads.c, threadpool.c: replace the use of GetTickCount ()
3734         with mono_msec_ticks () which is monotonic and doesn't cause bugs when
3735         the system time is adjusted.
3736
3737 Tue Feb 26 17:40:10 CET 2008 Paolo Molaro <lupus@ximian.com>
3738
3739         * icall.c, icall-def.h: use the new time functions (fixes the
3740         non-monotonic behaviour of TickCount).
3741
3742 2008-02-26  Zoltan Varga  <vargaz@gmail.com>
3743
3744         * reflection.c (mono_custom_attrs_from_builders): Revert the last change as
3745         it breaks the build.
3746         
3747         * reflection.c (mono_custom_attrs_from_builders): Assert instead of a crash if the
3748         cattr is not finished yet.
3749
3750 2008-02-25 Rodrigo Kumpera  <rkumpera@novell.com>
3751
3752         * verify.c: Proper token validation for field, method and type.
3753
3754 2008-02-25 Rodrigo Kumpera  <rkumpera@novell.com>
3755
3756         * loader.c (field_from_memberref): Generate a loader error if the type is not found.
3757
3758         * loader.c (method_from_memberref): Generate type load error instead of method missing
3759         if the type is not found.
3760
3761 2008-02-23  Zoltan Varga  <vargaz@gmail.com>
3762
3763         * marshal.c (mono_marshal_emit_managed_wrapper): Avoid generating invalid IL if
3764         some of the conversions caused the generation of a marshal directive exception.
3765
3766 2008-02-21 Rodrigo Kumpera  <rkumpera@novell.com>
3767
3768         verify.c: Report which exception should be thrown by the JIT.
3769         Added a lot of FIXME notes.
3770
3771 2008-02-22  Mark Probst  <mark.probst@gmail.com>
3772
3773         * generic-sharing.c: Runtime generic context slots are not
3774         instantiated on init anymore.  Instead, provide function to do the
3775         instantiating on demand.
3776
3777         * class-internals.h: Added vtable to runtime generic context.
3778         Macros for encoding direct and indirect slot offsets in one
3779         guint32.
3780
3781 2008-02-21  Mark Probst  <mark.probst@gmail.com>
3782
3783         * object.c, generic-sharing.c: Moved some generic sharing code
3784         from object.c to generic-sharing.c.
3785
3786         * generic-sharing.c: Added support for extensible runtime generic
3787         context.
3788
3789         * metadata-internals.h: Two new hash tables in MonoImage for
3790         extensible runtime generic context support.
3791
3792         * domain.c: Unregister generic vtables upon domain unloading.
3793
3794         * image.c: Destroy new hash tables upon image unloading.
3795
3796         * metadata.c: Unregister generic subclasses upon image unloading.
3797
3798         * class-internals.h: New data structure for runtime generic
3799         context template.  New fields in the runtime generic context for
3800         extensible part.
3801
3802         * Makefile.am: Added generic-sharing.c.
3803
3804 2008-02-21 Rodrigo Kumpera  <rkumpera@novell.com>
3805
3806         icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): If
3807         there is a pending loader exception, raise it.
3808
3809         icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
3810         same.
3811
3812         icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken): 
3813         same.
3814
3815         Fixes #363450.
3816
3817 2008-02-20  Zoltan Varga  <vargaz@gmail.com>
3818
3819         * icall.c (ves_icall_Type_GetPacking): Handle dynamic types.
3820
3821         * assembly.c (mono_assembly_load_from_full): Fix a leak in the previous patch.
3822         
3823         * assembly.c (mono_assembly_load_from_full): Return the non-refonly corlib for
3824         ref-only requests for compatibility with MS.
3825
3826 2008-02-20  Raja R Harinath  <harinath@hurrynot.org>
3827
3828         * reflection.c (mono_custom_attrs_from_method): Don't silently
3829         return an empty list for generic method instances.
3830         (mono_custom_attrs_from_param): Likewise.
3831
3832 2008-02-20  Rodrigo Kumpera  <rkumpera@novell.com>
3833             Raja R Harinath  <harinath@hurrynot.org>
3834
3835         Fix #354757
3836         * class-internals.h (struct _MonoMethodInflated.is_mb_open): Add.
3837         * class.c (mono_class_inflate_generic_method_full): Initialize it
3838         when a fully-open method is instantiated.
3839         * metadata.c (inflated_method_equal, inflated_method_hash): Update
3840         to new field.
3841         * reflection.c (inflate_mono_method): Don't create a temporary context.
3842
3843 2008-02-20  Raja R Harinath  <harinath@hurrynot.org>
3844
3845         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
3846         Compute correct value, to prepare for imethod->reflection_info going away.
3847
3848 2008-02-19  Zoltan Varga  <vargaz@gmail.com>
3849
3850         * class.c (mono_class_setup_vtable_general): Ignore static methods in interfaces.
3851
3852 2008-02-18 Rodrigo Kumpera  <rkumpera@novell.com>
3853
3854         * verify.c: Implement skip visibility flag.
3855
3856 2008-02-18 Rodrigo Kumpera  <rkumpera@novell.com>
3857
3858         * verify.h: Added MONO_VERIFY_SKIP_VISIBILITY and struct MonoVerifyInfoExtended
3859         which contains an extra field to tell the kind of exception that should be thrown.
3860
3861         * verify.c: Use MonoVerifyInfoExtended instead of MonoVerifyInfo.
3862
3863 2008-02-17  Raja R Harinath  <harinath@hurrynot.org>
3864
3865         * loader.c (mono_method_get_param_names): Initialize 'klass' after
3866         'method' is updated.
3867
3868 2008-02-11  Zoltan Varga  <vargaz@gmail.com>
3869
3870         * class.c (mono_class_layout_fields): Set class->min_align for classes using
3871         explicit layout as well. Fixes #360375.
3872
3873 2008-02-11  Geoff Norton  <gnorton@novell.com>
3874
3875         * loader.c: Guard and dereference against inflated generic methods
3876
3877 2008-02-10  Gert Driesen  <drieseng@users.sourceforge.net>
3878
3879         * class.c: Include Retargetable spec in assembly name.
3880         * assembly.c: Always include PublicKeyToken spec in assembly name
3881         (with value "null" if assembly is not signed), and include
3882         Retargetable spec.
3883         * icall-def.h: Added icall for Assembly.get_fullname.
3884         * icall.c: Added icall returning the fullname of an assembly.
3885
3886 2008-02-09  Zoltan Varga  <vargaz@gmail.com>
3887
3888         * class.c (mono_class_setup_vtable_general): Add a missing call to
3889         mono_class_setup_methods () which is needed in the AOT case.
3890
3891 2008-02-08 Rodrigo Kumpera  <rkumpera@novell.com>
3892
3893         * verify.c (mono_type_get_stack_name): Added. Return the name for the
3894         stack type of the given MonoType.
3895
3896         * verify.c (verify_type_compatibility_full): Handle the void type.
3897
3898         * verify.c (is_compatible_boxed_valuetype): Changed to fit the
3899         way stack merging works.
3900
3901         * verify.c (store_local): Improved verification message.
3902
3903         * verify.c (do_branch_op): If the merging is invalid, the method
3904         is unverifiable and not invalid. Improved error message.
3905
3906         * verify.c (merge_stacks): Properly merge a boxed valuetype and
3907         a reference type diferent than System.Object. Improved error
3908         message.
3909
3910 2008-02-07 Rodrigo Kumpera  <rkumpera@novell.com>
3911
3912         * verify.c (mono_type_is_enum_type): Added. Test if a type is an enum.
3913
3914         * verify.c (mono_type_get_underlying_type_any): Added. Return the underlying
3915         type of an enum even if the argument is byref.
3916
3917         * verify.c: Replace all explicit uses of enumtype and enum_basetype
3918         to calls to mono_type_is_enum_type and mono_type_get_underlying_type_any.
3919
3920         * verify.c: Check for an enum in all cases of MONO_TYPE_GENERICINST.
3921
3922         *verify.c (verify_type_compatibility_full): Make enum types
3923         compatible with their base types.
3924
3925         * verify.c (is_compatible_boxed_valuetype): Added. Check if both
3926         types are compatible for the special case of a boxed valuetype and
3927         System.Object.
3928
3929         * verify.c (verify_stack_type_compatibility): The function
3930         is_compatible_boxed_valuetype was extracted from here.
3931
3932         * verify.c (push_arg): Only set ctx->has_this_store if the method
3933         is not static.
3934
3935         * verify.c (do_ldelem): Fixed a typo in an error message and added
3936         strict check for mixing int32 and native int as the array type
3937         and ldelem type.
3938
3939         * verify.c (merge_stacks): Consider boxed valuetypes in the
3940         compatibility checks.
3941
3942 2008-02-07  Massimiliano Mantione  <massi@ximian.com>
3943         * profiler.h: (MonoGCEvent): Added start-stop the world events.
3944
3945 2008-02-06  Massimiliano Mantione  <massi@ximian.com>
3946         *class.c: use_new_interface_vtable_code: renamed the env var to have
3947         a "MONO_" prefix, and fix the logic to enable it by default.
3948
3949 2008-02-06  Massimiliano Mantione  <massi@ximian.com>
3950         *class.c:
3951         mono_class_setup_vtable_general: rewrote the way in which interface
3952         methods are added to vtables. Makes bug-77127.exe pass, and hopefully
3953         makes the code more maintainable.
3954         For now the old code is still there, and can be activated setting
3955         the env var "USE_NEW_INTERFACE_VTABLE_CODE".
3956
3957 2008-02-06 Rodrigo Kumpera  <rkumpera@novell.com>
3958
3959         * verify.c: guarded some debug functions around and #ifdef.
3960
3961         * verify.c (merge_stacks): implement proper PIII 1.8.1.3 stack state merging.
3962
3963 2008-02-06  Zoltan Varga  <vargaz@gmail.com>
3964
3965         * marshal.c (mono_marshal_get_runtime_invoke): Revert the direct_wrapper
3966         changes for now since they seem to break too many things.
3967
3968 2008-02-05  Mark Probst  <mark.probst@gmail.com>
3969
3970         * marshal.c, marshal.h (mono_marshal_find_bitfield_offset,
3971         mono_marshal_find_nonzero_bit_offset): Added macro and function
3972         for finding the byte- and bit-offset of a bitfield within a
3973         struct.
3974
3975 2008-02-05  Zoltan Varga  <vargaz@gmail.com>
3976
3977         * marshal.c (mono_marshal_get_ptr_to_struct): Make the signature non-pinvoke.
3978         (mono_marshal_get_struct_to_ptr): Ditto.
3979
3980         * marshal.c (mono_marshal_get_runtime_invoke): Fix the signature of 
3981         cctor_signature.
3982
3983 2008-02-03  Zoltan Varga  <vargaz@gmail.com>
3984
3985         * marshal.c (mono_marshal_get_runtime_invoke): Fix sharing of runtime wrappers
3986         between methods for non-corlib types.
3987
3988 2008-02-02  Geoff Norton  <gnorton@novell.com>
3989
3990         * loader.c (mono_method_get_param_names): Populate the parameter name for 
3991         generic parameters as well. (Fixes #342536)
3992
3993 2008-01-31 Rodrigo Kumpera  <rkumpera@novell.com>
3994
3995         * verify.c (is_valid_bool_arg): Allow boxed values and null literals as well.
3996
3997         * verify.c (do_invoke_method): Fix for calling with byref structs.
3998
3999         * verify.c (do_cast): push a boxed value type based on the type token and not
4000         the type of stack.
4001
4002 2008-01-31  William Holmes  <billholmes54@gmail.com>
4003
4004         * process.c (process_module_string_read): Check the size returned form 
4005           VerQueryValue to avoid out of memory exception. 
4006
4007 2008-01-30  Zoltan Varga  <vargaz@gmail.com>
4008
4009         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
4010         Handle properly modules which are not in the moduleref table. Fixes
4011         #356938.
4012
4013 2008-01-29  Zoltan Varga  <vargaz@gmail.com>
4014
4015         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Remove
4016         the dynamic case which is now in managed code.
4017         (ves_icall_System_Reflection_Assembly_GetTypes): Ditto.
4018
4019         * marshal.c (mono_string_to_bstr): Fix a warning.
4020         (init_com_provider_ms): Ditto.
4021
4022         * appdomain.c (ves_icall_System_AppDomain_createDomain): Add some FIXMEs.
4023
4024         * exception.c (mono_get_exception_out_of_memory): New helper function.
4025
4026 2008-01-28  Jonathan Chambers  <joncham@gmail.com>
4027
4028         * marshal.c: Add support for BSTR marshalling
4029         using other COM systems.
4030
4031         Code is contributed under MIT/X11 license.
4032
4033 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
4034
4035         * object.c (mono_runtime_invoke_array): reverted previous
4036         commit as it breaks the build.
4037
4038 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
4039
4040         * object.c (mono_runtime_invoke_array): Verify arguments for
4041         invalid types. Fixes #348522.
4042
4043 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
4044
4045         * verify.c: added IL_CODE_CALL_NONFINAL_VIRTUAL to track calls to
4046         non-final virtual calls using call. 
4047
4048         * verify.c (do_invoke): fixed some TODOs.
4049
4050         * verify.c (push_arg): set has_this_store for "ldarga 0".
4051
4052 2008-01-27  Zoltan Varga  <vargaz@gmail.com>
4053
4054         * reflection.c (reflection_methodbuilder_to_mono_method): Allow DynamicMethods
4055         which belong to an inflated class. Fixes #356531.
4056
4057 2008-01-26  Robert Jordan  <robertj@gmx.net>
4058
4059         * file-io.c: Implement and use wrappers for GetFileAttribute|Ex ()
4060         which resort to FindFirstFile when a certain error condition
4061         (ERROR_SHARING_VIOLATION) occured. Fixes bug #325212.
4062         Code is contributed under MIT/X11 license.
4063
4064 2008-01-24  Jonathan Chambers  <joncham@gmail.com>
4065
4066         * marshal.c (emit_marshal_string): Fix out string marshalling
4067         to use specified encoding. Fixes #323900.
4068
4069         Code is contributed under MIT/X11 license.
4070
4071 2008-01-24  Raja R Harinath  <harinath@hurrynot.org>
4072
4073         * class.c (mono_class_inflate_generic_method_full): Don't modify
4074         iresult->context after cache check.
4075
4076 2008-01-23  Zoltan Varga  <vargaz@gmail.com>
4077
4078         * class.c (mono_class_inflate_generic_method_full): Change the
4079         struct assignments to memcpy for better visibility and add some comments.
4080
4081 2008-01-23  Dick Porter  <dick@ximian.com>
4082
4083         * threads.c (mono_threads_set_shutting_down): Simplify shutdown
4084         procedure, and make it work on windows.
4085
4086 2008-01-22  Zoltan Varga  <vargaz@gmail.com>
4087
4088         * object-internals.h (MonoReflectionGenericClass): Make the 'generic_type' field
4089         a MonoReflectionTypeBuilder since it is always of that type.
4090
4091         * reflection.c (mono_type_get_object): Remove an unneccesary check.     
4092
4093         * reflection.c (mono_generic_class_get_object): Simplify this a bit.
4094
4095         * reflection.c (mono_reflection_bind_generic_parameters): Ditto.
4096         
4097         * icall.c (ves_icall_MonoGenericClass_GetParentType): Ditto.
4098
4099         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Ditto.
4100
4101         * reflection.c (mono_reflection_create_runtime_class): Remove already created
4102         instantiations from the type cache.
4103
4104 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
4105
4106         * verify.c (do_ldstr): fixed token verification. previous code was 100% broken.
4107
4108         * verify.c (do_unbox_value): push a controled mutability managed pointer.
4109
4110 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
4111
4112         * verify.c (do_ldstr): added, verifies if the #US token is valid.
4113
4114         * verify.c (mono_method_verify): removed old TODO
4115
4116 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
4117
4118         * verify.c (do_newobj): add visibility check.
4119
4120 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
4121
4122         * verify.c (do_load_function_ptr): add visibility check.
4123
4124 2008-01-21  Massimiliano Mantione  <massi@ximian.com>
4125         *class.c:
4126         mono_generic_class_get_class: hook profiler events.
4127         mono_field_get_offset: added to support heap-shot in the new profiler.
4128         *class.h: exported mono_field_get_offset.
4129         * reflection.c:
4130         mono_reflection_setup_internal_class: hook profiler events.
4131
4132 2008-01-20  Zoltan Varga  <vargaz@gmail.com>
4133
4134         * marshal.c (mono_marshal_emit_native_wrapper): Add a 'check_exceptions' 
4135         argument here too and use it to avoid checking for pending exceptions if 
4136         possible.
4137
4138 2008-01-20  Gert Driesen  <drieseng@users.sourceforge.net>
4139
4140         * assembly.c (build_assembly_name): add arg for passing the assembly
4141         flags. Do not consider a PublicKey with value "null" valid.
4142         (mono_assembly_name_parse_full): added boolean argument that will be
4143         set if the assembly name contains a PublicKeyToken spec. Added support
4144         for the Retargetable spec for which only Yes or No are allowed as valid
4145         value. Consider assembly name invalid if Retargetable spec is set, but
4146         either version, culture or public key (token) are not specified.
4147         * metadata-internals.h: sync signature of mono_assembly_name_parse_full
4148         with implementation in assembly.c.
4149         * icall.c (fill_reflection_assembly_name): also copy assembly flags
4150         from MonoAssemblyName.
4151         (ves_icall_System_Reflection_AssemblyName_ParseName): use newly
4152         introduced argument for mono_assembly_name_parse_full to know if the
4153         assembly name has a PublicKeyToken spec, and if it has instruct
4154         fill_reflection_assembly_name to use default value for keyToken (if
4155         PublicKeyToken is null).
4156
4157 2008-01-18  Rodrigo Kumpera  <rkumpera@novell.com>
4158
4159         * verify.c (mono_method_verify): fixed ovf ops with
4160         float values. They are unverifiable now.
4161
4162 2008-01-18  Rodrigo Kumpera  <rkumpera@novell.com>
4163
4164         * class.c (set_failure_from_loader_error): add BadImageException to the
4165         list of exceptions that can cause a type to fail to load.
4166
4167         * class.c (mono_class_get_exception_for_failure): same.
4168
4169 2008-01-17  Rodrigo Kumpera  <rkumpera@novell.com>
4170
4171         * verify.c (in_any_exception_block): added, check if offset
4172         is part of any exception handling clause.
4173
4174         * verify.c (get_stack_type): added VAR and MVAR types.
4175
4176         * verify.c (do_stobj): better error messages.
4177
4178         * verify.c (do_cpobj): added, check cpobj.
4179
4180         * verify.c (do_initobj): added, check initobj.
4181
4182         * verify.c (do_sizeof): added, check sizeof.
4183
4184         * verify.c (do_localloc): added, check localloc.
4185
4186         * verify.c: adde proper verification for cpobj, initobj, sizeof and localloc.
4187
4188 2008-01-17  Zoltan Varga  <vargaz@gmail.com>
4189
4190         * method-builder.c (mono_mb_emit_native_call): Get rid of the unused
4191         save_lmf/restore_lmf opcodes.
4192
4193         * threads.c (mono_threads_install_notify_pending_exc): New function to
4194         install a callback notifying the JIT there is a pending exception on a thread.
4195         (mono_thread_request_interruption): Call the new callback.
4196         (mono_thread_get_and_clear_pending_exception): New function to return the
4197         exception pending on a thread.
4198
4199         * marshal.c (mono_marshal_get_icall_wrapper): Add a check_exceptions argument
4200         to turn off checking for pending exceptions.
4201         (mono_marshal_get_native_wrapper): Ditto.
4202
4203 2008-01-16  Zoltan Varga  <vargaz@gmail.com>
4204
4205         * threads-types.h: Get rid of the unnecessary extern declarations.
4206
4207 2008-01-16  Gert Driesen  <drieseng@users.sourceforge.net>
4208
4209         * icall.c (ves_icall_Type_GetField): if NonPublic flag is set, only
4210         return field from parent class if not private.
4211         (ves_icall_Type_GetFields_internal): if NonPublic flag is set, only
4212         returns fields from parent class if they are not private.
4213         (method_nonpublic): added function to determine if a given method
4214         should be considered non-public. Returns false for private methods
4215         on parent class, and internal methods from parent on the 1.0 profile.
4216         (ves_icall_Type_GetMethodsByName): if NonPublic flag is set, then
4217         use method_nonpublic function to determine whether method should be
4218         returned.
4219         (property_accessor_public): use newly introduced method_nonpublic
4220         function to determine whether accessor is non-public. 
4221         (ves_icall_MonoType_GetEvent): If NonPublic flag is set, only return
4222         event from parent class if not private. Only return static event if
4223         Static flag is set, and only return static event from parent class if
4224         FlattenHierarchy flag is set.
4225         (ves_icall_Type_GetEvents_internal): If NonPublic flag is set, only
4226         include non-private events from parent class.
4227
4228 2008-01-16  Zoltan Varga  <vargaz@gmail.com>
4229
4230         * icall.c (ves_icall_System_NumberFormatter_GetFormatterTables): Fix a
4231         warning.
4232
4233 2008-01-16  Wade Berrier <wberrier@novell.com>
4234
4235         * security.c: Add assembly.h header to appease some warnings
4236
4237 2008-01-16  Dick Porter  <dick@ximian.com>
4238
4239         * process.c (process_module_string_read): Remove trailing null
4240         when saving string.
4241
4242 2008-01-16  Mark Probst  <mark.probst@gmail.com>
4243
4244         * class-internals.h: A new data structure describing the layout of
4245         a runtime generic context (MonoRuntimeGenericContextTemplate).
4246
4247         * metadata-internals.h: Added a hash table to MonoDomain that maps
4248         from open generic classes to their runtime generic context
4249         templates.
4250
4251         * object.c: Building of the runtime generic context, including
4252         proper handling of generic type arguments of superclasses.
4253         Building of the runtime generic context according to the template.
4254
4255 2008-01-15  Zoltan Varga  <vargaz@gmail.com>
4256
4257         * class.c (mono_class_setup_fields): Set field.count for generic instances.
4258         Fixes #350856.
4259
4260         * image.c (do_mono_image_open): Pass TRUE as last_exists to 
4261         mono_portability_find_file (). Fixes #325466.
4262         (mono_image_get_public_key): Fix a warning.
4263
4264 2008-01-14  Zoltan Varga  <vargaz@gmail.com>
4265
4266         * class.c (mono_class_from_name): Fix comments for NULL-ness of image parameter.
4267         Fixes #353550.
4268         (mono_class_from_name_case): Ditto.
4269
4270 2008-01-13  Eyal Alaluf <eyala@mainsoft.com>
4271
4272         * icall-def.h number-formatter.h icall.c: Implemented a cross app-domain
4273           common storage for the tables used in the System/NumberFormatter class.
4274
4275 2008-01-13  Zoltan Varga  <vargaz@gmail.com>
4276
4277         * marshal.c (mono_marshal_get_runtime_invoke): Fix a typo.
4278
4279 2008-01-11  Rodrigo Kumpera  <rkumpera@novell.com>
4280
4281         * verify.c (get_boxable_mono_type): check if the token is valid.
4282
4283         * verify.c (set_stack_value): changed to add an error if an
4284         invalid type is set on stack. Changed all callers due to signature change.
4285
4286         * verify.c (do_stobj): implement stobj validation.
4287
4288 2008-01-11  Zoltan Varga  <vargaz@gmail.com>
4289
4290         * reflection.c (reflection_methodbuilder_to_mono_method): No need to
4291         set container->is_method, it was set earlier.
4292
4293         * metadata.c (type_in_image): Handle MVARs which belong to not finished
4294         generic methods.
4295
4296         * reflection.c (mono_reflection_initialize_generic_parameter): Set
4297         is_method of the generic container to TRUE for methods.
4298
4299 2008-01-10  Zoltan Varga  <vargaz@gmail.com>
4300
4301         * metadata.c (type_in_image): Handle type parameters properly.
4302
4303         * class-internals.h (MonoGenericParam): Add an 'image' argument to track
4304         memory ownership of this structure.
4305
4306 2008-01-10  Rodrigo Kumpera  <rkumpera@novell.com>
4307
4308         * verify.c (get_boxable_mono_type): make typedref types been just
4309         unverifiable. check for void type.
4310
4311         * verify.c (do_unbox_any): added, verify opcode unbox.any.
4312
4313         * verify.c (do_load_function_ptr): accept method spec tokens.
4314
4315 2008-01-10  Zoltan Varga  <vargaz@gmail.com>
4316
4317         * marshal.c (mono_class_native_size): Always set *align even if this is called
4318         recursively.
4319
4320 2008-01-09  Zoltan Varga  <vargaz@gmail.com>
4321
4322         * verify.c (mono_verify_corlib): Remove this as it was not used and was 
4323         out-of-date.
4324
4325 2008-01-09  Rodrigo Kumpera  <rkumpera@novell.com>
4326
4327         * verify.c: removed some old unused tables. A huge bunch of small fixes
4328         to things found while testing the verifier with mono basic.
4329
4330         * verify.c (dump_stack_value): dump null literal flag to.
4331
4332         * verify.c (verify_type_compatibility_full): fix comparison
4333         for types that have a generic super type.
4334
4335         * verify.c (verify_stack_type_compatibility): fix compatibility
4336         between null literals and reference types. fix compatibility between
4337         boxed valuetypes and object. fix corner case test for enums.
4338
4339         * verify.c (do_cmp_op): proper verification of cgt.un in case
4340         of reference types.
4341
4342         * verify.c (do_invoke_method): fix error message.
4343
4344         * verify.c (do_store_indirect
4345
4346         * verify.c (check_is_valid_type_for_field_ops): proper verification
4347         of managed pointers to valuetypes and boxed valuetypes. proper verification
4348         of null literals.
4349
4350         * verify.c (do_unbox_value): expect valuetypes to be always boxed. don't
4351         allow token to be a reference type.
4352
4353         * verify.c (do_cast): proper handling of boxes valuetypes.
4354
4355         * verify.c (do_stelem): proper handling of storing a boxed valuetype
4356         in object[].
4357
4358         * verify.c (mono_method_verify): pass the opcode to do_cmp_op
4359         to handle cgt.un properly. Implement add/mul/sub ovf opcodes.
4360         fixed the decoding of unbox_any
4361
4362 2008-01-08  Zoltan Varga  <vargaz@gmail.com>
4363
4364         * boehm-gc.c (mono_gc_deregister_root): Fix the size passed to libgc.
4365
4366 2008-01-08  Rodrigo Kumpera  <rkumpera@novell.com>
4367
4368         * verify.c (do_newobj): do delegate verification.
4369
4370         * verify.c (verify_delegate_compatibility): perform delegate
4371         verification.
4372
4373         * verify.c (verify_ldftn_delegate): perform tests related to
4374         ldftn delegates.
4375
4376         * verify.c (mono_delegate_signature_equal): perform the
4377         slightly diferent signature comparison required by delegates.
4378
4379         * metadata.c (mono_metadata_type_equal_full): added and exported
4380         as MONO_INTERNAL. This is a version of mono_metadata_type_equal that
4381         allows signature only comparison.
4382
4383         * metadata-internal.h (mono_metadata_type_equal_full): added and exported
4384         as MONO_INTERNAL.
4385
4386 2008-01-07  Rodrigo Kumpera  <rkumpera@novell.com>
4387
4388         * verify.c: added a bunch of stack_slot_* functions to
4389         make access to stack slot type easier. This is required to
4390         allow optional flags, like null literal, boxed value and
4391         this pointer.
4392         All access paths to IlStackDesc::stype have been changed 
4393         to use these new funcions.
4394         Removed a bunch of unused functions and cleared all warnings.
4395         This patch introduces the usage of the this pointer and 
4396         boxed value flags.
4397
4398 2008-01-07  Zoltan Varga  <vargaz@gmail.com>
4399
4400         * boehm-gc.c (mono_gc_deregister_root): Fix win32 build.
4401
4402 2008-01-06  Zoltan Varga  <vargaz@gmail.com>
4403
4404         * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Change signature to
4405         match managed version.
4406
4407         * appdomain.c: Bump corlib version.
4408         
4409         * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Check for a null
4410         argument.
4411
4412 2008-01-06  Gert Driesen  <drieseng@users.sourceforge.net>
4413
4414         * icall.c (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies)
4415         Set public key token to zero-length byte array if assembly is not
4416         strongnamed.
4417
4418 2008-01-05  Zoltan Varga  <vargaz@gmail.com>
4419
4420         * icall.c (ves_icall_System_Array_SetValueImpl): Use a write barrier when
4421         writing a vtype array elem.
4422
4423 2007-01-05  Gert Driesen  <drieseng@users.sourceforge.net>
4424
4425         * assembly.c (build_assembly_name): return FALSE if length of token is
4426         not 16 (if not "null").
4427         (mono_assembly_name_parse_full): return FALSE if value of version,
4428         culture, token or key is 0.
4429         * icall.c (fill_reflection_assembly_name): add boolean arguments to
4430         specify whether public key and public key token must be set to default
4431         value (zero-length byte array) if not available. Set versioncompat to
4432         SameMachine. If public key is available or the default is set, then
4433         set PublicKey flag.
4434         (ves_icall_System_Reflection_Assembly_FillName): if no public key
4435         is available, use empty byte array as default value. On the 2.0
4436         profile, use default value for public key token if not set.
4437         (ves_icall_System_Reflection_InternalGetAssemblyName): on the 1.0
4438         profile, use default value for public key if not set. On the 2.0
4439         profile, use default value for public key token if not set.
4440         (ves_icall_System_Reflection_AssemblyName_ParseName): do not set
4441         default values for public key and public key token.
4442
4443 2008-01-05  Zoltan Varga  <vargaz@gmail.com>
4444
4445         * object-internals.h (MonoReflectionAssemblyName): Add 'processor_architecture'
4446         field to keep it in synch with the managed object.
4447
4448         * marshal.c (emit_marshal_object): Add support for byref marshalling of
4449         delegates. Fixes #351520.
4450
4451         * sgen-gc.c (conservatively_pin_objects_from): Tell valgrind that the pin queue
4452         contains defined memory.
4453         
4454         * sgen-gc.c: Fix 64 bit warnings. Fix some typos. Update GC stats in mono_stats.
4455
4456         * sgen-gc.c (build_nursery_fragments): Handle half-constructed objects correctly.
4457         
4458         * sgen-gc.c (check_consistency): New helper function to do a consistency check
4459         of the GC data structures.
4460
4461         * gc-internal.h: Moved the REGISTER/UNREGISTER macros here from os/gc_wrapper.h.
4462
4463         * *.c: Include metadata/gc-internal.h instead of os/gc_wrapper.h.
4464         
4465         * object.c (mono_array_full_copy): Fix detection of whenever to use a write
4466         barrier.
4467         (mono_array_clone_in_domain): Ditto.
4468         (mono_array_clone_in_domain): Ditto.
4469
4470         * threads.c (start_wrapper): Register the thread start argument as a GC root.
4471         (cache_culture): Use a write barrier.
4472
4473         * icall.c (ves_icall_System_Array_SetValueImpl): Call a write barrier.
4474         (ves_icall_get_property_info): Ditto.
4475
4476         * object.h (MONO_STRUCT_SETREF): New macro.
4477
4478         * class-internals.h (MonoStats): Add some GC statistics.
4479
4480         * boehm-gc.c null-gc.c: Define mono_gc_deregister_root ().
4481
4482 2008-01-04  Andreas Faerber  <andreas.faerber@web.de>
4483
4484         * exception.c (mono_exception_from_name_two_strings):
4485         Break from loop after method is found.
4486
4487 2008-01-04  Dick Porter  <dick@ximian.com>
4488
4489         * process.c (process_module_string_read): Rename variable to
4490         reflect correct usage, after fixing bug 345972.
4491
4492 2008-01-03  Rodrigo Kumpera  <rkumpera@novell.com>
4493
4494         * verify.c (mono_type_create_fnptr_from_mono_method): 
4495         created a MonoType function pointer instance to be used during
4496         verification. The verifier releases this memory at end.
4497
4498         * verify.c (mono_method_is_constructor): extracted repeated
4499         checks for constructor into a single class.
4500
4501         * verify.c (do_push_field): use new extracted method
4502         for constructor check.
4503
4504         * verify.c (do_newobj): same.
4505
4506         * verify.c (do_ldftn): renamed to do_load_function_ptr
4507         and make it verify ldvirtftn too.
4508
4509         * verify.c (mono_method_verify: proper verification
4510         of ldvirtftn. release created MonoMethod instances.
4511
4512 2007-12-31  Rodrigo Kumpera  <rkumpera@novell.com>
4513
4514         * verify.c (token_bounds_check): added.
4515
4516         * verify.c (do_ldftn): added.
4517
4518         * verify.c (mono_method_verify): proper verificartion of ldftn.
4519
4520 2007-12-31  Rodrigo Kumpera  <rkumpera@novell.com>
4521
4522         * metadata.c (mono_metadata_decode_row): Assert if index is bigger
4523         than the table row count. It's the resposibility of the caller to
4524         make the bounds check and raise the correct error.
4525
4526         * metadata.c (mono_metadata_decode_row_col): Same.
4527
4528         * loader.c (mono_get_method_from_token): perform bounds check
4529         on token for methoddef table.
4530
4531 2007-12-29  Miguel de Icaza  <miguel@novell.com>
4532
4533         * icall.c
4534         (ves_icall_System_CurrentSystemTimeZone_GetTimeZoneData): Turn the
4535         assert into a negative result, the managed code already coped with
4536         that.
4537
4538         Some folks on Windows reported this error. 
4539
4540 2007-12-28  Gert Driesen  <drieseng@users.sourceforge.net>
4541
4542         * appdomain.c: Bump corlib version.
4543         * icall.c:
4544         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies): Use
4545         CultureInfo.CreateCulture to create CultureInfo for name.
4546         (fill_reflection_assembly_name): Use CultureInfo.CreateCulture to
4547         create CultureInfo for name. Fixes bug #347174.
4548
4549 2007-12-27  Rodrigo Kumpera  <rkumpera@novell.com>
4550
4551         * verify.c: added IL_CODE_FLAG_STACK_INITED and IL_CODE_STACK_MERGED
4552         flags.
4553
4554         * verify.c (is_valid_branch_instruction): allow branching to the
4555         first instruction of the protected block.
4556
4557         * verify.c (is_valid_cmp_branch_instruction): same.
4558
4559         * verify.c (stack_init): use IL_CODE_FLAG_STACK_INITED flag to
4560         avoid double initialization.
4561
4562         * verify.c (merge_stacks): use IL_CODE_STACK_MERGED to
4563         detect which cases the eval stack should just be copied.
4564
4565         * verify.c (mono_method_verify): check if the eval stack
4566         is empty when entering a protected block.
4567
4568 2007-12-27  Rodrigo Kumpera  <rkumpera@novell.com>
4569
4570         * verify.c: added is_clause_in_range, is_clause_inside_range,
4571         is_clause_nested and verify_clause_relationship. They perform
4572         the verifications stated in P1 12.4.2.7.
4573
4574         * verify.c (mono_method_verify): remove some unused variables,
4575         add the new exception clause checks, add instruction border
4576         checks for protected block start/end, improved some error 
4577         messages and fixed a bug in the way invalid instruction access
4578         is detected.
4579
4580 2007-12-26  Zoltan Varga  <vargaz@gmail.com>
4581
4582         * boehm-gc.c (mono_gc_register_thread): Use the new GC_register_my_thread () routine
4583         from GC 7.0 if available.
4584
4585         * object.c: Remove an unused define.
4586         
4587         * object.c (mono_class_compute_gc_descriptor): Fix a warning.
4588
4589         * boehm-gc.c (mono_gc_make_descr_for_array): Implement.
4590
4591         * null-gc.c (mono_gc_make_descr_for_array): Implement.
4592
4593         * object.c (mono_class_compute_gc_descriptor): Remove an #ifdef SGEN_GC.
4594
4595         * gc-internal.h: Change the signature of mono_gc_make_descr_for_string ()
4596         to take the same arguments as the other make_descr functions.
4597
4598         * boehm-gc.c null-gc.c: Add implementation for make_descr functions.
4599
4600         * objects.c: Get rid of the MAKE_DESCRIPTOR macros, call make_descr functions
4601         directly.
4602
4603         * boehm-gc.c (mono_gc_base_init): Moved the setting of GC_stackbottom here from
4604         mini.c.
4605
4606         * object.c (mono_class_compute_gc_descriptor): Move the GC_init_gcj_malloc () 
4607         call to boehm-gc.c.
4608
4609         * boehm-gc.c (mono_gc_register_root): Fix a warning.
4610
4611         * null-gc.c (mono_gc_register_root): Fix a warning.
4612
4613         * reflection.c (ALLOC_REFENTRY): Use mono_gc_alloc_fixed for boehm as well.
4614
4615         * boehm-gc.c (mono_gc_register_root): Moved definition here from gc_wrapper.h.
4616         (mono_gc_base_init): Call GC_init ().
4617
4618         * null-gc.c: Define mono_gc_register_root () as a no-op.
4619
4620         * domain.c appdomain.c: Call mono_gc_base_init () instead of MONO_GC_PRE_INIT ().
4621
4622 2007-12-24  Rodrigo Kumpera  <rkumpera@novell.com>
4623
4624         * verify.c: add prototype for merge_stacks at top
4625
4626         * verify.c (do_switch): added.
4627
4628         * verify.c (merge_stacks): on some cases the stack merging
4629         was not happening properly. Unequal stack sizes at merge
4630         points should be invalid.
4631
4632         * verify.c (mono_method_verify): added more debug info on stack state.
4633         verify switch properly.
4634
4635 2007-12-24  Zoltan Varga  <vargaz@gmail.com>
4636
4637         * method-builder.h: New file, moved the mono_mb_ declarations here from 
4638         marshal.h.
4639
4640         * boehm-gc.c marshal.c: Include method-builder.h.
4641
4642         * marshal.c: Use mono_mb_emit_branch_label () in a few places.
4643
4644         * marshal.c: Remove some code which is now in method-builder.c.
4645
4646 2007-12-23  Zoltan Varga  <vargaz@gmail.com>
4647
4648         * method-builder.c: New file, extraction of the method builder functionality 
4649         from marshal.c.
4650
4651         * marshal.c: Move the mb functions into method-builder.c.
4652
4653         * marshal.h marshal.c: Export some mono_mb_... functions.
4654
4655         * marshal.c: Use mono_mb_get_label () and mono_mb_patch_branch () in all places.
4656
4657         * loader.c (field_from_memberref): Remove the dynamic case, it is handled in
4658         the caller.
4659
4660         * class.c (mono_class_get_full): Check the token type in the dynamic case.
4661
4662         * loader.c (mono_field_from_token): Ditto.      
4663
4664         * loader.c (mono_get_method_from_token): Change the check so it checks memberref
4665         type as well.
4666         
4667         * loader.c (mono_get_method_from_token): Check the token type in the dynamic case.
4668         Fixes #342565.
4669
4670         * class-internals.h: Add new loader error type MONO_EXCEPTION_BAD_IMAGE plus
4671         a helper function for setting it.
4672
4673         * loader.c (mono_loader_error_prepare_exception): Handle MONO_EXCEPTION_BAD_IMAGE.
4674
4675         
4676         * assembly.c: Significally simplify code now that referenced assemblies are 
4677         loaded lazily. Get rid of the 'loading' hashtables. Hopefully fixes #347629.
4678
4679         * threads.h: Don't include  the internal threads-types.h header file. Fixes
4680         #349952.
4681
4682 2007-12-21  Rodrigo Kumpera  <rkumpera@novell.com>
4683
4684         * verify.c: added enum value IL_CODE_FLAG_WAS_TARGET, to represent
4685         instructions that were target of branches or are at protected block boundaries.
4686
4687         * verify.c (in_same_block): handle filter clauses.
4688
4689         * verify.c (is_valid_branch_instruction): added. checks the target of
4690         instructions br or brtrue/false.
4691
4692         * verify.c (is_valid_cmp_branch_instruction): added. checks the target of
4693         binary branch instructions such as beq and bge.
4694
4695         * verify.c (init_stack_with_value): renamed to init_stack_with_value_at_exception_boundary
4696         and made it pin the instruction as been part of the exception block.
4697
4698         * verify.c (do_boolean_branch_op): use is_valid_branch_instruction instead
4699         of in_same_block.
4700
4701         * verify.c (do_branch_op): use is_valid_cmp_branch_instruction instead
4702         of in_same_block.
4703
4704         * verify.c (do_ret): ret from a protected block is unverifiable and
4705         not invalid.
4706
4707         * verify.c (do_static_branch): verify br and br.s instructions.
4708
4709         * verify.c (merge_stacks): add extra param to support detection
4710         of branches in the middle of instructions.
4711         
4712         * verify.c (mono_method_verify): verify branches and exception blocks
4713         that target the middle of instructions. Proper verification of br and br.s.
4714
4715 2007-12-21  Zoltan Varga  <vargaz@gmail.com>
4716
4717         * reflection.c (reflection_methodbuilder_from_ctor_builder): Initialize
4718         skip_visibility field.
4719         (reflection_methodbuilder_from_dynamic_method): Ditto.
4720
4721         * object.c (mono_class_compute_gc_descriptor): Remove more unused icall
4722         registrations. Fixes #348193.
4723
4724         * threads.h: Move the internal mono_thread_get_pending_exception () to
4725         threads-types.h and rename it to mono_thread_get_undeniable_exception ().
4726
4727 2007-12-20  Zoltan Varga  <vargaz@gmail.com>
4728
4729         * object.c (mono_class_compute_gc_descriptor): Remove unused GC_gcj_fast_malloc
4730         icall registration. Fixes #348193.
4731
4732         * marshal.c (mono_marshal_get_runtime_invoke): Put all runtime invoke wrappers
4733         for corlib classes into object. Fixes #349621.
4734
4735 2007-12-20  Gert Driesen  <drieseng@users.sourceforge.net>
4736
4737         * icall.c (property_accessor_nonpublic): new function to determine
4738         whether an accessor allows a property to be considered non-public.
4739         Returns false for private accessor(s) from parent class, and internal
4740         accessor(s) from parent on 2.0 profile (and higher).
4741         (ves_icall_Type_GetPropertiesByName): Use newly introduced function
4742         to determine whether property should be included if NonPublic flag
4743         is set. Fixes bug #349078.
4744
4745 2007-12-20  Rodrigo Kumpera  <rkumpera@novell.com>
4746
4747         * verify.c (init_stack_with_value): added.
4748
4749         * verify.c (mono_method_verify): extracted common
4750         code for exception initialization into init_stack_with_value.
4751
4752         * verify.c (mono_method_verify): initialize the exception
4753         for handler clauses as well.
4754
4755         * verify.c (mono_method_verify): fix the exception clause
4756         ordering rules, it should use handler end offset and not
4757         start offset.
4758
4759 Thu Dec 20 12:27:24 CET 2007 Paolo Molaro <lupus@ximian.com>
4760
4761         * rawbuffer.c: remove useless warning.
4762
4763 Thu Dec 20 12:10:38 CET 2007 Paolo Molaro <lupus@ximian.com>
4764
4765         * threads.h, threads-types.h: move functions to the correct header
4766         (fixes bug#349952).
4767
4768 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
4769
4770         * verify.c (mono_method_verify): proper verification
4771         of exception handling clauses ranges and fallthru in
4772         and out of protected blocks.
4773
4774 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
4775
4776         * verify.c (mono_method_verify): fixed compilation issue.
4777
4778 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
4779
4780         * verify.c (mono_method_verify): a printf slipped in, changed
4781         to use verifier debug macro.
4782
4783 2007-12-18  Rodrigo Kumpera  <rkumpera@novell.com>
4784
4785         * verify.c (is_correct_leave): check for filter clauses.
4786
4787         * verify.c (do_filter): added.
4788
4789         * verify.c (mono_method_verify): property verification of leave.
4790
4791
4792 2007-12-18  Mark Probst  <mark.probst@gmail.com>
4793
4794         * threads.c: Disable calls to _wapi_thread_signal_self() to fix
4795         Win32 build, until we figure out how to do the proper thing on
4796         Win32.
4797
4798 2007-12-17  Zoltan Varga  <vargaz@gmail.com>
4799
4800         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Fix a crash introduced
4801         by the previous patch.
4802         
4803         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Avoid calling
4804         the assembly resolve handler for refonly assemblies.
4805
4806 2007-12-17  Mark Probst  <mark.probst@gmail.com>
4807
4808         * threads.c, thread-types.h, icall.c: New shutdown safeguards.
4809         Make sure only one thread is allowed to commence shutdown, and
4810         don't allow new threads to be started once shutdown is in
4811         progress.
4812
4813 2007-12-14  Rodrigo Kumpera  <rkumpera@novell.com>
4814
4815         * verify.c (is_correct_endfilter): added.
4816
4817         * verify.c (is_unverifiable_endfilter): added.
4818
4819         * verify.c (do_endfilter): added.
4820
4821         * verify.c (mono_method_verify): property verification of endfilter
4822         and fixed a corner case or endfinally.
4823
4824 2007-12-13  Rodrigo Kumpera  <rkumpera@novell.com>
4825
4826         * verify.h: new flags to support fail fast of unverifiable code and
4827         do non-strict verification. Non-strict verification is required to
4828         have MS runtime compatibility. There are a huge amount of unverifiable
4829         code that it accepts as verifiable. The strict mode verifies the code
4830         as the specs says.
4831         Non-strict mode will be required in cases where code needs to be
4832         accepted as verifiable but fails under strict mode.
4833
4834         * pedump.c: added support to fail fast and non-strict verification.
4835
4836         * verify.c: added support for both fail fast and non-strict verification.
4837
4838 2007-12-12  Rodrigo Kumpera  <rkumpera@novell.com>
4839
4840         * verify.c (is_correct_endfinally): added.
4841
4842         * verify.c (mono_method_verify): property verification of endfinally.
4843
4844 2007-12-11  Rodrigo Kumpera  <rkumpera@novell.com>
4845
4846         * verify.c (in_any_block): check for filter clauses.
4847
4848         * verify.c (is_correct_rethrow): added.
4849
4850         * verify.c (mono_method_verify): property verification of rethrow.
4851
4852         * metadata.h: added MONO_OFFSET_IN_FILTER macro.
4853
4854 2007-12-11  Rodrigo Kumpera  <rkumpera@novell.com>
4855
4856         * verify.c (do_throw): added.
4857
4858         * verify.c (mono_method_verify): property verification of throw
4859
4860 2007-12-11  Zoltan Varga  <vargaz@gmail.com>
4861
4862         * assembly.c (mono_assembly_load_reference): Try an assembly resolve for ref-only
4863         assemblies. Fixes #346425.
4864
4865 2007-12-10  Zoltan Varga  <vargaz@gmail.com>
4866
4867         * reflection.c (mono_reflection_get_token): Call mono_image_create_token () for
4868         FieldBuilders.
4869
4870         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Fix a warning.
4871
4872         * class.c (mono_lookup_dynamic_token_class): Add a 'valid token' argument to
4873         prevent asserts when this is called with a token which might not be valid.
4874
4875         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Call
4876         lookup_dynamic_token_class with valid_token == FALSE.
4877
4878         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.       
4879
4880         * icall.c (ves_icall_System_Reflection_Module_ResolveStringToken): Ditto.
4881
4882         * icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
4883         
4884 2007-12-10  Mark Probst  <mark.probst@gmail.com>
4885
4886         * gc.c: Don't delay threadpool thread finalization unless Mono is
4887         shutting down.
4888
4889 Mon Dec 10 11:06:23 CET 2007 Paolo Molaro <lupus@ximian.com>
4890
4891         * threads.c: turn an assert into a non-fatal warning.
4892
4893 2007-12-09  Robert Jordan  <robertj@gmx.net>
4894
4895         * icall.c (GetVirtualMethod): Add missing argument validation.
4896
4897 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
4898
4899         * verify.c (do_cast): added.
4900
4901         * verify.c (mono_method_verify): property verification of castclass and isinst.
4902
4903
4904 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
4905
4906         * verify.c (mono_type_from_opcode): added opcodes for stelem.X.
4907
4908         * verify.c (do_stelem): added.
4909
4910         * verify.c (mono_method_verify): property verification of stelem.X.
4911
4912 2007-12-07  Mark Probst  <mark.probst@gmail.com>
4913
4914         * class.c, class-internals.h: Introduce an environment variable
4915         (MONO_GENERIC_SHARING) through which the extent of generic code
4916         sharing can be controlled (share all classes, share only corlib
4917         classes, or share nothing).
4918
4919         * object.c: Only create runtime generic context for classes for
4920         which sharing is enabled.
4921
4922 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
4923
4924         * verify.c (do_ldelem): refactor it to work with ldelem.any.
4925
4926         * verify.c (mono_method_verify): property verification of ldelem.any.
4927
4928 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
4929
4930         * verify.c (get_indirect_op_mono_type): renamed to mono_type_from_opcode,
4931         added ldelem.X opcodes.
4932
4933         * verify.c (do_ldelema): fixed possible invalid usage of MonoType.
4934
4935         * verify.c: proper verification of ldelem.X 
4936
4937 2007-12-06  Zoltan Varga  <vargaz@gmail.com>
4938
4939         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Allow interface cctors to be called too.
4940
4941 2007-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
4942
4943         * verify.c (mono_method_verify): null literal requires special handling,
4944         the value pushed on stack need to be flagged as so.
4945
4946         * verify.c (do_ldelema): Verify ldelema properly.
4947
4948 2007-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
4949
4950         * verify.c: Verify ldlen properly.
4951
4952 2007-12-05  Zoltan Varga  <vargaz@gmail.com>
4953
4954         * icall.c (ves_icall_MonoField_GetValueInternal): Check that the field belongs
4955         to the target object's type. Fixes #346160.
4956
4957 2007-12-05  Dick Porter  <dick@ximian.com>
4958
4959         * threadpool.c (socket_io_add_poll): Asynchronous connect() on
4960         Solaris needs the same workaround as BSD-derived systems.  Fixes
4961         bug 323524, patch by Burkhard Linke
4962         <burkhard.linke@CeBiTec.Uni-Bielefeld.DE>
4963
4964 2007-12-04  Gert Driesen  <drieseng@users.sourceforge.net>
4965
4966         * process.c: When ProcessStartInfo.ErrorDialog is true, pass window
4967         handle to use when error dialog is shown; otherwise, update mask
4968         to show no error dialog when an error occurs.
4969
4970 2007-12-03  Zoltan Varga  <vargaz@gmail.com>
4971
4972         * icall.c (ves_icall_MonoField_GetRawConstantValue): New icall.
4973
4974         * class.c (mono_class_get_field_default_value): New helper function to initialize
4975         field->def_type and field->data.
4976
4977 2007-11-30  Zoltan Varga  <vargaz@gmail.com>
4978
4979         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Use the delegate trampoline instead of
4980         the general one.
4981
4982         * object.c (mono_runtime_create_delegate_trampoline): New helper function.
4983
4984         * marshal.c: Avoid depending on delegate->method_info being set.
4985
4986         * object.c (mono_delegate_ctor): Avoid initializing delegate->method_info.
4987         
4988         * object.c (mono_delegate_ctor): Set delegate->method.
4989
4990         * object-internals.h (struct _MonoDelegate): Add 'method' field.
4991
4992         * appdomain.c: Bump corlib version.
4993
4994 2007-11-27  Raja R Harinath  <harinath@gmail.com>
4995
4996         * metadata.c (mono_generic_inst_equal_full): Short-circuit
4997         equality check if we're comparing canonicalized MonoGenericInsts.
4998
4999 2007-11-23  Zoltan Varga  <vargaz@gmail.com>
5000
5001         * class.c (generic_array_methods): Call mono_class_setup_methods () before
5002         accessing class->methods.
5003
5004 2007-11-22  Dick Porter  <dick@ximian.com>
5005
5006         * threads.c: Ensure that the synch_cs is set before trying to use
5007         it.
5008
5009 Thu Nov 22 12:34:04 CET 2007 Paolo Molaro <lupus@ximian.com>
5010
5011         * profiler.c: r89126 broke the statistial profiler, unbreak.
5012
5013 2007-11-22  Martin Baulig  <martin@ximian.com>
5014
5015         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 66.
5016
5017         * mono-debug.c
5018         (mono_debug_debugger_version): Bump to 3.
5019         (mono_debug_init): Hook `mono_debugger_class_loaded_methods_func'
5020         -> mono_debugger_class_initialized().
5021
5022         * mono-debug-debugger.c
5023         (mono_debugger_add_type): Renamed into mono_debugger_class_initialized().
5024
5025         * class.c
5026         (mono_debugger_start_class_init_func): Removed.
5027         (mono_debugger_class_loaded_methods_func): Added.
5028         (mono_class_setup_methods): Call it here.
5029
5030 2007-11-22  Martin Baulig  <martin@ximian.com>
5031
5032         * mono-debug.c
5033         (mono_debug_add_delegate_trampoline): New public method.
5034         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_DELEGATE_TRAMPOLINE'.
5035
5036         * mono-debug.h
5037         (MonoSymbolTable): Added `global_data_table'.
5038         (MonoDebuggerTypeKind): Removed.
5039
5040 2007-11-21  Zoltan Varga  <vargaz@gmail.com>
5041
5042         * marshal.c (mono_marshal_get_generic_array_helper): Skip visibility checks for
5043         these methods.
5044
5045         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5046         
5047 Tue Nov 20 23:10:41 CET 2007 Paolo Molaro <lupus@ximian.com>
5048
5049         * object.c: some fields don't have a valid rva: ignore them (bug #343083).
5050
5051 2007-11-20  Martin Baulig  <martin@ximian.com>
5052
5053         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 65.
5054
5055         * mono-debug-debugger.c
5056         (mono_debugger_insert_method_breakpoint): Moved here from debug-mini.c
5057         (mono_debugger_remove_breakpoint): Likewise.
5058         (mono_debugger_check_breakpoints): Likewise.
5059         (mono_debugger_register_class_init_callback): New public method.
5060         (mono_debugger_remove_class_init_callback): Likewise.
5061         (mono_debugger_add_type): Likewise.
5062
5063         * mono-debug-debugger.h
5064         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_CLASS_INITIALIZED'.
5065
5066 Tue Nov 20 20:54:12 CET 2007 Paolo Molaro <lupus@ximian.com>
5067
5068         * class.c: more interface implementations needed for the
5069         array enumerator (fixes bug #341112).
5070
5071 2007-11-18  Gert Driesen  <drieseng@users.sourceforge.net>
5072
5073         * icall.c: Renamed arguments for ves_icall_System_Enum_ToObject to
5074         fix ParamName of ArgumentNullExceptions.
5075
5076 2007-11-17  Miguel de Icaza  <miguel@novell.com>
5077
5078         * reflection.c (mono_reflection_encode_sighelper): Generate the
5079         modopts and modreqs.   I have a useless test that crashes monodis,
5080         but that shows the code working.
5081
5082 2007-11-17  Zoltan Varga  <vargaz@gmail.com>
5083
5084         * boehm-gc.c (create_allocator): Fix size calculation for the string allocator.
5085         (mono_gc_get_managed_allocator): Enable the string allocator on amd64.
5086
5087 2007-11-15  Dick Porter  <dick@ximian.com>
5088
5089         * threads.c (ves_icall_System_Threading_Thread_Join_internal):
5090         When joining a thread, it's the thread that's calling Join that
5091         gets WaitSleepJoin state not the target.  Fixes the standalone
5092         test case in bug 334740, and hopefully the whole bug too.
5093
5094 2007-11-15  Dick Porter  <dick@ximian.com>
5095
5096         * process.c: Read file version info from the files pointed at by
5097         process modules, not the current process.  Fixes bug 315969.
5098
5099         Use windows typedef names in some places to fix warnings on the
5100         windows build.
5101
5102 2007-11-15  Mark Probst  <mark.probst@gmail.com>
5103
5104         * image.c, metadata-internals.h: Added a generic_class_cache hash
5105         to MonoImage for looking up generic classes when sharing generics.
5106
5107 Thu Nov 15 16:11:30 CET 2007 Paolo Molaro <lupus@ximian.com>
5108
5109         * sgen-gc.c: warning cleanups.
5110
5111 2007-11-15  Zoltan Varga  <vargaz@gmail.com>
5112
5113         * icall.c (ves_icall_Type_GetPropertiesByName): Implement proper hiding of
5114         inherited properties.
5115
5116 2007-11-14  Mark Probst  <mark.probst@gmail.com>
5117
5118         * object.c, class-internals.h: Added more information to the
5119         runtime generic context.
5120
5121 2007-11-13  Zoltan Varga  <vargaz@gmail.com>
5122
5123         * marshal.c (mono_marshal_get_delegate_invoke): Take a delegate as argument
5124         instead of just the target method. Generalize the abstract method handling to
5125         handle any non-static method.
5126
5127         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
5128         mono_marshal_get_delegate_invoke () signature change.
5129
5130 2007-11-13  Mark Probst  <mark.probst@gmail.com>
5131
5132         * class.c, class-internals.h: Made
5133         mono_type_get_basic_type_from_generic () public.  Fixed member
5134         access check for shared generics.
5135
5136         * loader.c: Don't insert field into field cache if it's part of a
5137         non-inflated generic class.
5138
5139         * domain.c, domain-internals.h: The generic sharing context is now
5140         part of the jit info data structure.  Added two accessor
5141         functions.
5142
5143 2007-11-12  Zoltan Varga  <vargaz@gmail.com>
5144
5145         * marshal.c (mono_marshal_get_runtime_invoke): Create a non-shared wrapper for
5146         the array Get/Set/Address methods, since the JIT inlines them.
5147
5148         * metadata-internals.h (MonoImage): Add 'runtime_invoke_direct_cache'.
5149
5150         * image.c (mono_image_close): Free runtime_invoke_direct_cache.
5151         (mono_image_init): Initialize runtime_invoke_direct_cache.      
5152
5153         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
5154         mono_marshal_get_delegate_invoke signature change.
5155
5156         * marshal.c (mono_marshal_get_delegate_invoke): Receive the target_method as
5157         an additional argument. Add support for invoking abstract methods.
5158
5159         * metadata-internals.h (MonoImage): Add 'delegate_abstract_invoke_cache'.
5160
5161         * image.c (mono_image_close): Free delegate_abstract_invoke_cache.      
5162
5163 2007-11-09  Mark Probst  <mark.probst@gmail.com>
5164
5165         * class.c: Do field layout for open generic classes as well.
5166
5167 2007-11-09  Mark Probst  <mark.probst@gmail.com>
5168
5169         * gc.c, gc-internal.h: Don't finalize threadpool threads with
5170         other objects, because the threadpool is still around.  Put them
5171         in a list instead and after finalizing all other objects in the
5172         root domain shut down the thread pool and then finalize the
5173         threads.  Fixes bug #337383.
5174
5175         * threads.c, thread-types.h: New mono_thread_create_internal()
5176         function for marking a thread with the threadpool flag before it
5177         started.  Set synch_cs to NULL after freeing it.
5178
5179         * threadpool.c: Mark threadpool threads before they start.
5180
5181 Thu Nov 8 15:31:21 CET 2007 Paolo Molaro <lupus@ximian.com>
5182
5183         * reflection.h, reflection.c: don't export random functions
5184         and lazy load dbnull and missing objects.
5185
5186 2007-11-07  Jonathan Chambers <joncham@gmail.com>
5187
5188         * class.c: Initialize COM types if COM interfaces
5189         are present (not just COM classes).
5190         
5191         Code is contributed under MIT/X11 license.
5192
5193 2007-11-07  Massimiliano Mantione  <massi@ximian.com>
5194         * reflection.c:
5195         create_dynamic_mono_image: hook module profiler events (dynamic case).
5196         mono_image_basic_init: hook assembly profiler events (dynamic case).
5197
5198 2007-11-07  Massimiliano Mantione  <massi@ximian.com>
5199         * profiler.c:
5200         simple_appdomain_unload: completely terminate the profiler
5201         instead of only processing the statistical samples.
5202         simple_shutdown: make sure this is really called exactly once,
5203         even in multithreaded applications, and always listen to
5204         appdomain events.
5205         * gc.c (mono_domain_finalize): don't call mono_profiler_appdomain_event
5206         here, the "[un]load" functions will do it.
5207         Fixes bugs #333791 and #325261.
5208
5209 2007-11-07  Geoff Norton  <gnorton@novell.com>
5210
5211         * socket-io.c:  Use the configure defines for HAVE_SOCKADDR_IN(6)_SIN_LEN
5212         rather than depend on __APPLE__.
5213
5214 2007-11-07  Mark Probst  <mark.probst@gmail.com>
5215
5216         * icall.c: Safety checks in InitializeArray.  Fixes bug #324535.
5217
5218 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com> 
5219
5220         * object.c: Fix mono_string_to_utf8 to handle NULL values inside the
5221         UTF16 MonoString. Fix the crash from bug #335488
5222
5223 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com>
5224
5225         * marshal.c: Correct (for non-Win32 OS) length != size in 
5226         mono_string_from_bstr. Fix #339530.
5227
5228 2007-11-06  Geoff Norton  <gnorton@novell.com>
5229
5230         * socket-io.c: Apple requires sin(6)_len to be set for getnameinfo
5231         to succeed
5232
5233 2007-11-05  Kornél Pál  <kornelpal@gmail.com>
5234
5235         * process.c: Added run-time GetProcessId API detection for Windows.
5236
5237 2007-11-04  Miguel de Icaza  <miguel@novell.com>
5238
5239         * reflection.c  (mono_param_get_objects): If a parameter has the
5240         attribute [System.Runtime.InteropServices.Optional] we should
5241         set the DefaultValue of the ParameterInfo to be
5242         System.Reflection.Missing instead of DBNull.
5243
5244         See bug #339013.
5245
5246         (mono_get_reflection_missing_object): New method,
5247         returns the System.Reflection.Missing.Value singleton instance.
5248
5249 2007-11-03  Atsushi Enomoto  <atsushi@ximian.com>
5250
5251         * culture-info-table.h : regenerated.
5252
5253 2007-11-02  Jonathan Chambers <joncham@gmail.com>
5254
5255         * icall.c: Use GetEnvironmentStrings on windows
5256         so we are using the same environment block as 
5257         GetEnvironmentVariable/SetEnvironmentVariable. Fixes
5258         #333740.
5259         
5260         Code is contributed under MIT/X11 license.
5261
5262 2007-10-31  Martin Baulig  <martin@ximian.com>
5263
5264         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 64.
5265
5266         * mono-debug-debugger.h
5267         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_TRAMPOLINE'.
5268
5269 2007-10-30  Zoltan Varga  <vargaz@gmail.com>
5270
5271         * reflection.c (mono_custom_attrs_from_class): Add support for dynamic inflated 
5272         classes.
5273
5274 2007-10-30  Atsushi Enomoto  <atsushi@ximian.com>
5275
5276         * culture-info-table.h : regenerated.
5277
5278 2007-10-30  Robert Jordan  <robertj@gmx.net>
5279
5280         * icall-def.h, icall.c:
5281         Add ves_icall_Remoting_RemotingServices_GetVirtualMethod ().
5282
5283         Code is contributed under MIT/X11 license.
5284
5285 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
5286
5287         * class.c (mono_class_setup_vtable): Find the inflated methods in the
5288         inflated class instead of inflating them again.
5289         
5290         * class.c (mono_class_setup_vtable): Inflate the override methods in the 
5291         dynamic case.
5292
5293         * class.c (mono_generic_class_get_class): Set klass->property.count as well.
5294         Call setup_supertypes () after klass->parent is set.
5295         (mono_class_setup_properties): Enable this to work on dynamic generic classes.
5296
5297         * reflection.c (mono_type_get_object): Only return a MonoGenericClass object
5298         for inflated instances of not yet created dynamic generic classes.
5299         (ctorbuilder_to_mono_method): Handle the case when this is called multiple
5300         times from inflated_method.
5301         (methodbuilder_to_mono_method): Ditto.
5302
5303 Mon Oct 29 21:02:53 CET 2007 Paolo Molaro <lupus@ximian.com>
5304
5305         * gc.c: code cleanup and removed old untested option of not creating the
5306         finalizer thread.
5307
5308 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
5309
5310         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Avoid
5311         creating a jump trampoline for dynamic methods.
5312
5313 2007-10-29 Rodrigo Kumpera <rkumpera@novell.com>
5314
5315         * reflection.c (mono_image_create_token): Correctly encode methods and constructors of
5316         generic TypeBuilders when called from another method of the same type (bug #335131).
5317
5318
5319 2007-10-27  Zoltan Varga  <vargaz@gmail.com>
5320
5321         * reflection.c (methodbuilder_to_mono_method): Revert the last change as it
5322         doesn't seem to work perfectly.
5323         
5324         * reflection.c (ctorbuilder_to_mono_method): Handle the case when this is
5325         called multiple times.
5326         (methodbuilder_to_mono_method): Ditto.
5327         (resolve_object): Inflate FieldBuilder's.
5328
5329 Fri Oct 26 19:38:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
5330
5331         * string-icalls.c, string-icalls.h, appdomain.c: patch from
5332         Tyler Larson <mono-devel@tlarson.com> to fix the handling of
5333         RemoveEmptyEntries in the string.Split implementation (bug #322375).
5334
5335 2007-10-26  Dick Porter  <dick@ximian.com>
5336
5337         * appdomain.c (MONO_CORLIB_VERSION): Bump version because of
5338         Thread initialisation changes
5339
5340 2007-10-26 Rodrigo Kumpera <rkumpera@novell.com>
5341
5342         * verify.c: fix compatibility check between arrays and System.Array
5343
5344 2007-10-26  Zoltan Varga  <vargaz@gmail.com>
5345
5346         * reflection.c (mono_reflection_get_custom_attrs_info): Handle MonoGenericClass
5347         too. Fixes #336999.
5348
5349 2007-10-25  Zoltan Varga  <vargaz@gmail.com>
5350
5351         * object.c (mono_value_box): Use typed allocation here.
5352
5353 2007-10-23  Zoltan Varga  <vargaz@gmail.com>
5354
5355         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Create a jump
5356         trampoline instead of compiling the method right away.
5357
5358         * class-internals.h object.c: Add a JIT callback to create a jump trampoline.
5359
5360 2007-10-21  Zoltan Varga  <vargaz@gmail.com>
5361
5362         * class.c (mono_generic_class_get_class): Avoid setting klass->size_inited and
5363         related fields for dynamic classes. Fixes #334493.
5364
5365 2007-10-20  Zoltan Varga  <vargaz@gmail.com>
5366
5367         * class.c (mono_generic_class_get_class): Set klass->field.count as well.
5368         
5369         * class.c (mono_class_layout_fields): Use 1 instead of TRUE for consistency.
5370
5371         * class.c (mono_class_layout_fields): Set size_inited for generic classes as well.
5372         (mono_class_setup_vtable): Obtain overrides for dynamic generic classes correctly.
5373
5374         * class.c (mono_class_setup_methods): Handle dynamic inflated classes correctly.
5375
5376         * reflection.c (create_generic_typespec): Initialize klass->generic_container
5377         if needed.
5378         (reflection_methodbuilder_to_mono_method): Set container->is_method to TRUE.
5379
5380 2007-10-18  Jonathan Chambers <joncham@gmail.com>
5381
5382         * marshal.c: Use correct key when removing item
5383         from ccw_hash.
5384         
5385         Code is contributed under MIT/X11 license.
5386
5387 2007-10-17  William Holmes  <billholmes54@gmail.com>
5388
5389         *marshal.c: Adding a case to marshal booleans to U1
5390
5391         Code is contributed under MIT/X11 license.
5392
5393 2007-10-18  Zoltan Varga  <vargaz@gmail.com>
5394
5395         * class.c (mono_class_from_name): Search the modules compromising dynamic
5396         assemblies. Fixes #331601.
5397
5398 2007-10-16  Zoltan Varga  <vargaz@gmail.com>
5399
5400         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Throw an
5401         exception if the type name contains an assembly component. Fixes #334203.
5402
5403         * reflection.c (mono_reflection_get_type_with_rootimage): Search all the
5404         modules inside dynamic assemblies. Fixes #334200.
5405         
5406         * reflection.c: Set image->public_key and image->public_key_length;
5407
5408         * metadata-internals.h (MonoDynamicImage): Add public_key and public_key_len
5409         fields.
5410
5411         * image.c (mono_image_get_public_key): Handle dynamic assemblies. Fixes #334173.        
5412         
5413 2007-10-16  Mark Probst  <mark.probst@gmail.com>
5414
5415         * metadata.c: Implemented correct comparing of generic classes.
5416         An inflated generic class can be equal to a non-inflated one if it
5417         is inflated with generic type variables as type arguments.  Fixes
5418         bug #333798.
5419
5420 2007-10-15  Dick Porter  <dick@ximian.com>
5421
5422         * monitor.c (mono_monitor_try_enter_internal): Set thread state to
5423         WaitSleepJoin while it is waiting to acquire a lock.  Fixes bug
5424         81646.
5425
5426         * threads.c: Turn the thread synch_lock into a CRITICAL_SECTION,
5427         instead of a monitor lock.  This means that monitor_try_enter and
5428         co can set the thread state safely.
5429         (ves_icall_System_Threading_Thread_Interrupt_internal): Always set
5430         thread_interrupt_requested, so interrupt actually works.
5431
5432         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal,
5433         ves_icall_System_Net_Sockets_Socket_Select_internal): Use thread
5434         state accessor function
5435
5436 2007-10-15  Martin Baulig  <martin@ximian.com>
5437
5438         * mono-debug.h
5439         (MONO_DEBUGGER_VERSION): Bump to 63 to make it impossible to use
5440         the debugger with the current runtime.
5441
5442 Mon Oct 15 10:20:56 CEST 2007 Paolo Molaro <lupus@ximian.com>
5443
5444         * object.c, object-internals.h: added the ability to set a single
5445         trampoline for all the slots in a vtable.
5446
5447 Fri Oct 12 17:50:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
5448
5449         * marshal.c: deal with a possible race condition during multicast
5450         delegate invocation.
5451
5452 Fri Oct 12 13:31:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
5453
5454         * class.c: ensure value type methods don't have the synchronized
5455         flag set.
5456
5457 Fri Oct 12 08:10:59 CEST 2007 Paolo Molaro <lupus@ximian.com>
5458
5459         * string-icalls.c, string-icalls.h: reverted unapproved patch that
5460         breaks the build.
5461
5462 2007-10-11  Joel Reed  <joelwreed@comcast.com>
5463
5464         * string-icalls.c, string-icalls.h: modify System_String_InternalSplit
5465         to take an options parameter so that empty entries can be removed during
5466         the split procedure. Patch from: Tyler Larson <mono-devel@tlarson.com>
5467
5468 Thu Oct 11 20:16:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
5469
5470         * marshal.c: make sure we don't store the signature from a dynamic
5471         method into the runtime invoke cache (bug #327189).
5472
5473 Thu Oct 11 18:22:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
5474
5475         * marshal.c: make sure the wrapper methods are properly initialized.
5476
5477 2007-10-11  Mark Probst  <mark.probst@gmail.com>
5478
5479         * metadata.c, metadata-internals.h: Generalized
5480         mono_type_stack_size() to mono_type_stack_size_internal() which
5481         takes an additional argument specifying whether it allows open
5482         types.
5483
5484 2007-10-10  Rodrigo Kumpera  <rkumpera@novell.com>
5485
5486         * verify.c (do_invoke_method): handle typedbyref params
5487         correctly and check for unverifiable return values.
5488
5489         * verify.c (do_newobj): fix a warning.
5490
5491 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
5492
5493         * verify.c: don't tread typedbyref as allways unverifable,
5494         so uses, like (ld/st)loc.0 are valid. verify for the cases
5495         that it matters, like boxing related operations.
5496
5497 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
5498
5499         * verify.c: add verification of the newobj opcode. verification
5500         of delegate instantation still missing due ldftn and virldftn not
5501         pushing the function type on stack
5502
5503 2007-10-08  Mark Probst  <mark.probst@gmail.com>
5504
5505         * class-internals.h: Runtime generic context data structure
5506         definition.
5507
5508         * object.c: Initialization of runtime generic context at runtime
5509         vtable creation time.
5510
5511 2007-10-08  Massimiliano Mantione  <massi@ximian.com>
5512         * class.c (mono_class_create_from_typedef,
5513         mono_class_from_generic_parameter, mono_ptr_class_get,
5514         mono_fnptr_class_get, mono_bounded_array_class_get)
5515         * domain.c (mono_domain_create, mono_domain_free)
5516         * assembly.c (mono_assembly_load_from_full, mono_assembly_close)
5517         * image.c (do_mono_image_load, mono_image_close):
5518         Hooked up load-unload profiler events.
5519
5520 Mon Oct 8 11:38:04 CEST 2007 Paolo Molaro <lupus@ximian.com>
5521
5522         * domain.c: track statistics about the actual amount of native code
5523         allocated.
5524
5525 Sat Oct 6 10:01:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
5526
5527         * class.c: the valuetype enumerators don't have the additional
5528         supertypes interfaces.
5529
5530 Fri Oct 5 20:33:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
5531
5532         * class.c: need more interfaces setup for the IEnumerator<T>
5533         object created for arrays (tests/ienumerator-interfaces.2.cs).
5534
5535 2007-10-05  Zoltan Varga  <vargaz@gmail.com>
5536
5537         * class.c (mono_ldtoken): Handle methodspec tokens as well. Fixes #331097.
5538
5539 2007-10-05  Alp Toker  <alp@atoker.com>
5540
5541         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
5542         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
5543         #315863.
5544
5545 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
5546
5547         * verify.c (verify_type_compatibility_full): verification of
5548         compatibility improved, validates correctly non-strict checks between
5549         native int and I4 types different than (unsigned)int32.
5550
5551         * verify.c (do_store_indirect): added, do all verification of
5552         ldind.X opcodes. 
5553
5554         * verify.c (get_load_indirect_mono_type): renamed to
5555         get_indirect_op_mono_type, as it now returns the MonoType for 
5556         ldind.X and stind.X opcodes.
5557
5558 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
5559
5560         * reflection.c: Fix the encoding of generic type definition for
5561         TypeBuilders.
5562
5563         * reflection.c (mono_image_typedef_or_ref_full: do the same thing as
5564         mono_image_typedef_or_ref but allows to specify if typespec lookups should
5565         be made. Typespec check is done prior to typeref cache lookup.
5566
5567         * reflection.c (mono_image_typedef_or_ref): now just delegate to
5568         mono_image_typedef_or_ref_full.
5569
5570         * reflection.c (encode_generic_class): encode the generic class
5571         directly instead of calling encode_type.
5572
5573         * reflection.c (encode_type): encode the generic type definition
5574         MonoClass as a generic instantiation.
5575
5576         * reflection.c (create_typespec): cache typespec tokens in
5577         the assembly->typespec cache. Don't create typespec for a generic
5578         instance MonoClass. Create typespec for the generic type defintion.
5579
5580         * reflection.c (create_generic_typespec): encode the generic
5581         class directly instead of calling encode_type.
5582
5583         * reflection.c (mono_image_create_token): encode the generic
5584         type definition not using a typespec for MonoType instances.
5585
5586
5587 2007-10-04  Raja R Harinath  <rharinath@novell.com>
5588
5589         Fix #328812
5590         * class.c (mono_image_init_name_cache): Don't return nested
5591         'protected internal' classes.
5592         (mono_class_from_name_case): Likewise.
5593
5594 2007-10-04  Atsushi Enomoto  <atsushi@ximian.com>
5595
5596         * icall-def.h, icall.c : get_bundled_machine_config() is now the
5597           common function used by both DefaultConfig in System.dll and
5598           InternalConfigurationHost in System.Configuration.dll.
5599
5600 Wed Oct 3 17:26:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
5601
5602         * class.c: automatically add to vectors only a few essential explicit
5603         generic interfaces. The rest of the interfaces that arrays should
5604         provide are currently implicitly added (but still not lazily, see the
5605         design in the discussion of bug#325495 for the details of what is
5606         needed for that). Additionally, implicit interfaces are assigned the
5607         same vtable slot as the explicit interfaces (as they are compatible):
5608         this enables huge memory savings since we don't need to instantiate
5609         as many memthods and as large vtables anymore. Also, Since
5610         GetEnumerator<T> returns an instance of a type that is required to
5611         support a similarly large set of interfaces as arrays, we add
5612         implicit interfaces and interface offset sharing support to those
5613         types, too. This change adds all the required interfaces so that
5614         the anonarray.cs test case in the bug report works (we don't add
5615         all the interfaces to arrays of arrays 3-level deep and more because
5616         of the memory requirements explained in the bug and since they are much
5617         less common: the lazy-loading support will enabled them to work, too).
5618
5619 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
5620
5621         * verify.c (merge_stacks): major clean up, all type compatibility
5622         checks are done by verify_type_compatibility. This fix my earlier lack
5623         of understanding of the CLR type system and merge_stacks no longer looks
5624         scary.
5625
5626         * verify.c: fixed some bad spelling.
5627
5628 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
5629
5630         * verify.c (mono_type_from_stack_slot): added. returns the MonoType for
5631         a given stack slock.
5632         
5633         * verify.c: killed verify_type_compat in favor of verify_type_compatibility and
5634         verify_type_compatibility_full. This removed a near indentical function and fixed
5635         handling of Int32 and IntPtr across all opcodes.
5636
5637 Tue Oct 2 15:24:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
5638
5639         * class.c: only vectors have the additional generic interfaces.
5640
5641 2007-10-01  Jonathan Chambers <joncham@gmail.com>
5642
5643         * mono-config.c: Use g_strcasecmp instead of
5644         strcasecmp like everywhere else to fix
5645         compilation with MSVC.
5646         
5647         Code is contributed under MIT/X11 license.
5648
5649 Mon Oct 1 14:39:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
5650
5651         * object.c, object-internals.h: refactored the IMT code to enable
5652         building a single slot at a time and lazily creating the IMT trampolines
5653         and thunks.
5654
5655 2007-09-29  Zoltan Varga  <vargaz@gmail.com>
5656
5657         * loader.c (inflate_generic_signature): Allocate inflated signatures from the heap.
5658
5659         * metadata.c (mono_metadata_free_inflated_signature): Free the signature itself too.
5660         Fixes #328501.
5661         
5662 2007-09-29  Raja R Harinath  <harinath@gmail.com>
5663
5664         * loader.c (method_from_methodspec): Rearrange to avoid
5665         un-necessary exposition.  Don't assert out if the method's
5666         declaring type is a generic type definition.
5667
5668 2007-09-28  Martin Baulig  <martin@ximian.com>
5669
5670         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 61.
5671
5672 Fri Sep 28 20:15:47 CEST 2007 Paolo Molaro <lupus@ximian.com>
5673
5674         * class-internals.h: optimize field layout of MonoClass to
5675         requires less cachelines at runtime and save a few bytes on 64 bit
5676         systems.
5677
5678 2007-09-28  Jb Evain  <jbevain@novell.com>
5679
5680         * reflection.c: when encoding type names in custom attributes,
5681         if the type is a closed generic type, its generic arguments
5682         have to be serialized as AssemblyQualifiedName, so that when
5683         they are deserialized, it's possible to re-create them properly.
5684         Fixes #329450.
5685
5686
5687 Fri Sep 28 19:19:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
5688
5689         * object.c, class-internals.h: added delegate-creation counter.
5690
5691 Fri Sep 28 18:07:53 CEST 2007 Paolo Molaro <lupus@ximian.com>
5692
5693         * class.c: cleanup of the code that synthetizes interfaces for
5694         arrays in 2.0: saves quit a bit of corlib mempool memory.
5695         Code to fix bug #325495 ifdeffed out for now until the issues
5696         with memory usage and O(n^2) behaviour are fixed.
5697
5698 Fri Sep 28 17:19:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
5699
5700         * marshal.c: when possible, do not duplicate the name of the methods
5701         in the method builder and in the generated MonoMethod.
5702
5703 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
5704         * verify.c: added support for type checking ldind_* opcodes.
5705
5706 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
5707
5708         * class-internals.h (struct _MonoGenericClass): new field is_tb_open
5709         which is used to distinguish the fully open instantiation of a TypeBuilder
5710         with the rest. This temporary hack is required to restore the property that
5711         the fully open instantiation is the same type of the generic type definition.
5712
5713         * class-internals.h (mono_generic_class_is_generic_type_definition):
5714         new function as part of the internal API.
5715
5716         * class.c (inflate_generic_type): return NULL when the generic inst is
5717         fully open. The fully open generic type is now the same as the generic type
5718         definition for non TypeBuilder types.
5719
5720         * class.c (mono_generic_class_get_class): removed assert since it is
5721         no longer valid, gklass->cached_class can point to the generic type definition.
5722
5723         * class.c (mono_generic_class_is_generic_type_definition): new.
5724
5725         * metadata.c (mono_generic_class_hash): added is_tb_open field
5726         to the hash calculation.
5727
5728         * metadata.c (free_generic_class): if the generic class is associated
5729         with the generic type definition, its field will come from the mempool and
5730         must not be freed.
5731
5732         * metadata.c (mono_metadata_is_type_builder_generic_type_definition):
5733         new, this function identifies the corner case of a TypeBuilder fully open
5734         instantiation.
5735
5736         * metadata.c (mono_metadata_lookup_generic_class): use is_tb_open
5737         for lookup. Set gclass->cached_class to be the container class in case of
5738         the fully open instantiation of non TypeBuilder types.
5739
5740         * metadata.c (_mono_metadata_generic_class_equal): use is_tb_open
5741         to compare generic classes.
5742
5743         * reflection.c (method_encode_methodspec): remove assert that
5744         no longer is valid.
5745
5746         * reflection.c (mono_reflection_generic_class_initialize): add
5747         an aditional assert to ensure the proper type is used.
5748
5749 2007-09-26  Rodrigo Kumpera  <rkumpera@novell.com>
5750
5751         * verify.c: disabled all debug spew by default, define MONO_VERIFIER_DEBUG
5752         to enjoy it.
5753
5754 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
5755
5756         * verify.c (push_arg): Fixed support for ldarga
5757         * verify.c (set_stack_value): Removed superfluous parameter, fixed the
5758         MonoType used as first arg in case of instance calls.
5759
5760 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
5761
5762         * verify.c: Support for verifying VAR and MVAR types, 
5763
5764 2007-09-25  Zoltan Varga  <vargaz@gmail.com>
5765
5766         * icall.c (ves_icall_get_property_info): Set the reflected type of the
5767         accessors correctly.
5768
5769 Tue Sep 25 14:56:03 CEST 2007 Paolo Molaro <lupus@ximian.com>
5770
5771         * threads.c: support OSX and other systems in
5772         mono_thread_get_stack_bounds (bug #328026).
5773
5774 2007-09-25  Martin Baulig  <martin@ximian.com>
5775
5776         * mono-debug.h
5777         (MonoDebugVarInfo): Replace `MonoClass *klass' with `MonoType *type'.
5778
5779 2007-09-24  Martin Baulig  <martin@ximian.com>
5780
5781         * mono-debug.h
5782         (MonoDebugClassEntry): Moved the definition of this struct into
5783         mono-debug.c to make it private.
5784
5785         * mono-debug.c
5786         (MonoDebugClassEntry): Removed `symfile_id'; since we now use one
5787         type table per symbol file, we don't need to store the symfile id
5788         any longer.
5789
5790 2007-09-24  Martin Baulig  <martin@ximian.com>
5791
5792         Create one type table per symbol file, since a `MonoClass *' gets
5793         invalid when its image is unloaded.
5794
5795         * mono-debug.h (MonoSymbolTable): Removed `type_table'.
5796         (MonoDebugHandle): Added `type_table'.
5797
5798 Mon Sep 24 17:25:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
5799
5800         * mempool.c, mempool.h: added mono_mempool_new_size () API
5801         to be able to specify a smaller initial size for the pool.
5802         Adjusted the code to slowly increase pool size before using
5803         the previous default size.
5804         * image.c: use a small initial size for image mempools.
5805
5806 2007-09-23  Zoltan Varga  <vargaz@gmail.com>
5807
5808         * marshal.c (emit_marshal_array): Generate valid IL for byref array case.
5809         Fixes ##320990.
5810
5811         * icall.c (ves_icall_System_Reflection_Assembly_get_ManifestModuleInternal): 
5812         Rename this to ves_icall_System_Reflection_Assembly_GetManifestModuleInternal.
5813
5814 2007-09-22  Zoltan Varga  <vargaz@gmail.com>
5815
5816         * metadata.c (mono_type_create_from_typespec): Remove an invalid
5817         free. Fixes #327438.
5818
5819 2007-09-21  Raja R Harinath  <harinath@gmail.com>
5820
5821         * metadata.c (type_in_image) <MONO_TYPE_SZARRAY>: Handle arrays of
5822         generic instantiations, etc.
5823         <MONO_TYPE_ARRAY>: Likewise.
5824
5825 2007-09-21  Martin Baulig  <martin@ximian.com>
5826
5827         * mono-debug.h (MonoSymbolFilePriv, MonoDebugHandlePriv): Removed;
5828         these structs were never defined.
5829         (MonoDebugHandle): Removed the `_priv' field, it was never used.
5830
5831 2007-09-21  Martin Baulig  <martin@ximian.com>
5832
5833         * mono-debug.h (MonoDebugVarInfo): Add `MonoClass *klass'.
5834
5835 Fri Sep 21 14:39:45 CEST 2007 Paolo Molaro <lupus@ximian.com>
5836
5837         * image.c: removed the guid hash tables: we can get the same info
5838         without the additional memory usage hit (partially fixes also bug #327052).
5839
5840 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
5841
5842         * profiler.h, profiler-private.h, profiler.c: add a new profiler
5843         event to handle unloading methods. After the event is called, the
5844         corresponding MonoMethod* must be considered invalid.
5845         * loader.c (mono_free_method): call the new mono_profiler_method_free
5846         event.
5847
5848 2007-09-20  Mark Probst  <mark.probst@gmail.com>
5849
5850         * domain-internals.h: New flag in MonoJitInfo which marks shared
5851         generic methods.  New hash table (shared_generics_hash) in
5852         MonoDomain to keep track of shared generic methods.  Prototypes
5853         for functions to register and lookup shared generic methods.
5854
5855         * domain.c: Support for registering and looking up shared generic
5856         methods via a hash table (shared_generics_hash) in MonoDomain.
5857
5858         * class-internals.h: New exception to signal failure of shared
5859         compilation of a generic method.  New counters for generics
5860         sharing in MonoStats.
5861
5862 Thu Sep 20 16:59:36 CEST 2007 Paolo Molaro <lupus@ximian.com>
5863
5864         * image.c, metadata-internals.h: don't keep a file descriptor open
5865         for loaded assemblies (bug#325988).
5866
5867 2007-09-19  Raja R Harinath  <rharinath@novell.com>
5868
5869         * metadata.c (signature_in_image): New.  Carve out of type_in_image.
5870         (ginst_in_image, gclass_in_image): Simplify.  Change signature to
5871         use the corresponding datatypes.
5872         (type_in_image): Update to changes.
5873         (CleanForImageUserData): Simplify.
5874         (steal_gclass_in_image): Carved out of old 'gclass_in_image'.
5875         Avoid quadratic behaviour in handling the "stolen" list by
5876         separating the filter predicate out, and by prepending the stolen
5877         items rather than appending them.
5878         (steal_ginst_in_image): Likewise.
5879         (mono_metadata_clean_for_image): Update to changes.
5880
5881 2007-09-19  Martin Baulig  <martin@ximian.com>
5882
5883         * domain.c (mono_cleanup): Call mono_debug_cleanup() here.
5884
5885 2007-09-19  Martin Baulig  <martin@ximian.com>
5886
5887         * mono-debug.c (mono_debug_cleanup): Don't call
5888         mono_debugger_cleanup(); this is now called earlier from mini_cleanup().
5889
5890 2007-09-19  Raja R Harinath  <harinath@gmail.com>
5891
5892         Fix crash on 'make run-test' in mcs/errors
5893         * metadata.c (type_in_image): New.  Carve out of ginst_in_image.
5894         Avoid more potential allocations in mono_class_from_mono_type.
5895         (ginst_in_image): Update to changes.
5896         (gclass_in_image): Rearrange slightly.
5897
5898 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
5899
5900         * class.c (mono_class_init): Move the code that sets up class->methods to 
5901         mono_class_setup_methods () for inflated generic classes too. Ditto for properties.
5902
5903         * metadata.c (mono_metadata_get_inflated_signature): New function to return a
5904         canonical instance of an inflated generic signature.
5905         (mono_type_create_from_typespec): Remove an invalid free.
5906
5907         * loader.c (mono_method_get_signature_full): Use mono_metadata_get_inflated_signature.  
5908
5909 2007-09-18  Marek Habersack  <mhabersack@novell.com>
5910
5911         * domain-internals.h: added a declaration of the
5912         mono_assembly_load_full_nosearch internal function.
5913
5914         * assembly.c (mono_assembly_load_with_partial_name): use
5915         mono_try_assembly_resolve return value properly.
5916         (mono_assembly_load_full_nosearch): copied the function body from
5917         mono_assembly_load_full, without the code to invoke assembly
5918         search hooks.
5919         (mono_assembly_load_full): calls the above new function and if the
5920         assembly is not resolved, invokes the search hooks.
5921
5922         * appdomain.c (mono_runtime_init): restore the global postload
5923         assembly search handlers.
5924
5925 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
5926
5927         * class.c (mono_class_init): Make sure class->methods and class->properties
5928         are never NULL in the generics case.
5929
5930         * metadata.c (free_generic_class): Enable this again, skip the dynamic case.
5931
5932 2007-09-17  Zoltan Varga  <vargaz@gmail.com>
5933
5934         * metadata.c (free_generic_class): Disable some code to fix the build.
5935
5936         * domain.c (mono_cleanup): Fix a crash introduced by a previous patch.
5937
5938         * marshal.c (mono_marshal_get_xappdomain_dispatch): Allocate a piece of data
5939         from the image mempool.
5940
5941         * metadata.c (free_generic_class): Free more data from the inflated class.
5942
5943         * class.c (mono_class_from_generic_parameter): Allocate memory from the mempool.
5944
5945         * metadata.c (mono_metadata_parse_generic_param): Allocate memory from the image
5946         mempool.
5947         (mono_type_create_from_typespec): Ditto.
5948
5949         * domain.c (get_runtimes_from_exe): Add an out parameter to return the opened
5950         MonoImage to the caller.
5951         (mono_init_internal): Save the opened image in a global variable.
5952         (mono_cleanup): Close the image opened in get_runtimes_from_exe.
5953
5954         * reflection.c (resolve_object): Fix a leak.
5955
5956         * metadata.c: Fix the freeing of data in the generics caches.
5957         
5958         * metadata.c (free_generic_inst): Comment this out to fix the build.
5959         (free_generic_class): Ditto.
5960
5961         * metadata.c: Free cached generic methods, instantinations and classes when
5962         they are removed from the caches.
5963         (mono_metadata_free_type): Free the type itself.
5964
5965         * class.c: Free the result of mono_class_inflate_generic_type () in a few
5966         places.
5967
5968 Mon Sep 17 16:14:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
5969
5970         * boehm-gc.c: restrict managed allocs to __thread supporting
5971         architectures.
5972
5973 2007-09-16  Zoltan Varga  <vargaz@gmail.com>
5974
5975         * class.c (mono_class_inflate_generic_type): Add a comment describing memory ownership.
5976         (mono_generic_class_get_class): Fix a leak.
5977
5978         * metadata.c (do_mono_metadata_parse_type): Remove an unneccesary call to
5979         mono_metadata_free_type ().
5980         (mono_metadata_inflate_generic_inst): Fix a leak.
5981
5982 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
5983
5984         * mono-debug.c (free_header_data): Fix a leak missed earlier.
5985
5986         * metadata.c (mono_metadata_parse_array_full): Allocate memory from the image
5987         mempool.
5988
5989         * mono-debug.c (mono_debug_close_image): Fix call to 
5990         g_hash_table_remove ().
5991
5992 Fri Sep 14 19:36:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
5993
5994         * icall-def.h: redirect all the string ctor to the managed
5995         CreateString () methods.
5996         * string-icalls.c, string-icalls.h: removed dead code for string
5997         ctors and icalls.
5998
5999 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
6000
6001         * mono-debug.c: Fix memory leaks.
6002
6003 2007-09-14  Jonathan Chambers <joncham@gmail.com>
6004
6005         * threads-types.h: Implement mono_hazard_pointer_set and 
6006         mono_hazard_pointer_clear macros using do/while(0) to fix
6007         compilation with MSVC.
6008         
6009         Code is contributed under MIT/X11 license.
6010
6011 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
6012
6013         * gc.c (ves_icall_System_GCHandle_GetAddrOfPinnedObject): Use a return value of
6014         -2 to communicate to managed code that the handle is not pinned. Fixes #82848.
6015
6016 Fri Sep 14 14:04:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
6017
6018         * icall-def.h, string-icalls.c: get rid of old, no longer used, string
6019         icalls.
6020
6021 Fri Sep 14 11:41:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
6022
6023         * boehm-gc.c, gc-internal.h, object.c: allow strings to be
6024         managed-code allocated as well.
6025
6026 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
6027
6028         * class.c (mono_class_is_assignable_from): Add support for generic variance.
6029
6030 Thu Sep 13 11:55:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
6031
6032         * boehm-gc.c: fixed the build after the AOT changes.
6033
6034 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
6035
6036         * wrapper-types.h: Add an ALLOC wrapper type.
6037
6038         * gc-internals.h boehm-gc.c null-gc.c sgen-gc.c: Add functions needed by AOT to
6039         reference managed allocator methods.
6040
6041 2007-09-12  Marek Safar  <marek.safar@gmail.com>
6042
6043         * icall.c (ves_icall_MonoType_GetGenericArguments): Create an instance
6044         of Type array and not MonoType, a fix suggested by Hari.
6045         
6046 2007-09-12  Jonathan Chambers <joncham@gmail.com>
6047
6048         * domain-internals.h, domain.c : Remove delegate_invoke_impl_with_target_hash
6049         and delegate_invoke_impl_no_target_hash from _MonoDomain struct.
6050         
6051         Code is contributed under MIT/X11 license.
6052
6053 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
6054
6055         * domain.c, object.c, mono-config.c, object-internals.h: Fixed  #82416.
6056
6057 2007-09-12  Marek Habersack  <mhabersack@novell.com>
6058
6059         * image.c (do_mono_image_open): if assembly file fails to open and
6060         MONO_IOMAP is in effect, try to find the path in a
6061         case-insensitive way.
6062
6063         * appdomain.c (mono_runtime_init): do not install postload hooks -
6064         tests show that MS.NET doesn't use anything of that sort to
6065         trigger the AppDomain.AssemblyResolve event.
6066         (mono_try_assembly_resolve): renamed from try_assembly_resolve and
6067         made non-static.
6068         (mono_runtime_init): init portability helpers here.
6069
6070         * assembly.c (mono_assembly_load_with_partial_name): if other   
6071         attempts fail, trigger the AppDomain.AssemblyResolve event handler
6072         to resolve the assembly.
6073
6074         * domain-internals.h: added mono_try_assembly_resolve and marked
6075         it as internal.
6076
6077 2007-09-11  Jb Evain  <jbevain@novell.com>
6078
6079         * object-internals.h (MonoReflectionDynamicMethod): add
6080         a `MonoReflectionType *owner` field. The owner is used
6081         * reflection.c:
6082         (mono_reflection_create_dynamic_method): use the owner of the dynamic
6083         method as the class declaring the dynamic method.
6084         (reflection_methodbuilder_from_dynamic_method): copy the owner of the
6085         dynamic method to the declaring type of the methodbuilder.
6086
6087 2007-09-11  Mark Probst  <mark.probst@gmail.com>
6088
6089         * icall.c (ves_icall_InternalInvoke): Enforce CoreCLR security
6090         rules for calling methods via reflection.
6091
6092 2007-09-11  Zoltan Varga  <vargaz@gmail.com>
6093
6094         * reflection.c (resolve_object): Add support for MonoGenericClass. 
6095         Inflate MonoType's.
6096
6097 Tue Sep 11 16:08:08 CEST 2007 Paolo Molaro <lupus@ximian.com>
6098
6099         * gc-internal.h, boehm-gc.c, null-gc.c, sgen-gc.c: allow the GC to
6100         provide a managed method that does fast allocations without needing
6101         a managed->unmanaged transition. Boehm GC implementation currently
6102         enabled for ptrfree objects on sane architectures.
6103
6104 Tue Sep 11 16:00:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
6105
6106         * marshal.c, marshal.h: exported a couple of useful functions and
6107         added mono_mb_get_label () to easily handle backward branches.
6108
6109 2007-09-10  Zoltan Varga  <vargaz@gmail.com>
6110
6111         * reflection.c (resolve_object): Inflate generic methods. Fixes #82782.
6112
6113 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
6114
6115         * loader.c (find_method): Fixed the regression introduced while
6116         fixing bug #81466.
6117
6118 2007-09-09  Zoltan Varga  <vargaz@gmail.com>
6119
6120         * class.c (mono_lookup_dynamic_token_class): Pass along the context here as
6121         well.
6122         
6123         * class.c loader.c metadata.c object.c class-internals.h object-internals.h
6124         icall.c reflection.c: Pass a MonoGenericContext argument to 
6125         mono_lookup_dynamic_token ().
6126
6127         * reflection.c (resolve_object): Handle GenericTypeParameterBuilder. Fixes
6128         #82744.
6129         
6130 2007-09-09  Robert Jordan  <robertj@gmx.net>
6131
6132         * object.c (mono_class_proxy_vtable): Don't create remoting trampolines
6133         for generic methods.
6134
6135         * object.c (mono_object_get_virtual_method): Handle generic methods.
6136         Fixes bug #78882.
6137
6138         Code is contributed under MIT/X11 license.
6139
6140 Sat Sep 8 18:16:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
6141
6142         * image.c: fix locking in mono_image_load_file_for_image ().
6143
6144 Thu Sep 6 19:48:00 CEST 2007 Paolo Molaro <lupus@ximian.com>
6145
6146         * reflection.c, icall.c, icall-def.h: the methodinfos name field is
6147         used only as a cache: added an icall to fill it.
6148
6149 2007-09-16  Rodrigo Kumpera  <rkumpera@novell.com>
6150
6151         * reflection.h: exposed mono_reflection_free_type_info
6152         * reflection.c (mono_reflection_get_type_internal): type_args is always freed
6153         since mono_reflection_bind_generic_parameters makes a copy of it.
6154         * reflection.c (free_type_info): subinfos should be freed.
6155         * reflection.c (free_type_info): renamed to mono_reflection_free_type_info and 
6156         made non static.
6157         * icall.c (type_from_name and ves_icall_System_Reflection_Assembly_InternalGetType):
6158         replaced explicit cleanup of MonoTypeNameParse struct with a call to mono_reflection_free_type_info,
6159         this fixes #82695 and #81726.
6160    
6161
6162 2007-09-03  Atsushi Enomoto  <atsushi@ximian.com>
6163
6164         * process.h, process.c:  added support for user profile/info in
6165           ProcessStartInfo. For now only Windows works.
6166
6167 Fri Aug 31 17:30:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
6168
6169         * metadata.c: consider the generic arguments when comparing
6170         signatures (bug #82614).
6171
6172 Thu Aug 30 18:34:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
6173
6174         * cil-coff.h, image.c: updated assembly loader to cope with the
6175         PE32+ 64 bit file format.
6176
6177 Thu Aug 30 16:47:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
6178
6179         * assembly.c, class.c, domain.c, loader.c: remove useless
6180         inclusion of cil-coff.h.
6181
6182 2007-08-29  Jonathan Chambers  <joncham@gmail.com>
6183
6184         * marshal.c (cominterop_get_ccw): Walk up interface hierarchy
6185         if interface is marked with CoClassAttribute. 
6186    
6187         Code is contributed under MIT/X11 license.
6188
6189 Wed Aug 29 19:27:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
6190
6191         * sgen-gc.c: ensure no object from the to space is copied again or finalized
6192         if it's seen twice in major collections.
6193
6194 Wed Aug 29 18:46:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
6195
6196         * sgen-gc.c: big objects are not copied to the gray area, but they
6197         need to be considered for scanning, too, if they are brought alive
6198         by an object ready for finalizations or a survived one.
6199
6200 Wed Aug 29 18:43:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
6201
6202         * sgen-gc.c: properly account the number of disappearing links when
6203         they are nullified.
6204
6205 Wed Aug 29 18:37:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
6206
6207         * sgen-gc.c: share the code to scan the registered roots between the
6208         different types of collections.
6209
6210 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
6211
6212         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunModuleConstructor): New icall.
6213
6214 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
6215
6216         * object.c (mono_class_proxy_vtable): Use max_interface_id instead of
6217         class->max_interface_id in a one place. Fixes transparentproxy.exe test on ia64.
6218
6219 2007-08-28  Mark Probst  <mark.probst@gmail.com>
6220
6221         * security-manager.c (mono_security_manager_get_methods):
6222         LinkDemandSecurityException now has 2 arguments instead of 3.
6223
6224 2007-08-27  Zoltan Varga  <vargaz@gmail.com>
6225
6226         * class.c (mono_class_layout_fields): Only do the struct alignment hack on
6227         platforms which need it.
6228
6229 Mon Aug 27 18:29:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
6230
6231         * sgen-gc.c: unregister thread data structures with a pthread_key_t
6232         dtor.
6233
6234 Mon Aug 27 18:27:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
6235
6236         * threads.c: free the thread static data on thread exit.
6237
6238 Mon Aug 27 10:55:54 CEST 2007 Paolo Molaro <lupus@ximian.com>
6239
6240         * class.c: walk the hierarchy to find the generic definition for
6241         a class (fixes runtime part of bug #82498).
6242
6243 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
6244
6245         * assembly.c (mono_assembly_close): Move the closing of the referenced assemblies to
6246         ...
6247
6248         * image.c (mono_image_close): Here. Hopefully fixes #82510.
6249
6250 2007-08-24  Mark Probst  <mark.probst@gmail.com>
6251
6252         * monodiet.c (handle_cattrs): Fixed a custom attr leak.
6253
6254 2007-08-24  Robert Jordan  <robertj@gmx.net>
6255
6256         * appdomain.c: don't perform the ':'->';' substitution on Win32.
6257
6258 2007-08-24  Jb Evain  <jbevain@novell.com>
6259
6260         * class.c (mono_type_get_name_recurse): fix AssemblyQualifiedName
6261         for byref types.
6262
6263 2007-08-24  Mark Probst  <mark.probst@gmail.com>
6264
6265         * threads.c: Make sure a thread gets cleaned up only once.  Fixes
6266         #82286.
6267
6268 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
6269
6270         * assembly.c: Fix a warning.
6271         
6272 2007-08-23  Marek Habersack  <mhabersack@novell.com>
6273
6274         * appdomain.c: parse the <runtime> section looking for the probing
6275         element with the 'privatePath' attribute, which sets additional
6276         directories in which the runtime should look for assemblies.
6277
6278 2007-08-23  Robert Jordan  <robertj@gmx.net>
6279
6280         * marshal.c (Marshal_ReAllocHGlobal) : Fix GlobalReAlloc's flags.
6281         Fixes #82499.
6282
6283 2007-08-23  Martin Baulig  <martin@ximian.com>
6284
6285         * mono-debug.[ch]: Rename mono_debug_init_corlib() into
6286         _mono_debug_init_corlib() and remove it from the header file.
6287
6288 2007-08-23  Martin Baulig  <martin@ximian.com>
6289
6290         * mono-debug-debugger.c
6291         (mono_debugger_unhandled_exception): Ignore `ThreadAbortException';
6292         don't notify the debugger about it.
6293
6294         * mono-debug-debugger.h
6295         (MonoDebuggerEvent): Removed `THREAD_ABORT'.
6296
6297 2007-08-23  Robert Jordan  <robertj@gmx.net>
6298
6299         * icall-def.h, process.*: implemented Get|SetPriorityClass icalls.
6300         Code is contributed under MIT/X11 license.
6301
6302 Wed Aug 22 18:35:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
6303
6304         * sgen-gc.h, sgen-gc.c: abstracted most of the OS-specific code.
6305
6306 2007-08-22  Martin Baulig  <martin@ximian.com>
6307
6308         * mono-debug.c: Store debugging info on a per-domain basis and
6309         free it on domain unload.  Add support for unloading symbol files.
6310
6311         * mono-debug.h
6312         (MonoDebugList): New typedef.
6313         (MonoSymbolTable):
6314         - add `data_tables and `type_table'.
6315         - replace 'symbol_files' and `num_symbol_files' with a
6316           `MonoDebugList *'.
6317         (mono_debug_data_table): Removed.
6318         (mono_debug_list_add): New public function.
6319         (mono_debug_list_remove): New public function.
6320         (mono_debug_init_1): Renamed into mono_debug_init_corlib().
6321         (mono_debug_init_2_memory): Renamed into
6322         mono_debug_open_image_from_memory().
6323         (mono_debug_close_image): New public function.
6324         (mono_debug_domain_create): Likewise.
6325         (mono_debug_domain_unload): Likewise.
6326         (MONO_DEBUGGER_VERSION): Bump to 60.
6327
6328         * mono-debug-debugger.h
6329         (MonoDebuggerEvent):
6330         - remove `RELOAD_SYMTABS' and `METHOD_COMPILED'.
6331         - rename `ADD_MODULE' into `LOAD_MODULE'; add `UNLOAD_MODULE'.
6332         - add `DOMAIN_CREATE' and `DOMAIN_UNLOAD'.
6333         - rename `THREAD_CREATED' and `THREAD_EXITED' into
6334           `GC_THREAD_CREATED' and `GC_THREAD_EXITED'.
6335         - re-add `THREAD_CREATED' and `THREAD_EXITED'; with different
6336           meaning.
6337         (mono_debugger_add_symbol_file): Removed.
6338         (mono_debugger_add_type): Removed.
6339         (mono_debugger_lookup_type): Removed.
6340         (mono_debugger_lookup_assembly): Removed.
6341
6342         * domain.c
6343         (mono_domain_create): Call mono_debug_domain_create().
6344         (mono_init_internal): Call mono_debug_init_corlib().
6345
6346         * assembly.c
6347         (mono_assembly_close): Call mono_debug_close_image().
6348
6349 Wed Aug 22 17:26:02 CEST 2007 Paolo Molaro <lupus@ximian.com>
6350
6351         * sgen-gc.c: use the mono-mmap facilitites instead of hard-coding the
6352         mmap call.
6353
6354 Wed Aug 22 17:17:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
6355
6356         * sgen-gc.c: ensure section->pin_queue_end is initialized
6357         correctly when non pinning objects in the section have been found.
6358
6359 2007-08-22  Marek Habersack  <mhabersack@novell.com>
6360
6361         * appdomain.c (set_domain_search_path): cope with PrivateBinPath
6362         containing a list of directories separated by ':'. MSDN docs say
6363         the directories should be separated with ';'. Part of a bugfix for
6364         bug #81446
6365
6366 2007-08-21  Rodrigo Kumpera  <rkumpera@novell.com>
6367
6368         * class.c (mono_type_retrieve_from_typespec) : fixed the return type
6369         it should MonoType and not MonoClass.
6370
6371 2007-08-21  Atsushi Enomoto  <atsushi@ximian.com>
6372
6373         * culture-info-table.h : regenerated.
6374
6375 2007-08-20  William Holmes  <billholmes54@gmail.com>
6376
6377         *file-io.c: Added ves_icall_System_IO_MonoIO_ReplaceFile
6378          to call ReplaceFile Kernel32 on windows or in io-layer.
6379         *file-io.h: Added deceleration for ves_icall_System_IO_MonoIO_ReplaceFile
6380         *icall-def.h: Register ves_icall_System_IO_MonoIO_ReplaceFile
6381          as an internal call.
6382
6383         Code is contributed under MIT/X11 license.
6384
6385 2007-08-20  Jb Evain  <jbevain@novell.com>
6386
6387         * class-internals: add definitions for MONO_EXCEPTION_METHOD_ACCESS
6388         and MONO_EXCEPTION_FIELD_ACCESS.
6389
6390         * debug-helpers.[c|h]: new mono_field_full_name function.
6391
6392 2007-08-20  Mark Probst  <mark.probst@gmail.com>
6393
6394         * class.c: Removed class_security_level() and moved it to
6395         security-core-clr.c.
6396
6397         * security-core-clr.c, security-core-clr.h: class_security_level()
6398         is now public and renamed to mono_security_core_clr_class_level().
6399         It also looks for security attributes in the classes a class is
6400         nested in.
6401
6402 2007-08-20  Mark Probst  <mark.probst@gmail.com>
6403
6404         * security-core-clr.c, security-core-clr.h: CoreCLR security
6405         utility functions.
6406
6407         * Makefile.am: Added security-core-clr.[ch].
6408
6409         * security-manager.c, security-manager.h: Functions and enum for
6410         setting and getting the security mode.
6411
6412         * class.c: CoreCLR security checks.
6413
6414 Mon Aug 20 12:38:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
6415
6416         * icall-def.h, process.c, process.h: implemented icall to get
6417         user/system processor times.
6418
6419 2007-08-17  Mark Probst  <mark.probst@gmail.com>
6420
6421         * domain.c, threads.c, class-internals.h, domain-internals.h: New
6422         reader-lock-free jit_info_table.
6423
6424 2007-08-17  Zoltan Varga  <vargaz@gmail.com>
6425
6426         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_CUSTOM.
6427
6428         * marshal.c (mono_marshal_type_size): Ditto. Fixes #82465 and #82466.   
6429
6430         * object-internals.h (MonoException): Add missing _data member.
6431
6432 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
6433
6434         * loader.c (find_method, find_method_in_class): Fixed bug #81466,
6435         checking that only methods with matching qname or fqname are picked
6436         from implemented interfaces.
6437
6438 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
6439
6440         * verify.c (do_newarr):added, do type verification of
6441         newarr ops, push the right value on the eval stack.
6442         * verify.c (mono_method_verify): use do_newarr
6443
6444
6445 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
6446
6447         * verify.c (do_ldobj_value, do_unbox_value and do_box_value):
6448         factored the common code into get_boxable_mono_type, which
6449         is now using mono_type_get_full, this fixed byref related tests.
6450
6451 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
6452
6453         * class.c: added mono_type_get_full, this function has the same
6454         behavior of mono_class_get_full but the returned MonoType has
6455         all metadata of the associated token in case of a typespec token.
6456         * class.c: added mono_type_retrieve_from_typespec, used by 
6457         mono_type_get_full to retrieve the token type.
6458         * class.c (mono_class_create_from_typespec): changed to use
6459         mono_type_retrieve_from_typespec.
6460         * class.c (mono_ldtoken): changed to use mono_type_get_full
6461         for MONO_TOKEN_TYPE_(DEF|REF|SPEC).
6462         * class-internals.h: exported mono_type_get_full for internal use.
6463
6464 2007-08-16  Jb Evain  <jbevain@novell.com>
6465
6466         * domain.c (supported_runtimes): add entry for
6467         the 'moonlight' runtime version.
6468
6469 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
6470
6471         * verify.c (mono_method_verify): small typo sliped in.  
6472
6473 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
6474
6475         * verify.c (do_unbox_value): added, do type verification of
6476         unboxing ops
6477         * verify.c (mono_method_verify): use do_unbox_value
6478
6479
6480 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
6481
6482         * verify.c (dump_stack_value): fixed typo, was printing string
6483         instead of object on stack.
6484         * verify.c (do_box_value): moved the byref check up as it leads
6485         to invalid code and should be done earlier.
6486         * verify.c: improved error messages for and ldobj
6487
6488 2007-08-15  William Holmes  <billholmes54@gmail.com>
6489
6490         * marshal.c (emit_marshal_custom): Omit the call to 
6491           marshal_native_to_managed when calling native to managed 
6492           and the argument is specified as an out argument.
6493
6494         Code is contributed under MIT/X11 license.
6495
6496 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
6497
6498         * verify.c: fixed the type checks for generics, function pointers and vectors.
6499         Added type verification for ldobj and ldtoken. The verifier
6500         would segfault if header or signature of a method contained references
6501         to non-existant types.
6502
6503 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
6504
6505         * marshal.c (cominterop_get_ccw): Patch from
6506         Bill Holmes to no walk up interface hierarchy. 
6507         All parent methods should be present in the interface for COM.
6508    
6509         Code is contributed under MIT/X11 license.
6510
6511 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
6512
6513         * marshal.c (emit_marshal_com_interface): Patch from
6514         Bill Holmes to handle COM Interfaces as return values
6515         for native->managed calls.
6516    
6517         Code is contributed under MIT/X11 license.
6518
6519 2007-08-14  Jonathan Chambers  <joncham@gmail.com>
6520
6521         * marshal.c (cominterop_get_idispatch_for_object): Implement
6522         for runtime callable wrappers.
6523    
6524         Code is contributed under MIT/X11 license.
6525
6526 2007-08-13  Rodrigo Kumpera  <rkumpera@novell.com>
6527
6528         * pedump.c (main): changed from mono_init to mono_init_from_assembly
6529         so 2.0 types are accessible
6530
6531
6532 2007-08-13  Miguel de Icaza  <miguel@novell.com>
6533
6534         * domain.c (mono_init_internal): Call mono_assembly_load_friends
6535         once we load mscorlib.   Due to the order in which we initialize,
6536         the mono_assembly_load_full routine that loads mscorlib did not
6537         load friends.   We now load it once we load the
6538         mono_defaults.internals_visible_class class. 
6539
6540         * assembly.c: Expose the mono_load_friend_assemblies method.
6541
6542 2007-08-11  Rodrigo Kumpera  <rkumpera@novell.com>
6543
6544         * verify.c: improved the handling of boxing, better
6545         type checking for unary ops and conversion. Fix bug
6546         regarding managed pointer compatibility checking
6547
6548 2007-08-11  Zoltan Varga  <vargaz@gmail.com>
6549
6550         * icall.c (ves_icall_System_Array_SetGenericValueImpl): New icall.
6551
6552         * threads.c threads-types.h: Export mono_thread_get_stack_bounds.
6553
6554 2007-08-09  Raja R Harinath  <rharinath@novell.com>
6555
6556         * reflection.c (dup_type): Remove.
6557         * class.c (dup_type): Remove.
6558         (mono_metadata_signature_deep_dup): Use 'mono_metadata_type_dup'
6559         instead of the dodgy 'dup_type'.
6560         (inflate_generic_type): Likewise.  Fix the VAR/MVAR cases to
6561         handle the case where 'dup_type' needed the second argument.
6562
6563 2007-08-08  Zoltan Varga  <vargaz@gmail.com>
6564
6565         * domain.c: Fix a warning.
6566
6567 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
6568
6569         * class.c (mono_class_setup_vtable_general): Fixed bug #77127,
6570         checking that methods with the same fqname are not overridden
6571         with a method from an ancestor.
6572
6573 2007-08-07  Zoltan Varga  <vargaz@gmail.com>
6574
6575         * threads.c (free_thread_static_data_helper): Avoid a crash if
6576         thread->static_data is not yet set.
6577
6578 2007-08-07  Jonathan Chambers  <joncham@gmail.com>
6579
6580         * marshal.c: Use correct image when emitting
6581         native wrapper for COM calls.
6582    
6583         Code is contributed under MIT/X11 license.
6584
6585 2007-08-07  Atsushi Enomoto  <atsushi@ximian.com>
6586
6587         * icall-def.h, security.c, security.h :
6588           added icall wrapper to ProtectedMemory.[Unprotect|Protect]Data().
6589
6590 2007-08-07  Martin Baulig  <martin@ximian.com>
6591
6592         * mono-debug-debugger.h
6593         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD'.
6594
6595         * domain.c (mono_domain_free): Call
6596         `mono_debugger_event (MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD)'.
6597
6598 2007-08-06  Rodrigo Kumpera  <rkumpera@novell.com>
6599
6600         * verify.c (check_underflow, check_overflow): error message now returns IL offset
6601         * verify.c (in_same_block): code should test if either offset is inside the clauses
6602         * verify.c (mono_method_verify): push the exception into the eval stack of exception
6603         and filter blocks
6604
6605 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
6606
6607         * image.c (mono_image_close): Fix a leak.
6608
6609         * object.c (mono_runtime_invoke_array): Avoid using alloca.
6610
6611         * icall.c (ves_icall_FieldInfo_SetValueInternal): Ditto.        
6612
6613 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
6614
6615         * domain.c, threads.c, threads-types.h: fix memory retention issue
6616         with thread static variables not being cleared on domain unload.
6617         Reuse thread static slots after domain unload.
6618
6619 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
6620
6621         * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
6622         nullable type.
6623
6624         * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
6625         now done in mono_runtime_invoke_array.
6626
6627         * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the 
6628         receiver is a nullable type.
6629
6630         * class.c (mono_class_is_assignable_from): Handle the case when klass is a 
6631         generic parameter.
6632
6633 2007-08-03  Jonathan Chambers  <joncham@gmail.com>
6634
6635         * marshal.c: Implement COM Objects as return type for 
6636         managed->unmanaged calls. Added Release calls for COM Object
6637         out/return values in managed->unmanaged calls.
6638
6639         Code is contributed under MIT/X11 license.
6640
6641 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
6642
6643         * threads.h, threads-type.h: move the hazard pointer declarations
6644         to the private header.
6645
6646 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
6647
6648         * file-io.c, appdomain.c: memory leak fixes.
6649
6650 2007-08-02  Dick Porter  <dick@ximian.com>
6651
6652         * socket-io.c
6653         (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
6654         SO_REUSEADDR setting into io-layer/sockets.c.
6655
6656 2007-08-01  Zoltan Varga  <vargaz@gmail.com>
6657
6658         * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
6659         from Object when called on a generic parameter. Fixes #82211.
6660
6661 2007-08-01  Dick Porter  <dick@ximian.com>
6662
6663         * file-io.c (convert_share): Test FileShare values bit-by-bit.
6664         Fixes bug 79250 yet again.
6665
6666 2007-07-30  Martin Baulig  <martin@ximian.com>
6667
6668         Merged the `debugger-dublin' branch.
6669
6670         * mono-debug.h
6671         (MonoDebugDataTable): New typedef.
6672         (MonoDebugMethodAddressList): New typedef.
6673         (MonoDebugWrapperData): Removed.
6674         (MonoDebugSymbolTable): Removed `current_data_table',
6675         `current_data_table_size', `current_data_table_offset'.
6676         (MonoDebugDataItemType): Moved into mono-debug.c.
6677         (MonoDebugMethodJitInfo): Remove `address'.
6678         (mono_debug_data_table): New global variable.
6679         (mono_debug_lookup_method_addresses): New public function.
6680         (mono_debug_find_method): Take a `MonoMethod *', not a
6681         `MonoDebugMethodInfo *'.
6682
6683         * mono-debug.c: Drop support for the old symbol tables.
6684
6685 2007-06-28  Martin Baulig  <martin@ximian.com>
6686
6687         * mono-debug.c (mono_debug_debugger_version): New public variable.
6688
6689 2007-07-31  William Holmes  <billholmes54@gmail.com>
6690
6691         * metadata.c Changed mono_type_create_from_typespec to not insert
6692           the type into the hash map until after
6693           do_mono_metadata_parse_type has completed.
6694         Fixes Bug #82194
6695         Code is contributed under MIT/X11 license.
6696
6697 2007-07-31  Zoltan Varga  <vargaz@gmail.com>
6698
6699         * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
6700         generic parameter. Fixes #82211.
6701
6702 2007-07-27  Jb Evain  <jbevain@novell.com>
6703
6704         * pedump.c (dump_metadata, dump_metadata_header): dump
6705         versions contained in the metadata header.
6706
6707 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
6708
6709         * threads.c: register small_id_table with the GC.
6710
6711 2007-07-27  Mark Probst  <mark.probst@gmail.com>
6712
6713         * threads.c, threads.h, class-internals.h, object-internals.h:
6714         Hazard pointers, to be used by lock-free parallel algorithms.
6715
6716 2007-07-26  Dick Porter  <dick@ximian.com>
6717
6718         * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
6719         routine on non-windows platforms, as I've not managed to think of
6720         a non-kludgy way of doing this.  Finishes off bug 78739.
6721
6722 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
6723
6724         * object.c: properly setup interface_bitmap in proxy vtables.
6725
6726 2007-07-25  Marek Habersack  <mhabersack@novell.com>
6727
6728         * appdomain.c (get_shadow_assembly_location): do not use TickCount
6729         to create unique shadow copy target directories, use the domain's
6730         serial number instead. Each domain gets a unique target directory
6731         that way.
6732
6733         * domain.c (mono_domain_create): added code to increment domain
6734         shadow copy serial number and cache the value in the current
6735         domain structure.
6736
6737         * domain-internals.h (struct _MonoDomain): added a new field -
6738         shadow_serial to hold the serial number used in generation of
6739         shadow-copy directories. This is to make sure that the directory
6740         name is unique for each and every domain created. We avoid a race
6741         condition with overriding assemblies already in use by other app
6742         domains.
6743
6744 2007-07-24  Rodrigo Kumpera  <rkumpera@novell.com>
6745
6746         * class.c (mono_bounded_array_class_get): fixed memory leak when 
6747         binding generic parameters.
6748
6749 2007-07-24  Raja R Harinath  <rharinath@novell.com>
6750
6751         * metadata.c (do_mono_metadata_parse_generic_class): Use
6752         mono_metadata_lookup_generic_class.  Don't g_assert on a metadata
6753         error.
6754
6755 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
6756
6757         * loader.c, class-internals.h, reflection.c: removed the per-method
6758         generics hashtable: we use the global one through the call of
6759         mono_class_inflate_generic_method ().
6760
6761 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
6762
6763         * class.c, metadata.c, class-internals.h: introduce yet another
6764         generics global cache for inflated methods (fixes 98% of the perf
6765         issue in bug #81806).
6766
6767 2007-07-23  Raja R Harinath  <rharinath@novell.com>
6768
6769         Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
6770         * metadata.c (mono_metadata_lookup_generic_inst): Kill.
6771         (mono_metadata_get_generic_inst): New.  Given a list of MonoType*,
6772         return a MonoGenericInst containing (a copy) of those types.
6773         (mono_metadata_inflate_generic_inst): Update to changes.
6774         (mono_metadata_parse_generic_inst): Likewise.
6775         (mono_get_shared_generic_inst): Likewise.
6776         * reflection.c (mono_class_bind_generic_parameters): Likewise.
6777         (mono_reflection_bind_generic_method_parameters): Likewise.
6778         * metadata-internals.h: Likewise.
6779         * icall.c (free_generic_context): Kill.
6780         (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
6781
6782         * reflection.c (reflection_methodbuilder_to_mono_method): Use
6783         mono_metadata_type_dup.
6784         * marshal.c (mono_mb_create_method): Likewise.
6785
6786         * metadata.c (mono_metadata_type_dup): Rename from
6787         mono_metadata_type_dup_mp.  Take an optional mempool instead of a
6788         MonoImage.  Handle a few more cases, esp. when no mempool is given.
6789         * marshal.c, metadata-internals.h: Update to changes.
6790
6791 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
6792
6793         * class.c: fixed a small leak for array classes and removed warning.
6794
6795 2007-07-22  Zoltan Varga  <vargaz@gmail.com>
6796
6797         * loader.c (mono_method_get_param_token): Make this work on generic methods.
6798         Return 0x8000000 for return parameters. Fixes #82161.
6799
6800 2007-07-21  Marek Habersack  <grendello@gmail.com>
6801
6802         * appdomain.c (get_shadow_assembly_location): append the current
6803         ticks value to the path. Avoids overwriting the same assemblies by
6804         several threads at the same time.
6805
6806 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
6807         and Raja R Harinath  <rharinath@novell.com>
6808
6809         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
6810         Simplify slightly.
6811         (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
6812         property for testing if a method is a generic method definition.
6813
6814 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
6815
6816         * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
6817
6818 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
6819
6820         * verify.c: used function from private branch, reverted to the one in class.h 
6821
6822 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
6823
6824         * verify.c: a typo slipped in and the code wont compile
6825
6826 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
6827
6828         * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
6829         disabled box instruction as it is doing the wrong thing
6830         improved stack dump messages, now it is easier to debug type related issues
6831
6832
6833 2007-07-19  Juraj Skripsky  <js@hotfeet.ch>
6834
6835         * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak. 
6836
6837 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
6838
6839         * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from 
6840         TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
6841         grouped with class and valuetype. This change will simply 
6842         the code as it should be handled just like unmanaged pointers.
6843
6844 2007-07-19  Mark Probst  <mark.probst@gmail.com>
6845
6846         * class.c (concat_two_strings_with_zero): Fixed a silly bug.
6847
6848 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
6849
6850         * verify.c: several stack merge issues fixed, reference comparisons now
6851         check the type size. strict type check now works correctly.
6852         added more uses of IS_MANAGED_POINTER macro.
6853         fixed issues pointed by running the test suite against .net.
6854         
6855
6856 2007-07-19  Mark Probst  <mark.probst@gmail.com>
6857
6858         * class.c, loader.c, class-internals.h: Removed the
6859         MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
6860         defines.
6861
6862         * icall.c: Better error checking in some internal reflection
6863         methods.
6864
6865 2007-07-18  William Holmes  <billholmes54@gmail.com>
6866
6867         * filewatcher.c : removed unused variable 'filename' in 
6868           ves_icall_System_IO_FSW_SupportsFSW
6869
6870 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
6871
6872         * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
6873         obsolete, removed.
6874
6875 2007-07-15  Zoltan Varga  <vargaz@gmail.com>
6876
6877         * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
6878         
6879         * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
6880
6881 2007-07-14  Zoltan Varga  <vargaz@gmail.com>
6882
6883         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
6884         Implement generics support.
6885         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
6886
6887         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
6888         type_args and method_args arguments.
6889         (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
6890         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
6891         (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
6892
6893 2007-07-13  Rodrigo Kumpera  <rkumpera@novell.com>
6894
6895         * reflection.c: patch from Thong Nguyen to fix atribute resolution.
6896           It adds a rootimage parameter to mono_reflection_get_type_internal,
6897           adds new function mono_reflection_get_type_with_rootimage and use
6898           the rootimage to resolve the types instead of the current image
6899
6900 2007-07-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6901
6902         * culture-info-table.h: Forgot to update after r78304.
6903
6904 2007-07-13  Raja R Harinath  <rharinath@novell.com>
6905
6906         * class.c (mono_class_is_open_constructed_type)
6907         <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
6908
6909 2007-07-12  Rodrigo Kumpera  <rkumpera@novell.com>
6910
6911         * class.c (mono_bounded_array_class_get):  method fails if used with
6912         an incomplete TypeBuilder enum (no basetype field), fixed it by 
6913         avoiding calculating the size for such array as it cannot be instantiated.
6914         Fix bug #82015
6915
6916 2007-07-12  Raja R Harinath  <rharinath@novell.com>
6917
6918         * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
6919         field.
6920         * metadata.c, reflection.c: Update to changes.
6921
6922 2007-07-11  Rodrigo Kumpera  <rkumpera@novell.com>
6923
6924         * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
6925         mono_class_is_valid_enum, they are used to valide a enum when loading.
6926         * reflection.c: used new functions to throw TypeLoadException when and
6927         invalid enum is build with TypeBuilder. Fixes #82018
6928   
6929 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
6930
6931         * object.c: forgot commit of mono_class_setup_methods () to access
6932         iface->methods.
6933         * object-internals.h: added a few more handy fields to
6934         MonoIMTCheckItem.
6935
6936 2007-07-11  Zoltan Varga  <vargaz@gmail.com>
6937
6938         * object.c (build_imt): Call mono_class_setup_methods () before accessing 
6939         iface->methods.
6940
6941 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
6942
6943         * class-internals.h, object-internals.h, object.c: IMT-based
6944         interface invocation core from Massimiliano Mantione
6945         (massi@ximian.com) with a reworked arch-specific interface,
6946         bsearch implementation and a few bugfixes and memory savings by me.
6947
6948 2007-07-10  Rodrigo Kumpera  <rkumpera@novell.com>
6949
6950         * class.c (mono_class_create_from_typedef): mono would segfault if 
6951         an enum did not have a __value field. It now throws a TypeLoadException
6952         for such cases. Fix bug #82022
6953
6954 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
6955
6956         * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
6957
6958 2007-07-09  Mark Probst  <mark.probst@gmail.com>
6959
6960         * class.c (mono_class_init): If a class is already inited but has
6961         an exception_type set, return FALSE, not TRUE.  Fixes: 82050.
6962
6963 2007-07-09  Mark Probst  <mark.probst@gmail.com>
6964
6965         * class.c: Properly handle the case of an unimplemented interface
6966         method.  Fixes: 81673.
6967
6968 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
6969
6970         * class-internals.h, object.c: cleanup patch from massi: use
6971         MonoVTable->interface_bitmap since the vtable interfaces offset array
6972         is going away.
6973
6974 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
6975
6976         * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
6977         GetMDStreamVersion icall instead.
6978
6979 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
6980
6981         * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
6982         not use mono_dl_build_path() with a full library name: makes
6983         fallbacks to libgaim and libfam work.
6984
6985 2007-07-06  William Holmes  <billholmes54@gmail.com>
6986
6987         * assembly.c: Added a continue statement in probe_for_partial_name when
6988          parse_assembly_directory_name fails.  Fixes : 82002
6989
6990 2007-07-06  Rodrigo Kumpera  <rkumpera@novell.com>
6991
6992         * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
6993         and added a verification  for TYPEDBYREF.
6994         * verify.c (verify_stack_type_compatibility): fix handling of byref types,
6995         make native int interchangeable with int32 and some small cleanup and formating.
6996         * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
6997         handle byref of byref.
6998         * verify.c (push_local): handle byref of byref.
6999         * verify.c (do_binop): invalid mix of values is unverifiable
7000         * verify.c (do_invoke_method): fixed the handling of bad params on stack and
7001         added visibility checks
7002         * verify.c (field related method): added visibility checks
7003         * verify.c (do_push_field): cannot take the address of a temporary valuetype field
7004
7005 2007-07-06  Zoltan Varga  <vargaz@gmail.com>
7006
7007         * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
7008         string.
7009
7010 2007-07-05  Zoltan Varga  <vargaz@gmail.com>
7011
7012         * profiler.c (mono_profiler_load): Fix an off-by-one error.
7013
7014         * marshal.c (emit_marshal_string): When returning a string from managed code,
7015         allways make a copy even for unicode strings. Fixes #81990.
7016
7017 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
7018
7019         * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
7020         of byref generic inst types (bug #81997).
7021
7022 2007-07-03  Rodrigo Kumpera  <rkumpera@novell.com>
7023
7024         * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
7025         * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
7026
7027 2007-07-02  Zoltan Varga  <vargaz@gmail.com>
7028
7029         * marshal.c (emit_marshal_string): Add support for unicode strings in
7030         MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
7031
7032 2007-07-02 Rodrigo Kumpera  <rkumpera@novell.com>
7033
7034         * verify.c: field load/store are now verified, missing only access checks now
7035
7036 2007-06-28  Martin Baulig  <martin@ximian.com>
7037
7038         * mono-debug.c (mono_debug_debugger_version): New public variable.
7039
7040 2007-06-24  Gert Driesen  <drieseng@users.sourceforge.net>
7041
7042         * locales.c: When constructing DateTimeFormat or NumberFormat for
7043         MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
7044         MonoCultureInfo contructed from the current locale is always
7045         read-only and has UseUserOverride set to true. All MonoCultureInfo
7046         instances returned for GetCultures have both IsReadOnly and
7047         UseUserOverride set to true. Fixes part of bug #81930.
7048
7049 2007-06-22  Jonathan Chambers  <joncham@gmail.com>
7050
7051        * icall-def.h: Update System.__ComObject icalls
7052        * marshal.c: Avoid managed transition (and object creation)
7053        when looking up COM interface in RCW.
7054        * marshal.h: Ditto.
7055        
7056        Code is contributed under MIT/X11 license.
7057
7058 2007-06-22  Zoltan Varga  <vargaz@gmail.com>
7059
7060         * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
7061         to avoid crashes during assembly unloading.
7062
7063 2007-06-22  Raja R Harinath  <rharinath@novell.com>
7064
7065         Fix MethodInfo.IsGenericMethodDefinition
7066         * reflection.c (mono_reflection_bind_generic_method_parameters):
7067         Rearrange code to ensure we always uses a generic method definition.
7068         * class.c (mono_class_inflate_generic_method_full): Set
7069         'generic_container' field only for generic method definitions.
7070         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
7071         Use presense of 'generic_container' field as indication of being a
7072         generic method definition.
7073
7074 2007-06-21  Zoltan Varga  <vargaz@gmail.com>
7075
7076         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
7077
7078         * object-internals.h: Reflect changes in the layout of the managed Delegate
7079         class.
7080         
7081         * object-internals.h reflection.c icall-def.h: Applied patch from Robert
7082         Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
7083         runtime memory used by the dynamic method. Fixes #77146.
7084
7085 2007-06-21  Dick Porter  <dick@ximian.com>
7086
7087         * file-io.h: 
7088         * file-io.c (convert_share): Cope with FileShare.Delete.  Patch
7089         from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
7090         81767.
7091
7092 2007-06-21  Raja R Harinath  <rharinath@novell.com>
7093
7094         * reflection.c (method_encode_methodspec): Add a tripwire.
7095         * class.c (inflate_generic_type): The fully open generic type is
7096         not the same as the generic type definition.
7097
7098 2007-06-21  Martin Baulig  <martin@ximian.com>
7099
7100         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
7101
7102         * mono-debug-debugger.h
7103         (MonoDebuggerBreakpointInfo): Removed.
7104         (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
7105         (mono_debugger_remove_breakpoint): Likewise.
7106         (mono_debugger_breakpoint_callback): Likewise.
7107         (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
7108
7109 2007-06-21  Raja R Harinath  <rharinath@novell.com>
7110
7111         * metadata.c (mono_metadata_lookup_generic_class): The fully open
7112         generic type is not the same as the generic type definition.
7113         * class.c (mono_generic_class_get_class): Likewise.
7114
7115 2007-06-20  Geoff Norton  <gnorton@customerdna.com>
7116
7117         * icall.c: The second argument to 
7118         System.Reflection.MethodBase.GetMethodFromHandleInternalType
7119         is a MonoType not a MonoClass.
7120
7121 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
7122
7123         * verify.c: support for function pointers in the verifier
7124
7125 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
7126
7127         * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
7128
7129 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
7130
7131         * assembly.c: removed Mono.Data.SqliteClient from the list of
7132         forward-compatible assemblies as it breaks the ABI (bug #81899).
7133
7134 2007-06-19  Raja R Harinath  <rharinath@novell.com>
7135
7136         * metadata.c (mono_metadata_lookup_generic_class): Protect cache
7137         lookup/update with the loader lock.
7138         * reflection.c (mono_class_bind_generic_parameters): No need to
7139         protect mono_metadata_lookup_* with the loader lock.
7140         * class.c (inflate_generic_type): Likewise.
7141         
7142         * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
7143         on a generic instantiated type.
7144
7145 2007-06-18  Rodrigo Kumpera <kumpera@gmail.com>
7146
7147         *verify.c: produce meanfull error messages on verification error
7148         *verify.c: fixed some cases of verification errors reported as validation errors
7149         *pedump.c: fixed the error name array, now it shows validation errors properly
7150         *verify.h: fixed the contant that should be used for verification errors
7151
7152 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
7153
7154         * metadata.c, image.c, metadata-internals.h: part of the fixes needed
7155         for bug #77596, 81858 and 80743 (generics data structures on domain
7156         unload).
7157
7158 2007-06-15  Raja R Harinath  <rharinath@novell.com>
7159
7160         Avoid allocating 'MonoGenericContext' on the heap.
7161         * class-internals (_MonoMethodInflated::context): Make field
7162         inline, not a pointer.
7163         * loader.c (method_from_methodspec): Allocate 'new_context' on the
7164         stack.  Use the context embedded within the inflated method as the
7165         hash key, rather than 'new_context'.
7166         * class.c (inflate_generic_context): Simplify.  Return a struct
7167         rather than allocating on the heap.
7168         (mono_class_inflate_generic_method_full): Update to changes.  Now,
7169         doesn't salt away a copy of the context -- simplifying the
7170         lifetime rules of a 'MonoGenericContext *'.
7171         (mono_method_get_context): Return pointer to embedded context.
7172         (setup_generic_array_ifaces): Allocate temporary context on stack.
7173         * reflection.c (inflate_mono_method): Likewise.
7174         (mono_reflection_bind_generic_method_parameters): Likewise.
7175         Use the context embedded within the inflated method as the hash key.
7176
7177         Avoid a source of allocation of 'MonoGenericContext'.
7178         * class-internals.h (_MonoGenericClass::context): Combine 'inst'
7179         and 'cached_context' fields into embedded 'MonoGenericContext' field.
7180         * class.c: Update to changes.
7181         (mono_generic_class_get_context): Simplify drastically.  Now just
7182         returns a pointer to the field.
7183         * metadata-internals.h (mono_metadata_generic_context_hash): Mark
7184         argument as a const pointer.
7185         (mono_metadata_generic_context_equal): Likewise.
7186         * metadata.c, loader.c, icall.c, reflection.c, verify.c:
7187         Update to changes.
7188
7189 2007-06-14  Rodrigo Kumpera  <kumpera@gmail.com>
7190
7191         * verify.c improved the handling of brtrue/brfalse, factored out common code
7192
7193 2007-06-14  Raja R Harinath  <rharinath@novell.com>
7194
7195         Kill MonoGenericMethod.
7196         * class-internals.h (MonoGenericContext::method_inst): Rename from
7197         'gmethod' and convert to a MonoGenericInst.
7198         (MonoGenericMethod): Remove.
7199         * metadata.h (MonoGenericMethod): Note that the name is obsolete.
7200         * loader.c (method_from_methodspec): Update to changes.  Use a
7201         MonoGenericContext as the key to the hashtable.
7202         * metadata.c (mono_metadata_generic_context_equal): Rename from 
7203         'mono_metadata_generic_method_equal' and take MonoGenericContext.
7204         (mono_metadata_generic_context_hash): Likewise from
7205         'mono_metadata_generic_method_hash'.  Change hash function.
7206         (mono_metadata_load_generic_params): Update to changes.
7207         (mono_get_shared_generic_method): Remove.
7208         * metadata-internals.h (mono_get_shared_generic_method): Remove.
7209         * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
7210         (inflate_generic_context): Likewise.
7211         (mono_class_inflate_generic_method_full): Likewise.
7212         (setup_generic_array_ifaces): Likewise.
7213         (mono_class_create_from_typespec): Likewise.
7214         * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
7215         (method_encode_methodspec): Update callsite.
7216         (reflection_methodbuilder_to_mono_method): Update to changes.
7217         (mono_reflection_bind_generic_method_parameters): Likewise.  Use a
7218         MonoGenericContext as the key to the hashtable.
7219         (inflate_mono_method): Update to changes.
7220
7221         * class-internals.h (MonoGenericMethod::container): Remove.
7222         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
7223
7224 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
7225
7226         * profiler-private.h, profiler.c, profiler.h: added API to profile
7227         exception events.
7228
7229 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
7230
7231         * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments 
7232
7233 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
7234
7235         * verify.c: method invocation is now validated, now we verify parameter types on stack.
7236         Fixed overflow and underflow not aborting the verification process.
7237
7238 2007-06-13  Mark Probst  <mark.probst@gmail.com>
7239
7240         * class-internals.h (MonoStats): Added stats entries for dynamic
7241         code allocations.
7242
7243 2007-06-12  Zoltan Varga  <vargaz@gmail.com>
7244
7245         * loader.c (mono_free_method): Free header->locals and header->clauses.
7246
7247         * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
7248         dynamic case.
7249
7250         * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
7251
7252         * class.c (setup_interface_offsets): Allocate memory from the image mempool.
7253
7254 2007-06-12  Raja R Harinath  <rharinath@novell.com>
7255
7256         * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
7257         the tables.
7258
7259 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
7260
7261         *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
7262
7263 2007-06-11  Raja R Harinath  <harinath@gmail.com>
7264
7265         MonoGenericMethod on a diet
7266         * class-internals.h (_MonoMethodInflated::reflection_info): Move
7267         here ...
7268         (_MonoGenericMethod::reflection_info): ... from here.
7269         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
7270         Update to changes.
7271         * reflection.c (inflate_mono_method): Likewise.
7272         (mono_reflection_bind_generic_method_parameters): Likewise.
7273
7274 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
7275
7276         *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
7277         *verify.c: factored long ldarg forms to share code with short forms
7278
7279 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
7280
7281         *verify.c: fixed code formating factored some duplicate code
7282         into a new function
7283
7284         *verify.h: fixed binary incompatibility introduced earlier
7285
7286         *pedump.c: fixed formating
7287
7288 2007-06-11  Raja R Harinath  <harinath@gmail.com>
7289
7290         Fix assertion when disassembling Mono.C5.dll
7291         * loader.c (method_from_methodspec): Avoid inflating a method
7292         twice with the same context.  If the methodref is inflated, use
7293         the declaring method instead.
7294
7295         * class.c (mono_class_from_generic_parameter): Fix case similar to
7296         bug #81830 handled below, but for method containers.
7297
7298 2007-06-10  Raja R Harinath  <harinath@gmail.com>
7299
7300         * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
7301         get_shared_generic_class.  Directly inflate the instance.
7302         [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
7303         (inflate_generic_class): Delete.
7304         (get_shared_generic_class): Delete.  Move setting of
7305         'cached_class' and 'cached_context' ...
7306         * metadata.c (mono_metadata_lookup_generic_class): ... here.
7307
7308         * metadata.c (mono_metadata_lookup_generic_class): Change
7309         signature to take the components of a MonoGenericClass rather than
7310         an allocated MonoGenericClass.  Change semantics to be intern-like.
7311         * reflection.c (mono_class_bind_generic_parameters): Update to
7312         changes.  Make locking region tighter.
7313         * class.c (inflate_generic_class): Update to changes.
7314         (get_shared_generic_class): Likewise.
7315         * metadata-internals.h: Likewise.
7316
7317         * reflection.c (mono_class_bind_generic_parameters): Take and
7318         return a MonoClass*, not a MonoType*.  Add 'is_dynamic' parameter.
7319         (mono_reflection_bind_generic_parameters): Use
7320         'mono_class_bind_generic_parameters' rather than duplicate the code.
7321         * class.c (mono_bounded_array_class_get): Update to changes.
7322         * object-internals.h: Likewise.
7323
7324         * reflection.c (mono_class_bind_generic_parameters): Only support
7325         parameterizing generic type definitions.  Remove support for other
7326         open types.
7327
7328 2007-06-08  Zoltan Varga  <vargaz@gmail.com>
7329
7330         * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
7331
7332         * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
7333         in the dynamic case.
7334
7335 2007-06-08  Gert Driesen  <drieseng@users.sourceforge.net>
7336
7337         * threads.c: When cleaning up thread, reset the Background bit.
7338         Fixes bug #81720.
7339
7340 2007-06-08  Jonathan Chambers  <joncham@gmail.com>
7341
7342        * metadata.c: Move variable declarations to top of scope.
7343        * verify.c: Move variable declarations to top of scope.
7344
7345        Code is contributed under MIT/X11 license.
7346
7347 2007-06-08  Raja R Harinath  <rharinath@novell.com>
7348
7349         * reflection.c (mono_class_bind_generic_parameters): Replace
7350         open-coded loop with mono_metadata_inflate_generic_inst.
7351
7352         * class.c (get_shared_generic_class): Don't call
7353         mono_get_shared_generic_inst.  Use the container's own
7354         'class_inst'.
7355
7356         * metadata.c (mono_metadata_load_generic_params): Move
7357         initialization of 'context' field here from ...
7358         * class.c (mono_class_create_from_typedef): ... here, and ...
7359         * loader.c (mono_get_method_from_token): ... here.
7360
7361         * class.c (get_shared_generic_class): Rename from
7362         mono_get_shared_generic_class and make static.
7363         (mono_get_shared_generic_inst): Move to metadata.c.
7364         * loader.c (mono_get_shared_generic_method): Likewise.
7365         * class-internals.h, metadata-internals.h: Update to changes.
7366
7367         Fix #81830
7368         * class.c (mono_class_from_generic_parameter): Don't assume a
7369         generic container owner exists.  Generic containers from monodis
7370         don't have any.
7371
7372 2007-06-06  Rodrigo Kumpera  <kumpera@gmail.com>
7373
7374         * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
7375         * verify.h: new typedefs to returns the non-verifiable status
7376         * verify.c: initial implementation of generics, stack merging and object compatibility check
7377
7378 2007-06-06  Mark Probst  <mark.probst@gmail.com>
7379
7380         * class.c, image.c, class-internals.h (MonoImage): class_cache is
7381         a MonoInternalHashTable again (fixed bug in internal hash table
7382         code).
7383
7384 2007-06-06  Mark Probst  <mark.probst@gmail.com>
7385
7386         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
7387         MonoInternalHashTable again (fixed bug in internal hash table
7388         code).
7389
7390 2007-06-06  Mark Probst  <mark.probst@gmail.com>
7391
7392         * class.c, image.c, class-internals.h, domain.c,
7393         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
7394         changes.  Have to figure out what makes them break the SWF
7395         regression.
7396
7397 2007-06-04  Mark Probst  <mark.probst@gmail.com>
7398
7399         * class.c, image.c, class-internals.h (MonoImage): class_cache is
7400         a MonoInternalHashTable now.
7401
7402 2007-06-04  Mark Probst  <mark.probst@gmail.com>
7403
7404         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
7405         MonoInternalHashTable now.
7406
7407 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
7408
7409         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
7410         invoke_impl code.
7411
7412         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
7413
7414         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
7415         dependent trampoline.
7416
7417         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
7418
7419         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
7420
7421 2007-05-29  Robert Jordan  <robertj@gmx.net>
7422
7423         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
7424
7425 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
7426
7427         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
7428
7429 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
7430
7431        * marshal.c: Fix interface lookup loops for
7432        cominterop_get_com_slot_for_method and 
7433        cominterop_get_method_interface. Only need to lookup
7434        if type is a class, else use interface type method is on.
7435
7436        Code is contributed under MIT/X11 license.
7437
7438 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
7439
7440         * reflection.c: HasSecurity can be present even if no specially 
7441         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
7442         SecurityAttribute). Fix CAS regression tests on buildbot.
7443
7444 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
7445
7446        * appdomain.c: Add configure checks for header files.
7447        * image.c: Add configure checks for header files.
7448        * file-io.c: Add configure checks for header files.
7449        * debug-mono-symfile.c: Add configure checks for header files.
7450        * threadpool.c: Add configure checks for header files.
7451        * console-io.c: Add configure checks for header files.
7452        * profiler.c: Add configure checks for header files.
7453        * rawbuffer.c: Add configure checks for header files.
7454        * icall.c: Add configure checks for header files.
7455        * rand.c: Add configure checks for header files.
7456        * socket-io.c: Add configure checks for header files.
7457
7458        Code is contributed under MIT/X11 license.
7459
7460 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
7461
7462         * reflection.c (mono_custom_attrs_from_builders): Remove the 
7463         assertion as it breaks the build.
7464         
7465         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
7466
7467         * reflection.c (lookup_custom_attr): Make a copy here too.
7468
7469         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
7470         dynamic images.
7471
7472         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
7473         images.
7474
7475         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
7476         info.
7477
7478 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
7479
7480         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
7481         (load_cattr_value): Ditto.
7482
7483 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
7484
7485         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
7486
7487 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
7488
7489         * threads.c: In "start_wrapper", set apartment_state to MTA if
7490         apartment_state is Unknown and we're running on 2.0 profile or
7491         higher.
7492         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
7493         to main method, then set apartment_state to Unknown on 1.0 profile,
7494         and MTA on 2.0 profile.
7495
7496 2007-05-16  Jb Evain  <jb@nurv.fr>
7497
7498         * class-internals.h (MonoDefaults): Add an attribute_class and
7499           customattribute_data_class.
7500         * domain.c (mono_init_internal): Populate them.
7501         * reflection.c: Use them to remove duplicates. Make a vew
7502         MonoClass variables `static'.
7503
7504 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
7505
7506         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
7507         step in implementing IMT, so that all isinst checks now can go
7508         through the bitmap.
7509         This was needed because vtables for TransparentProxy need to look
7510         like the vtable of the "target" class, so they need to point to
7511         its interface bitmap directly.
7512
7513         * object.c: inside "mono_class_create_runtime_vtable" and
7514         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
7515
7516 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
7517
7518         * object-internals.h
7519           culture-info.h : added territory field in MonoCulture and
7520           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
7521         * locales.c : fill territory field above too.
7522         * culture-info-table.h : regenerated.
7523
7524 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
7525
7526         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
7527         Fixes #81599.
7528
7529 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
7530
7531         * object.c: Always initialize apartment, even if 
7532         there is no custom attributes on entry point.
7533         
7534         Code is contributed under MIT/X11 license.
7535
7536 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
7537
7538         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
7539         * metadata.c: If no encoding is set, check for unicode
7540         on class.
7541         
7542         Code is contributed under MIT/X11 license.
7543
7544 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
7545
7546         * threads.c: Handle if mono_thread_current returns NULL 
7547         
7548         Code is contributed under MIT/X11 license.
7549
7550 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
7551
7552         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
7553         in start_wrapper. Added mono_thread_init_apartment_state and
7554         mono_thread_cleanup_apartment_state.
7555         * object.c: Initialize thread apartment state on main thread
7556         by checking for STAThreadAttribute on entry point.
7557         * object-internals.h: Add apartment_state field to MonoThread.
7558         * threads-types.h: Add unmanaged definition of 
7559         System.Threading.ApartmentState, MonoThreadApartmentState.
7560         
7561         Code is contributed under MIT/X11 license.
7562         
7563 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
7564
7565         * class.c: Fix windows build.
7566         * class-internals.h: Fix windows build.
7567         
7568         Code is contributed under MIT/X11 license.
7569
7570 2007-05-08  Robert Jordan  <robertj@gmx.net>
7571
7572         * process.c (CreateProcess_internal):
7573         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
7574         .CreateNoWindow was specified. Fixes #81496.
7575
7576 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
7577
7578         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
7579         step in implementing IMT, replaced it with two compact arrays
7580         (interfaces_packed and interface_offsets_packed) and a bitmap that
7581         is used for isinst checks (interface_bitmap).
7582
7583         * class.c: (compare_interface_ids): compare function to pass to
7584         bsearch when looking for an interface with a given id.
7585         (mono_class_interface_offset): reimplemented using bsearch on
7586         interfaces_packed, getting the offset from interface_offsets_packed.
7587         (print_implemented_interfaces): utility debugging function.
7588         (setup_interface_offsets): reworked to initialize interfaces_packed,
7589         interface_offsets_packed and interface_bitmap.
7590
7591         * object.c: replaced all accesses to "MonoClass.interface_offsets"
7592         with uses of interfaces_packed and interface_offsets_packed.
7593
7594 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
7595
7596         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
7597         mono_class_interface_offset prototype to wrap all accesses to
7598         "MonoClass.interface_offsets".
7599
7600         * class.c: Implemented mono_class_interface_offset, and wrapped all
7601         accesses to "MonoClass.interface_offsets".
7602
7603         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
7604         "MonoClass.interface_offsets".
7605
7606 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
7607
7608         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
7609         GetMethodFromHandle overloads (bug #78637).
7610
7611 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
7612
7613         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
7614         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
7615
7616 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
7617
7618         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
7619         #81498.
7620
7621         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
7622         gracefully.
7623         (mono_custom_attrs_from_index): Ditto.
7624
7625         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
7626         Fixes #81501.
7627
7628 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
7629
7630         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
7631         is now allocated from a mempool.
7632
7633 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
7634
7635         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
7636         caller holds threads_lock, leading to deadlocks. Fixes #81476.
7637
7638 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
7639
7640         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
7641         mono_loader_clear_error () too late. Fixes #81463.
7642
7643 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
7644
7645         * culture-info-table.h : regenerated.
7646
7647 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
7648
7649         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
7650         is missing.
7651
7652 2007-04-25  Dick Porter  <dick@ximian.com>
7653
7654         * Makefile.am: Put the mingw enforced-optimisation back into the
7655         PLATFORM_WIN32 section.
7656
7657 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
7658
7659         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
7660         patch.
7661
7662         * image.c (mono_image_load_module): New API function to load a module reference.
7663
7664         * image.c (load_modules): Load modules lazily. Fixes #80812.
7665
7666         * class.c (mono_class_from_typeref): Use mono_image_load_module.
7667         
7668         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
7669
7670         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
7671         to mono_image_load_module_dynamic.
7672
7673 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
7674
7675         * marshal.c: Fix calling convention for CCW on non-windows
7676         platforms. STDCALL on windows, CDECL everywhere else to work 
7677         with XPCOM and MainWin COM.
7678         
7679         Code is contributed under MIT/X11 license.
7680
7681 2007-04-23  Martin Baulig  <martin@ximian.com>
7682
7683         Fix #80969.
7684
7685         * loader.c
7686         (method_from_memberref): Added `gboolean *used_context' argument.
7687         (mono_get_method_from_token): Likewise.
7688         (mono_get_method_full): Don't insert the method in the cache when
7689         `used_context' is true.
7690
7691 2007-04-23  Raja R Harinath  <rharinath@novell.com>
7692
7693         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
7694
7695         * reflection.c (mono_reflection_bind_generic_parameters): Don't
7696         create new MonoTypes for returned types.
7697         * class.c (mono_generic_class_get_class): Export mono-internal.
7698         * class-internals.h: Update to changes.
7699
7700 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
7701
7702         * threadpool.c, threadpool.h, icall-def.h: patch from
7703         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
7704
7705 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
7706
7707         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
7708         
7709         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
7710
7711         * threads.c (mono_thread_get_stack_bounds): New helper function.
7712
7713         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
7714         Correctly compute stack bounds when attaching. Fixes #81394.
7715
7716 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
7717
7718         * reflection.c: fix handling of doubles in custom attributes
7719         for the arm-fpa format (bug #81368).
7720
7721 2007-04-18  Raja R Harinath  <rharinath@novell.com>
7722
7723         * reflection.c (assembly_add_win32_resources): Mildly relax an
7724         bounds check to let the end pointer point just past the end of the
7725         allocated buffer.  (may fix #81384)
7726
7727 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
7728
7729         * culture-info-table.h : regenerated.
7730
7731 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
7732
7733         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
7734         the thread is aborted early.
7735
7736 2007-04-05  Dick Porter  <dick@ximian.com>
7737
7738         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
7739         FindFirstFile()/FindNextFile() to find entries.  This lets the
7740         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
7741         81038.
7742
7743         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
7744         the parameters of
7745         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
7746
7747 2007-04-04  Martin Baulig  <martin@ximian.com>
7748
7749         * debug-helpers.c
7750         (mono_method_desc_full_match): Add support for nested classes.
7751
7752 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
7753
7754         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
7755
7756 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
7757
7758         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
7759         waiting for too many threads.
7760
7761 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
7762
7763         * environment.c: Fix return value check on uname so we can get the 
7764         executing version on Solaris operating systems.
7765
7766 2007-03-28  Jb Evain  <jbevain@gmail.com>
7767
7768         * class.c (mono_type_get_name_recurse): Complete the
7769         fix for the creation of assembly qualified names for
7770         pointer types. Fixes #81208.
7771
7772 2007-03-27  Dick Porter  <dick@ximian.com>
7773
7774         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
7775         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
7776         changed.
7777
7778         * threads.c
7779         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
7780         the value of ReleaseMutex().
7781
7782 2007-03-27  Dick Porter  <dick@ximian.com>
7783
7784         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
7785         in little-endian order, not network endian, so must be converted
7786         to host endian here.  Fixes bug 80593.
7787
7788 2007-03-22  Jb Evain  <jbevain@gmail.com>
7789
7790         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
7791         qualified names for pointer types. Fixes #81208.
7792
7793 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
7794
7795         * marshal.c: Add support for PreserveSigAttribute. 
7796         
7797         Code is contributed under MIT/X11 license.
7798
7799 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
7800
7801         * process.c: Fix endianness issues. Fixes #81126.
7802
7803         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
7804         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
7805
7806         * image.c (mono_image_lookup_resource): Make this work on big-endian
7807         machines.Change API contract so the caller needs to free the return value.
7808         
7809         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
7810         API change.
7811         
7812 2007-03-14  Martin Baulig  <martin@ximian.com>
7813
7814         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
7815         mono_type_get_desc() as well.
7816
7817 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
7818
7819         * icall.c:  Fix environ access in VS.  
7820         
7821 2007-03-13  Alp Toker  <alp@atoker.com>
7822
7823         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
7824         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
7825         #63841.
7826
7827 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
7828
7829         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
7830         circular references among dynamic methods. Fixes #81091.
7831
7832         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
7833
7834 2007-03-09  Martin Baulig  <martin@ximian.com>
7835
7836         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
7837
7838 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
7839
7840         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
7841         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
7842         
7843         Code is contributed under MIT/X11 license.
7844         
7845 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
7846
7847         * loader.c: Reapply patch for bug #79424.
7848
7849 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
7850
7851         * metadata.c (mono_type_to_unmanaged): Only convert object to
7852         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
7853
7854 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
7855
7856         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
7857         (and incorrectly set) is_reference field from MonoGenericInst.
7858
7859 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
7860
7861         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
7862         a little earlier.
7863
7864         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
7865
7866         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
7867
7868 2007-03-05  Miguel de Icaza  <miguel@novell.com>
7869
7870         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
7871         FileOptions.1 value to mean "temporary", map that to
7872         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
7873
7874         Fixes 80688
7875
7876 2007-03-03  Marek Habersack  <mhabersack@novell.com>
7877
7878         * appdomain.c: implement MS .Net style shadow copying. Copies of
7879         the assemblies are made in a subdirectory of the dynamic base
7880         directory, the assembly names are preserved.
7881         Copy .mdb and .config files along with the assemblies being shadowed.
7882
7883 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
7884
7885         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
7886         (emit_marshal_handleref): Ditto.
7887
7888         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
7889         on Visual C++. Fixes #80671.
7890
7891 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
7892
7893         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
7894         for clone operations.
7895
7896 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
7897
7898         * marshal.c: Fix warnings.
7899
7900 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
7901
7902         * loader.c: allow case-insensitive matching of the dll name
7903         in dllmap handling when prefixed with "i:".
7904
7905 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
7906
7907         * threads.c: Fix #ifdef for dummy_apc function for VS.
7908
7909 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
7910
7911         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
7912
7913 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
7914         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
7915         giving precedence to the methods with a fully qualified name
7916         (InterfaceName.MethodName) when building the interface sections
7917         of the vtable.
7918
7919 2007-02-16  Dick Porter  <dick@ximian.com>
7920
7921         * threadpool.c (append_job): Fix fast-path array handling, so it's
7922         less likely the array will grow exponentially when the load is
7923         heavy.
7924
7925 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
7926
7927         * metadata-internals.h, loader.c: fix dllmap lookup order
7928         for non-function maps, too, and prepare for fallback code.
7929
7930 2007-02-12  Robert Jordan  <robertj@gmx.net>
7931
7932         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
7933         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
7934         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
7935         GlobalFree. Fixes a part of bug #77075.
7936
7937 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
7938
7939         * loader.c: implemented typedef parent in field memberref.
7940
7941 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
7942
7943         * marshal.c: Fix warnings and remember to call Release on
7944         IUnknown of RCW.
7945         
7946         Code is contributed under MIT/X11 license.
7947
7948 2007-02-10  Miguel de Icaza  <miguel@novell.com>
7949
7950         * class-internals.h: Add MonoHandleRef definition, and
7951         handleref_class to mono_defaults. 
7952
7953         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
7954         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
7955
7956         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
7957         (do nothing on this stage)
7958         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
7959         (emit_marshal_handleref): New method, used for argument handling
7960         of HandleRefs. 
7961
7962 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
7963
7964         * class.c (mono_class_setup_parent): Lazily init com types.
7965         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
7966         init com types.
7967         * object.c (mono_remote_class_vtable): Lazily init com types.
7968         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
7969         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
7970         * domain-internals.h: Expose mono_init_com_types.
7971         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
7972         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
7973         Add support for COM Callable Wrapper marshalling.
7974         * marshal.h: Add icall definitions.
7975         * gc.c: Handle freeing of CCWs in finalizer code.
7976         
7977         Code is contributed under MIT/X11 license.
7978
7979 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
7980
7981         * reflection.c: changed all the signature encoding code to use
7982         a variable-sized buffer.
7983
7984 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
7985
7986         * marshal.c: locking fixes: never take the loader lock
7987         or other runtime locks when holding the marshal lock
7988         (fixes bug#80664).
7989
7990 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
7991
7992         * marshal.c: make the delegate function pointer mapping
7993         work for the moving GC.
7994
7995 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
7996
7997         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
7998         for bug #80618.
7999
8000 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
8001
8002         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
8003         gmodule.
8004
8005 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
8006
8007         * threadpool.c: made the code moving-GC safe.
8008
8009 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
8010
8011         * assembly.c, boehm-gc.c, class-internals.h, class.c,
8012         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
8013         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
8014         warning cleanup.
8015         * reflection.c: warning cleanup, some threading and moving GC fixes.
8016
8017 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
8018
8019         * class.c, loader.c: create the needed Set/Get/Address array methods
8020         as well as the .ctors in mono_class_init (), fixes bug #80567.
8021
8022 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
8023
8024         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
8025         we doesn't decrease its alignment. Should fix the sparc build.
8026
8027 2007-01-24  Dick Porter  <dick@ximian.com>
8028
8029         * socket-io.c
8030         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
8031         Create the returned object if we need to ignore an unsupported
8032         socket option.  Fixes a segfault reported by Atsushi.
8033
8034 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
8035
8036         * class.c, object.c: restrict GC-tracked fields to
8037         UIntPtr fields used inside corlib, so we provide better
8038         type info to the GC and also allow broken packing as in
8039         bug #80580.
8040
8041 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
8042
8043         * sgen-gc.c: removed duplicated function.
8044
8045 2007-01-19  Miguel de Icaza  <miguel@novell.com>
8046
8047         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
8048         value that means that the value is not supported, but that we
8049         should not return a failure, but instead report this as a
8050         successful operation.
8051
8052 2007-01-19  Raja R Harinath  <rharinath@novell.com>
8053
8054         Fix tests/bug79956.2.il
8055         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
8056         (mono_generic_class_get_class): If the generic definition in an
8057         enum, copy over other fields related to it.
8058
8059 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
8060
8061         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
8062         genericinst enums (bug #79215).
8063
8064 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
8065         * class.c: Fix bug 80307.
8066
8067 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
8068
8069         * image.c: if the file table is not present, try to load
8070         all the modules, since we don't have info about them
8071         having or not metadata (bug #80517).
8072         * assembly.c: allow mono_assembly_load_references () to
8073         work for netmodules.
8074
8075 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
8076
8077         * image.c, metadata-internals.h, object.c: execute module
8078         cctors when running on the 2 runtime if present (bug #80487).
8079
8080 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
8081
8082         * icall.c: optimized InitializeArray() on bigendian.
8083
8084 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
8085
8086         * icall.c: fix for the broken ARM FPA double format.
8087
8088 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
8089
8090         * icall.c: handle endian issues for r4 and r8 types, too, in
8091         the InitializeArray() icall.
8092
8093 2007-01-15  Miguel de Icaza  <miguel@novell.com>
8094
8095         * loader.c (mono_loader_error_prepare_exception): Clear the error
8096         once we have extracted the information from it, do this before we
8097         call into the JIT's class loading mechanisms.
8098
8099         * object.c (mono_class_create_runtime_vtable): Do not clear the
8100         loader error before calling mono_class_get_exception_for_failure
8101         as the loader error is needed inside
8102         mono_class_get_exception_for_failure to throw the error (thinko).
8103
8104         Fixes #80521
8105         
8106 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
8107
8108         * reflection.c: align fields rva data so it's faster to load at
8109         runtime.
8110
8111 2007-01-12  Raja R Harinath  <rharinath@novell.com>
8112
8113         Prepare to simplify GenericMethod handling.
8114         * class-internals.h (mono_method_get_context): New accessor function.
8115         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
8116         rather than directly accessing '->context' field.
8117
8118         * class-internals.h (_MonoGenericParam.method): Move ...
8119         (_MonoGenericContainer): ... here.  Add into union with klass field.
8120         * class.c, icall.c, loader.c, metadata.c, reflection.c:
8121         Update to changes.
8122
8123 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
8124
8125         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
8126         the wrapper type enum and reduce relocations.
8127
8128 2007-01-12  Raja R Harinath  <rharinath@novell.com>
8129
8130         * reflection.c (inflate_mono_method): Reuse method instantiation
8131         from the generic method, if available.
8132
8133 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
8134
8135         * marshal.c (emit_marshal_variant): Fix conv_arg
8136         type in last commit, based on whether parameter is byref.
8137         
8138 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
8139
8140         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
8141         marshalling.
8142         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
8143         MONO_TYPE_OBJECT back for VARIANT support.
8144
8145 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
8146
8147         * marshal.c, marshal.h, icall-def.h: Implement 
8148         Marshal.ReAllocCoTaskMem.
8149
8150 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
8151
8152         * marshal.c: memory retention fixes: use the proper
8153         image cache for runtime_invoke method lookups.
8154
8155 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
8156
8157         * mempool.c: added code to help debug mempool allocations.
8158
8159 2007-01-11  Dick Porter  <dick@ximian.com>
8160
8161         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
8162         support (experimenting with faking it with IP_MTU_DISCOVER for
8163         systems that don't have IP_DONTFRAGMENT.)
8164         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
8165         icall.
8166
8167         * icall-def.h: new System.Net.Sockets.Disconnect icall.
8168
8169         * socket-io.h: Add new fields to MonoSocketAsyncResult
8170         corresponding to the new ones in Socket.cs.
8171
8172 2007-01-11  Raja R Harinath  <rharinath@novell.com>
8173
8174         Fix IronPython regression mentioned in #80249
8175         * metadata.c (do_mono_metadata_parse_generic_class): Clear
8176         'cached_context' field, since it may have been initialized as a
8177         side-effect of metadata parsing.
8178
8179         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
8180         (_MonoGenericClass.cached_class): Move here and rename from lone
8181         remaining field of ...
8182         (_MonoInflatedGenericClass): ... this.  Remove.
8183         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
8184         to changes.
8185
8186         Fix mcs/tests/test-128.cs regression.
8187         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
8188         2007-01-10 change below.
8189         [MONO_TYPE_OBJECT]: Recurse into array case.
8190
8191 2007-01-11  Raja R Harinath  <harinath@gmail.com>
8192
8193         * class-internals.h (mono_get_inflated_generic_class): Remove.
8194         * class.c (mono_get_inflated_generic_class): Remove.
8195         (mono_generic_class_get_class): Rename from
8196         mono_class_create_generic.
8197         (mono_class_from_mono_type) [GENERICINST]: Use it.
8198         * reflection.c, metadata.c: Update to changes.  Use
8199         'mono_class_from_mono_type'.
8200
8201 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
8202
8203         * reflection.c: use passed type when encoding an array element
8204         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
8205
8206 2007-01-09  Robert Jordan  <robertj@gmx.net>
8207
8208         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
8209         result arguments (someDelegate.EndInvoke (unrelatedAres)).
8210         Fixes bug #80392.
8211
8212 2007-01-09  Raja R Harinath  <rharinath@novell.com>
8213
8214         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
8215
8216         * object.c (set_value): Avoid aliasing between type->data.klass
8217         and type->data.generic_class.
8218
8219         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
8220
8221 2007-01-08  Raja R Harinath  <rharinath@novell.com>
8222
8223         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
8224         between type->data.klass and type->data.generic_class.
8225
8226 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
8227
8228         * marshal.c: In MS.NET, StringBuilder objects are not copied by
8229         value in out parameters.
8230
8231 2007-01-08  Raja R Harinath  <rharinath@novell.com>
8232
8233         Simplify invariant for MonoGenericClass::klass field.
8234         * class.c (mono_class_create_generic): Verify 'klass' is null.
8235         * metadata.c (do_mono_metadata_parse_generic_class): Don't
8236         initialize 'klass' field.
8237
8238 2007-01-05  Raja R Harinath  <rharinath@novell.com>
8239
8240         Ongoing work to avoid redundant data and simplify invariants.
8241         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
8242         'generic_class', and change type to a GenericInst.
8243         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
8244         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
8245
8246 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
8247
8248         * class.c : skip io-layer under PLATFORM_WIN32.
8249
8250 2007-01-03  Tor Lillqvist  <tml@novell.com>
8251
8252         Fix #80305: In a bundled executable, look in the bundled exe
8253         assembly to determine the runtime version. Add the possibility to
8254         bundle also the machine.config file.
8255         
8256         * assembly.c (mono_assembly_open_from_bundle): Make
8257         non-static. Allow being called even if we have no bundled
8258         assemblies, and return NULL right away in that case.
8259
8260         * domain-internals.h: Declare mono_assembly_open_from_bundle()
8261         here.
8262
8263         * domain.c (app_config_parse): Take an assembly exe file name as
8264         parameter instead of a config file name. Check for a bundled
8265         config file for that assembly by calling
8266         mono_config_string_for_assembly_file() (see below) before looking
8267         for one in the file system.
8268         (get_runtimes_from_exe): Corrsponding change to call of
8269         app_config_parse().
8270         (get_runtimes_from_exe): Check for bundled assembly exe file first
8271         by calling mono_assembly_open_from_bundle(). If no bundled
8272         assembly exe file is found, call mono_image_open() as before to
8273         look it up in the file system.
8274
8275         * mono-config.c: Add variable bundled_machinec_onfig.
8276         (mono_config_string_for_assembly_file): New function.
8277         (mono_config_for_assembly): Move code snippet that looks for a
8278         bundled assembly .config file into the above new function. Call
8279         it.
8280         (mono_register_machine_config, mono_get_machine_config): New
8281         functions to set and retrieve
8282
8283         * assembly.h: Declare mono_register_machine_config().
8284
8285         * mono-config.h: Declare mono_get_machine_config() and
8286         mono_config_string_for_assembly_file().
8287
8288         * icall.c: No declaration of environ necessary on Win32. It is
8289         declared (as a macro expanding to a function call) in stdlib.h.
8290         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
8291         New internal mono function. Returns the value of
8292         mono_get_machine_config() as a Mono string.
8293
8294         * icall-def.h: Add get_bundled_machine_config().
8295
8296 2007-01-04  Raja R Harinath  <rharinath@novell.com>
8297
8298         Remove redundant field
8299         * class-internals.h (_MonoGenericContext.container): Remove field.
8300         * loader.c (mono_method_get_signature_full): Don't parse a
8301         "container" for a signature parse when the signature is inflated
8302         immediately.
8303         (method_from_methodspec): Likewise, for a generic_inst.
8304         * class.c, metadata.c, reflection.c: Update to changes.
8305
8306 2006-01-04  Raja R Harinath  <rharinath@novell.com>
8307
8308         * class-internals.h (_MonoGenericClass): Rename 'context' field to
8309         'cached_context', and change semantics -- it starts off NULL, and
8310         is initialized on demand.
8311         * class.c (mono_generic_class_get_context): New accessor to
8312         replace 'context' field accesses.
8313         (mono_class_get_context): New helper.
8314         (*): Update to changes.
8315         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
8316
8317 2007-01-03  Miguel de Icaza  <miguel@novell.com>
8318
8319         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
8320         before the memcpy.   Fixes Marshal2 regression.
8321
8322 2007-01-02  Jb Evain  <jbevain@gmail.com>
8323
8324         * blob.h: add a MONO_TYPE_ENUM definition
8325         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
8326         fix the encoding of arrays of enums in custom attributes.
8327
8328         Fixes #79666.
8329
8330 2007-01-01  Miguel de Icaza  <miguel@novell.com>
8331
8332         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
8333         string is null terminated, but only cut the string short if it
8334         overflows the buffer.   
8335         
8336         (mono_string_to_byvalstr): Also fix this routine.   The code here
8337         was not properly terminating a string (it was only terminated
8338         because of the previous catch-all memset). 
8339
8340         I left the memset, because I do not know if applications expect
8341         the runtime to clear this region. 
8342
8343         Fixes #79944.
8344
8345         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
8346         Clear the error before returning to unmanaged code to prevent the
8347         runtime from being confused later on (fixes  80420).
8348         (ves_icall_type_from_name): Always call mono_loader_clear_error
8349         after parsing a type that could have failed.
8350         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
8351
8352         * loader.c (mono_loader_clear_error): Fix indentation.
8353
8354 2006-12-28  Martin Baulig  <martin@ximian.com>
8355
8356         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
8357
8358 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
8359
8360         * reflection.c: patch from Rolf Bjarne Kvinge to fix
8361         getting a token for an EnumBuilder.
8362
8363 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
8364
8365         * reflection.c: be more careful in case resource generation
8366         fails to create the data array.
8367
8368 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
8369
8370         * sgen-gc.c: write barrier for clone and fix unregister handles.
8371
8372 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
8373
8374         * reflection.c: some fixes needed in the generics code for the moving GC.
8375
8376 2006-12-22  Robert Jordan  <robertj@gmx.net>
8377
8378         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
8379         account. Fixes bug #80299.
8380
8381 2006-12-21  Raja R Harinath  <rharinath@novell.com>
8382
8383         Fix WaitHandle usage in delegates.
8384         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
8385         * object.c (mono_wait_handle_new): Use the property set method to
8386         initialize the handle.
8387         (mono_wait_handle_get_handle): New.
8388         * threadpool.c (mono_async_invoke): Use it.
8389         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
8390         Likewise.
8391         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
8392
8393 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
8394
8395         * marshal.c (emit_marshal): Call emit_marshal_variant and
8396         emit_marshal_com_interface when applicable.
8397         (emit_marshal_variant, emit_marshal_com_interface): Add
8398         methods for this case and remove if's from emit_marshal_object.
8399         
8400 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
8401
8402         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
8403
8404 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
8405
8406         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
8407         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
8408         and GlobalFree on Windows. Remove FIXME.
8409
8410 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
8411
8412         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
8413         implementation for managed objects.
8414
8415 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
8416
8417         * object.c: implemented code to be used for checking
8418         that no reference field overlaps with non-references.
8419
8420 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
8421
8422         * threadpool.c: fix queue code to be compatible with the
8423         moving GC.
8424
8425 2006-12-18  Miguel de Icaza  <miguel@novell.com>
8426
8427         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
8428         in structures by throwing ArgumentNullException.
8429
8430         (emit_marshal_safehandle): Also when they are null parameters.
8431
8432         (emit_marshal_safehandle): Add support for ref
8433         SafeHandles parameters
8434
8435 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
8436
8437         * profiler.c: updated to use the mono-dl API instead of
8438         gmodule.
8439
8440 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
8441
8442         * profiler.c: updated to use the mono-dl dynamic loading
8443         API instead of gmodule.
8444
8445 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
8446
8447         * profiler.c: use readlink, older versions of glib don't have
8448         g_file_read_link ().
8449
8450 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
8451
8452         * profiler.c: try to detect the path to mono if libc fails to provide
8453         a useful name (bug #80286).
8454
8455 2006-12-16  Raja R Harinath  <rharinath@novell.com>
8456
8457         Fix #80242
8458         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
8459         instance, use the generic type definition instead.
8460         (ves_icall_Type_GetNestedTypes): Likewise.
8461         * class.c (mono_class_create_generic): Always set the
8462         nested_classes of a generic instance to NULL, even if the generic
8463         type definition has nested types.
8464
8465 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
8466
8467         * marshal.c (mono_string_from_bstr): Revert previous Windows change
8468         and fix on Linux.
8469         
8470 2006-12-15  Miguel de Icaza  <miguel@novell.com>
8471
8472         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
8473         my arguments were in the wrong order.   I also fixed the Windows
8474         version which seems to have had the same issue.
8475
8476         (mono_free_bstr): On Unix, this is g_free.
8477         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
8478         conversions (for the tests in corlib to pass).
8479
8480 2006-12-14  Miguel de Icaza  <miguel@novell.com>
8481
8482         * marshal.c (emit_ptr_to_object_conv): For now, ignore
8483         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
8484         exception if a ref SafeHandle in a struct has changed).
8485         
8486         (emit_struct_conv): Do not perform layout checks for classes
8487         derived from SafeHandle, as those are specially handled. 
8488
8489         (emit_object_to_ptr_conv): Add support for
8490         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
8491
8492         (emit_marshal_safehandle): Implement conversion of return values
8493         of safehandles (MARSHAL_ACTION_CONV_RESULT).
8494         
8495         * threads.c: WaitHandle now is compiled with two different handles
8496         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
8497         for 2.0.
8498         
8499         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
8500         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
8501         these routines to cope with both kinds of fields.
8502
8503 2006-12-12  Miguel de Icaza  <miguel@novell.com>
8504
8505         * metadata.c (mono_type_to_unmanaged): Handle the case where
8506         type->data.klass is a SafeHandle, and in that case, return the
8507         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
8508         MONO_MARSHAL_CONV_SAFEHANDLE. 
8509
8510 2006-12-11  Miguel de Icaza  <miguel@novell.com>
8511
8512         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
8513         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
8514         calling emit_marshal_object.
8515
8516         (emit_marshal_safehandle): Implement marshalling of
8517         SafeHandle parameters (no ref support yet).
8518
8519         (MarshalAction): Document the defines as I implement
8520         them for SafeHandle.
8521
8522         (emit_marshal_object): indentation police.
8523
8524         * class-internals.h: Define MonoSafeHandle.
8525         Add safehandle_class to MonoDefaults type.
8526
8527         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
8528         list of classes to check for fields. 
8529
8530         * domain.c (mono_init_internal): Add SafeHandle to the list of
8531         mono_defaults loaded.
8532
8533 2006-12-15  Raja R Harinath  <rharinath@novell.com>
8534
8535         Fix #80253
8536         * reflection.c (mono_reflection_bind_generic_parameters): If the
8537         generic type definition is a type builder, ensure that it is fully
8538         initialized before instantiating it.  Kill some dead code.
8539
8540 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
8541
8542         * object.c: clear the loader_error () before loading
8543         more metadata stuff (bug #80258).
8544
8545 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
8546
8547         * icall.c, icall-defs.h: type modifiers icalls for
8548         parameters and properties.
8549
8550 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
8551
8552         * object.c, icall.c: fixed warnings.
8553
8554 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
8555
8556         * marshal.c: fixed a couple of leaks and coding style in a few places.
8557
8558 2006-12-08  Dick Porter  <dick@ximian.com>
8559
8560         * process.c: Cope with NULL ProcessStartInfo arguments on windows
8561         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
8562         80173.
8563
8564 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
8565
8566         * process.c: ProcessStartInfo may have only filename set and
8567         arguments can be NULL.
8568
8569 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
8570
8571         * icall.c: fix leak found by Robert Jordan.
8572
8573 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
8574
8575         * marshal.c, marshal.h: generate managed method to access an element
8576         of a multi-dimensional array.
8577
8578 2006-11-30  Paolo Molaro (lupus@ximian.com)
8579
8580         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
8581
8582 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
8583
8584         * icall.c: back out GetFields () fix until the serialization code is
8585         fixed to not depend on the incorrect behaviour.
8586
8587 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
8588
8589         * profiler.c: provide defaults if none are set.
8590
8591 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
8592
8593         * Makefile.am, attrdefs.h: new public header file with
8594         constants for attributes for use by embedders.
8595
8596 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
8597
8598         * icall.c: GetFields () fix for bug #80064.
8599
8600 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
8601
8602         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
8603         removed long unused icalls.
8604
8605 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
8606   
8607         * marshal.c: 
8608                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
8609                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
8610                 can be generated without a delegate class.
8611                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
8612         
8613         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
8614
8615 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8616
8617         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
8618         #80069.
8619
8620 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
8621
8622         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
8623         icall-def.h: added icalls needed by System.GC.
8624
8625 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
8626
8627         * loader.c: ensure the class in catch clauses is handled
8628         correctly for generics methods (fixes bug#79980).
8629
8630 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
8631
8632         * monitor.h, monitor.c: added mono_locks_dump () function
8633         to help debug deadlocks involving managed locks.
8634
8635 2006-11-13  Dick Porter  <dick@ximian.com>
8636
8637         * file-io.c (get_file_attributes): If the file is a symlink try
8638         and get the stat data for the target, but also add the
8639         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
8640         the specs for the windows symlink support, but will probably have
8641         to be reworked when I have test data from a vista machine.  Fixes
8642         bug 79887.
8643
8644 2006-11-13  Dick Porter  <dick@ximian.com>
8645
8646         * gc.c (mono_domain_finalize): 
8647         * marshal.c (mono_delegate_begin_invoke): 
8648         * threadpool.c (socket_io_init, mono_thread_pool_init)
8649         (mono_thread_pool_finish): 
8650         * monitor.c (mono_monitor_try_enter_internal): 
8651         * threads.c (mono_thread_resume, mono_thread_init)
8652         (mono_thread_suspend_all_other_threads)
8653         (mono_thread_execute_interruption): 
8654         * appdomain.c (mono_domain_unload): Check for NULL error returns
8655         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
8656         75733.
8657
8658 2006-11-11  Miguel de Icaza  <miguel@novell.com>
8659
8660         * process.c
8661         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
8662         Only close the handle if the value of the handle is not
8663         INVALID_HANDLE_VALUE.  This just makes the process a bit more
8664         robust.
8665
8666         Improvement for #75733, so that we do not run into this problem. 
8667
8668         
8669         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
8670         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
8671         internal variables.  Fixes #79462 
8672         
8673
8674 2006-11-09  Dick Porter  <dick@ximian.com>
8675
8676         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
8677         Use poll() not select().  Fixes bug 79397.
8678
8679 2006-11-09  Raja R Harinath  <rharinath@novell.com>
8680
8681         Fix #79872
8682         * assembly.c (mono_assembly_load_from_full): Check that the given
8683         image has an assembly manifest.
8684
8685 2006-11-09  Ankit Jain  <jankit@novell.com>
8686
8687         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
8688         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
8689         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
8690
8691 2006-11-07  Dick Porter  <dick@ximian.com>
8692
8693         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
8694         Put the old resolver behaviour back for pre-2.0 profiles.
8695
8696 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
8697
8698         * threadpool.c: precise GC and locking fixes.
8699
8700 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
8701
8702         * class.c: don't load types that have an explicit unaligned
8703         managed reference. Provide better info in the TypeLoad exception.
8704         Part of the fix for bug #79744.
8705         * object.c: use the correct check for class type load issues.
8706
8707 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
8708
8709         * class.c: enforce alignment of fields with managed references
8710         even when Pack=1 is forced by the user (bug #77788).
8711
8712 2006-11-03  Dick Porter  <dick@ximian.com>
8713
8714         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
8715         If the address reverse lookup fails, return it as the hostname
8716         anyway.  Fixes bug 79721.
8717
8718 2006-11-03  Dick Porter  <dick@ximian.com>
8719
8720         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
8721         Fix build on Windows.
8722
8723 2006-11-02  Dick Porter  <dick@ximian.com>
8724
8725         * icall-def.h: 
8726         * object-internals.h: 
8727         * exception.c (mono_get_exception_thread_interrupted): 
8728         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
8729         Fixes bug 74525.
8730
8731         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
8732         Check for pending Thread.Interrupt.
8733
8734 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
8735         * loader.c: Fixed bug 79684.
8736
8737 2006-10-27  Dick Porter  <dick@ximian.com>
8738
8739         * file-io.c (get_file_attributes): Force symlinks to directories
8740         to be returned as a regular file.  Fixes bug 79733.
8741 2006-10-26  Dick Porter  <dick@ximian.com>
8742
8743         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
8744         CreateFile to open a directory then we need to set the
8745         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
8746
8747 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
8748
8749         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
8750         friends.
8751
8752 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
8753
8754         * sgengc.c: small cleanup of timer code.
8755
8756 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
8757
8758         * sgen-gc.c: fix some warnings and start adding support for
8759         complete object removal on domain unload.
8760
8761 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
8762
8763         * assembly.c: build_assembly_name should not consider a version
8764         number without build or revision number invalid. Fixes bug #79715.
8765
8766 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
8767
8768         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
8769         call kernel32 function OutputDebugString directly.
8770         
8771         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
8772         
8773 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
8774
8775         * reflection.c: small cleanup, using a function to insert a MonoString
8776         in the string heap.
8777
8778 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
8779
8780         * reflection.c: moving GC fixes.
8781
8782 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
8783
8784         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
8785         all the objects with finalizers belonging to an unloading appdomain.
8786
8787 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
8788
8789         * sgen-gc.c: added ability to allocate even when the nursery is fully
8790         pinned and fixed a couple of bugs.
8791
8792 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
8793
8794         * threads.h: Revert the last change for now.
8795
8796         * threads.h (mono_thread_get_pending_exception): Rename this to
8797         mono_thread_get_undeniable_exception ().
8798
8799 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
8800
8801         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
8802         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
8803         when fname does not refer to valid assembly. This result in a more
8804         meaningful error message.
8805         * exception.c: added mono_get_exception_bad_image_format2 which 
8806         constructs a BadImageFormatException using the ctor taking a custom
8807         message and the file name. Passing in a NULL msg results in a default
8808         message.
8809         * exception.h: define mono_get_exception_bad_image_format2 function.
8810         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
8811         when file name pointed to an invalid IL image. Use 
8812         mono_get_exception_file_not_found2 to construct FileNotFoundException,
8813         as this results in a more meaningful error message.
8814
8815 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
8816
8817         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
8818         #79465.
8819
8820 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
8821
8822         * metadata.c (mono_type_size): Change the align parameter to guint32 for
8823         consistency with the other _size functions.
8824         (mono_type_stack_size): Ditto.
8825
8826         * class.c object.c icall.c: Fix warnings caused by the above change.
8827
8828         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
8829
8830         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
8831
8832         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
8833
8834 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
8835
8836         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
8837         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
8838         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
8839         threadpool.h, threads-types.h: mark more internal functions.
8840
8841 2006-10-11  Dick Porter  <dick@ximian.com>
8842
8843         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
8844         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
8845         reproduce the bug even before applying the fix.)
8846
8847 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
8848
8849         * reflection.c: allow retrieving attributes for arguments in generic
8850         methods (bug #79241).
8851
8852 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
8853
8854         * debug-mono-symfile.c: properly check fopen () result (found by
8855         coverity).
8856
8857 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
8858
8859         * reflection.c: make error message clearer and fixed two
8860         issuelets found by Coverity.
8861
8862 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
8863
8864         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
8865
8866 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
8867
8868         * object-internals.h, gc-internal.h, profiler-private.h:
8869         mark internal functions.
8870
8871 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
8872
8873         * reflection.c: put data in the text section.
8874         * icall.c: recognize more types in type_from_typename ().
8875         * process.c, marshal.c: added some GC FIXMEs.
8876
8877 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
8878
8879         * loader.c: check for NULL before initializing.
8880
8881 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
8882
8883         * gc.c (finalizer_thread): Use a non-alertable wait here.
8884
8885         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
8886         until the correct solution is found.
8887
8888 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
8889
8890         * reflection.c (mono_module_get_object): Avoid an assert when operating on
8891         modules with no metadata. Fixes #79596.
8892
8893         * image.c (load_metadata_ptrs): Put back the error message when
8894         the #- heap is encountered since the support is not complete yet.
8895
8896 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
8897
8898         * gc.c: do not allow the user to SuppressFinalize () a
8899         delegate because it would leak the trampoline if present.
8900
8901 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
8902
8903         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
8904         PropertyPtr table.
8905
8906 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
8907
8908         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
8909
8910         * metadata.c (mono_metadata_get_param_attrs): Ditto.
8911
8912         * row-indexes.h: Add definitions for *Ptr tables.
8913
8914         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
8915
8916         * metadata.c (mono_metadata_translate_token_index): New helper function to
8917         translate table indexes used in uncompressed metadata.
8918         (mono_metadata_decode_table_row): Ditto.
8919         (mono_metadata_decode_table_row_col): Ditto.
8920
8921         * metadata.c: Add table schema for *Ptr tables.
8922
8923         * class.c loader.c: Use the new helper function to access the affected metadata
8924         tables.
8925         
8926         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
8927         #38532.
8928         
8929 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
8930
8931         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
8932         sequences which can be unbounded in size. Fixes #79583.
8933
8934 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
8935
8936         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
8937         static initialization.
8938
8939         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
8940
8941         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
8942
8943         * domain.c (mono_domain_free): Free up type_init_exception_hash.
8944
8945         * object.c (mono_runtime_class_init): Implement correct semantics when a static
8946         ctor fails, i.e. throw the same exception on subsequent accesses.
8947         
8948 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
8949
8950         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
8951         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
8952         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
8953         Handle marshalling of interfaces and VARIANTs contained in structs.
8954         
8955         Code is contributed under MIT/X11 license.
8956         
8957 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
8958
8959         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
8960         
8961         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
8962         mempool.
8963
8964 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8965
8966         * console-io.c: ignore previous SIGINT handler.
8967
8968 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
8969
8970         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
8971         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
8972         #79460, #79461, #79485.
8973
8974         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
8975
8976         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
8977         #79217.
8978
8979 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
8980
8981         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
8982         could be generated from it.
8983
8984 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
8985
8986         * rand.c: fix read loop to correctly handle EINTR.
8987
8988 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
8989
8990         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
8991         internal calls are defined to keep methods closer to the declaring
8992         type and allow a significant reduction in runtime relocations and
8993         memory usage.
8994
8995 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
8996
8997         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
8998         exception message to have FileNotFoundException use the default
8999         assembly load error message. Fixes bug #79426.
9000         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
9001
9002 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9003
9004         * threadpool.c: (start_thread_or_queue) use the root domain when
9005         creating the thread instead of the async object one.
9006
9007 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
9008
9009         * class.c, object.c, class-internals.h, reflection.c:
9010         for arrays, store element_size inside MonoClass (speedup
9011         for array object creation).
9012
9013 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
9014
9015         * icall.c: fixed CodeBase to use the file name and not the module
9016         name (bug #79365).
9017
9018 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
9019
9020         * mono-debug.c, mono-debug.h: export find_method as
9021         mono_debug_find_method ().
9022
9023 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
9024
9025         * debug-helpers.c, class-internals.h: added a few functions useful
9026         when debugging under gdb.
9027
9028 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9029
9030         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
9031         characters that need special handling.
9032
9033 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
9034
9035         * mono-config.c: make the os/cpu specification more flexible,
9036         allowing lists and negation.
9037
9038 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
9039
9040         * marshal.c: COM Interop fixes. Handle case where method->klass.
9041         is interface. Handle BSTR/MonoString when null. Use CDECL as 
9042         calling convention on non-windows platforms. This is for
9043         compatibility with XPCOM and MainWin COM.
9044         
9045         Code is contributed under MIT/X11 license.
9046         
9047
9048 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
9049
9050         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
9051         correctly. Fixes #79217.
9052
9053         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
9054
9055 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
9056
9057         * mono-config.c: allow both an os and cpu attribute for dllmap
9058         and dllentry elemnets to enable a single config file to be used
9059         for multiple architectures.
9060
9061 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
9062
9063         * loader.c: MonoLoaderError was cleared too soon on load failure.
9064         Fixes bug #79424.
9065
9066 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
9067
9068         * icall.c: use the defining class vtable when accessing a
9069         static field, not a pobblibly derived class.
9070
9071 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
9072
9073         * icall.c string-icalls.c: Remove references to unicode.h.
9074
9075         * unicode.h unicode.c Makefile.am: Remove these unused source files.
9076
9077         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
9078
9079         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
9080         indicating the image where custom marshaller types should be looked up.
9081         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
9082         custom marshallers, instead of corlib. Fixes #79425.
9083
9084 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
9085
9086         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
9087
9088 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
9089
9090         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
9091         Implement Environment.ProcessorCount.
9092         
9093         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
9094         Implement Environment.ProcessorCount.
9095         
9096         * icall.c: 
9097         Add Environment.ProcessorCount icall.
9098         
9099         Patch by Jason McFall.
9100
9101 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9102
9103         * assembly.c: don't append .exe/.dll when the filename already contains
9104         one of those extensions.
9105
9106 2006-09-12  Martin Baulig  <martin@ximian.com>
9107
9108         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
9109         to array interfaces.
9110
9111 2006-09-11  Martin Baulig  <martin@ximian.com>
9112
9113         * reflection.c (mono_image_build_metadata): Create the
9114         MethodImpl's after emitting all types and methods, so we don't
9115         need another fixup pass for them.
9116
9117 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
9118
9119         * class.c (mono_class_from_name_case): Fix regression introduced by the last
9120         change.
9121
9122 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
9123
9124         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
9125         unload.
9126
9127 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
9128
9129         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
9130         args is not set. Fixes #78926.
9131
9132 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
9133
9134         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
9135
9136         * image.c (load_class_names): Move this to class.c, and rename it to 
9137         'mono_image_init_name_cache'.
9138         (load_modules): Fix a warning.
9139
9140         * class.c icall.c image.c: Initialize image->name_cache lazily.
9141
9142         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
9143         on its name using information in the AOT file.
9144
9145         * class.c (mono_class_from_name): Use the new hook function.
9146
9147 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
9148
9149         * reflection.c (mono_param_get_objects): Handle enum default parameter values
9150         correctly.
9151
9152         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
9153         Fixes #79289.
9154         
9155 2006-09-06  Martin Baulig  <martin@ximian.com>
9156
9157         * icall.c (mono_lookup_internal_call): Small fix.
9158
9159 2006-09-05  Raja R Harinath  <rharinath@novell.com>
9160
9161         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
9162         double g_free.
9163
9164 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
9165
9166         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
9167         when --debug is specified.
9168
9169 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
9170
9171         * class.c (setup_generic_array_ifaces): Fix a warning.
9172
9173 2006-09-04  Miguel de Icaza  <miguel@novell.com>
9174
9175         * Temporarily remove the patch to assemly.c that checks the
9176         assembly versions as it breaks our gacutil.
9177
9178 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
9179
9180         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
9181
9182         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
9183         a net 1.0 runtime.
9184
9185         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
9186         created using the default ctor. Fixes #79152.
9187         (mono_string_builder_to_utf16): Ditto.
9188
9189 2006-09-01  Martin Baulig  <martin@ximian.com>
9190
9191         Fix handling of the generic array interfaces.
9192
9193         * class-internals.h
9194         (MonoDefaults): Removed `generic_array_class' and added
9195         `generic_ilist' class.
9196
9197         * class.c
9198         (mono_bounded_array_class_get): Add the new generic array interfaces.
9199         (setup_generic_array_ifaces): New static method; create vtable
9200         entries for each method in the generic array interfaces.
9201
9202         * metadata.c
9203         (select_container): Allow "parent-less" generic methods.
9204
9205         * marshal.c
9206         (mono_marshal_get_generic_array_helper): New public method.
9207
9208         * icall.c
9209         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
9210         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
9211         moved the interncall into System.Array.
9212
9213 2006-09-01  Raja R Harinath  <rharinath@novell.com>
9214
9215         A few more cases of avoiding work on types with ->byref set.
9216         Has the real fix for #79238
9217         * icall.c (is_generic_parameter): New helper.
9218         (ves_icall_Type_GetGenericParameterPosition): Use it.
9219         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
9220         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
9221         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
9222         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
9223         reference types.
9224         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
9225         reference types.
9226         (ves_icall_Type_get_IsGenericInstance): Likewise.
9227         (ves_icall_Type_get_IsGenericType): Likewise.
9228
9229 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
9230
9231         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
9232         class if possible.
9233
9234         * mempool.h (mono_mempool_get_allocated): New helper function.
9235
9236         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
9237         change.
9238
9239         * mempool.c: Fix warnings and the calculation of stats.
9240
9241         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
9242
9243         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
9244
9245         * loader.c (mono_get_method_from_token): Update method_count stat.
9246
9247         * class-internals.h (MonoStats): Add some stats.
9248
9249 2006-08-31 Robert Jordan  <robertj@gmx.net>
9250
9251         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
9252         with managed variants.
9253         All code is contributed under the MIT/X11 license.
9254         
9255 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
9256
9257         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
9258         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
9259
9260         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
9261
9262         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
9263         with cycles in classes.
9264
9265         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
9266
9267         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
9268         missing a [MarshalAs] directive. Fixes #79203.
9269
9270         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
9271         klass->marshal_info. Fixes #79217.
9272
9273 2006-08-30  Martin Baulig  <martin@ximian.com>
9274
9275         Committing a patch from Joachim Ante <joe@otee.dk>:
9276         Add support for binary data symbol stores.
9277
9278         * debug-mono-symfile.c
9279         (mono_debug_open_mono_symbol_file): Renamed into
9280         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
9281         arguments.
9282
9283         * mono-debug.c
9284         (mono_debug_open_image): Added `raw_contents' and `size' args.
9285         (mono_debug_init_2_memory): New public function.
9286
9287 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
9288
9289         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
9290
9291 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9292
9293         * appdomain.c: implement support for ShadowCopyFiles.
9294
9295 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
9296
9297         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
9298         when value is NULL (and should remove CID #51).
9299
9300 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9301
9302         * image.c: moved 2 functions to ../utils.
9303
9304 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
9305
9306         * gc.c: cope with the target object of a GC handle being NULL
9307         (bug #78877).
9308
9309 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
9310
9311         * class.c: recursively check parent's explicit implementations
9312         of interface methods (fixes bug #79125).
9313
9314 2006-08-19  Miguel de Icaza  <miguel@novell.com>
9315
9316         * filewatcher.c: Avoid warnings when building, do not redefine
9317         constants that are defined.
9318
9319         Remove warnings.
9320
9321 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9322
9323         * image.c: don't fail when the link points to an absolute path.
9324
9325 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
9326
9327         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
9328         Fix CID #3.
9329
9330 2006-08-17  Miguel de Icaza  <miguel@novell.com>
9331
9332         * image.c (full_path): A new method used to obtain the actual path
9333         of an assembly even in the presence of symbolic links.  
9334
9335         This is necessary for the case where we are running a binary that
9336         has been GACed, but we are using the "published" path name
9337         ($prefix/mono/1.0/blah.exe) which happens to point to the real
9338         file in the GAC.
9339
9340         This was the source of the failure for the `xsp' command with the
9341         recent AppDomain changes, as far as the runtime was concerned,
9342         there were two different assemblies: $prefix/mono/1.0/blah.exe and
9343         $prefix/mono/gac/blah/version/blah.exe.
9344
9345         (do_mono_image_open): use full path
9346
9347 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
9348
9349         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
9350
9351 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
9352
9353         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
9354         domain_id is supplied. Fix CID #241 and corlib's unit tests.
9355
9356 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
9357
9358         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
9359         small structures. Fixes #78990.
9360
9361 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
9362
9363         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
9364
9365         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
9366
9367 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9368
9369         * appdomain.c:
9370         * marshal.c: don't load all the assemblies from a domain into newly
9371         created ones. The new domains might have different rules and load
9372         assemblies from different locations. Fixes bug #76757.
9373
9374         Patch by Lluis. Conflicts resolved by Brian Crowell.
9375
9376 2006-08-16  Alp Toker  <alp@atoker.com>
9377
9378         * socket-io.c: First half of the fix for #79084.
9379         Set sa_size to the length of the content, not that of the struct.
9380         Don't add NULL suffix to the content, this should be done in
9381         managed code if needed.
9382
9383 2006-08-14  Raja R Harinath  <rharinath@novell.com>
9384
9385         Fix part of #79012
9386         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
9387         mono_metadata_parse_type returns NULL.
9388
9389 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
9390
9391         * normalization-tables.h : new file for string normalization data.
9392         * locales.c, locales.h, icall.c :
9393           added load_normalization_resource() for string normalization,
9394           and icall as well.
9395         * Makefile.am : added normalization-tables.h to the sources.
9396
9397 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
9398
9399         * marshal.c: Add more helper functions to reduce code duplication and use them
9400         everywhere.
9401
9402 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
9403
9404         * marshal.c: Fix non-x86 stdcall warnings.
9405         
9406         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
9407         them everywhere.
9408
9409 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
9410
9411         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
9412         type check on multi-dimensional arrays. Fixes #79000.
9413
9414 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
9415
9416         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
9417         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
9418         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
9419         * class-internals.h: add is_com_object to class structure.
9420         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
9421         null checks to COM object marshalling. Fix .ctor call on RCW.
9422         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
9423         
9424         All code is contributed under the MIT/X11 license.
9425
9426 2006-08-09  Dick Porter  <dick@ximian.com>
9427
9428         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
9429         racing mono_monitor_allocator_lock() somewhere, so don't delete
9430         the critical section for now.  Found by running and exiting
9431         monodevelop.
9432
9433 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
9434
9435         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
9436         (ves_icall_System_ComObject_FindInterface): Ditto.
9437         (ves_icall_System_ComObject_CacheInterface): Ditto.
9438
9439         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
9440         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
9441
9442 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9443
9444         * threadpool.c: treat pipes from process asynchronous reads as sockets
9445         when reading from them, so we get select/poll or epoll to wait for
9446         data.
9447
9448 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
9449
9450         * loader.c: Fix a typo (CID #233) in the null check.
9451
9452 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
9453
9454         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
9455         Hopefully fixes #78949.
9456         
9457         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
9458         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
9459         bytes. Fixes #78972.
9460
9461 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9462
9463         * filewatcher.c: we need to set errno here.
9464
9465 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9466
9467         * filewatcher.c: let Win32Exception get the error value.
9468
9469 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9470
9471         * filewatcher.c: translate errno into win32 errors for Win32Exception
9472         to know what happened.
9473
9474 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
9475
9476         * threadpool.c: Fix more warnings.
9477
9478         * assembly.c (search_loaded): Fix warnings.
9479
9480         * threadpool.c (mono_thread_pool_finish): Fix warnings.
9481         (mono_async_invoke): Ditto.
9482
9483 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
9484
9485         * object.c (mono_remote_class_vtable): Need to create proxy vtable
9486         entries for __ComObject type in addition to ComImport types.
9487         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
9488         about hash table.
9489         
9490         All code is contributed under the MIT/X11 license.
9491
9492 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
9493
9494         * image.c: avoid tentative loading of modulerefs that contain
9495         no metadata (P/Invoke library names).
9496
9497 2006-07-28  Dick Porter  <dick@ximian.com>
9498
9499         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
9500         mono_loader_lock() somewhere, so don't delete the critical section
9501         for now.  Found by running and exiting monodevelop.
9502
9503 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9504
9505         * filewatcher.c: define the inotify syscalls when we're building on
9506         linux and have sys/syscall.h. The build system might not have support
9507         for inotify but the target system might have it.
9508
9509 2006-07-26  Miguel de Icaza  <miguel@novell.com>
9510
9511         * domain.c: Documentation updates.
9512
9513         * loader.c (mono_free_method): Do not release the method
9514         information if we are being profiled, as profilers will use this
9515         information at shut down to present some data to the user.
9516
9517         This is needed so that the profiler does not crash, as the
9518         profiler tends to keep MonoMethods around, and they might become
9519         invalid if we free these.
9520
9521         (mono_get_method_constrained): Return the original CIL stream
9522         method as well, so verification can be performed against it.
9523
9524 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9525
9526         * filewatcher.[ch]: support for inotify file system watcher.
9527         * icall.c: add new internal calls for the inotify file system watcher.
9528
9529 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9530
9531         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
9532         #78888.
9533
9534 2006-07-20  Dick Porter  <dick@ximian.com>
9535
9536         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
9537         warning.
9538
9539 2006-07-20  Dick Porter  <dick@ximian.com>
9540
9541         * threads.c (start_wrapper): Do the thread cleanup while we still
9542         hold a reference to its object.  Fixes bug 78123.
9543
9544 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
9545
9546         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
9547         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
9548           "managed-to-managed".
9549         * icall.c: Redirect string constructors that take sbyte* to
9550           ves_icall_System_String_ctor_RedirectToCreateString.
9551         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
9552           to CreateString () methods with matching signature.
9553         * reflection.c: Use original security informations for
9554           MONO_WRAPPER_MANAGED_TO_MANAGED.
9555         * security-manager.c: Use original security informations for
9556           MONO_WRAPPER_MANAGED_TO_MANAGED.
9557         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
9558           that is a placeholder and only its address should be used.
9559         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
9560           that is a placeholder and only its address should be used.
9561
9562 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
9563
9564         Begin implementing COM Interop.
9565         * appdomain.c: Increment corlib version.
9566         * class.c: Set ComImport classes' parent to __ComObject.
9567         * loader.c: Mark cominterop methods as such.
9568         * domain.c: Add __ComObject class to MonoDefaults structure.
9569         * image.c: Add 2 hashtables to the image for COM Interop related methods
9570         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
9571         using the mempool allocator
9572         
9573         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
9574         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
9575         declaration for mono_metadata_type_dup_mp.
9576         
9577         * debug-helpers.c: Added strings for two additional wrapper types
9578         * object.c: Create proxy objects for ComImport classes
9579         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
9580         and added __ComObject class to MonoDefaults structure.
9581         
9582         * object-internals.h: Finish MonoRealProxy definition, and add definition of
9583         MonoComInteropProxy and MonoComObject.
9584         
9585         * marshal.c: Added support for COM Interop
9586         (signature_cominterop): Converts managed signature to corresponding
9587         unmanaged COM signature.
9588         (cominterop_get_function_pointer): gets unmanaged function pointer via
9589         COM object vtable
9590         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
9591         (cominterop_get_method_interface): returns interface type that method is defined on
9592         (mono_mb_emit_cominterop_call): emits native call to function pointer
9593         gotten from vtable
9594         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
9595         that matches signature of unmanaged function.
9596         (cominterop_get_native_wrapper): wrapper around adjusted method call.
9597         (cominterop_get_invoke): forwards call from proxy to __ComObject
9598         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
9599         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
9600         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
9601         
9602         * marshal.h: Added Marshal icall declarations.
9603         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
9604         so we can access them in finalizer
9605         
9606 2006-07-14  Dick Porter  <dick@ximian.com>
9607
9608         * object.c (mono_type_initialization_cleanup): Fix a race
9609         condition by temporarily commenting out the critical section
9610         deletion.
9611
9612 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
9613
9614         * reflection.c (create_custom_attr): Fix some warnings.
9615         (create_custom_attr_data): Ditto.
9616         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
9617         types. Fixes #78855.
9618
9619 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
9620
9621         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
9622
9623         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
9624
9625 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
9626
9627         * reflection.c (resolve_object): Add support for DynamicMethod.
9628
9629         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
9630         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
9631
9632 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
9633
9634         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
9635         don't leak GPtrArray's pdata has we have no use (nor free) for it.
9636
9637 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
9638
9639         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
9640         Fixes #77888.
9641
9642 2006-06-30  Raja R Harinath  <rharinath@novell.com>
9643
9644         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
9645         slightly: remove a shadow local variable.
9646
9647 2006-06-29  Raja R Harinath  <rharinath@novell.com>
9648
9649         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
9650         definition that introduces the virtual function slot.
9651         Also fix Coverity #105.
9652
9653 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
9654
9655         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
9656         for dynamic assemblies. Fixes #78724.
9657
9658 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
9659
9660         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
9661         Fixes #78722.
9662
9663 2006-06-21  Martin Baulig  <martin@ximian.com>
9664
9665         * reflection.c
9666         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
9667         fixes #76484.
9668
9669 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
9670
9671         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
9672
9673 2006-06-20  Raja R Harinath  <rharinath@novell.com>
9674
9675         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
9676         nor TYPEREFs.
9677         * class.c (mono_class_create_from_typespec): Add 'context' argument.
9678         Inflate result if necessary.
9679         (mono_class_get_full): Remove old version.  Rename from
9680         'mono_class_get' and add 'context' argument.  Pass it to
9681         ..._create_from_typespec.
9682         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
9683         (mono_ldtoken): Revert change below.
9684
9685 2006-06-20  Martin Baulig  <martin@ximian.com>
9686
9687         * class.c (mono_ldtoken): Don't pass the generic context to
9688         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
9689
9690 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
9691
9692         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
9693         and later freeing it. Fixes #78638.
9694
9695 2006-06-15  Miguel de Icaza  <miguel@novell.com>
9696
9697         * icall.c (mono_class_get_throw): Revert over-zealous error
9698         throwing, the caller for mono_class_get_throw will cope with
9699         errors when classes are not properly initialized already.
9700
9701         The code still copes with loader exceptions though.
9702
9703         Fixes the regression in reftype1 and reftype3 from the CAS tests.
9704         
9705 2006-06-14  Miguel de Icaza  <miguel@novell.com>
9706
9707         Fixes the `make run1' version of RuntimeAbort (to be commited,
9708         source is in Bugzilla).
9709         
9710         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
9711         FALSE on class loading failure instead of returning true.
9712
9713         * class.c (mono_class_create_from_typedef): It is possible for
9714         mono_metadata_interfaces_from_typedef_full to fail if a class is
9715         not found, cope with this.
9716         
9717
9718 2006-06-14  Dick Porter  <dick@ximian.com>
9719
9720         * socket-io.c: 
9721         * process.c: Fix a bunch of signed/unsigned warnings from gcc
9722         4.1.1
9723
9724 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
9725
9726         * culture-info-table.h : oops, forgot to make it nsync with r61548.
9727
9728 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
9729
9730         * icall.c: Another fix for building mono in Visual Studio.
9731
9732 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
9733
9734         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
9735         
9736 2006-06-09  Martin Baulig  <martin@ximian.com>
9737
9738         * debug-mono-symfile.c: Put this back and really fix it this
9739         time. Sorry for all the trouble.
9740
9741 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
9742
9743         * icall.c (mono_class_get_throw): Fix a warning.
9744         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
9745         ReflectionTypeLoadException if needed. Fixes #78606.
9746
9747         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
9748         (mono_class_init): Ditto.
9749
9750         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
9751         ref_only exceptions.
9752         (mono_loader_clear_error): Make this work even if there is no error.
9753
9754 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
9755
9756         * object-internals.h marshal.c marshal.h icall.c: Implement method 
9757         Marshal.GetComSlotForMethodInfo using internal call.
9758
9759 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
9760
9761         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
9762         a function for signalling it.
9763
9764         * class.c (mono_class_from_typeref): Use the new kind of loader error when
9765         a referenced assembly is not found.
9766
9767         * loader.c (mono_loader_error_prepare_exception): Add support for 
9768         LOADER_ERROR_ASSEMBLY. Fix formatting.
9769
9770 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
9771
9772         * domain.c appdomain.c class-internals.h marshal.c: Add support 
9773         for VARIANT marshalling on windows and increment corlib version
9774         since Variant struct was added.
9775
9776 2006-06-03  Miguel de Icaza  <miguel@novell.com>
9777
9778         * debug-mono-symfile.c: Revert Martin's previous patch which broke
9779         stack trace line information:
9780
9781         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
9782         (Martin) when looking up B which is between A and C, return A not C.
9783
9784         Bug is #78573.
9785
9786         Thanks to Alexander Olk for tracking this down.
9787
9788 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
9789
9790         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
9791         
9792         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
9793         avoid clobbering its value.
9794         (mono_string_to_lpstr): Fix a warning on windows.
9795
9796 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
9797
9798         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
9799
9800         * reflection.c loader.c: Removed references to 'dummy' flag.
9801
9802         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
9803
9804         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
9805         it gets GC tracking.
9806
9807         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
9808         GC tracking.
9809         
9810         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
9811
9812         * marshal.c threadpool.c: Update callers of mono_async_result_new.
9813
9814         * appdomain.c: Bump corlib version.
9815
9816 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
9817
9818         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
9819         CEE_STIND_REF when working with object references.
9820
9821 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
9822
9823         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
9824         Fixes #78539.
9825
9826 2006-05-30  Miguel de Icaza  <miguel@novell.com>
9827
9828         * loader.c (method_from_memberref): Fix argument value for
9829         mono_loader_set_error_method_load (I was passing the MonoClass
9830         instead of the class name char *).
9831
9832 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
9833
9834         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
9835         CEE_STIND_REF when working with object references.
9836
9837 2006-05-30  Martin Baulig  <martin@ximian.com>
9838
9839         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
9840         mono_method_full_name() change and replace the ':' with a '.'
9841         here.
9842
9843 2006-05-30  Martin Baulig  <martin@ximian.com>
9844
9845         * debug-mono-symfile.c
9846         (mono_debug_symfile_lookup_location): Fix the algorithm:
9847         when looking up B which is between A and C, return A not C.
9848
9849 2006-05-29  Martin Baulig  <martin@ximian.com>
9850
9851         * mono-debug.h
9852         (MonoDebugMethodInfo): Make the typedef public.
9853         (MonoDebugSourceLocation): New public struct.
9854
9855         * mono-debug.c
9856         (mono_debug_source_location_from_address): Removed.
9857         (mono_debug_source_location_from_il_offset): Removed.
9858         (mono_debug_il_offset_from_address): Removed.
9859         (mono_debug_address_from_il_offset): Removed.
9860         (mono_debug_lookup_method): New public function.
9861         (mono_debug_lookup_source_location): New public function; replaces
9862         the old mono_debug_source_location_from_*() functions; see the
9863         inline documentation.
9864         (mono_debug_free_source_location): New public function.
9865         (mono_debug_print_stack_frame): New public function; see the
9866         inline documentation.
9867
9868         * debug-mono-symfile.c
9869         (mono_debug_find_source_location): Renamed into
9870         mono_debug_symfile_lookup_location(); only take a
9871         `MonoDebugMethodInfo *' and an `offset' argument; added inline
9872         documentation.
9873         (mono_debug_find_method): Renamed into
9874         mono_debug_symfile_lookup_method().
9875
9876 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
9877
9878         * assembly.c (mono_assembly_open_full): Dont overwrite the status
9879         returned by mono_image_open_full ().
9880
9881         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
9882         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
9883         #78517.
9884
9885         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
9886         #78518.
9887
9888 2006-05-27  Miguel de Icaza  <miguel@novell.com>
9889
9890         * class.c (mono_class_from_typeref): handle missing images
9891         earlier, deals with bug #78418.   Refactor code; 
9892
9893         Fix a warning introduced in my previous commit (some stale code
9894         from before I revisited my patch).
9895
9896         * class.c (mono_class_create_from_typedef): On failure, remove the
9897         class from the MonoImage->class_cache as the class is not
9898         initialized;   Fixes the leak pointed out by Paolo.
9899
9900 2006-05-25  Dick Porter  <dick@ximian.com>
9901
9902         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
9903         DeleteCriticalSections until I figure out which one may still be
9904         sometimes locked when mono_thread_cleanup is called.
9905
9906 2006-05-24  Dick Porter  <dick@ximian.com>
9907
9908         * threads.c (mono_thread_cleanup): Move the threading cleanup out
9909         of mono_thread_manage and back into its own function, so it can be
9910         called after the finalizer thread has finished.
9911
9912         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
9913
9914 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
9915
9916         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
9917         Fixes #78495.
9918
9919         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
9920         with non-blittable elements.
9921         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
9922
9923 2006-05-24  Martin Baulig  <martin@ximian.com>
9924
9925         * mono-debug-debugger.h (MonoDebuggerEvent): Added
9926         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
9927
9928         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
9929         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
9930         `mono_debugger_event_handler' to NULL.
9931
9932 2006-05-24  Martin Baulig  <martin@ximian.com>
9933
9934         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
9935
9936 2006-05-24  Martin Baulig  <martin@ximian.com>
9937
9938         * mono-debug-debugger.h
9939         (mono_debugger_create_notification_function): Added
9940         `MonoCodeManager *' argument.
9941
9942 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
9943
9944         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
9945
9946 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
9947
9948         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
9949         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
9950         implementation.
9951
9952 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
9953
9954         * icall.c: precise GC support: objects can't be stored in unmanaged
9955         memory anymore, even if they are kept alive by other references: since
9956         they can move the GC needs to be able to always find them.
9957
9958 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
9959
9960         * object.c: precise GC support for static fields. Support
9961         for moving GCs: write barriers and pinned allocation for interned
9962         strings.
9963
9964 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
9965
9966         * domain.c, domain-internals.h: precise GC support for the MonoDomain
9967         structure.
9968
9969 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
9970
9971         * class.c, gc.c: sgen and precise GC updates.
9972
9973 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
9974
9975         * marshal.h, marshal.c: added write barrier wrapper and precise type
9976         fixes.
9977
9978 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
9979
9980         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
9981         support.
9982
9983 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
9984
9985         * reflection.c: precise and sgen GC updates.
9986
9987 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
9988
9989         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
9990
9991 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
9992
9993         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
9994
9995 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
9996
9997         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
9998         MONO_TYPE_OBJECT. Fixes #78462.
9999
10000 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
10001
10002         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
10003         and blittable types.
10004
10005 2006-05-17  Miguel de Icaza  <miguel@novell.com>
10006
10007         * class.c (mono_class_get_exception_for_failure): Implement parts
10008         of a TODO: if the loader error is set (instead of the class
10009         error), we return a Loader exception that can be properly thrown
10010         elsewhere.
10011
10012         This was exposed by some Winforms 2.0 code that I tried to run
10013         (Atsushi pointed me to it).
10014
10015 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
10016
10017         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
10018         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
10019         
10020         * marshal.c (emit_marshal_vtype): Add limited support for 
10021         UnmanagedType.LPStruct. Fixes #78427.
10022
10023         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
10024         Applied a patch from kangaroo to fix #77523.
10025
10026 2006-05-17  Martin Baulig  <martin@ximian.com>
10027
10028         * threads.c
10029         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
10030         (debugger_thread_created): Removed.
10031         (debugger_thread_exited): Removed.
10032
10033 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
10034
10035         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
10036
10037         * object-internals.h (MonoReflectionResource): Sync with managed version.
10038
10039 2006-05-12  Wade Berrier <wberrier@novell.com>
10040
10041         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
10042
10043 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
10044
10045         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
10046         functions try to allocate from the image mempool.
10047
10048 2006-05-12  Dick Porter  <dick@ximian.com>
10049
10050         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
10051
10052 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
10053
10054         * object.c: The FieldGetter and FieldSetter methods require the full
10055         name of the class, not only the name. Fixes bug #78277.
10056
10057 2006-05-11  Miguel de Icaza  <miguel@novell.com>
10058
10059         * loader.c (method_from_memberref): Do not pass the NULL klass to
10060         mono_loader_set_error_() methods.  Pass the non-NULL value
10061         (class). 
10062
10063 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
10064
10065         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
10066         (mono_assembly_close): Null out assembly->image->references after freeing it.
10067
10068         * image.c (mono_image_close): Free image->references.
10069         
10070         * reflection.c (mono_image_basic_init): Fix a small memory leak.
10071
10072 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
10073
10074         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
10075         before checking if it's NULL (g_assert).
10076
10077 2006-05-10  Martin Baulig  <martin@ximian.com>
10078
10079         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
10080         I thought I already killed that two months ago, but now it somehow reappeared.
10081
10082 2006-05-10  Martin Baulig  <martin@ximian.com>
10083
10084         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
10085
10086 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
10087
10088         * reflection.c: Allocate memory for dynamically created methods in the image
10089         mempools.
10090
10091 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
10092
10093         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
10094         don't use the ad pointer before checking if it's NULL (g_assert).
10095
10096 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
10097
10098         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
10099         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
10100
10101         * marshal.c: Allocate all signatures from mempools.
10102
10103         * marshal.c: Allocate some more signatures from mempools.
10104
10105 2006-05-09  Miguel de Icaza  <miguel@novell.com>
10106
10107         * object.c (mono_load_remote_field): The code used to provide a
10108         temporary variable for returning results if the user did not
10109         provide a result pointer.  But our temporary variable was allocted
10110         on the satck.
10111
10112         Fix calling code to always pass a result area.   Coverity ID 103.
10113
10114 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
10115
10116         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
10117         value, not the old. Fixes #78312.
10118         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
10119
10120         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
10121         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
10122         per-image cache.
10123
10124         * assembly.c (mono_assembly_close): Free image->references.
10125
10126         * assembly.c (mono_assembly_names_equal): Fix a warning.
10127         (mono_assemblies_cleanup): Cleanup more global data.
10128
10129         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
10130
10131         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
10132         ptr_cache and image->modules.
10133
10134         * image.c (mono_image_init): Allocate array_cache lazily.
10135         
10136 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10137
10138         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
10139         behavior was changed recently and has bad side effects.
10140
10141 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
10142
10143         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
10144         
10145         * assembly.c (mono_assembly_close): Remove a debug printf.
10146
10147         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
10148
10149         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
10150         to also allow for temporary references between mono_image_open ()/close ().
10151
10152         * domain.c (get_runtimes_from_exe): Add a FIXME.        
10153
10154 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
10155
10156         * marshal.c: Fix support for dynamic methods.
10157
10158         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
10159
10160         * marshal.c (mono_marshal_cleanup): New cleanup function.
10161
10162         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
10163         image mempools.
10164
10165         * class.c (mono_class_init): Fix leaking class->nested_classes.
10166
10167         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
10168
10169         * image.c (mono_image_init): Initialize the new cashes.
10170
10171         * image.c (mono_image_close): Destroy the new cashes.
10172
10173         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
10174
10175         * mempool.c (mono_mempool_strdup): New helper function.
10176
10177         * class-internals.h: Add prototype for mono_loader_unlock ().
10178
10179         * domain.c (mono_jit_info_table_find): Fix a warning.
10180         (mono_debugger_check_runtime_version): Ditto.
10181
10182         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
10183         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
10184         functions to these modules.
10185
10186         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
10187         metadata modules.
10188         
10189         * marshal.c (mono_free_bstr): Fix a warning.
10190
10191         * assembly.c (mono_assembly_open_full): Fix another small leak.
10192
10193         * object.c: Fix some unload leaks in the remoting code.
10194
10195         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
10196         function.
10197
10198         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
10199
10200         * reflection.c: Fix some unload leaks in dynamic assemblies.
10201
10202 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
10203
10204         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
10205         * marshal.h: Add BSTR support on Win32
10206         * icall.c: Add BSTR icalls
10207         * metadata.h: Add BSTR enums
10208
10209 2006-04-28  Miguel de Icaza  <miguel@novell.com>
10210
10211         Work to catch the crash from #76795 and turn it into an
10212         exception.   As I stubbed out pieces of the VisualBasic support,
10213         I found a number of places where the code was failing and I added
10214         checks to those places. 
10215         
10216         * metadata.c (do_mono_metadata_parse_generic_class): Make this
10217         function return a status code.  If we fail to parse the signature
10218         from mono_metadata_parse_generic_inst, return FALSE.
10219
10220         * loader.c (mono_get_method_from_token): If we fail to load the
10221         method (mono_class_get) return NULL.   
10222
10223         * (method_from_memberref): Return NULL if we are unable to parse
10224         the method signature
10225
10226         (mono_loader_error_prepare_exception): Since we now use the
10227         loader_error flag internally to stop processing, and obtaining
10228         exceptions that might be thrown will walk this code path the
10229         proper way of going from a MonoLoaderError into a
10230         MonoException was convoluted.   This new routine encapsulates the
10231         process of turning the error into an exception and *clearing* the
10232         error afterwards.
10233         
10234 2006-04-27  Miguel de Icaza  <miguel@novell.com>
10235
10236         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
10237         with missing assemblies), and to cope with:
10238
10239                 * Missing fieldref from a non-existing assembly.
10240                 * Missing methodref from a non-existing assembly.
10241
10242         The first batch of work to address *some* of the issues from 76661.
10243         
10244         * object.c (mono_class_create_runtime_vtable): If we fail to
10245         initialize the class raise the exception here. 
10246
10247         * metadata.c (mono_class_get_overrides_full): If any methods fail
10248         to load return the failure to the caller.
10249
10250         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
10251         flagging assemblies that failed to load.   
10252
10253         Do not crash if we are unable to load the assembly.
10254
10255         (mono_assembly_close): Do nothing with REFERENCE_MISSING
10256         assemblies. 
10257
10258         * loader.c (mono_loader_set_error_type_load): Change the
10259         convention to always pass unallocated strings, so we make our own
10260         copies (I know our own code had duplicated strings before, but
10261         this keeps the normal conventions).
10262         (method_from_memberref): Call mono_loader_set_error_method_load
10263         for all possible failures of loading the class. 
10264         Remove assert, turn into a loader error.
10265
10266         (mono_loader_error_to_exception): Move this routine from mini
10267         (mini_loader_error_to_exception) there was no need to have that in
10268         mini. 
10269
10270         * class.c (mono_class_from_typeref): If we were not able to load
10271         the assembly with mono_assembly_load_reference, call the
10272         mono_loader_set_error_type_load to register the problem.
10273
10274         (mono_class_setup_fields): If we fail to load the type from
10275         mono_metadata_parse_type_full, call mono_class_set_failure and
10276         break from the loop.
10277
10278         If class->exception_type is set, we do not layout the fields as
10279         that might crash the runtime, and instead return (from breaking
10280         from the previous loop).
10281
10282         (mono_class_setup_vtable): This now returns a boolean indicating
10283         whether the table was properly setup.   The decision is driven by
10284         mono_class_get_overrides_full which might run into non-existing
10285         methods. 
10286         
10287         (mono_class_init): Returns TRUE on success or FALSE if there was a
10288         problem in loading the type (incorrect assemblies, missing
10289         assemblies, methods, etc).
10290
10291         When we call mono_class_setup_fields we also check for a potential
10292         error inside this call (either a class exception or a general
10293         loader exception).
10294
10295         (mono_class_create_from_typedef): If the parent fails to load
10296         (calling mono_class_get_full) return NULL.
10297         
10298         ** Important **
10299
10300         calls to mono_metadata_parse_type_full should be checked
10301         everywhere and set the mono_class_set_failure
10302         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
10303
10304         The current patch checks the places where my manually constructed
10305         tests show the errors are showing up, but we should do it
10306         everywhere. 
10307
10308         ** Important2 **
10309
10310         mono_class_init return values should be tested everywhere, like
10311         the previous case this is something that we should audit
10312         everywhere and not only on the cases exposed by the tests I
10313         created. 
10314
10315 2006-04-26  Miguel de Icaza  <miguel@novell.com>
10316
10317         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
10318         boolean parameter and instead pass the information on `options'
10319         parameter (FileOptions).
10320
10321         * icall.c: Register the new signature for MonoIO.Open.
10322
10323         * debug-helpers.c (dis_one): Trying to understand how coverity
10324         works.  Fix Run 5, item 78.
10325
10326 2006-04-26  Dick Porter  <dick@ximian.com>
10327
10328         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
10329         dereference.
10330
10331 2006-04-25  Martin Baulig  <martin@ximian.com>
10332
10333         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
10334
10335         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
10336         debugger_thread_created().
10337         (debugger_gc_push_all_stacks): Don't handle the main thread in any
10338         special way.
10339         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
10340         (mono_debugger_finalize_threads): New function; undo the effects
10341         of mono_debugger_init_threads().
10342         (mono_debugger_create_all_threads): Removed.
10343
10344 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
10345
10346         * image.c (mono_image_close): Tidy up trace messages.
10347
10348         * assembly.c (mono_assembly_close): Ditto.
10349
10350         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
10351         no longer references an already freed assembly. Fixes #78168.
10352
10353 2006-04-21  Dick Porter  <dick@ximian.com>
10354
10355         * threads.c (mono_thread_detach): Fix reference counting when
10356         detaching threads.
10357
10358 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
10359
10360         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
10361         #78155.
10362
10363 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
10364
10365         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
10366         (mono_type_to_stind): Ditto.
10367
10368         * marshal.c: Use the new helper functions to simplify code.
10369
10370         * image.c (mono_image_close): Add some code for help debug assembly unloading
10371         problems.
10372
10373         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
10374         image mempool.
10375
10376         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
10377         assembly was already loaded in another appdomain. Fixes #78083.
10378
10379 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
10380
10381         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
10382         referenced assemblies.
10383         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
10384
10385         * domain.c (mono_domain_free): Add a trace message.
10386
10387         * appdomain.c (add_assemblies_to_domain): Ditto.        
10388
10389         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
10390         field.  
10391
10392 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
10393
10394         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
10395
10396 2006-04-12  Martin Baulig  <martin@ximian.com>
10397
10398         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
10399         `USE_INCLUDED_LIBGC'.   
10400
10401 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
10402
10403         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
10404         the patch contains ../ and a small directory name later. Hopefully fixes
10405         #78035.
10406
10407 2006-04-10  Martin Baulig  <martin@ximian.com>
10408
10409         Clean up the debugger's thread-handling code.
10410
10411         The debugger's thread-handling code has been moved from
10412         ../mini/debug-debugger.c to threads.c.  We now iterate directly
10413         over the `threads' hash, keep track of exiting threads and also
10414         use proper locking.
10415
10416         We can now debug XSP and XSP based applications with the debugger.
10417
10418         * object-internals.h (MonoThread): Added `gpointer end_stack'.
10419
10420         * threads.h
10421         (MonoThreadCallbacks): Removed; this was only used by the debugger.
10422         (mono_install_thread_callbacks): Likewise.      
10423
10424         * threads.c (mono_thread_callbacks): Removed.
10425         (debugger_thread_created, debugger_thread_exited): New static functions.
10426         (start_wrapper): Call debugger_thread_created().
10427         (thread_cleanup): Call debugger_thread_exited().
10428         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
10429         (mono_debugger_init_threads): New public function.
10430         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
10431         iterate directly over the `threads' hash and also use proper locking.
10432
10433         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
10434
10435         * mono-debug-debugger.h
10436         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
10437
10438 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
10439
10440         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
10441         argument type=array. Fixes #78057.
10442
10443 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
10444
10445         * culture-info-table.h : regenerated. Fixed bug #69652.
10446
10447 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
10448
10449         * loader.c metadata.c: Reapply a variant r59116.
10450         
10451         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
10452
10453         * class.c (mono_class_setup_interface_offsets): New internal function.
10454
10455         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
10456         interfaces too. Fixes #77398.
10457
10458         * reflection.c (encode_cattr_value): Add support for 
10459         parameter type=object, argument type=array.
10460         (load_cattr_value): Ditto. Fixes #77916.
10461
10462         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
10463         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
10464
10465         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
10466         a byval char array and CharSet is Ansi.
10467
10468         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
10469
10470 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
10471
10472         * metadata.c: Add some locking comments.
10473         
10474         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
10475         mempool.
10476         (mono_metadata_free_method_signature): Don't free the signature itself.
10477
10478         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
10479
10480         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
10481         reference the same MonoImage.
10482         (mono_assembly_load_from_full): Add an assert.
10483
10484 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
10485
10486         * image.c (mono_image_close): Don't put the image we are about to free into the
10487         loaded_images_guid_hash.
10488
10489         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
10490         to reduce code duplication.
10491
10492         * marshal.c: Register the native functions called by this module as icalls, to
10493         somewhat centralize the creation of MonoMethodSignature's.
10494
10495         * loader.c (mono_method_signature): Add a cache for method signatures.
10496
10497         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
10498         the parameter attributes of a method.
10499         (mono_metadata_parse_method_signature_full): Refactored the computation of
10500         parameter attributes into a separate function. Also avoid one allocation in
10501         most cases.
10502
10503         * assembly.c (mono_assembly_close): Ditto.
10504
10505         * image.c (mono_image_close): Log trace messages with INFO level.
10506
10507         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
10508
10509         * image.c reflection.c: Correct reference counting of image modules.
10510         
10511         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
10512         of this function from the image mempool.
10513         
10514         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
10515         to allow more cached types to be used.
10516
10517         * mono-debug.c (mono_debug_add_method): Appled patch from
10518         David S. Miller  <davem@sunset.davemloft.net>: Access 
10519         minfo->lexical_blocks[] entry elements using read32().
10520
10521 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
10522
10523         * loader.c (mono_free_method): No longer free the method header for non-dynamic
10524         methods as it is allocated from the mempool.
10525
10526         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
10527         image mempool.
10528
10529         * metadata-internals.h: Add comments describing the reference counting scheme
10530         used for MonoImage and MonoAssembly.
10531
10532         * image.c assembly.c reflection.c: Rework reference counting of images and 
10533         assemblies so they are freed when the runtime is shut down. Free some 
10534         additional memory structures when an image is unloaded.
10535         
10536 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
10537
10538         * class.c loader.c reflection.c: Allocate more data structures in
10539         the image mempool.
10540
10541 2006-03-31  Miguel de Icaza  <miguel@novell.com>
10542
10543         * icall.c
10544         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
10545         build on pre glib 2.4 systems.
10546
10547 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
10548
10549         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
10550
10551         * icall.c: Fix some warnings.
10552
10553 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
10554
10555         * culture-info-table.h : regenerated.
10556
10557 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
10558
10559         * threads.c, object-internals.h, verify.c: changed the culture caching
10560         code to use a normal MonoArray for storage so the GC can keep track of
10561         them easily. Fixed bits of the cache logic, too and simplified the
10562         code.
10563
10564 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
10565
10566         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
10567         thread for non-Boehm GCs.
10568
10569 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
10570
10571         * domain.c, object.c, domain-internals.h: reduce the amount of memory
10572         needed to keep track of the data for static fields.
10573
10574 2006-03-29  Raja R Harinath  <rharinath@novell.com>
10575
10576         Fix #75172
10577         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
10578         for interface classes.  Use 'num_methods' instead.
10579         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
10580         before using '->vtable_size' field.
10581
10582 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
10583
10584         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
10585         doesn't contain managed pointers, so use a normal hashtable.
10586
10587 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
10588
10589         * reflection.c, class-internals.h, domain.c: fixed handling of types
10590         used as values for objects in custom attributes (bug #77915):
10591
10592 2006-03-24  Martin Baulig  <martin@ximian.com>
10593
10594         * class.c (mono_class_setup_fields): Added support for generic
10595         instances; fixes #77580.
10596
10597 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10598
10599         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
10600
10601 2006-03-24  Dick Porter  <dick@ximian.com>
10602
10603         * file-io.c (get_file_attributes): More stat macro breakage.
10604         Fixes bug 77759.
10605
10606 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
10607
10608         * profiler.c: added the file=filename option in the default profiler
10609         to output the profile data to filename.
10610
10611 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10612
10613         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
10614         bug #77877.
10615
10616 2006-03-22  Martin Baulig  <martin@ximian.com>
10617
10618         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
10619         allocated `MonoClassField *' in `fb->handle'.
10620
10621 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
10622
10623         * class.c, image.c, metadata-internals.h: implemented new mechanism to
10624         allocate interface ID to save memory and allow better ID reuse on
10625         appdomain unload. setup_generic_vtable () removal from Martin.
10626
10627 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
10628
10629         * object.h, appdomain.c, domain.c, exception.c, icall.c,
10630         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
10631         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
10632         write barriers for reference stores with managed objects accessed with
10633         C structures in the runtime and in embedding programs.
10634
10635 2006-03-20  Raja R Harinath  <rharinath@novell.com>
10636
10637         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
10638         'interface_id' and 'max_interface_id' fields of MonoClasses
10639         representing open generic types.
10640
10641 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
10642
10643         * object.h, object.c, icall.c: added functions to deal with
10644         storing valuetypes that contain references in managed objects.
10645         * reflection.c, string-icalls.c, threads.c, marshal.c: small
10646         fixes and comments around uses of mono_array_addr ().
10647
10648 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
10649
10650         * object.h, icall.c, monitor.c: object.GetHashCode ()
10651         implementation that supports the moving garbage collector.
10652
10653 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
10654
10655         * icall.c, threads-types.h, threads.c: implemented finalizer for
10656         LocalDataStoreSlot.
10657
10658 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
10659
10660         * metadata.c (mono_type_size): Add a fixme.
10661         (mono_type_stack_size): Ditto.
10662
10663         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
10664         'type_forwarders' field.
10665
10666         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
10667         attribute from net 2.0.
10668
10669         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
10670         from class.c.
10671
10672         * class.c (mono_class_setup_fields): Fix a warning.
10673         
10674         * class.c (mono_class_from_name): Add support for assemblyref entries
10675         in the EXPORTEDTYPE table.
10676
10677         * reflection.c: Add support for handling type forwarders under net 2.0.
10678
10679         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
10680         
10681 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
10682
10683         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
10684         overwriting entries in ModuleBuild->types, also clean up the code
10685         a little. Fixes #77774.
10686
10687 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
10688
10689         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
10690         load friend assembly info when present.
10691
10692 2006-03-14  Raja R Harinath  <rharinath@novell.com>
10693
10694         Fix crasher on gtest-158.cs.
10695         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
10696         the return value if the MonoClass we want is yet in an
10697         inconsistent state.
10698         * class.c (mono_class_create_from_typedef): Add an comment
10699         explaining an order dependency between mono_class_setup_parent and
10700         mono_class_setup_mono_type.
10701
10702 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
10703
10704         * class.c: documentation updates and events bug fix.
10705
10706 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
10707
10708         * class.c: some cleanup, locking fixes.
10709
10710 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
10711
10712         * class.c: fix the generics code to setup nested
10713         type info to the instantiated type (bug #77770).
10714
10715 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
10716
10717         * marshal.c: fixed a few type correctness issues.
10718
10719 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
10720
10721         * loader.c: the Set/Get/Addrtess array methods should be public.
10722
10723 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
10724
10725         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
10726         
10727         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
10728         info->wrapper.
10729
10730 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
10731
10732         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
10733
10734         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
10735
10736         * mempool.c (mono_mempool_alloc): Speed this up a bit.
10737         (mono_mempool_alloc0): Ditto.
10738
10739 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10740
10741         * socket-io.c:
10742         (create_object_from_sockaddr): it was allocating 4 extra bytes
10743         for the AF_UNIX data. Fixes bug #77747.
10744
10745 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
10746
10747         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
10748
10749 2006-03-09  Dick Porter  <dick@ximian.com>
10750
10751         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
10752         Fixes bug 76966 again.
10753
10754 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
10755
10756         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
10757         names from r57532
10758         * appdomain.c: Bumped corlib version to 48 (due to r57532)
10759
10760 2006-03-07  Martin Baulig  <martin@ximian.com>
10761
10762         * object.c
10763         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
10764
10765 2006-03-07  Martin Baulig  <martin@ximian.com>
10766
10767         * class.c
10768         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
10769         regression introduced in r56970; see gtest-252.cs.
10770
10771         * loader.c (mono_get_method_constrained): Correctly handle generic
10772         methods; see gtest-253.cs.
10773
10774 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
10775
10776         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
10777
10778 2006-03-04  Martin Baulig  <martin@ximian.com>
10779
10780         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
10781         compute the parent type at runtime, just like we're already doing
10782         it for interfaces.
10783
10784         * reflection.c
10785         (mono_reflection_bind_generic_parameters): Don't compute the
10786         parent type anymore.
10787
10788         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
10789
10790 2006-03-04  Martin Baulig  <martin@ximian.com>
10791
10792         * mono-debug-debugger.h
10793         (mono_debugger_create_notification_function): Allocate memory at
10794         runtime and return a pointer to it.
10795
10796 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
10797
10798         * assembly.c: Fix windows build.
10799         
10800         * assembly.c: Fix build.
10801
10802         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
10803
10804         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
10805         
10806 2006-03-03  Dick Porter  <dick@ximian.com>
10807
10808         * process.c
10809         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
10810         Check parameters before dereferencing them.  Fixes Aaron's part of
10811         bug 77393.
10812
10813 2006-03-03  Raja R Harinath  <rharinath@novell.com>
10814
10815         Fix performance regression.
10816         * loader.c (find_method_in_class): Add 'from_class' argument.
10817         Rename 'klass' argument to 'in_class'.  The signature is compared
10818         against the method in 'in_class', and the corresponding method is
10819         returned from 'from_class'.
10820         (find_method): Walk both 'in_class' and 'from_class' in parallel.
10821         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
10822         type definition and generic instantiation in parallel.
10823         (mono_get_method_constrained): Update to changes.
10824
10825 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
10826
10827         * threads.c: make sure the domain is correct, too when doing
10828         mono_thread_attach ().
10829
10830 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
10831
10832         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
10833         windows. Fixes #77683.
10834
10835 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
10836
10837         * object.h, *: introduced specific way to set elements of an array
10838         of references to be used as write barrier. Still need to audit the
10839         uses of mono_array_addr.
10840
10841 2006-03-01  Miguel de Icaza  <miguel@novell.com>
10842
10843         * object-internals.h: New field to cache the assmebly name, patch
10844         from Tambet Ingo (tambet@ximian.com)
10845
10846 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
10847
10848         * decimal.h, class-internals.h, metadata-internals.h,
10849         file-io.h: mark a few function declarations as internal, to
10850         reduce the number of PLT entries.
10851
10852 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10853
10854         * file-io.c: fix typo in warning message.
10855
10856 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
10857
10858         * loader.c: on unix, lookup the "*A" version of a function
10859         if charset is auto as a second option before failing.
10860
10861 2006-02-28  Raja R Harinath  <rharinath@novell.com>
10862
10863         * class.h (mono_class_inflate_generic_method): Revert to two
10864         argument version.
10865         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
10866         (mono_class_inflate_generic_method_full): Add.
10867         * class.c (mono_class_inflate_generic_method_full): Rename from
10868         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
10869         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
10870         * loader.c, reflection.c: Update to changes.
10871
10872 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
10873
10874         * icall.c: const fixes and small improvements.
10875
10876 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10877
10878         * threadpool.c: for asynchronous connect(), enable the same workaround
10879         for BSD 6 as for the Mac. Fixes bug #77637.
10880
10881 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
10882
10883         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
10884         formatted classes. Fixes #77524.
10885
10886 2006-02-24  Raja R Harinath  <rharinath@novell.com>
10887
10888         * class.c (inflate_generic_type): Add a couple more
10889         micro-optimizations.
10890         (inflate_generic_context): Don't use the 'gmethod' from
10891         'inflate_with'.
10892         (mono_class_inflate_generic_method): If the method has generic
10893         parameters, but the passed-in context doesn't have a 'gmethod',
10894         create one.  Use the possibly simplified generic instantiation
10895         from the declaring class instead of the one passed in.
10896
10897 2006-02-24  Raja R Harinath  <harinath@gmail.com>
10898
10899         Make generic method signature and method header handling lazy.
10900         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
10901         (inflate_generic_header): Likewise.
10902         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
10903         parameter to avoid inflating types.
10904         (mono_get_inflated_method): Empty out.
10905         * class.h (mono_class_inflate_generic_method): Update to changes.
10906         * loader.c (mono_get_method_from_token): Don't parse signature for
10907         generic methods, nor methods of generic classes.
10908         (mono_method_signature): Rename from 'mono_method_signature'.
10909         Inflate signature on demand.
10910         (mono_method_get_header): Inflate method header on demand.
10911         * reflection.c: Update to changes.
10912
10913 2006-02-23  Raja R Harinath  <rharinath@novell.com>
10914
10915         * metadata.c (mono_metadata_inflate_generic_inst): If the
10916         instantiation is closed, don't bother expanding it in the new
10917         context.
10918         * class.c (inflate_generic_class): If the generic instantiation
10919         doesn't change after inflation, return the argument itself.
10920         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
10921         Add bounds checks.
10922         (inflate_generic_context): If neither the generic class nor the
10923         generic method instantiations change, return the original context.
10924         * reflection.c (mono_method_get_object): Do
10925         'mono_get_inflated_method' before accessing the ->klass field.
10926         (inflate_mono_method): Don't create a MonoGenericMethod unless
10927         necessary.
10928         (inflate_method): Don't pass a constructed type as the declaring
10929         type of a methodbuilder.
10930
10931 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
10932
10933         * object.c: fix memory overwrite.
10934
10935 2006-02-22  Dick Porter  <dick@ximian.com>
10936
10937         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
10938         it doesn't work any more.
10939         (mono_threads_request_thread_dump): Fix unused variable warnings.
10940
10941 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
10942
10943         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
10944         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
10945         the public header file.
10946
10947 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
10948
10949         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
10950
10951 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
10952
10953         * class-internals.h, object.c: reduce the size of MonoVTable
10954         and store the interface_offsets array at negative offsets.
10955
10956 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
10957
10958         * metadata.c: tweak table descriptors data structures to reduce
10959         size and runtime relocations.
10960
10961 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
10962
10963         * marshal.c: fix some types and opcodes to be type-safe
10964         in marshaling wrappers.
10965
10966 2006-02-21  Ankit Jain  <jankit@novell.com>
10967
10968         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
10969
10970 2006-02-21  Raja R Harinath  <rharinath@novell.com>
10971
10972         * metadata.c (get_constraints): Relax debugging checks for monodis.
10973
10974 2006-02-21  Ankit Jain  <jankit@novell.com>
10975
10976         * metadata.c (mono_metadata_load_generic_params): Move the code
10977         checking for ambiguous generic params from here to mono/dis/get.c
10978         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
10979
10980 2006-02-21  Raja R Harinath  <harinath@gmail.com>
10981
10982         Fix assertion triggered when compiling nemerle.
10983         * class.c (mono_get_shared_generic_inst): Rename from
10984         get_shared_inst and make non-static.
10985         * loader.c (mono_get_shared_generic_method): New.  Used to create
10986         the MonoGenericContext-equivalent of a MonoGenericContainer.
10987         (mono_get_method_from_token): Initialize the 'context' field of
10988         the created MonoGenericContainer.
10989         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
10990         * metadata.c (get_constraints): Add sanity check.
10991         * class-internals.h: Add new internal methods.
10992
10993         * reflection.c (verify_safe_for_managed_space): New sanity check.
10994         Currently checks that owner-less generic parameters aren't allowed
10995         in managed space.
10996         (mono_type_get_object): Use it.
10997         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
10998         that are now in mono_type_get_object.
10999         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
11000
11001 2006-02-19  Raja R Harinath  <harinath@gmail.com>
11002
11003         * metadata.c (mono_type_create_from_typespec): Rename from
11004         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
11005         argument and caching of types in the generic container.
11006         (unwrap_arrays, find_generic_param): Remove.
11007         * metadata-internals.h: Update.
11008         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
11009
11010 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
11011
11012         * class.c (mono_class_get_exception_for_failure): Fix a warning.
11013
11014         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
11015         return values. Fixes #77581.
11016
11017         * class.c (mono_fnptr_class_get): Switch name and name_space.
11018
11019         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
11020         classes and add support for [In, Out] attributes.
11021         (mono_marshal_free_asany): Ditto. Fixes #77524.
11022
11023 2006-02-18  Raja R Harinath  <harinath@gmail.com>
11024
11025         * class.c (mono_class_from_generic_parameter): Make more robust to
11026         incomplete MonoGenericContainers from monodis.
11027
11028 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
11029
11030         * class-internals.h: added some more exception types.
11031         * class.c, metadata.c: added a few checks to handle missing
11032         types.
11033
11034 2006-02-17  Raja R Harinath  <rharinath@novell.com>
11035
11036         Use owner-less generic-params some more.
11037         * class.c (my_mono_class_from_generic_parameter): Remove.
11038         (mono_class_from_generic_parameter): Handle null image,
11039         param->name and param->owner.
11040         (mono_class_from_mono_type): Update.
11041         (mono_class_create_from_typespec): Remove 'container' parameter.
11042         If that parameter is non-null, the result is always inflated by
11043         'mono_class_get_full' anyway.
11044         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
11045         parameter.
11046         (mono_class_get_full): Update.
11047
11048         * class.c (inflate_generic_type) [GENERICINST]: If the generic
11049         instance is not open, don't bother inflating.
11050         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
11051         parse metadata for inflated classes.
11052         (_mono_class_get): Change GenericContext* parameter to
11053         GenericContainer*.
11054         (mono_class_create_from_typespec): Likewise.  Simplify, and
11055         implement trivially.  All the cases are handled in
11056         mono_class_from_mono_type.  Don't inflate returned class.
11057         (mono_class_get_full): Delegate GENERICINST optimization to
11058         inflate_generic_type.
11059         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
11060
11061 2006-02-16  Dick Porter  <dick@ximian.com>
11062
11063         * socket-io.c (create_object_from_sockaddr): Fix typo.
11064         (create_sockaddr_from_object): Check array lengths before
11065         potentially accessing items off the end.
11066         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
11067         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
11068         (ves_icall_System_Net_Sockets_Socket_Send_internal)
11069         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
11070         length checks to avoid wraparound overflows.
11071         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
11072         contents of the array of sockets
11073         (hostent_to_IPHostEntry2)
11074         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
11075         Check return value of inet_ntop ().
11076         (addrinfo_to_IPHostEntry): Fix typo
11077
11078 2006-02-16  Raja R Harinath  <rharinath@novell.com>
11079
11080         Type metadata parsing doesn't use generic-instantiation information.
11081         * metadata.c (mono_metadata_parse_array_full): Change
11082         MonoGenericContext* parameter to MonoGenericContainer*.
11083         (mono_metadata_parse_type_full): Likewise.
11084         (mono_type_create_from_typespec_full): Likewise.
11085         (mono_metadata_parse_mh_full): Likewise.
11086         (mono_metadata_parse_generic_inst): Likewise.
11087         (do_mono_metadata_parse_generic_class): Likewise.
11088         (do_mono_metadata_parse_type): Likewise.
11089         * metadata-internals.h: Update to changes.
11090         * class.c (mono_class_find_enum_basetype): Likewise.
11091         (mono_class_setup_fields): Likewise.
11092         (mono_class_create_from_typespec): Likewise.
11093         * loader.c (method_from_methodspec): Likewise.
11094         (mono_get_method_from_token): Likewise.
11095         (mono_method_get_header): Likewise.
11096
11097 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
11098
11099         * marshal.c: handle additional GENERICINST case (patch from
11100         Thong Nguyen <tum@veridicus.com>).
11101         Fix a few cases where LDIND_I/STIND_I was used for references.
11102
11103 2006-02-16  Raja R Harinath  <rharinath@novell.com>
11104
11105         * reflection.c (mono_reflection_get_token): Remove unused variable.
11106
11107 2006-02-16  Martin Baulig  <martin@ximian.com>
11108
11109         * reflection.c (mono_reflection_get_token): Add support for fields
11110         in instantiated generic types.
11111
11112         * icall.c
11113         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
11114
11115 2006-02-15  Martin Baulig  <martin@ximian.com>
11116
11117         * icall.c
11118         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
11119         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
11120         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
11121         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
11122
11123 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
11124
11125         * class.c, metadata.c, metadata.h, object.c, icall.c,
11126         marshal.c: changed mono_type_get_underlying_type () to do
11127         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
11128         Fixed handling of instantiated generic valuetypes (bug #75479).
11129
11130 2006-02-15  Raja R Harinath  <rharinath@novell.com>
11131
11132         * metadata.c (mono_metadata_decode_signed_value): Simplify.
11133         Delegate to mono_metadata_decode_value, and work on the returned value.
11134
11135         * icall.c (ves_icall_MonoType_GetGenericArguments):
11136         Add consistency check here too.
11137         
11138 2006-02-15  Ankit Jain  <jankit@novell.com>
11139
11140         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
11141         char/short etc.
11142
11143 2006-02-15  Ankit Jain  <jankit@novell.com>
11144
11145         * metadata.c (mono_metadata_decode_signed_value): New function to decode
11146         signed values, used only for representing lower bounds of arrays.
11147         (mono_metadata_parse_array_full): Use new
11148         mono_metadata_decode_signed_value to decode lower bounds.
11149
11150 2006-02-14  Martin Baulig  <martin@ximian.com>
11151
11152         * reflection.c
11153         (mono_reflection_get_token): Support "MonoGenericMethod" and
11154         "MonoGenericCMethod" and allow generic instances / methods.
11155
11156 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
11157
11158         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
11159         to obtain the terminal size using an ioctl.
11160
11161         * object.c (mono_nullable_init): Revert this as nullable reference
11162         types are not valid.
11163         (mono_nullable_box): Ditto.
11164
11165 2006-02-09  Dick Porter  <dick@ximian.com>
11166
11167         * threads.c (mono_thread_detach): Drop a reference to the thread
11168         we're detaching.
11169
11170 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
11171
11172         * object.c (mono_nullable_init): Handle nullable reference types.
11173         (mono_nullable_box): Ditto. Fixes #77446.
11174
11175 2006-02-07  Martin Baulig  <martin@ximian.com>
11176
11177         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
11178
11179 2006-02-07  Ankit Jain  <jankit@novell.com>
11180
11181         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
11182         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
11183         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
11184         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
11185         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
11186         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
11187
11188 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
11189
11190         * class.c (mono_class_create_generic): Set type_token as well.
11191
11192         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
11193         compatible with MS.
11194
11195 2006-02-02  Martin Baulig  <martin@ximian.com>
11196
11197         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
11198         has never been used so far.
11199
11200 2006-02-02  Martin Baulig  <martin@ximian.com>
11201
11202         * mono-debug-debugger.h: Changed comment at the top of this file;
11203         the header is not installed, but it's safe to #include it from
11204         within the JIT.
11205
11206         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
11207         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
11208
11209 2006-02-02  Martin Baulig  <martin@ximian.com>
11210
11211         * mono-debug.h
11212         (MonoSymbolTable): Removed the `metadata_info' field.
11213
11214         * mono-debug.c
11215         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
11216
11217         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
11218         (mono_debugger_add_builtin_types): Removed.
11219         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
11220         (mono_debugger_create_notification_function): We now operate on a
11221         pre-allocated area; take a `gpointer' and return `void'.
11222
11223         * mono-debug-debugger.c
11224         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
11225         (mono_debugger_add_builtin_types): Removed.
11226
11227 2006-02-02  Martin Baulig  <martin@ximian.com>
11228
11229         * threads.c (mono_debugger_create_all_threads): New public method.
11230
11231 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
11232
11233         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
11234         breaks on several platforms.
11235
11236 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
11237
11238         * assembly.c: the VS.NET build doesn't supply default values for
11239         MONO_ASSEMBLIES and MONO_CFG_DIR.
11240
11241 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
11242
11243         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
11244         helper function.
11245
11246         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
11247
11248         * loader.c (method_from_memberref): Fix a warning.
11249
11250         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
11251
11252         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
11253         with explicit layout. Fixes #77433.
11254
11255 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
11256
11257         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
11258         max_interface_id is initialized before using it. Fixes #77398.
11259         (ves_icall_Type_GetInterfaces): Ditto.
11260
11261 2006-01-30  Raja R Harinath  <rharinath@novell.com>
11262
11263         * metadata.c (mono_metadata_parse_method_signature_full): Don't
11264         allocate memory for parameter attributes when parsing memberref
11265         signatures.
11266         * loader.c (mono_loader_set_error_method_load): Don't warn.
11267         (method_from_memberref): Ensure MissingMethodException gets thrown
11268         if method is not found.  Make warning more informative.
11269
11270 2006-01-29  Raja R Harinath  <harinath@gmail.com>
11271
11272         Fix #77397
11273         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
11274         return true if is byref.
11275         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
11276         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
11277         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
11278
11279 2006-01-27  Raja R Harinath  <rharinath@novell.com>
11280
11281         Fix tests/find-method.2.il
11282         * loader.c (find_method, find_method_in_class): Remove is_inflated
11283         argument.  Revert 2006-01-18 change.
11284         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
11285         is generic, search for method in its generic definition.
11286         * class.c (mono_class_setup_vtable_general): Print generic
11287         arguments of generic types in debugging printf.
11288
11289 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
11290
11291         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
11292
11293         * threads.c (mono_threads_request_thread_dump): New helper function.
11294
11295 2006-01-25  Raja R Harinath  <rharinath@novell.com>
11296
11297         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
11298
11299 2006-01-25  Ankit Jain  <jankit@novell.com>
11300
11301         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
11302         move definition to ..
11303         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
11304         
11305 2006-01-25  Ankit Jain  <jankit@novell.com>
11306             Raja R Harinath  <rharinath@novell.com>
11307
11308         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
11309         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
11310         as necessary.
11311
11312 2006-01-25  Martin Baulig  <martin@ximian.com>
11313
11314         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
11315         `MonoDebuggerThread' into debug-debugger.c.
11316
11317 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
11318
11319         * profiler.c: fix printing of data.
11320
11321 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
11322
11323         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
11324           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
11325
11326 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
11327
11328         * object.c: fix deadlock related to string interning.
11329
11330 2006-01-23  Martin Baulig  <martin@ximian.com>
11331
11332         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
11333
11334         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
11335
11336 2006-01-23  Martin Baulig  <martin@ximian.com>
11337
11338         * mono-debug.h: Moved the prototypes of some functions which are
11339         used by the JIT here from mono-debug-debugger.h.
11340
11341 2006-01-21  Martin Baulig  <martin@ximian.com>
11342
11343         * Makefile.am: Don't install mono-debug-debugger.h.
11344
11345 2006-01-21  Martin Baulig  <martin@ximian.com>
11346
11347         * mono-debug-debugger.h: Enforce the private status of this header
11348         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
11349         Moved some stuff from mono-debugger-jit-wrapper.h here.
11350
11351 2006-01-20  Raja R Harinath  <rharinath@novell.com>
11352
11353         * class.c (mono_class_from_typeref): Add a sanity test to help
11354         catch lack of assembly load/search hooks.
11355
11356 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
11357
11358         * marshal.c (emit_struct_conv): Relax the fields with same offset
11359         check even more. Fixes #77230.
11360
11361 2006-01-18  Martin Baulig  <martin@ximian.com>
11362
11363         * loader.c (find_method_in_class): Added `gboolean is_inflated'
11364         argument; if false, we compare the uninstantiated signatures.
11365         (method_from_memberref): Compare the uninstantiated signatures;
11366         fixes #76417.
11367
11368 2006-01-18  Robert Jordan  <robertj@gmx.net>
11369
11370         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
11371         Clear the weak link. Fixes bug #77170.
11372
11373         * gc.c (mono_gchandle_free):
11374         Reflect *-gc.c changes (tiny optimization).
11375
11376 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
11377
11378         * metadata.c (mono_metadata_signature_dup): Applied patch from
11379         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
11380         Fixes #77288.
11381
11382 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
11383
11384         * marshal.c (emit_struct_conv): Allow fields with the same offset when
11385         marshalling from native to managed code. Fixes #77230.
11386
11387 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11388
11389         * threadpool.c: fix problem (Mac only) when more than one asynchronous
11390         connect. Fixes bug #77020.
11391
11392 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
11393
11394         * class.c: fixed id assignement for nested interfaces (bug #77275).
11395         Added also better info for --print-vtable debugging.
11396
11397 2006-01-12  Martin Baulig  <martin@ximian.com>
11398
11399         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
11400         interfaces on-the-fly; fixes #76625.
11401
11402         * class-internals.h
11403         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
11404         don't need that anymore.
11405
11406 2006-01-12  Miguel de Icaza  <miguel@novell.com>
11407
11408         * socket-io.c
11409         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
11410         To avoid initing the nested_classes when not needed I turned the
11411         PeerCredData as a toplevel internal class, as it has to be shared
11412         anyways. 
11413
11414         Fixes the CASA issue.
11415
11416 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
11417
11418         * domain.c: Accessors for MonoJitInfo
11419
11420         * profiler-private.h: Add jitinfo to the end jit hook
11421
11422         * profiler.[ch]: Define new hooks, called after jitting which give
11423         the MonoJitInfo that was compiled
11424
11425 2006-01-10  Martin Baulig  <martin@ximian.com>
11426
11427         * class.c (mono_class_setup_events): Add support for generic
11428         classes; fixes #76440.
11429
11430 2006-01-06  Raja R Harinath  <rharinath@novell.com>
11431
11432         Fix #77160.
11433         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
11434         on passed-in method.
11435
11436 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
11437
11438         * object.c (mono_runtime_invoke_array): Add Nullable support.
11439
11440         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
11441
11442 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
11443
11444         * file-io.c: Don't consider sockets as directory and avoid an endless
11445         loop. Fix bug #76966.
11446
11447 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
11448
11449         * object.c (mono_nullable_init): New helper function.
11450         (mono_nullable_box): Ditto.
11451
11452         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
11453
11454         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
11455
11456         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
11457         
11458 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
11459
11460         * class.c (mono_class_is_assignable_from): Make T assignable to 
11461         Nullable<T>.
11462
11463 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
11464
11465         * appdomain.c: Bump corlib version to 46.
11466         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
11467         serialization purpose) and changed ves_icall_System_Reflection_
11468         Assembly_get_code_base signature to accept a boolean (to escape, or 
11469         not, the assembly code base).
11470
11471 2005-12-23  Dick Porter  <dick@ximian.com>
11472
11473         * icall.c: 
11474         * threads-types.h: 
11475         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
11476         CreateEvent icall now returns "created" boolean parameter.
11477
11478 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
11479
11480         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
11481         #76967.
11482
11483         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
11484         when attr_klass is an interface. Fixes #77045.
11485
11486 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
11487
11488         * marshal.c (emit_struct_conv): Fix previous patch.
11489         
11490         * marshal.c (emit_struct_conv): Add a check for fields with the same
11491         offset.
11492
11493 2005-12-20  Raja R Harinath  <rharinath@novell.com>
11494
11495         Fix regression in Mono.C5.
11496         * class.c (mono_class_create_generic): If 'klass' is an interface
11497         set up the interface offsets.
11498         (mono_class_is_assignable_from): Don't throw away generic arguments.
11499
11500 2005-12-19  Raja R Harinath  <rharinath@novell.com>
11501
11502         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
11503         type parameters.
11504
11505 2005-12-15  Raja R Harinath  <rharinath@novell.com>
11506
11507         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
11508         dead store.
11509         (do_mono_metadata_parse_generic_class): Don't pass the current
11510         generic context when parsing the type being instantiated: it
11511         cannot use it, anyway.
11512
11513         * loader.c (method_from_memberref): Don't inflate a signature if
11514         it doesn't contain any type parameters.
11515
11516 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
11517
11518         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
11519
11520 2005-12-14  Martin Baulig  <martin@ximian.com>
11521
11522         * class.c
11523         (mono_type_get_name_recurse): Don't return null for type
11524         parameters and open generic classes.
11525         (mono_class_setup_methods): Don't exclude generic instances.
11526         (mono_get_unique_iid): Use different IDs for different
11527         instantiations of the same generic type.
11528         (mono_class_setup_vtable): Only use setup_generic_vtable() for
11529         open generic instances; create a normal vtable for closed generic
11530         instances.
11531         (mono_class_setup_vtable_general): We're now also called for
11532         closed generic instances.
11533
11534         * reflection.c
11535         (mono_reflection_bind_generic_parameters): Correctly use
11536         mono_metadata_lookup_generic_inst() everywhere.
11537
11538 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
11539
11540         * object.c (mono_class_create_runtime_vtable): Call 
11541         mono_class_setup_vtable ().
11542
11543         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
11544         function.
11545         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
11546         #76959.
11547
11548         * loader.c (mono_loader_set_error_type_load): Print the type load
11549         warnings to the console so they are more visible to the user.
11550         (mono_loader_set_error_method_load): Ditto.
11551
11552         * reflection.c (ensure_runtime_vtable): Revert the last change as it
11553         is still broken.
11554         
11555         * reflection.c (ensure_runtime_vtable): Fix build.
11556
11557         * reflection.c (ensure_runtime_vtable): Disable an optimization which
11558         doesn't work in all cases.
11559
11560 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
11561
11562         * object.c (mono_array_new_full): Treat a single dimensional array
11563         with 0 lower bounds as an szarray. Fixes #76973.
11564
11565         * reflection.c (custom_attr_visible): Really fix this.
11566
11567 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
11568
11569         * reflection.c (custom_attr_visible): Allow nested public attributes
11570         as well.
11571
11572         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
11573         interface check.
11574
11575 2005-12-12  Raja R Harinath  <harinath@gmail.com>
11576
11577         * class.c (set_generic_param_owner): Delete.
11578         (mono_class_create_from_typedef): Don't set ->owner field of
11579         generic parameters to "param containers" of enclosing classes.
11580         * reflection.c (mono_reflection_initialize_generic_parameter):
11581         Likewise.
11582
11583 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
11584
11585         * reflection.c (custom_attr_visible): Fix build.
11586
11587 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
11588
11589         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
11590         private attributes.
11591         
11592         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
11593         handling of null parameter defaults.
11594
11595 2005-12-09  Raja R Harinath  <rharinath@novell.com>
11596
11597         * class.c (mono_class_from_generic_parameter): Don't set
11598         klass->generic_container.
11599         (my_mono_class_from_generic_parameter): Likewise.
11600
11601 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
11602
11603         * reflection.c (load_public_key): Fix a warning.
11604         (method_encode_code): Fix unaligned accesses.
11605
11606 2005-12-07  Martin Baulig  <martin@ximian.com>
11607
11608         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
11609
11610         * reflection.c
11611         (write_generic_param_entry): Encode our custom attrs.
11612
11613         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
11614
11615 2005-12-07  Martin Baulig  <martin@ximian.com>
11616
11617         * reflection.c (encode_new_constraint): Removed; we don't use the
11618         `NewConstraintAttribute' anymore.
11619
11620 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
11621
11622         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
11623         not fire a TypeResolve event when Assembly.GetType () is called.
11624
11625 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
11626
11627         Beginning of support for nullable types in the runtime. Parts of
11628         this patch are from Martin.
11629
11630         * appdomain.c (MONO_CORLIB_VERSION): Bump
11631
11632         * domain.c (mono_init_internal): get the nullable type
11633
11634         * class.c (mono_class_is_nullable): New method
11635         (mono_class_get_nullable_param): New mehod
11636         (mono_class_create_generic): In types T? set cast_class to T
11637
11638         * class-internals.h (MonoDefaults): new nullable default class
11639         (mono_class_get_nullable_param, mono_class_get_nullable_param):
11640         new methods.
11641
11642 2005-12-05  Raja R Harinath  <rharinath@novell.com>
11643
11644         * metadata.c (select_container): New.  Refactor code to select the
11645         appropriate GenericContainer given the type of generic parameter
11646         we are looking for.
11647         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
11648         not a MonoGenericContext.  Use select_container.  Update parameters.
11649         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
11650         and MONO_TYPE_MVAR.
11651         (unwrap_arrays): Remove duplicate tests.
11652         (find_generic_param): Rename from 'has_same_context'.  Now walks a
11653         generic instantiated class to find any arguments that are generic
11654         parameters.
11655         (mono_type_create_from_typespec_full): Use find_generic_param to
11656         avoid evicting some generic instantiations from the typespec
11657         cache.
11658
11659 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
11660
11661         * reflection.c: fixed writing of doubles on ARM FPA.
11662
11663 2005-12-02  Robert Jordan  <robertj@gmx.net>
11664
11665         * icall.c: Fixed EventInfo.ReflectedType (#76829).
11666
11667 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11668
11669         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
11670         least on SUSE 10 they are not the same (on debian, they are just the
11671         same thing).
11672
11673 2005-12-01  Raja R Harinath  <rharinath@novell.com>
11674
11675         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
11676         DeclaringType for VARs and MVARs.
11677         * class.c (set_generic_param_owner): Fix initialization of owner
11678         fields.
11679
11680 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
11681
11682         * icall.c: fixed Enum.ToObject() to correctly convert the values.
11683
11684 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11685
11686         * threadpool.c: workaround for a bug that shows up on the Mac:
11687         select()+connect() on a blocking socket is not like it should
11688         be, so we proceed to connect() in that case, wasting the I/O
11689         threadpool thread until connect succeedes. Fixes bug #75436.
11690
11691 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11692
11693         * threadpool.c: fix typo when setting file descriptor states.
11694
11695 2005-11-28  Raja R Harinath  <rharinath@novell.com>
11696
11697         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
11698         * metadata.c (mono_metadata_parse_method_signature_full): Don't
11699         create a temporary signature container.
11700         (mono_metadata_parse_generic_param): Update to changes.
11701         (mono_type_create_from_typespec_full): Update to changes.
11702         * loader.c (method_from_memberref): Don't use a
11703         MonoGenericContainer while parsing a memberref signature.
11704         (method_from_methodspec): Remove dead-store of the 'container'
11705         variable.  It's overwritten before use.
11706
11707         * metadata.c (mono_type_create_from_typespec_full): Make debugging
11708         checks tighter.
11709         (mono_metadata_parse_generic_param): Likewise.
11710         * loader.c (find_method_in_class): Does not need a
11711         MonoGenericContainer.  Use 'mono_method_signature' rather than
11712         'mono_method_signature_full'.
11713         (find_method, mono_get_method_constrained, method_from_memberref):
11714         Update to changes.
11715
11716         * metadata.c (mono_type_create_from_typespec_full): Ensure that
11717         owner-less generic-parameters are never evicted from the typespec
11718         cache.
11719
11720         * loader.c (method_from_memberref): Don't use the current context
11721         when parsing signatures.
11722         (method_from_methodspec, mono_get_method_from_token): Update to changes.
11723
11724         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
11725         side-effects in g_assert.
11726         * loader.c (mono_get_method_from_token): Resolve klass earlier so
11727         that we don't potentially lose information.
11728
11729 2005-11-26  Dick Porter  <dick@ximian.com>
11730
11731         * icall.c:
11732         * threads.c: icalls to implement basic (ie, not named)
11733         System.Threading.Semaphore.
11734
11735 2005-11-24  Dick Porter  <dick@ximian.com>
11736
11737         * process.c
11738         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
11739         Use GetProcessId() if it's available.
11740
11741 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
11742
11743         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
11744
11745 2005-11-23  Raja R Harinath  <rharinath@novell.com>
11746             Ankit Jain  <jankit@novell.com>
11747
11748         * loader.c (mono_get_method_from_token): Initialize 'method' field
11749         of all generic parameters before parsing the signature.  Remove
11750         code that "fixed"-up MVAR references.
11751
11752 2005-11-23  Ankit Jain  <jankit@novell.com>
11753
11754         * metadata.c (mono_metadata_has_generic_params):
11755         (mono_metadata_load_generic_param_constraints):
11756         (mono_metadata_load_generic_params): Move duplicate code ...
11757         (mono_metadata_get_generic_param_row): ... here. Returns the
11758         first row-id in GenericParam table for a given owner (token).
11759         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
11760         prototype.
11761
11762 2005-11-23  Raja R Harinath  <rharinath@novell.com>
11763             Ankit Jain  <jankit@novell.com>
11764
11765         * metadata.c (mono_metadata_class_equal): Pass signature_only when
11766         comparing VARs too.
11767         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
11768         type->data.generic_param only if the type is an MVAR.
11769         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
11770         leak owner-less VARs and MVARs into managed space.
11771
11772 2005-11-21  Martin Baulig  <martin@ximian.com>
11773
11774         * class-internals.h
11775         (MonoMethod): Moved the `generic_container' here from
11776         `MonoMethodNormal' since we now also need it for
11777         `MonoMethodPInvoke';
11778         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
11779         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
11780         an union containing both `MonoMethodNormal' and
11781         `MonoMethodPInvoke'.
11782
11783         * loader.c
11784         (mono_get_method_from_token): Allow implementing generic methods
11785         as interncalls.
11786
11787         * threads.c
11788         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
11789         icall.
11790
11791 2005-11-17  Dick Porter  <dick@ximian.com>
11792
11793         * icall.c: 
11794         * process.h: 
11795         * process.c: Split the Process Start_internal icall into
11796         ShellExecuteEx_internal and CreateProcess_internal, which are
11797         called depending on whether UseShellExecute is true.  Fixes bug
11798         76670.
11799
11800         * appdomain.c (MONO_CORLIB_VERSION): Incremented
11801
11802 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
11803
11804         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
11805         'msize' parameters, use the information in 'mspec' instead.
11806         (emit_object_to_ptr_conv): Ditto.
11807
11808         * marshal.c (emit_struct_conv): Handle explicit layout structs with
11809         fields out of order. Fixes #76733.
11810
11811 2005-11-17  Ankit Jain  <jankit@novell.com>
11812
11813         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
11814
11815 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
11816
11817         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
11818           bug #76575.
11819
11820 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
11821
11822         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
11823         for types with non-auto layout. Fixes #76717.
11824
11825 2005-11-16  Ankit Jain  <jankit@novell.com>
11826
11827         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
11828         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
11829         if generic_context is null.
11830           (mono_metadata_generic_param_equal): param->owner can be null.
11831           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
11832         null.
11833
11834 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
11835
11836         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
11837         the correct value.
11838
11839 2005-11-15  Martin Baulig  <martin@ximian.com>
11840
11841         * object.c (set_value): Use mono_class_from_mono_type() instead of
11842         the hack for generic instances; fixes #76136.
11843
11844 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
11845
11846         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
11847         fields.
11848
11849         * image.c (load_metadata_ptrs): Initialize the new fields.
11850
11851         * reflection.c (create_dynamic_mono_image): Ditto.
11852
11853         * reflection.c (build_compressed_metadata): Use the new fields.
11854
11855         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
11856         icall.
11857
11858         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
11859         icall.
11860         
11861 2005-11-15  Ankit Jain  <jankit@novell.com>
11862             Raja R Harinath  <harinath@gmail.com>
11863
11864         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
11865         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
11866         new per-generic_container cache if the cached MonoType's context matches
11867         the current context.
11868           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
11869         to the expected context.
11870           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
11871
11872 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11873
11874         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
11875         we changed the signature of an icall.
11876         * icall.c: Modify to mono_double_ParseImpl return true/false 
11877         depending on the success, instead of throwing the exception. This will
11878         help us in Double.TryParse methods.
11879         
11880 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
11881
11882         * marshal.c (emit_marshal_object): Throw an exception when
11883         marshalling 'object' instead of crashing. Fixes #76696.
11884
11885 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
11886
11887         * class-internals.h: Add prototype for mono_type_get_full_name ().
11888
11889 2005-11-11  Dick Porter  <dick@ximian.com>
11890
11891         * threads.c (mono_thread_manage): Make sure the main thread has
11892         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
11893
11894 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
11895
11896         * loader.c (mono_loader_set_error_type_load): Log a warning to the
11897         console about the missing type.
11898         (mono_loader_set_error_method_load): Ditto.
11899
11900 2005-11-09  Miguel de Icaza  <miguel@novell.com>
11901
11902         * mono-config.c (mono_get_config_dir): Set the system defaults if
11903         none is specified.
11904
11905         * assembly.c (mono_set_dirs): New API entry point to set the
11906         assembly and the config directory in one call
11907
11908 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
11909
11910         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
11911         the ftnptr was created from a delegate in a domain other than the
11912         current domain. Fixes #75377.
11913
11914         * exception.h exception.c: Add mono_get_exception_not_supported ().
11915
11916 2005-11-08  Martin Baulig  <martin@ximian.com>
11917
11918         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
11919
11920 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
11921
11922         * security-manager.h: Added definitions to deal with strongname key 
11923         pairs bigger (and smaller) than 1024 bits.
11924         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
11925         adjust wrt the public key length being used.
11926
11927 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
11928
11929         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
11930           Windows build (r51396-51397).
11931
11932 2005-11-03  Martin Baulig  <martin@ximian.com>
11933
11934         * class.c (mono_class_setup_vtable_general): Also add generic
11935         methods to the vtable; fixes #76581.
11936
11937 2005-11-01  Miguel de Icaza  <miguel@novell.com>
11938
11939         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
11940         sure that we lookup GetString method from the System.Text.Encoding
11941         class, not the derived class or we get an empty method.
11942
11943         Fixed class #76612.
11944
11945 2005-10-25  Miguel de Icaza  <miguel@novell.com>
11946
11947         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
11948         if it has been previously set (embedders). 
11949
11950         Make mono_set_rootdir available also on Unix.
11951
11952 005-10-24  Robert Jordan  <robertj@gmx.net>
11953
11954         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
11955
11956 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
11957
11958         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
11959         only calls which are made to native code use this flag.
11960
11961         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
11962
11963 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
11964
11965         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
11966         Add support for FieldBuilders.
11967
11968 2005-10-29  Martin Baulig  <martin@ximian.com>
11969
11970         * mono-debug.c
11971         (mono_debug_using_mono_debugger): New public method; returns
11972         whether we're running inside the debugger.
11973
11974 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
11975
11976         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
11977         for Method/Constructor/FieldBuilders.
11978
11979 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
11980
11981         * reflection.c (module_add_cattrs): Save custom attributes for global methods
11982         and fields as well.
11983
11984 2005-10-26  Martin Baulig  <martin@ximian.com>
11985
11986         * mono-debug-debugger.c
11987         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
11988
11989 2005-10-24  Raja R Harinath  <harinath@gmail.com>
11990
11991         * icall.c (base64_to_byte_array): Don't pass an out-of-range
11992         integer to isspace.
11993
11994 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
11995
11996         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
11997         when passing valuetypes byref. Fixes #76502.
11998
11999 2005-10-19  Jackson Harper  <jackson@ximian.com>
12000
12001         * profiler.c: Don't put a . in front of types that are not in a
12002         namespace.
12003
12004 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
12005
12006         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
12007
12008 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
12009
12010         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
12011         #76436.
12012         (mono_marshal_get_ldflda_wrapper): Fix a warning.
12013
12014 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12015
12016         * assembly.c metadata-internals.h icall.c: Define an additional
12017         parameter for mono_assembly_name_parse_full, so we can avoid creating
12018         S.R.AssemblyName.Version when no version info wasn't passed.
12019         
12020 2005-10-09  Miguel de Icaza  <miguel@novell.com>
12021
12022         * class.c (mono_type_get_full_name): Reimplement method that was
12023         removed. 
12024
12025         * image.c: Some docs
12026
12027 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
12028
12029         * profiler.c (output_newobj_profile): Fix printing of Total memory
12030         on x86.
12031
12032 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
12033
12034         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
12035
12036 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
12037
12038         * threads.c: remove debug output.
12039
12040 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
12041
12042         * threads.c (mono_thread_manage): Fix crashes if more than 64
12043         threads need to be aborted. Hopefully fixes #75899.
12044
12045         * assembly.c (mono_stringify_assembly_name): New helper function.
12046
12047         * class.c: Use mono_stringify_assembly_name instead of the similar
12048         static function.
12049
12050         * assembly.h assembly.c: Add support for calling a postload search 
12051         hook if an assembly cannot be loaded.
12052
12053         * appdomain.c: Register new search hooks which call the AssemblyResolve
12054         events in AppDomain. Fixes #75231
12055
12056 2005-10-07  Martin Baulig  <martin@ximian.com>
12057
12058         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
12059         methods without debug info.
12060
12061 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
12062
12063         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
12064         wrappers.
12065
12066 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12067
12068         * file-io.c: now that we return symlinks, use lstat and, when the file
12069         is a symbolic link, stat, to get the file attributes. Also avoid the
12070         conversion to/from utf16/external.
12071
12072 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
12073
12074         * class.c (mono_class_layout_fields): Compute klass->has_references
12075         correctly if an embedded valuetype is not yet initialized. Fixes
12076         #76331.
12077
12078 2005-10-04  Martin Baulig  <martin@ximian.com>
12079
12080         * metadata.c
12081         (mono_metadata_load_generic_param_constraints): New public
12082         function; splitted the constraints loading out from
12083         mono_metadata_load_generic_params().
12084
12085         * class.c (mono_class_create_from_typedef): Call
12086         mono_metadata_load_generic_param_constraints() after setting up
12087         the type and creating our parent; fixes #75329.
12088
12089 2005-10-04  Martin Baulig  <martin@ximian.com>
12090
12091         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
12092         non-dynamic parent classes.
12093
12094 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
12095
12096         * file-io.c : win32 build fix (ETXTBSY seems not found).
12097
12098 2005-10-04  Martin Baulig  <martin@ximian.com>
12099
12100         * reflection.c
12101         (mono_image_get_methodspec_token): Make the cache actually work;
12102         fixes #75974.
12103
12104 2005-10-04  Martin Baulig  <martin@ximian.com>
12105
12106         * class.c (mono_class_name_from_token): Removed the unneccessary
12107         `MonoGenericContext *' argument.
12108
12109 2005-10-04  Martin Baulig  <martin@ximian.com>
12110
12111         * loader.c
12112         (method_from_methodspec): Make the caching work again; fixes the
12113         performance regression from #76262.
12114
12115 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12116
12117         * file-io.c:
12118         * file-io.h:
12119         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
12120         GetFileSystemEntries that performs the same work but without going
12121         into io-layer, locking, etc.
12122
12123 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
12124
12125         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
12126         ThreadState_Stopped as well. Fixes #76047.
12127
12128 2005-09-29  Martin Baulig  <martin@ximian.com>
12129
12130         * class.c
12131         (inflate_generic_context): If the new context has a `gmethod', set
12132         its `container' that that gmethod's `container'.
12133
12134         * metadata.c
12135         (mono_metadata_parse_generic_param): Simplify things;
12136         `generic_container = generic_context->container;' is just fine.
12137
12138         * loader.c (method_from_methodspec): Code cleanups.
12139
12140 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
12141
12142         * decimal.c: fix warning (and let gcc generate correct
12143         code on ARM with optimizations).
12144
12145 2005-09-28  Martin Baulig  <martin@ximian.com>
12146
12147         * loader.c
12148         (method_from_memberref): Added `MonoGenericContext *class_context'
12149         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
12150         (method_from_methodspec): If we're a memberref, use the enclosing
12151         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
12152
12153 2005-09-28  Martin Baulig  <martin@ximian.com>
12154
12155         * object.c (mono_runtime_invoke_array): Added support for
12156         MONO_TYPE_GENERICINST; fixes #75917.
12157
12158 2005-09-27  Martin Baulig  <martin@ximian.com>
12159
12160         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
12161         `k->byval_arg.type' to determine the actual type.
12162
12163         * loader.c (method_from_methodspec): Removed some hacks.
12164
12165 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
12166
12167         * class-internals.h (mono_field_is_deleted): Do the test for
12168         rtspecialname before we check the actual name of the field. This
12169         prevents us from dereferencing a pointer into the string table,
12170         saving us from accessing a few pages
12171
12172         * *.c: Replace the use of {Enter,Leave}CriticalSection with
12173         macros. This will allow a deadlock debugger to easily be plugged
12174         in.
12175
12176 2005-09-27  Martin Baulig  <martin@ximian.com>
12177
12178         * loader.c (method_from_methodspec): Create a "signature"
12179         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
12180
12181 2005-09-27  Martin Baulig  <martin@ximian.com>
12182
12183         * class.c
12184         (inflate_generic_class): Correctly set the new context's
12185         container.
12186
12187         * loader.c
12188         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
12189         instead of a `MonoGenericContext *'.
12190         (mono_method_signature_full): Take a `MonoGenericContainer *'
12191         instead of a `MonoGenericContext *'.
12192
12193         * metadata.c
12194         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
12195         instead of a `MonoGenericContext *'.
12196         (mono_metadata_parse_method_signature_full): Likewise.
12197
12198 2005-09-26  Martin Baulig  <martin@ximian.com>
12199
12200         * class.c
12201         (mono_class_from_generic_parameter): Set `klass->generic_container'
12202         (mono_class_from_generic_parameter): Likewise.
12203         (mono_bounded_array_class_get): We inherit the generic container
12204         from the element class.
12205
12206         * loader.c
12207         (find_method, find_method_in_class): Take a `MonoGenericContext *'
12208         argument rather than computing it here.
12209         (method_from_memberref): Correctly set the generic context before
12210         parsing the signature.  Fixes #75681.
12211
12212 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
12213
12214         * object.c (mono_class_has_special_static_fields): Fix warnings.
12215
12216 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12217
12218         * assembly.c: Add parse_public_key function, to
12219         par the public keys. Also added mono_assembly_name_parse_full,
12220         to define it the parsed key should be freed or not.
12221         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
12222         to parse a long format assembly name.
12223         * metadata-internals.h: Keep mono_assembly_name_parse_full as
12224         private, since calling it to preserve the key requires
12225         freeing it manually.
12226         
12227 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
12228
12229         * locales.c : removed HAVE_ICU part.
12230
12231 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
12232
12233         * object.c (mono_class_create_runtime_vtable): Avoid calling 
12234         field_is_special_static if the klass has no special static fields.
12235
12236         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
12237         (MonoCachedClassInfo): Likewise.
12238
12239         * object.c (mono_class_has_special_static_fields): New helper function.
12240
12241 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
12242
12243         * class.c (mono_class_create_from_typedef): Don't call 
12244         interfaces_from_typedef_full for enums.
12245         (mono_class_create_from_typedef): Compute the base types of enums directly
12246         without calling mono_class_setup_fields ().
12247         (mono_class_find_enum_basetype): New helper function.
12248
12249         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
12250         one place inside the string heap.
12251         
12252 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
12253
12254         * class.c: locking fixes, code cleanups, some docs added.
12255         Allocate some data structures in the image mempool.
12256
12257 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
12258
12259         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
12260         the example code.
12261         
12262 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
12263
12264         * class-internals.h, class.c, reflection.c: reduce memory taken by
12265         MonoClass.
12266
12267 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
12268
12269         * metadata.c, metadata.h, loader.h: documentation updates, code and
12270         API cleanups.
12271
12272 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
12273
12274         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
12275         the example code.
12276
12277         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
12278         page faults caused by the runtime while reading metadata.
12279
12280 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12281
12282         * socket-io.c: the field names were changed 3 months ago and no one
12283         realized until bug #76077 got filed!
12284
12285 2005-09-20  Martin Baulig  <martin@ximian.com>
12286
12287         * icall.c (assembly_icalls): Removed some unused debugger icalls.
12288
12289 2005-09-20  Martin Baulig  <martin@ximian.com>
12290
12291         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
12292         write the rank into the class entry.
12293
12294 2005-09-20  Martin Baulig  <martin@ximian.com>
12295
12296         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
12297
12298 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
12299
12300         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12301
12302         * icall.c (custom_attrs_defined_internal): New icall.
12303
12304         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
12305         function.
12306         (mono_custom_attrs_construct_by_type): New helper function.
12307
12308 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
12309
12310         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
12311         terminate the resulting string. Fixes #76123.
12312
12313 2005-09-16  Martin Baulig  <martin@ximian.com>
12314
12315         * mono-debug.c
12316         (mono_debug_add_method): Ignore inflated methods for the moment.
12317
12318 2005-09-14  Martin Baulig  <martin@ximian.com>
12319
12320         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
12321
12322 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
12323
12324         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
12325         return a success/failure indication.
12326         (mono_metadata_interfaces_from_typedef_full): Ditto.
12327         (get_constraints): Ditto.
12328
12329 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
12330
12331         * marshal.c (emit_marshal_array): Fix handling of null arrays.
12332         
12333         * marshal.c (emit_marshal_array): Add support for returning string
12334         arrays from delegates. Fixes #76063.
12335
12336         * marshal.c: Use the emit_ldloc/stloc macros where possible.
12337
12338 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
12339
12340         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
12341         icall.
12342
12343 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
12344
12345         * reflection.c icall.c: Fix after mono_get_exception_type_load
12346         signature change.
12347
12348         * assembly.c (mono_assembly_get_assemblyref): New helper function.
12349         (mono_assembly_load_reference): Use the new helper.
12350
12351         * class-internals.h (MonoLoaderError): New structure containing 
12352         information about type loading errors.
12353
12354         * class-internals.h loader.c: Add APIs to store per-thread loader
12355         error information.
12356
12357         * loader.c class.c: Set the loader error if needed.
12358
12359         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
12360
12361 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
12362
12363         * decimal.c: fixed to handle the broken ARM fp format.
12364
12365 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
12366
12367         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
12368         broken.
12369
12370 2005-09-06  Martin Baulig  <martin@ximian.com>
12371
12372         * domain.c (supported_runtimes): Added v2.0.50727.
12373
12374 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
12375
12376         * culture-info.h: reduce the size of some structures.
12377
12378 2005-09-05  Martin Baulig  <martin@ximian.com>
12379
12380         Reflect latest API changes in the August CTP.
12381
12382         * icall.c
12383         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
12384         ("MonoType.HasGenericArguments"): Removed.
12385         ("MonoMethod.BindGenericParameters"): Renamed to
12386         "MakeGenericMethod".
12387         ("MethodBuilder.BindGenericParameters"): Renamed to
12388         "MakeGenericMethod".    
12389
12390 2005-09-05  Martin Baulig  <martin@ximian.com>
12391
12392         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
12393
12394 2005-09-05  Martin Baulig  <martin@ximian.com>
12395
12396         Applying a patch from Michal Moskal <malekith@nemerle.org>.
12397
12398         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
12399         generic_container is non-NULL.
12400
12401 2005-09-05  Martin Baulig  <martin@ximian.com>
12402
12403         Applying a patch from Michal Moskal <malekith@nemerle.org>.
12404
12405         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
12406
12407 2005-08-29  Michal Moskal  <malekith@nemerle.org>
12408
12409         * reflection.c (encode_locals,
12410         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
12411         for large generic types.
12412
12413 2005-09-05  Martin Baulig  <martin@ximian.com>
12414
12415         Applying a patch from Michal Moskal <malekith@nemerle.org>.
12416
12417         * class.c (mono_dup_array_type): New public method.
12418         (mono_metadata_signature_deep_dup): New public method.
12419         (dup_type): Correctly duplicate array and function types.
12420
12421 2005-09-05  Martin Baulig  <martin@ximian.com>
12422
12423         Applying a patch from Michal Moskal <malekith@nemerle.org>.
12424
12425         * reflection.c (get_default_param_value_blobs): Handle generic types
12426         and generic methods.
12427
12428 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
12429
12430         * class.c: Fixed error reporting (method/class were inversed) for 
12431         inheritance demands.
12432         * security-manager.c|h: Added the AppDomain when calling the managed
12433         System.Security.SecurityManager.InheritanceDemand method.
12434
12435 2005-09-01  Raja R Harinath  <rharinath@novell.com>
12436
12437         * reflection.c (encode_marshal_blob): 'marshaltype' and
12438         'marshaltyperef' are alternate sources for the custom marshaler
12439         name.
12440
12441 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
12442
12443         * class.c: fix creation of array classes with rank == 1
12444         (patch by Ankit Jain <jankit@novell.com>).
12445
12446 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
12447
12448         * object.c: fix check for creating the bound data for arrays vs
12449         szarrays.
12450
12451 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12452
12453         * object.c: configuration file name is now based on the executable name,
12454         not the image name. Fixes bug #75931.
12455
12456 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
12457
12458         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
12459         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
12460
12461 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
12462
12463         * rand.c: Use wincrypt.h instead of WinCrypt.h.
12464
12465 2005-08-24  Ankit Jain  <jankit@novell.com>
12466             Raja R Harinath  <rharinath@novell.com>
12467
12468         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
12469           called by it recursively.
12470           (mono_class_init): Remove special case in pending_init handling, since it's
12471           superseded by the fix to mono_class_from_typeref.
12472
12473 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
12474
12475         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
12476         BROKEN_THREAD_START stuff.
12477
12478 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
12479
12480         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
12481         trampoline.
12482
12483         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
12484         
12485         * object.c (mono_delegate_ctor): Replace the original function address with
12486         a delegate trampoline.
12487
12488 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
12489
12490         * icall.c: add boolean argument to base64_to_byte_array and 
12491         InternalFromBase64String to control whether a whitespace-only string
12492         is allowed (or should casue a FormatException to be thrown). We need
12493         this as the behavior has changed between MS.NET 1.x and 2.0, and we
12494         to match the MS behaviour in both profiles.
12495         * appdomain.c: Bump corlib version.
12496
12497 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12498
12499         This patch implements a big portion of publisher policy
12500         support, used to bind assembly versions and redirect
12501         one assembly from version A to version B.
12502
12503         * assembly.c:
12504         New GSList loaded_assembly_bindings, for storing the cached
12505         assembly bindings.
12506         (assembly_binding_maps_name): New static function for checking if a 
12507         assembly binding information maps an assembly name.
12508         (mono_assembly_binding_info_free): New function for freeing
12509         assembly binding information resources.
12510         (get_publisher_policy_info): New static function for retrieving 
12511         assembly binding information from a MonoImage.
12512         (compare_versions): New static function for comparing an assembly
12513         binding information data and the version of an assembly name.
12514         (check_policy_versions): New static function for checking if an
12515         assembly binding info mapping an assembly name is valid for it.
12516         (mono_assembly_load_publisher_policy): New static function for
12517         loading the 'policy.major.minor.MyAssembly' image for an assembly
12518         with an assembly name 'aname'.
12519         (mono_assembly_bind_version): New static function for updating
12520         assembly redirection.
12521         (mono_assembly_apply_binding): New static function for applying
12522         assembly binding.
12523         (search_binding_loaded): New static function for searching 
12524         loaded assembly binding infos in the cache domain.
12525         (mono_assembly_load_full): Don't apply assembly binding for
12526         reflection only assemblies.
12527
12528         * metadata-internals.h: Add MonoAssemblyBindingInfo,
12529         which contains information about assembly binding. Also
12530         declare signature for mono_config_parse_publisher_policy ()
12531         function, used to retrieve pub policy info.
12532         
12533         * mono-config.c:
12534         (publisher_policy_start): New static function used to parse publisher 
12535         policy config files.
12536         (publisher_policy_parser): New static MonoParseHandler containing 
12537         the functions used when parsing config files.
12538         (mono_config_parse_publisher_policy): New function for parsing
12539         publisher policy files.
12540         
12541 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
12542
12543         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
12544
12545         * marshal.c (mono_delegate_free_ftnptr): Ditto.
12546
12547         * object.c (mono_get_addr_from_ftnptr): New helper function.
12548
12549         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
12550
12551         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12552
12553 2005-08-19  Dick Porter  <dick@ximian.com>
12554
12555         * threads.c, threads.h, appdomain.c, appdomain.h,
12556         profiler-private.h, monitor.c, object.c, object-internals.h,
12557         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
12558         store the thread ID, so it can hold a 64 bit value if needed.
12559
12560 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
12561
12562         * reflection.c (mono_reflection_create_dynamic_method): Store the
12563         handle class into the method references as well so ldtoken works in
12564         dynamic methods.
12565
12566         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
12567         types.
12568
12569 2005-08-19  Ankit Jain <jankit@novell.com>
12570
12571         Fix #75847.
12572         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
12573           here rather than using the method signature of a arbitrary function
12574           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
12575           two arguments.
12576           Hack done with Harinath.
12577
12578 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12579
12580         * threadpool.c: disable printing stack traces when we get a exception
12581         in a threadpool thread. I need to do more testing to figure out which
12582         cases actually print this. Fixes bug #75828.
12583
12584 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12585
12586         * icall.c: there might be ignored whitespace after the last '='. This
12587         fixes length computation and bug #75840.
12588
12589 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
12590
12591         * assembly.c (mono_assembly_load_full): Consider .exe extension as
12592         well. Fixes #75809.
12593
12594         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
12595         #75784.
12596         
12597         * reflection.c (create_custom_attr_data): Ditto.
12598
12599 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
12600
12601         * locales.c, culture-info.h : removed RegionLCIDMap.
12602         * culture-info-tables.h : regenerated.
12603
12604 2005-08-16  Martin Baulig  <martin@ximian.com>
12605
12606         * class.c (mono_type_get_name_recurse): Small fix.
12607
12608 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
12609
12610         * locales.c : indentation fixie.
12611
12612 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
12613
12614         * object-internals.h,
12615           locales.h,
12616           locales.c,
12617           culture-info.h,
12618           icall.c : added RegionInfo table support.
12619         * culture-info-table.h : regenerated for region support.
12620
12621 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
12622
12623         * reflection.c (resolve_object): handle all kinds of MonoMethod
12624         including generic ones
12625
12626 2005-08-12  Ankit Jain <jankit@novell.com>
12627
12628         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
12629           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
12630
12631 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
12632
12633         * process.c: Don't close a thread handle when it's NULL. This is a
12634         workaround for bug #75733.
12635
12636 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
12637
12638         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
12639
12640 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
12641
12642         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
12643
12644 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12645
12646         * threadpool.c: if a work item in the thread pool has a callback that
12647         catches a exception, don't propagate it after invoking the callback.
12648         Fixes bug #75336.
12649
12650 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
12651
12652         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
12653
12654         * class-internals.h (MonoCachedClassInfo): Add some new fields.
12655
12656         * class.c (mono_class_init): Load field info lazily in the AOT case.    
12657
12658         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
12659
12660 2005-08-03  Ankit Jain  <jankit@novell.com>
12661
12662         Fix #75683.
12663         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
12664           PInvoke calling convention is 0.
12665
12666 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
12667
12668         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
12669         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
12670
12671 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
12672
12673         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
12674         to handle threads not started by the GC (patch by Michael Meeks
12675         <michael.meeks@novell.com>).
12676
12677 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
12678
12679         * reflection.c: Make buffer used in emitting types larger for some
12680         big generic types (patch by Michal Moskal).
12681
12682 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
12683
12684         * mono-debug.c: Fix some (not all) alignment problems.
12685
12686 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12687
12688         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
12689         Invoke mono_image_load_from_data_full passing the refonly
12690         parameter.
12691
12692         * assembly.c
12693         (mono_assembly_open_from_bundle): Add the refonly argument, 
12694         in order to pass it to other methods it calls to.
12695         (do_mono_assembly_open): Add the refonly argument, in order 
12696         to pass it to other methods it calls to.
12697         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
12698         the refonly parameter to it.
12699
12700         * image.c: Add loaded_images_refonly_hash and
12701         loaded_images_refonly_guid_hash to cache the reflection
12702         only loaded images.
12703         (mono_images_init): Initialize the hash tables used for
12704         caching the reflection only images.
12705         (load_modules): Invoke mono_image_open_full passing the refonly
12706         parameter to load the modules the correct way.
12707         (build_guid_table): Add the refonly argument, to re-build the 
12708         correct hash table.
12709         (do_mono_image_open): Added the refonly argument, in order to
12710         define it for the loaded image.
12711         (mono_image_loaded_full): New function, which receives an
12712         additional parameter to look for the image in the refonly or
12713         non-refonly section.
12714         (mono_image_loaded): Updated, using mono_image_loaded_full.
12715         (mono_image_loaded_by_guid_full): The same case that happens
12716         with mono_image_loaded_full.
12717         (mono_image_loaded_by_guid): Likewise.
12718         (register_image): Use the ref_only variable inside MonoImage
12719         to decide in which hash table store the current image.
12720         (mono_image_open_from_data_full): Rename
12721         mono_image_open_from_data to mono_image_open_from_data_full,
12722         adding the refonly argument, to define the ref_only variable 
12723         inside MonoImage.
12724         (mono_image_open_from_data): Return 
12725         mono_image_open_from_data_full.
12726         (mono_image_open_full): Rename mono_image_open to
12727         mono_image_open_full, receiving the new refonly argument,
12728         to pass it to inner methods.
12729         (mono_pe_file_open): Update this function, to open
12730         a MonoImage as a non-refonly image.
12731         (mono_image_close): Use the refonly variable inside
12732         MonoImage to remove the image from the correct caches.
12733
12734         * image.h: Add the signatures of mono_image_open_full,
12735         mono_image_open_from_data_full, mono_image_loaded_full,
12736         mono_image_loaded_by_guid_full.
12737
12738         * metadata-internals.h: Add the ref_only field to 
12739         MonoImage.
12740         
12741 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12742
12743         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
12744         Fix the last behavior, which used to load the assemblies and
12745         extract MonoReflectionAssemblyName information, instead of
12746         extract it from the metadata tables. Needed for Reflection
12747         Only assemblies.
12748         
12749 2005-07-29  Martin Baulig  <martin@ximian.com>
12750
12751         * mono-debug-debugger.c
12752         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
12753         not initialized.
12754
12755         * mono-debug.c
12756         (mono_debug_address_from_il_offset): Check whether we have
12757         debugging support before attempting to take the lock.
12758         (mono_debug_source_location_from_address): Likewise.
12759         (mono_debug_source_location_from_il_offset): Likewise.
12760         (mono_debug_il_offset_from_address): Likewise.
12761         (mono_debug_address_from_il_offset): Likewise.
12762
12763 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
12764
12765         * class.c (mono_class_from_name_case): Add support for dynamic images.
12766         Fixes #75650.
12767
12768         * object.c (mono_class_compute_gc_descriptor): Add a workaround
12769         for #75479.
12770
12771 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
12772         
12773         * reflection.c (mono_method_get_object): Fix warning.
12774
12775 2005-07-28  Martin Baulig  <martin@ximian.com>
12776
12777         * mono-debug.c
12778         (mono_debug_add_wrapper): Also write the wrapper type.
12779
12780 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
12781
12782         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
12783         
12784         * class.c (mono_class_init): Avoid reading nested classes if the AOT
12785         data indicates the class has none.
12786
12787 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
12788
12789         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
12790         loader lock with the debugger lock. Prevents deadlocks for beagle.
12791
12792         Beagle can now run on an smp box for a weekend without any
12793         issues. Woohoo!
12794
12795 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
12796
12797         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
12798         in a module. Fixes #75629.
12799
12800 2005-07-26  Martin Baulig  <martin@ximian.com>
12801
12802         * mono-debug.c (mono_debug_add_wrapper): New static method.
12803         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
12804         interncall or a wrapper.
12805
12806         * mono-debug.h (MonoDebugWrapperData): New public typedef.
12807         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
12808         (MONO_DEBUGGER_VERSION): Bump to 51.
12809
12810         * mono-debug-debugger.c
12811         (mono_debugger_add_type): Removed this empty function.
12812         (mono_debugger_add_method): Likewise.
12813
12814 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
12815
12816         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
12817         before accessing method->slot.
12818
12819 2005-07-21  Jb Evain  <jbevain@gmail.com>
12820
12821         * reflection.c (method_encode_clauses/class): Handle filters clauses.
12822         Fixes #75010.
12823
12824 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
12825
12826         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
12827         #75587.
12828
12829 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
12830
12831         * image.h image.c: Add mono_image_get_guid () API function.
12832
12833 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
12834
12835         There were issues when multiple threads tried to load
12836         assemblies. A deadlock was created between assemblies_mutex and
12837         mono_domain_assemblies_lock. This fixes the issue by making the
12838         assembly ref counting be lock free. See bug 75586.
12839         
12840         * image.c (mono_image_close): The add ref function here was using
12841         Interlocked operations while the unref was using a mutex and a
12842         --. I don't think this was ever a bug that would be exposed in a
12843         non-pendantic way (ie, by an embedder doing a ref on one thread
12844         and an unref on another), but for the sake of correctness, this is
12845         now Interlocked.
12846
12847         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
12848         (mono_assembly_load_reference): Call mono_assembly_addref rather
12849         than touching the refcount ourselves.
12850         (mono_assembly_close): Use InterlockedDecrement to unref the
12851         assembly. Don't acquire the lock unless it is actually needed.
12852
12853 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
12854
12855         * class.c (mono_class_layout_fields): Fix calculation of has_references
12856         for generic types.
12857
12858 2005-07-12  Martin Baulig  <martin@ximian.com>
12859
12860         Applying a patch from Michal Moskal <malekith@nemerle.org>.
12861
12862         * metadata.c
12863         (mono_type_hash): Provide better hashing for generic instances.
12864         (mono_generic_inst_hash): Improve hashing.
12865         (mono_generic_class_hash): Likewise.
12866
12867         * reflection.c (mymono_metadata_type_hash): Improve hashing for
12868         generic instances.
12869
12870 2005-07-12  Martin Baulig  <martin@ximian.com>
12871
12872         * reflection.c (mono_reflection_create_runtime_class): Remove the
12873         hack for generic type definitions and non-`Run' assemblies.
12874         (mono_reflection_bind_generic_parameters): Also use
12875         `klass->wastypebuilder' to check for TypeBuilders.
12876
12877 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
12878
12879         * class.c (mono_class_layout_fields): Fix calculation of has_references
12880         for generic types.
12881
12882         * class.c (inflate_generic_class): Fix a leak.
12883         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
12884         for generic types.
12885
12886 2005-07-11  Martin Baulig  <martin@ximian.com>
12887
12888         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
12889         on error.
12890
12891 2005-07-11  Martin Baulig  <martin@ximian.com>
12892
12893         * loader.c (find_method): Also lookup in
12894         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
12895
12896 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
12897
12898         * appdomain.c (mono_domain_unload): Don't free the error message
12899         before passing it to mono_get_exception_...
12900
12901         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
12902         
12903 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
12904
12905         * threads.c: try to better guess an available RT signal (bug #75387).
12906
12907 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
12908
12909         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
12910         and CACHE_OBJECT.
12911
12912 2005-07-07  Martin Baulig  <martin@ximian.com>
12913
12914         * class.c (mono_type_get_name_full): Return NULL for
12915         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
12916         fixes #75408.
12917
12918 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
12919
12920         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
12921         exit the appdomain as well being aborted.
12922
12923         * threadpool.c: Create all threadpool threads inside the root appdomain, and
12924         change back to the root domain after calling managed code. This enables
12925         appdomains using threadpools to be unloaded.
12926
12927 2005-07-07  Martin Baulig  <martin@ximian.com>
12928
12929         * class-internals.h
12930         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
12931         into `MonoDynamicGenericClass' since we only need it for dynamic
12932         types.
12933
12934         * reflection.c (mono_class_bind_generic_parameters): We don't need
12935         to compute the `parent' here.
12936
12937 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
12938
12939         * culture-info-table.h : regenerated.
12940
12941 2005-07-06  Martin Baulig  <martin@ximian.com>
12942
12943         * icall.c
12944         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
12945
12946         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
12947
12948 2005-07-06  Martin Baulig  <martin@ximian.com>
12949
12950         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
12951         we're doing a signature-only comparision; fixes #74945.
12952
12953 2005-07-06  Martin Baulig  <martin@ximian.com>
12954
12955         * class-internals.h (MonoGenericClass): Moved some things out into
12956         a new `MonoInflatedGenericClass' type.  
12957         (MonoInflatedGenericClass): New type; the `klass' of a
12958         `MonoGenericClass' is now computed lazyly in
12959         mono_get_inflated_generic_class().      
12960
12961         * class.c (mono_get_inflated_generic_class): New public function.
12962         (mono_class_inflate_generic_method): Removed the unused
12963         `MonoClass *' argument.
12964         (setup_generic_vtable): Don't call mono_get_inflated_method() on
12965         all the methods.
12966         (mono_class_create_generic): Make this static and merge it with
12967         mono_class_create_generic_2(); we're now called automatically from
12968         mono_get_inflated_generic_class().
12969
12970         * loader.c (mono_method_signature): Call
12971         mono_get_inflated_method() here.
12972
12973 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
12974
12975         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
12976         type of fields with RVA.
12977
12978         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
12979         for this pseudo class.
12980         (my_mono_class_from_generic_parameter): Likewise.
12981         (mono_class_init): Allow interfaces to have cctors.
12982
12983 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
12984
12985         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
12986         lazily for AOT methods.
12987
12988 2005-07-05  Martin Baulig  <martin@ximian.com>
12989
12990         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
12991         returns FALSE for a successful match, not TRUE.
12992
12993 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
12994
12995         * loader.c (mono_method_get_index): Optimize this a bit.
12996
12997 2005-07-04  Martin Baulig  <martin@ximian.com>
12998
12999         * class.c
13000         (class_compute_field_layout): Move the check for generic type
13001         definitions into mono_class_layout_fields().  Fixes #74684.
13002         (mono_class_from_generic_parameter): Correctly compute
13003         `klass->parent'; fixes #75457.
13004
13005         * reflection.c (register_assembly, register_module): Make sure
13006         `domain->rejobject_hash' is already created.
13007
13008 2005-07-02  Martin Baulig  <martin@ximian.com>
13009
13010         * class-internals.h
13011         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
13012         `MonoDynamicGenericClass'.      
13013
13014 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
13015
13016         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
13017         returned by a field getter is null, since null is a valid value.
13018
13019 2005-07-01  Martin Baulig  <martin@ximian.com>
13020
13021         * reflection.c (mono_reflection_generic_class_initialize): Update
13022         the `dgclass->fields [i].parent' to the correct class.
13023         (mono_image_get_fieldref_token): Use the declaring type, not the
13024         reflected type.
13025
13026 2005-07-01  Martin Baulig  <martin@ximian.com>
13027
13028         * loader.c (find_method): Also look in the interfaces; fixes #75429.
13029
13030 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
13031
13032         * threads.c (thread_cleanup): assert that thread != NULL
13033         (wait_for_tids_or_state_change): We were using the wrong variable
13034         when accessing wait->threads. `i' was always out of the bounds of
13035         the array.
13036
13037 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13038
13039         * loader.c: map user32 and kernel32 to libMonoSupportW
13040
13041 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
13042
13043         * appdomain.c (unload_thread_main): Mark this as WINAPI.
13044
13045 2005-06-28  Martin Baulig  <martin@ximian.com>
13046
13047         * loader.c (method_from_methodspec): Fix #75334.
13048
13049 2005-06-28  Martin Baulig  <martin@ximian.com>
13050
13051         Fix #74953 - Arrays now implement the generic IList<T> interface
13052         on the 2.0 platform.
13053
13054         * class-internals.h (MonoDefaults): Added `generic_array_class'.
13055
13056         * reflection.c (mono_class_bind_generic_parameters): New public
13057         function; similar to mono_reflection_bind_generic_parameters(),
13058         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
13059
13060         * domain.c (mono_init_internal): Try to initialize.
13061         `mono_defaults.generic_array_class' here; this'll only succeed if
13062         we're using the 2.0 corlib.
13063
13064         * icall.c
13065         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
13066         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
13067         (mono_lookup_internal_call): Added support for nested classes.
13068
13069         * loader.c
13070         (mono_get_method_from_token): Set `result->signature->pinvoke' if
13071         we're an interncall and have generic arguments.
13072
13073         * class.c
13074         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
13075         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
13076         instance of System.Array.InternalArray<T> for arrays, so they
13077         implement the generic IList<T> interface.
13078
13079 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
13080
13081         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
13082         (chastamar@yahoo.com). Fixes #75374.    
13083
13084 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
13085
13086         * culture-info-table.h: regenerated.
13087
13088 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13089
13090         * icall.c: handle spaces correctly for base64 strings.
13091
13092 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
13093
13094         * *.c: Kill some warnings.
13095
13096 2005-06-23  Duncan Mak  <duncan@novell.com>
13097
13098         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
13099         that this builds on Solaris 10 (x86).
13100
13101 2005-06-23  Martin Baulig  <martin@ximian.com>
13102
13103         * class.c
13104         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
13105         generic type definitions.
13106
13107 2005-06-23  Martin Baulig  <martin@ximian.com>
13108
13109         Fix #75331.
13110
13111         * metadata.c (mono_class_get_overrides): Renamed to
13112         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
13113         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
13114         pass it to mono_get_method_full().
13115
13116 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
13117
13118         * reflection.c (mono_reflection_create_runtime_class): take the
13119         mono_domain_lock in this method. Prevents deadlocks
13120
13121 2005-06-22  Martin Baulig  <martin@ximian.com>
13122
13123         * loader.c (method_from_methodspec): Fix #75330.
13124
13125 2005-06-22  Martin Baulig  <martin@ximian.com>
13126
13127         * reflection.c (type_get_qualified_name): Use
13128         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
13129         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
13130         argument; use it if we don't have an assembly name.
13131
13132 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
13133
13134         * object.c: In mono_message_init, set "copy out" flag for in
13135         parameters with the [Out] flag.
13136
13137 2005-06-21  Martin Baulig  <martin@ximian.com>
13138
13139         * class.c
13140         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
13141         and MONO_TYPE_PTR.
13142
13143 2005-06-21  Martin Baulig  <martin@ximian.com>
13144
13145         * class.c (mono_class_init): Don't initialize `class->fields' for
13146         generic instances since they're initialized again in
13147         compute_field_layout(). 
13148         (compute_field_layout): Set the field's `generic_info' here; fix
13149         #75320. 
13150
13151 2005-06-21  Martin Baulig  <martin@ximian.com>
13152
13153         * class-internals.h
13154         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
13155
13156         * metadata.c (mono_metadata_generic_method_equal): Also
13157         distinguish the `generic_class'; fixes #75334.
13158
13159 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13160
13161         * domain.c:
13162         * appdomain.c:
13163         * domain-internals.h:
13164         * reflection.c: 'domain_assemblies' field is now protected by its own
13165         lock. Don't call into managed code to run the AssemblyLoad event if we
13166         now there are no registered delegates for it.
13167
13168 2005-06-20  Martin Baulig  <martin@ximian.com>
13169
13170         * class.c (mono_class_is_assignable_from): Use a custom version of
13171         mono_class_has_parent() to make things work for generic instances;
13172         fix #75300.
13173
13174 2005-06-20  Martin Baulig  <martin@ximian.com>
13175
13176         * loader.c (method_from_methodspec): Apply a patch from
13177         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
13178
13179 2005-06-20  Martin Baulig  <martin@ximian.com>
13180
13181         * class.c (mono_class_init): Reverted Zoltan's last change; it
13182         breaks generics.
13183
13184 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
13185
13186         * threads.c (wait_for_tids_or_state_change): Add missing locking.
13187
13188 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13189
13190         * socket-io.c: fix the index in the socket array for writable/error
13191         sockets. Fixes bug #75306.
13192
13193 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
13194
13195         * class.c (mono_class_init): Allow interfaces to have static ctors.
13196
13197 2005-06-17  Martin Baulig  <martin@ximian.com>
13198
13199         * loader.c (method_from_methodspec): Use `context->container' when
13200         parsing the `gmethod->inst'.
13201
13202 2005-06-17  Martin Baulig  <martin@ximian.com>
13203
13204         * class.c (mono_type_get_name_recurse): Don't add the assembly
13205         name for type arguments.
13206
13207 2005-06-15  Martin Baulig  <martin@ximian.com>
13208
13209         * reflection.c (mono_image_get_inflated_method_token): Encode
13210         correct klass; fixes #75260.
13211
13212 2005-06-13 Michal Moskal <malekith@nemerle.org>
13213
13214         * icall.c: Make GetCorrespondingMethod/Constructor take
13215         MonoReflectionMethod method not MonoMethod. Removed
13216         MonoType.GetCorrespondingField, and make
13217         MonoGenericType.GetCorrespondingField take name not
13218         MonoClassField.
13219
13220 2005-06-13  Michal Moskal <malekith@nemerle.org>
13221
13222         * reflection.c (field_encode_signature, encode_locals):
13223          Make sizes of buffers for types larger (for big generic types).
13224          (create_generic_typespec,
13225          mono_reflection_sighelper_get_signature_local,
13226          mono_reflection_sighelper_get_signature_field):
13227          Add asserts for too small buffers.
13228
13229 2005-06-15  Martin Baulig  <martin@ximian.com>
13230
13231         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
13232         if our parent is not a dynamic type.
13233
13234 2005-06-15  Martin Baulig  <martin@ximian.com>
13235
13236         * class-internals.h (MonoTypeNameFormat): New enum.
13237
13238         * class.c
13239         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
13240         (mono_type_get_full_name): Removed.
13241         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
13242         argument instead of the boolean's.
13243
13244         * icall.c (ves_icall_System_MonoType_getFullName):
13245         Added `gboolean assembly_qualified'.    
13246
13247         * reflection.h
13248         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
13249
13250         * reflection.c (mono_reflection_parse_type): Parse the new type
13251         name format.
13252
13253 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13254
13255         * icall.c: no need to convert from utf16 to utf8 and then back again
13256         after the call to GetLogicalDrives.
13257
13258 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13259
13260         * icall.c: frombase64. Fix problems exposed by new tests.
13261
13262 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13263
13264         * icall.c: added internal calls for converting char [] and strings in
13265         base64 into byte [].
13266
13267 2005-06-10  Martin Baulig  <martin@ximian.com>
13268
13269         * class.c (mono_class_create_generic_2): Read the nested classes
13270         from the metadata rather than from `gklass->nested_classes' since
13271         `gklass' might not be initialized yet.
13272
13273 2005-06-09  Duncan Mak  <duncan@novell.com>
13274
13275         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
13276         all public headers. Fixes #74919.
13277
13278 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
13279
13280         * domain.c: The key for proxy_vtable_hash is now a pointer
13281         array. Added new GHashFunc and GCompareFunc functions for this.
13282
13283         * class.h: The list of interfaces in MonoRemoteClass is known in
13284         advance and can't grow (we create a new MonoRemoteClass if needed),
13285         so now the interface array can be allocated together with
13286         MonoRemoteClass.
13287         
13288         * object.c: Added a new method create_remote_class_key.
13289         Fixed mono_remote_class so it does not depend on
13290         mono_upgrade_remote_class.
13291         Removed extend_interface_array.
13292         Added new method clone_remote_class(), which makes a copy of a remote
13293         class and adds a new interface or class to it.
13294         mono_upgrade_remote_class() now creates a new remote class (or gets
13295         it from the cache) if an vtable upgrade is needed. In this way
13296         we make sure that other objects sharing the same remote class
13297         don't get the new vtable with unwanted interfaces.
13298         
13299         * object-internals.h:
13300         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
13301         
13302         * marshal.c: Track changes in mono_upgrade_remote_class().
13303
13304 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
13305         * icall.c: Add runtime methods for obtaining members of inflated
13306         class, which were created from supplied non-inflated members. It
13307         is used in internal Get{Method,Constructor,Field} methods in
13308         System.Type
13309
13310 2005-06-09  Martin Baulig  <martin@ximian.com>
13311
13312         * reflection.c
13313         (mono_reflection_bind_generic_method_parameters): Fix #75169.
13314
13315 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13316         * reflection.c (mono_image_basic_init): Define
13317         Version in MonoDynamicAssembly. 
13318         
13319 2005-06-08  Martin Baulig  <martin@ximian.com>
13320
13321         Fix #75136.
13322
13323         * loader.c
13324         (mono_method_signature_full): New public method; takes a
13325         `MonoGenericContext *'.
13326         (find_method): Use mono_method_signature_full() and pass the
13327         klass'es context to it.
13328
13329         * class.c (mono_class_is_inflated_method): Use
13330         mono_method_signature_full() and pass the context to it.
13331
13332 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
13333
13334         * object.c: add proper locking in mono_remote_class_vtable(),
13335         fixes possible memory corruption.
13336
13337 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
13338
13339         * marshal.c (mono_remoting_marshal_init): set
13340         initialized after initialization.
13341
13342 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
13343
13344         * locales.c : hush.
13345
13346 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
13347
13348         * object.c (extend_interface_array): fix really silly
13349         memory corrupting / comparison bug.
13350
13351 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13352
13353         * reflection.c: Functions added to support the creation
13354         of CustomAttributeData, which includes Attribute data
13355         used by ReflectionOnly methods.
13356
13357         * reflection.h:  mono_reflection_get_custom_attrs_data and
13358          mono_custom_attrs_data_construct added (functions exposed).
13359
13360          * icall.c: Added mono_reflection_get_custom_attrs_data
13361          as icall.
13362         
13363 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
13364
13365         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
13366         lupus's request.
13367
13368 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
13369
13370         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
13371
13372         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
13373         dynamic DllImportAttribute.
13374
13375         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
13376         dynamic DllImportAttribute.
13377
13378         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
13379         Fixes #75162.
13380
13381 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13382
13383         * threads.c: avoid segfault when an unstarted thread is aborted.
13384
13385 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
13386
13387         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
13388         Returns the name and version of the runtime for reporting.
13389
13390 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13391
13392         * appdomain.c: bump corlib version.
13393         * object-internals.h: new field in MonoReflectionAssembly.
13394
13395 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13396
13397         * object-internals.h: Carlos forgot to add this field.
13398
13399 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13400
13401         * icall.c: Added create_version to create instances
13402         of Version of MonoReflectionAssemblyName. This change helps
13403         the AssemblyName tests to keep running fine.
13404         
13405 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
13406   
13407         * object.c (mono_method_return_message_restore): A somehow less
13408         intrusive fix for #75138.
13409
13410 2005-06-03  Raja R Harinath  <rharinath@novell.com>
13411
13412         * object.c (mono_method_return_message_restore): Fix computation
13413         of expected number of out args.
13414
13415 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
13416
13417         * reflection.c (mono_image_get_method_info): Fix the case when the
13418         charset is empty.
13419
13420 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
13421
13422         * object.c: Added missing null check in
13423           mono_method_return_message_restore.
13424
13425 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
13426
13427         * reflection.c (mono_image_get_method_info): Handle the case when
13428         dllentry is empty.
13429
13430 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
13431
13432         * object.c: When creating the vtable for a proxy, take into account
13433         all inherited interfaces, not only the ones registered in
13434         iclass->interfaces. This fixs bug #74996.
13435         Also, in mono_method_return_message_restore, verify that the array
13436         of out args has the expected lengh.
13437
13438 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13439
13440         * socket-io.c: update the timeout in Poll when the call is interrupte.
13441
13442 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13443
13444         * socket-io.c: support abort/suspend in Select_internal after last
13445         change.
13446
13447 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13448
13449         * threadpool.c: remove warning.
13450
13451 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13452
13453         * icall.c:
13454         * socket-io.[ch]: Select_internal uses poll() now when available, thus
13455         removing the 1024 limit from select(). Runtime part of the fix for
13456         bug #71203.
13457
13458 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13459
13460         * socket-io.c: when resolving the addresses for the same
13461         host returned by gethostname(), get the local IPs from the interface
13462         list. Loopback addresses are discarded if the are interfaces up with
13463         non-loopback ones. Fixes bug #63265.
13464
13465 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
13466
13467         * appdomain.c, verify.c, object-internals.h, reflection.c:
13468         bumped corlib number to 36, and added new extra_flags field
13469         to ReflectionMethodBuilder and friends.  Fixes #75060.
13470
13471 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
13472
13473         * gc.c: register a new weak link only if the object is non-null
13474         (fixes bug#75047).
13475
13476 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
13477
13478         * culture-info.h : short time pattern too.
13479
13480 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
13481
13482         * culture-info.h : expand long time pattern string length.
13483
13484 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
13485
13486         * culture-info-table.h : update (more French date format; #72788).
13487
13488 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
13489
13490         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
13491         the method is static. Fixes #75029.
13492
13493 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
13494
13495         * reflection.c: Update the table_idx field of method builders after
13496         saving the module, since it can change. This is a workaround for
13497         bug #74914. 
13498
13499 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
13500
13501         * culture-info-table.h : update (additional French date format).
13502
13503 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
13504
13505         * icall.c (ves_icall_type_Equals): Revert last change.
13506         
13507         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
13508
13509         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
13510
13511 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
13512
13513         * class-internals.h: Added executioncontext_class field to 
13514         MonoDefaults structure.
13515         * domain.c: Cache System.Threading.ExecutionContext class in 
13516         mono_defaults.
13517         * object.c: Capture the ExecutionContext for asynchroneous calls in
13518          mono_async_result_new.
13519         * object-internals.h: Added execution_context and original_context 
13520         fields to MonoAsyncResult. Added execution_context to MonoThread.
13521         * security-manager.c|.h: Added mono_get_context_capture_method to 
13522         return the capture method (if required by the security manager or by
13523         the framework version used).
13524         * threadpool.c: Apply capture (if present) ExecutionContext in 
13525         mono_async_invoke and revert to original context after it completes.
13526
13527 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
13528
13529         * culture-info-table.h : updated (real hacky solution for zh-CHT).
13530
13531 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
13532
13533         * culture-info-table.h : zh-CHT related workaround.
13534
13535 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
13536
13537         * marshal.c (emit_marshal_custom): Add some error checking and call the
13538         methods in the ICustomMarshaler interface. Fixes #74875.
13539         
13540         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
13541         native->managed wrappers.
13542
13543 2005-05-12  Martin Baulig  <martin@ximian.com>
13544
13545         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
13546         here and use the loader lock.
13547
13548         * mono-debug.c: Properly lock when the debugger is not attached.
13549         (mono_debug_init): Release the initial lock if we're not running
13550         in the debugger.
13551
13552 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
13553
13554         * marshal.c (emit_marshal_custom): Pass through NULL values without
13555         calling the custom marshalling routines.
13556
13557         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
13558         conversion in structures. Fixes #74882.
13559
13560 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
13561
13562         * culture-info-table.h : zh-* cultures were missing.
13563
13564 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
13565
13566         * threads.c: Added a new event background_change_event which is signaled
13567         when a thread changes its background mode.
13568         Moved here several checks previously done in managed code. The checks
13569         require the thread lock, and using the thread lock in managed code
13570         can result in deadlocks.
13571         Merged Start_internal and Thread_internal into a single method. Now 
13572         Thread_internal does all work of creating and starting a thread.
13573         Added icalls for setting and getting the state of the object. Moved from
13574         managed code to avoid locking there.
13575         Added wait_for_tids_or_state_change() which is called instad of
13576         wait_for_tids when waiting for non-backround threads to end. This method
13577         will return if one of the threads ends or the background_change_event
13578         is signaled.
13579         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
13580         the background mode. This method signals the background_change_event
13581         event.
13582         * icall.c:
13583         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
13584         removed Start_internal.
13585         
13586 2005-05-11  Martin Baulig  <martin@ximian.com>
13587
13588         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
13589         to order of some fields to get proper alignment on 64-bit machines.
13590
13591 2005-05-11  Martin Baulig  <martin@ximian.com>
13592
13593         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
13594         changes as they're broken and completely fuck up the debugger.
13595
13596         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
13597
13598 2005-05-10  Martin Baulig  <martin@ximian.com>
13599
13600         * reflection.c (mono_reflection_generic_class_initialize): Don't
13601         call mono_class_setup_parent() here.
13602
13603 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13604
13605         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
13606         send/receive timeout use an integer in milliseconds. We were using a
13607         struct timeval.
13608
13609 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13610
13611         * locales.c:
13612         (internal_get_cultures): reserve the first slot of the array for the
13613         InvariantCulture, which will be filled in managed code.
13614
13615 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
13616
13617         * reflection.c (mono_image_fill_module_table): Initialize the
13618         GENERATION field as well.
13619
13620 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13621
13622         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
13623         Monitor.Enter on the object.
13624
13625 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
13626
13627         * threads.c: Enable the wait for running threads when exiting.
13628         * icall.c: Suspend all threads before exiting.
13629
13630 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
13631
13632         * assembly.c (mono_assembly_load_reference): Fix warning.
13633
13634 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13635
13636         * threadpool.c: changed the default number of threads per cpu. From now
13637         on, the default will be 20 + (5 * number of cpus) instead of 50.
13638
13639 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
13640
13641         * loader.c (mono_method_get_signature_full): Add locking here.
13642
13643 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
13644
13645         * appdomain.c: Moved methods for parsing and freeing assembly
13646         names to assembly.c.
13647         * assembly.c, domain-internals.h: Created public methods for parsing
13648         assembly names. Fixed mono_assembly_load_with_partial_name:
13649         it now finds the best match, taking into account the version,
13650         token and culture specified in the partial name. Also return
13651         the latest version if no version information is specified.
13652
13653 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
13654
13655         * threadpool.c: replace check for SocketAsyncCall class.
13656
13657 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13658
13659         * threadpool-internals.h:
13660         * Makefile.am: added threadpool-internals.h
13661
13662         * threadpool.c: call mono_unhandled_exception on exceptions not handled
13663         that happen in threadpool threads (tested on MS).
13664         (mono_thread_pool_remove_socket): new function that dispatch any pending
13665         AIO call on a socket that is closing. By now only epoll really needs it,
13666         as select/poll wake up when the socket closes.
13667
13668
13669         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
13670
13671 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
13672
13673         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
13674
13675 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
13676
13677         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
13678
13679 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
13680
13681         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
13682         has an abort request, convert it into a suspend request.
13683
13684 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
13685
13686         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
13687         warning for the usage of `UnmanagedFunctionPointerAttribute' which
13688         is not supported yet.
13689
13690 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13691
13692         * image.c: register assemblies loaded from data (bundles) in the loaded
13693         assemblies hash. Fixes bug #74772.
13694
13695 2005-04-29  Martin Baulig  <martin@ximian.com>
13696
13697         * class.c (mono_type_get_name_recurse): Update to the new naming
13698         schema from the latest .NET 2.x beta2.
13699         (mono_class_setup_vtable_general): If we're a generic instance,
13700         copy the vtable from our generic type definition and inflate all
13701         the methods in it.
13702
13703         * loader.c (find_method): Update to the new naming schema from the
13704         latest .NET 2.x beta2.
13705
13706 2005-04-29  Raja R Harinath  <harinath@gmail.com>
13707
13708         * class.c (mono_class_init): Add a mono_loader_unlock to the
13709         #74734 fix.
13710
13711 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
13712
13713         * icall.c (ves_icall_System_Environment_Exit): Remove the 
13714         suspend_all_other_threads () call for the time being, since it can hang.
13715
13716         * threads.c (mono_thread_manage): Similarly, disable the waiting for
13717         the background threads to exit, since it can also hang.
13718
13719         * class.c (mono_class_init): Applied patch from Ankit Jain 
13720         (radical@gmail.com). Avoid pending init errors when a field refers
13721         to a nested class using a typeref. Fixes #74734.
13722
13723         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
13724         this for dynamic modules.
13725
13726 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13727
13728         * threads.c: don't wait for threads that are in the process of aborting
13729         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
13730         and waiting for background threads to finish. This makes xsp and
13731         mod-mono-server exit without random length delays and/or hangs.
13732
13733 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13734
13735         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
13736
13737 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
13738
13739         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
13740         dynamic types to prevent infinite loops. Fixes #74727.
13741
13742         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
13743         ..._is_assignable_to.
13744
13745 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
13746
13747         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
13748
13749 2005-04-25  Martin Baulig  <martin@ximian.com>
13750
13751         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
13752
13753         * domain.c
13754         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
13755
13756         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
13757
13758         * reflection.c (build_compressed_metadata): Set metadata header
13759         version to 2.0.
13760
13761 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
13762
13763         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
13764         number into an integral and a decimal part. Fixes #70473.
13765
13766         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
13767
13768 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
13769
13770         * culture-info-table.h : reflected the latest locale-builder output.
13771
13772 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13773
13774         * threadpool.c: check for SuspendRequested too when deciding if
13775         mono_thread_interruption_checkpoint should be called.
13776
13777 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13778
13779         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
13780         * threads.c: remove interruption_mutex and use Interlocked instead. When
13781         suspending all the threads, wait for all the suspended events at once.
13782         If we're shutting down and get an APC that is going to be queued,
13783         call mono_thread_execute_interruption immediately, as the thread might
13784         be sleeping on a pthread condition or mutex.
13785
13786         * icall.c: call mono_runtime_set_shutting_down before suspending the
13787         threads.
13788
13789         Fixes bug #74693. And now xsp is happier when exiting.
13790
13791 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
13792
13793         * loader.c (mono_stack_walk): Fix #74690.
13794
13795 2005-04-22  Martin Baulig  <martin@ximian.com>
13796
13797         * mono-debug.h (MonoDebugMethodJitInfo): Added
13798         `MonoDebugMethodJitInfo *jit'.
13799
13800         * mono-debug.c (mono_debug_read_method): Cache the
13801         MonoDebugMethodJitInfo in `address->jit'.
13802         (mono_debug_free_method_jit_info): New public method.
13803
13804 2005-04-22  Martin Baulig  <martin@ximian.com>
13805
13806         * class.c (mono_class_is_assignable_from): Disallow
13807         type parameter -> interface.
13808
13809 2005-04-21  Dick Porter  <dick@ximian.com>
13810
13811         * threads.c (mono_thread_create): Turn an assertion into an error.
13812
13813 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
13814
13815         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
13816         
13817         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
13818         Fix some gcc 4.0 warnings.
13819
13820 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
13821
13822         * file-io.c: fix alt dir separator char on unix systems
13823         and cleanup (fixes bug #71214).
13824
13825 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
13826
13827         * marshal.c: Use CALLVIRT instead of CALL when dispatching
13828         a call to a remote domain, since the method may be an
13829         interface method in the client domain. This fixes bug #74192.
13830
13831 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13832
13833         * threadpool.c: recv/send are now performed before going back to managed
13834         code to save one transition.
13835
13836 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13837
13838         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
13839
13840         * metadata/threadpool.c: removed hack to workaround the bug above.
13841
13842         Fixes bug #74618.
13843
13844 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
13845
13846         * reflection.c reflection.h: Fix handling of parameter defaults in
13847         dynamic methods. Also fixes handling of parameter attributes.
13848         Fixes #74609.
13849
13850         * mono-debug.c (mono_debug_close_image): Fix warning.
13851
13852 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13853
13854         * socket-io.h: replaced old unused field with new 'blocking'.
13855         * threadpool.c: restore socket blocking state on windows(tm).
13856
13857 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
13858
13859         * icall.c: don't return the codebase in the AssemblyName[] returned by
13860         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
13861         * object-internals.h: Removed FIXME (fields were presents) and fixed
13862         versioncompat declaration.
13863
13864 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13865
13866         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
13867         not closed, so don't cleanup when it happens.
13868
13869 2005-04-13  Chris Toshok  <toshok@ximian.com>
13870
13871         * mono-debug-debugger.h: change prototype for
13872         mono_debugger_lookup_type.
13873
13874         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
13875         this function, although it should probably be named
13876         mono_debugger_init_type.
13877
13878 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13879
13880         * threadpool.c: fix non-AIO case.
13881
13882 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
13883
13884         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
13885         the built-in profiler to measure just JIT compilation times.
13886
13887 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13888
13889         * threadpool.c: the epollfd might be closed by another thread at
13890         any time, so ignore EBADF at treat it as a "we're closing" sign.
13891
13892 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13893
13894         * threadpool.c: release the semaphores with a count equals to the number
13895         of working threads in both IO and regular pools. Fixed typo that messed
13896         up the count of IO pool threads. Don't initialize the pipe handles if
13897         we're using epoll.
13898
13899 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13900
13901         * threadpool.c: some systems don't like a NULL when deleting the socket
13902         from epoll.
13903
13904 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13905
13906         * threadpool.c: fix semaphore allocation.
13907
13908 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13909
13910         * threadpool.c: added epoll() based implementation for asynchronous IO
13911         that is used instead of the default poll() when available.
13912         It can be disabled by setting MONO_DISABLE_AIO.
13913
13914 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13915
13916         * threadpool.c: windows needs 'closesocket' and instead of returning
13917         0 when the stream is closed while in select, it returns -1. Fixes bug
13918         #74573.
13919
13920 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
13921
13922         * class.c (class_compute_field_layout): Fix the regression caused by
13923         the previous try.
13924
13925 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13926
13927         * threadpool.c: separate pool for socket async. IO.
13928         * threadpool.h: mono_max_worker_threads is not a global any more.
13929
13930 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
13931
13932         * class.c (class_compute_field_layout): Fix #74549.
13933
13934 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13935
13936         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
13937         use 2 connected sockets instead.
13938
13939 2005-04-08  Miguel de Icaza  <miguel@novell.com>
13940
13941         * mono-config.c: Add new entry point for mkbundle
13942         mono_config_parse_memory. 
13943
13944 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13945
13946         * threadpool.c: removed another unused function.
13947
13948 2005-04-08  Ankit Jain  <radical@corewars.org>
13949
13950         * reflection.c (get_default_param_value_blobs): Add 'types'
13951         parameter to get the types encoded in the constant table.
13952         (mono_param_get_objects): Use the type from the constant table,
13953         not the type of the parameter, when creating default values.
13954         Handle null default values correctly.
13955
13956 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13957
13958         * file-io.c:
13959         * file-io.h:
13960         * threadpool.c:
13961         * threadpool.h:
13962         * icall.c:
13963         * socket-io.c: removed dead code for async IO.
13964
13965 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13966
13967         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
13968
13969         * threadpool.c: intercept socket async. calls and pass them to a thread
13970         that is polling and dispatching the job items to the threadpool as
13971         socket become ready. Fixes bugs #71217, #71933.
13972
13973         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
13974         between char and short/ushort arrays.
13975
13976         * socket-io.c: remove dead code.
13977
13978 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
13979
13980         * locales.c,
13981           icall.c : removed InternalToUpper_Comp() and
13982           InternalToLower_Comp().
13983
13984 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
13985
13986         * char-conversions.h : The tables were incorrectly generated. Should
13987           be generated against invariant culture.
13988
13989 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
13990
13991         * object.c (mono_runtime_invoke_array): Fix return value when 
13992         passing pre-created valuetype objects to ctors.
13993
13994         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
13995         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
13996         Fixes #74338.
13997
13998 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
13999
14000         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
14001         only used with --security and hides the wrong corlib version error.
14002
14003 2005-03-30  Joshua Tauberer  <tauberer@for.net>
14004
14005         * class.c: Changed mono_class_name_from_token so that types
14006         outside of a namespace don't have an initial period.  Improved
14007         the g_warning message used in _mono_class_get when loading
14008         fails.
14009         * assembly.c: In mono_assembly_load_reference, when an assembly
14010         can't be found, "No such file or directory" is misleading and
14011         unhelpful because a few paths were checked for the presence of
14012         the assembly.  When that happens (ENOENT), display a nicer
14013         message indicating the directories that were searched.  In all
14014         cases, the warning is made easier to read for non-hackers.
14015
14016 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
14017
14018         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
14019         project/solution.
14020         * appdomain.h|domain.c: Removed inline from functions.
14021         * appdomain.c: Reduced warnings when compiling on windows.
14022         * icall.c: Fixed output_debug declaration to gunichar2*.
14023         * mono-config.c: Reduced warnings when compiling on windows.
14024         * rand.c: Added missing "windows.h". Added missing return value.
14025         * rawbuffer.c: Added missing winsock2.h for windows.
14026         * sysmath.h: Added mono-compiler.h header to allow/ease 
14027         compilation with non-GCC compilers.
14028         * threads.c: Fixed declarations to compile with VS.NET C compiler.
14029         Removed cast warnings.
14030
14031         Adapted from the work of J Lothian (for VC6).
14032
14033 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
14034
14035         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
14036         from default_path.
14037
14038 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
14039
14040         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
14041         the 2.0 profile.
14042
14043 2005-03-27  Raja R Harinath  <harinath@gmail.com>
14044
14045         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
14046         has to be in $(exec_prefix).  $(prefix) is for arch-independent
14047         stuff, and it would probably use $(prefix)/share rather than
14048         $(prefix)/lib.
14049
14050 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14051
14052         * console-io.c: added 2 includes that might be missing.
14053
14054 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
14055
14056         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
14057         profile.
14058
14059         * reflection.c (create_custom_attr): Allocate the params array using
14060         alloca so it gets GC tracking.
14061
14062 2005-03-23  Chris Toshok  <toshok@ximian.com>
14063
14064         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
14065         out some spew.
14066
14067 2005-03-24  Raja R Harinath  <rharinath@novell.com>
14068
14069         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
14070         changes to pick up any changes in prefix, etc.
14071
14072 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
14073
14074         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
14075         
14076         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
14077         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
14078
14079 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
14080
14081         * class-internals.h object-internals.h class.c reflection.c: Extend the
14082         mono_lookup_dynamic_token () function to return the class of the
14083         token as well. 
14084
14085         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
14086         well. Fixes #73848.
14087
14088 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
14089
14090         * security-manager.c: Skip inheritance checks for intra-corlib
14091         class inheritance and method overrides. This skips a lot of checks
14092         and (anyway) permissions cannot work until corlib is loaded.
14093
14094 2005-03-23  Martin Baulig  <martin@ximian.com>
14095
14096         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
14097         MONO_TYPE_GENERICINST.  
14098
14099 2005-03-23  Martin Baulig  <martin@ximian.com>
14100
14101         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
14102
14103 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
14104
14105         * class.c: added locking comments to some functions.
14106         Cache the interface offsets arrays (saves about 20 KB
14107         of runtime memory in a typical app).
14108         Reduce the time overhead in mono_class_setup_supertypes ().
14109
14110 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
14111
14112         * icall.c: speedup and fix leaks in GetMethodsByName and
14113         GetPropertiesByName.
14114
14115 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
14116
14117         * reflection.c: some locking fixes.
14118
14119 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
14120
14121         * metadata.c: added missing break in case statement.
14122
14123 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
14124
14125         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
14126         typedbyref return values. Fixes #73941.
14127
14128 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
14129
14130         * security-manager.c|h: Added demandunmanaged method and 
14131         suppressunmanagedcodesecurity class to MonoSecurityManager.
14132         Renamed aptc class to allowpartiallytrustedcallers.
14133
14134 2005-03-17  Martin Baulig  <martin@ximian.com>
14135
14136         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
14137
14138 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14139
14140         * file-io.c: disabled file async. IO using aio_*. It uses the
14141         threadpool now. Workaround for bug #73718.
14142
14143 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
14144
14145         * assembly.h, mono-config.c: added code to deal with bundled configs
14146         for bundled assemblies.
14147
14148 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
14149
14150         * *.c, private.h: cleanup, removing old private.h header file.
14151
14152 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
14153
14154         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
14155         and throw_on_unmappable_char attributes.
14156
14157 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
14158
14159         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
14160         _ProcessName_internal.
14161
14162 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
14163
14164         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
14165         #73631.
14166
14167         * icall.c threads.c threads-types.h: Remove slothash icalls as they
14168         are no longer used.
14169
14170 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
14171
14172         * object.c (compute_class_bitmap): Add support for generics. Fixes
14173         #73527.
14174
14175 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
14176
14177         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
14178
14179 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14180
14181         * filewatcher.c: commented out the code for windows watcher, as we don't
14182         use it (we use the managed implementation instead).
14183
14184 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
14185
14186         * object-internals.h (MonoThread): Remove 'unused1' field.
14187
14188         * appdomain.c: Bump corlib version.
14189
14190         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
14191
14192         * reflection.c (mono_reflection_create_runtime_class): Remove the
14193         AssemblyBuilder.Save optimization since it causes too many problems.
14194
14195 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
14196
14197         * exception.c|h: Added mono_get_exception_reflection_type_load to
14198         create a ReflectionTypeLoadException object.
14199         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
14200         to return NULL is a InheritanceDemand fails during reflection. Updated
14201         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
14202         ReflectionTypeLoadException if an InheritanceDemand fails during 
14203         reflection. Added icall mapping for GetLinkDemandSecurity.
14204         * security-manager.c|h: Added ves_icall_System_Security_
14205         SecurityManager_GetLinkDemandSecurity internal call to return the
14206         class and methods permissions set for a LinkDemand. Removed unused
14207         fields in MonoSecurityManager.
14208
14209 2005-03-10  Martin Baulig  <martin@ximian.com>
14210
14211         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
14212         it's a generic instance.
14213
14214 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
14215
14216         * reflection.c (mono_get_object_from_blob): Applied patch from
14217         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
14218
14219         * class.c (mono_class_is_assignable_from): Another try at fixing 
14220         #73469 without breaking anything.
14221
14222 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
14223
14224         * class.c: (mono_class_is_assignable_from): Revert the last changes
14225         since they don't work with generics.
14226         
14227         * class.c (mono_class_is_assignable_from): Fix build bustage.
14228
14229         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
14230         the managed IsAssignableFrom method. Fixes #73469.
14231
14232         * reflection.c (mono_reflection_call_is_assignable_from): New helper
14233         function.
14234
14235 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
14236
14237         * object.c (mono_load_remote_field_new): Fix returning uninitialized
14238         memory when the remoting callback does not sets the out arguments.
14239         Fixes #73007.
14240
14241         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
14242         by mistake.
14243
14244         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
14245
14246         * object-internals.h (MonoStackFrame): Sync with managed object layout.
14247
14248         * appdomain.c: Bump corlib version.
14249
14250 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
14251
14252         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
14253         function.
14254
14255         * threads.c (mono_thread_attach): Detect threads which are not started
14256         by the GC pthread wrappers.
14257
14258 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
14259
14260         * icall.c: Added new icall for RNG.
14261         * rand.c|h: Added new icall to open the RNG. This allows to share a 
14262         single handle on Linux to access /dev/urandom and fix #73183.
14263
14264 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
14265
14266         * object.c: setting the new vtable in a transparent proxy object must
14267         not change the GC descriptor.
14268
14269 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
14270
14271         * object.c: fixed compilation without GCJ support.
14272         * reflection.c: for runtime-created types ensure klass->has_references
14273         is correct (bug #73215).
14274
14275 2005-03-02  Martin Baulig  <martin@ximian.com>
14276
14277         * class.c (mono_class_is_assignable_from): Make this work if
14278         `oklass' is a generic instance; fixes #72831.
14279
14280 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
14281
14282         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
14283         with hasthis set.
14284         
14285         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
14286
14287         * marshal.c: Reorganize native->managed marshalling code to also use
14288         the emit_marshal_... functions.
14289
14290 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
14291
14292         * object.c: typed allocs have issues with bitmap sizes > 30,
14293         so check for max_set >= 30.
14294
14295 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
14296
14297         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
14298         managed code. Fixes #73012.
14299
14300         * metadata.h (MonoMarshalSpec): Add elem_mult field.
14301
14302         * metadata.c reflection.c: Load/Emit elem_mult as well.
14303         
14304         * metadata.h (MonoMarshalSpec): Add comment.
14305
14306         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
14307
14308         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
14309         num_elem to -1 if not given.
14310
14311         * object-internals.h (MonoReflectionMarshal): Add has_size field.
14312
14313         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
14314         given values.
14315
14316 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
14317
14318         * null-gc.c (mono_gc_free_fixed): Was not compilable.
14319
14320 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
14321
14322         * reflection.c (encode_marshal_blob): Encode param_num field as well.
14323
14324         * object-internals.h (MonoReflectionMarshal): Add param_num field.
14325
14326 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
14327
14328         * object.c: generalized the reference bitmap creation
14329         and added hooks for the new GC.
14330         * class-internals.c: removed the gc_bitmap field from MonoClass.
14331
14332 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
14333
14334         * domain.c: help the compiler to produce better code
14335         in mono_jit_info_table_find ().
14336
14337 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
14338
14339         * object.c: make all allocations look typed.
14340
14341 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
14342
14343         * socket-io.c: load Mono.Posix if it's not loaded already
14344         (fixes bug#73033).
14345
14346 2005-02-24  Martin Baulig  <martin@ximian.com>
14347
14348         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
14349         * reflection.c (dup_type): Likewise.
14350
14351 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
14352
14353         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
14354         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
14355
14356 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
14357
14358         * domain.c, threads.c, object-internals.h: make the critical thread
14359         local vars use the fast access mode (even when we're compiled in
14360         a lib). Provide accessors to be used by the jit during codegen.
14361
14362 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
14363
14364         * appdomain.c: Changed hook functios behavior to include
14365         support for the reflection only assemblies. Some icalls were changed
14366         to support the mentioned assemblies too. Signatures of static methods
14367         try_assembly_resolve and real_load now have an additional parameter:
14368         refonly.
14369
14370         * assembly.c: General changes to mono_assembly_ methods to support
14371         reflection only api. Functions mono_assembly_open, mono_assembly_load,
14372         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
14373         suffix, to support an additional gbool parameter to specify whether
14374         the assembli is reflection only or not. Created some new hook functions 
14375         to add support for reflection only assemblies. Signatures of static 
14376         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
14377         have now an additional parameter: refonly.
14378
14379         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
14380         indicating whether the assembly is reflection only or not.
14381
14382         * exception.c: Add mono_get_exception_invalid_operation.
14383
14384         * icall.c: Throw an InvalidOperationException when trying to invoke
14385         a property/method/event, or trying to set/get the value of a field.
14386         Also add an icall to retrieve the ref_only flag to the
14387         MonoReflectionAssembly.
14388
14389 2005-02-23  Chris Toshok  <toshok@ximian.com>
14390
14391         Part of fix for #72827.
14392         * mono-debug.c (mono_debug_add_method): add lexical block data to
14393         the info we write.  Kind of a hack at the moment - we copy the
14394         lexical block info from the MonoDebugMethodInfo to the
14395         MonoDebugMethodJitInfo here, before writing it.
14396         (mono_debug_read_method): read the lexical block info.
14397
14398         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
14399
14400         * debug-mono-symfile.h: add lexical block support.
14401
14402         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
14403         support.
14404
14405 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
14406
14407         * loader.c (mono_lookup_pinvoke_call): Fix warning.
14408
14409         * object.c (mono_runtime_free_method): Call mono_free_method () and
14410         put the TODOs there.
14411
14412         * loader.c (mono_free_method): Free up most memory allocated for 
14413         dynamic methods.
14414
14415 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
14416
14417         * reflection.c: properly flag a Type argument to a
14418         named custom attr value (bug #72248).
14419
14420 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
14421
14422         * reflection.c: reduce code duplication in named custom
14423         attribute encoding.
14424
14425 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
14426
14427         * reflection.c: properly encode custom attrs of type object
14428         (bug #72649).
14429
14430 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
14431
14432         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
14433
14434 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
14435
14436         * socket-io.c: load System.dll if it's not loaded already
14437         (bug #72850 and #70477).
14438
14439 2005-02-21  Martin Baulig  <martin@ximian.com>
14440
14441         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
14442         generic instances.
14443
14444 2005-02-21  Martin Baulig  <martin@ximian.com>
14445
14446         * reflection.c (mono_image_build_metadata): We also need to
14447         "fixup" the MethodImpl table after we computed the final method
14448         indices.  Call fixup_methodimpl() to do that.
14449         (fixup_methodimpl): New private method.
14450
14451 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
14452
14453         * assembly.c: special case mscorlib.dll (bug#72536),
14454         patch from Carlos Alberto Cortez.
14455
14456 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
14457
14458         * threads-types.h threads.c: Fix build bustage.
14459
14460         * threads.c: Use a union for long<->double conversions.
14461
14462         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
14463         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
14464
14465         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
14466         containing the checkpoint call with NOT_TAKEN.
14467         
14468         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
14469         checkpoint before pushing the arguments, so they won't have to be
14470         spilled to stack.
14471
14472 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
14473
14474         * domain.c, assembly.c, domain-internals.h: make some data
14475         const and relocation-free.
14476
14477 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
14478
14479         * object.c, appdomain.c, class-internals.h: introduce the
14480         MonoClassRuntimeInfo structure to hold the info needed to
14481         use a class at runtime. Made mono_class_vtable() lock-free
14482         for all the appdomains.
14483
14484 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
14485
14486         * metadata-internals.h, image.c: introduce a per-image mempool to
14487         be used for memory that has the same lifetime as the image.
14488
14489 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
14490
14491         * domain.c: In mono_init_internal(), instead of selecting the first
14492         runtime version supported by an executable, get a list of all
14493         supported versions and select the one for which an mscorlib exists
14494         (since even if the runtime supports a given version, it doesn't mean
14495         that the framework for that version is installed).
14496         Modified get_runtimes_from_exe to support this behavior.
14497         In supported_runtimes, added information about additional system
14498         assembly versions.
14499         
14500         * assembly.c: Added support for more than one system assembly version
14501         per runtime version. Updated the assembly list.
14502         In mono_assembly_remap_version, removed the initial version check,
14503         since we don't know to which version we need to compare until we
14504         get the version set on which the assembly is based.
14505         Moved the code for loading corlib into the new method
14506         mono_assembly_load_corlib(), so it can be used by the initialization
14507         code.
14508         
14509         * domain-internals.h: Updated data structures and added declaration
14510         for mono_assembly_load_corlib.
14511
14512 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
14513
14514         * reflection.c (resolve_object): Fix the creation of the signature in 
14515         the SignatureHelper case.
14516
14517         * assembly.c (mono_assembly_remap_version): Fix binary search.
14518         
14519 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
14520  
14521         * class.c: Added inheritance check when a method is overloaded (from a
14522         virtual method or when implementing an interface) and when a class is
14523         inherited. Added functions to set a failure for a class and to 
14524         retreive the exception from a failure.
14525         * class-internals.h: Added fields to MonoClass to keep the exception
14526         information status for inheritance (or other exceptions) to be thrown
14527         later (i.e. not at load time).
14528         * object.c: Throw the inheritance SecurityException when a type is to 
14529         be created with either class or method inheritance violations.
14530         * reflection.c|h: Fix when getting declsec from a class. Removed 
14531         unrequired code for class. Improved sanity in parameter naming.
14532         * security-manager.c|h: Added functions to check for class and method
14533         inheritance.
14534
14535 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
14536
14537         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
14538         and has_finalize in dynamic types as well.
14539
14540 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
14541
14542         * culture-info-table.h : fixed currency format for en-GB (and so on).
14543
14544 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
14545
14546         * gc.c: ensure the GC handles never have 0 as a value.
14547
14548 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
14549
14550         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
14551         a pointer to a struct to unmanaged code. Fixes #72625.
14552
14553 2005-02-16  Martin Baulig  <martin@ximian.com>
14554
14555         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
14556
14557 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
14558
14559         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
14560
14561 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
14562
14563         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
14564
14565         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
14566         UnmanagedFunctionPointerAttribute, use it for determining calling convention
14567         etc. Fixes #71471.
14568
14569         * reflection.c (mono_custom_attrs_get_attr): New helper function.
14570
14571         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
14572
14573 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
14574
14575         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
14576         changes to make the current context a field in MonoThread.
14577
14578 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
14579
14580         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
14581         the last change.
14582         
14583         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
14584         extracted from mono_marshal_get_native_wrapper.
14585
14586         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
14587         to create wrappers around native functions.
14588
14589         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
14590         delegates for arbitrary function pointers. Fixes #71472.
14591
14592 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
14593
14594         * threads.c: cleaned up the code a little.
14595
14596 2005-02-15  Martin Baulig  <martin@ximian.com>
14597
14598         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
14599         the data table.
14600
14601         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
14602         allocate larger chunks if needed.
14603
14604 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
14605
14606         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
14607         in by mistake.
14608
14609 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
14610
14611         * domain.c: keep the domains in an array and ensure the domain ids
14612         are kept small, so they can be used as indexes to domain-specific data
14613         with a small memory overhead.
14614
14615 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
14616
14617         * icall.c: Handle byref types in Type icalls. Fixes #72544.
14618
14619 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
14620
14621         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
14622
14623 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
14624
14625         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
14626
14627         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
14628         values.
14629
14630         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
14631         
14632 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
14633
14634         * domain-internals.h: add the hashtable here.
14635
14636         * class-internals.h: Remove `info' from MonoMethod
14637
14638         * domain.c: Add a new hashtable, jit_trampoline_hash
14639
14640 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
14641
14642         * object.c: don't set the value of static fields
14643         (fixes bug#72494).
14644
14645 2005-02-11  Martin Baulig  <martin@ximian.com>
14646
14647         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
14648         (mono_debug_add_method): Silently ignore the method if it's too big.
14649         (mono_debug_add_type): Likewise.
14650
14651 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
14652
14653         * threads.c, appdomain.c: remove #ifdefs from the code.
14654
14655 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
14656
14657         * metadata-internals.h: Added flags to MonoAssembly to cache the most
14658         common security informations. This allows us to stay in unmanaged code
14659         when doing LinkDemand and it's special cases (except for the first 
14660         time for initialization). The flags a very much used with --security.
14661         * reflection.c|h: Added code to get declarative security attributes 
14662         for LinkDemand and InheritanceDemand. This required to refactor the
14663         existing code for Demand.
14664         * security-manager.c|h: Added new method fields for the special cases
14665         of LinkDemand.
14666
14667 2005-02-10  Martin Baulig  <martin@ximian.com>
14668
14669         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
14670         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
14671
14672 2005-02-10  Martin Baulig  <martin@ximian.com>
14673
14674         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
14675         debugging code; this is almost a complete rewrite.
14676
14677         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
14678
14679 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
14680
14681         * domain.c, object.h: expose mono_string_equal () and 
14682         mono_string_hash ().
14683         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
14684         it's implemented in managed code.
14685
14686 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
14687
14688         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
14689         lo leak objects between appdomains.
14690
14691 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
14692
14693         * assembly.c: old compilers compilation fix from 
14694         robertj@gmx.net (Robert Jordan).
14695
14696 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
14697
14698         * class-internals.h: Little reminder for the future.
14699
14700         * debug-helpers.c: Fix up wrapper_type_names
14701
14702 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
14703
14704         * image.c, metadata-internals.h: when loading an image from a file,
14705         mmap all of it and use the same codepaths as when using a
14706         in-memory image: the code is simpler and we use less memory
14707         (both writable and readonly).
14708
14709 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
14710
14711         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
14712         API to alloc runtime data structures that need to be tracked by the
14713         GC and contain pointers.
14714         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
14715         make the code more readable and eventually use a different GC.
14716
14717 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
14718
14719         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
14720         for out arguments.
14721         
14722 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
14723
14724         * object.c: In release_type_locks(), don't release the cctor lock
14725         if it has already been released. This fixes a crash in the
14726         thread5 test.
14727
14728 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
14729
14730         * gc.c, marshal.c, icall.c: register a delegate for finalization
14731         only when the native function pointer has been allocated for it.
14732
14733 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
14734
14735         * object.c: cleaned up some code, allocate objects that are
14736         pointer free with the atomic malloc variant. Allocate memory
14737         for static data from the mempool if it's pointer-free.
14738         Allocate the bounds array at the end of the array data, when needed.
14739         * object-internals.h, object.h: move a private function in a private
14740         header.
14741         * class.c: handle missing case in tracking references in fields.
14742
14743 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
14744
14745         * class.c, class-internals.h: keep track if a type has
14746         reference fields in either the instance or static fields.
14747
14748 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
14749
14750         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
14751         and renamed to MonoRuntimeInfo. Added fields to store the expected
14752         framework assembly version. Changed mono_get_framework_version and
14753         mono_get_runtime_version for a single mono_get_runtime_info method.
14754         
14755         * assembly.c: Added method to remap system assembly versions to the
14756         current executing runtime version. Removed old mapping code.
14757         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
14758         
14759         * icall.c, reflection.c: Track api changes.
14760
14761 2005-02-06  Miguel de Icaza  <miguel@novell.com>
14762
14763         * loader.c (method_from_memberref): Improve error reporting,
14764         produce the class name instead of the typeref/typedef index. 
14765
14766 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
14767
14768         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
14769
14770 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
14771
14772         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
14773         stdcall and charset name mangling.  Reorganize the code and add
14774         some tracing stuff.
14775
14776 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
14777
14778         * monodiet.c: More iters!
14779
14780         * marshal.c: Iter usage.
14781
14782         * icall.c: Iter usage.
14783
14784         * object.c: Use iters.
14785
14786         * debug-helpers.c: More iters
14787
14788 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
14789
14790         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
14791         under win32.
14792
14793 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
14794
14795         * mono-debug-debugger.c: use iters
14796
14797         * class.c, class-internals.h: mono_class_setup_events is static
14798         now
14799
14800         * All callers: use iters
14801
14802 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
14803
14804         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
14805         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
14806
14807 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
14808
14809         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
14810
14811         * marshal.h: Add prototypes for ldfld/stfld_remote.
14812
14813         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
14814         this is called during startup.
14815         
14816 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
14817
14818         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
14819         MonoThreadsSync struct private in monitor.c. Changed the way
14820         MonoThreadsSync is allocated so it's faster and there is no
14821         need to keep track of it with a finalizer and it uses less memory.
14822         This also finally allows us to allocate mono objects as ptrfree when
14823         there are no reference fields.
14824
14825 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
14826
14827         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
14828         disappearing link to the GC interface and use them to simplify
14829         the gchandles code.
14830
14831 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
14832
14833         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
14834         stfld_remote which call mono_load/store_field_new. This allows methods
14835         calling ldfld/stfld wrappers to be AOTed.
14836
14837         * console-io.c: Include sys/filio.h under solaris.
14838         
14839         * console-io.c: Include curses.h if needed correctly.
14840
14841 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
14842         
14843         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
14844         method->klass as well.
14845
14846         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
14847
14848         * class.c (mono_class_init): Switch on lazy initialization of 
14849         methods.
14850
14851         * class.c (mono_class_get_finalizer): Handle the case when the 
14852         finalizer is inherited.
14853
14854 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14855
14856         * console-io.c: <curses.h> is needed by term.h on solaris.
14857
14858 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
14859
14860         * icall.c, class-internals.h, monodiet.c, class.c: Remove
14861         mono_class_setup_properties where possible. Remove this ftn from
14862         the header file, and make it static.
14863
14864 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
14865
14866         * loader.c: Add missing setup_... call.
14867
14868         * class.c: Add missing setup_... calls.
14869
14870         * class.c (mono_class_init): Switch on lazy initialization of 
14871         the generic vtable.
14872         
14873         * class.c (mono_class_init): Fix generics broken by the recent changes.
14874
14875         * monodiet.c (handle_type): Add missing setup_... calls.
14876
14877         * class.c: Back out garbage in previous patch.
14878         
14879         * class.c: Add missing setup_... calls.
14880
14881         * class.c (mono_class_get_method_from_name_flags): Avoid calling
14882         mono_class_setup_methods () if possible.
14883
14884         * class-internals.h (MonoClass): Add 'has_cctor' flag.
14885
14886         * class-internals.h (MonoCachedClassInfo): New structure.
14887
14888         * class.c: Initialize properties and events fields of MonoClass lazily.
14889
14890         * class.c: Add infrastructure for lazily initializing the methods and
14891         vtable fields of MonoClass. Not yet used.
14892
14893         * class.c (mono_class_get_finalizer): New helper function.
14894
14895         * class.c: Add infrastructure for loading some class related data from
14896         an AOT file.
14897
14898         * object.c: Add infrastructure for initializing the vtable from data
14899         in the AOT file.
14900
14901         * gc.c (run_finalize): Use mono_class_get_finalizer ().
14902
14903         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
14904         appropriate initialization function before accessing parts of the
14905         MonoClass structure.
14906
14907         * marshal.c: Fix warnings.
14908         
14909         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
14910
14911         * mono-debug-debugger.c (get_exception_message): Use 
14912         mono_class_get_method_from_name_flags ().
14913
14914 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
14915
14916         * reflection.c, appdomain.c: Replace a few manual searches that
14917         Zoltan missed. (Paolo approved this part of my initial patch).
14918
14919 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
14920
14921         * profiler.c: disable recording statistical events at report time.
14922
14923 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
14924
14925         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
14926         to byteswap arrays of enum values, too (bug #72080).
14927
14928 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
14929
14930         * appdomain.c (set_domain_search_path): Allow this to be called if
14931         domain->setup is not yet set.
14932
14933         * loader.c (mono_method_get_index): New helper function.
14934
14935         * loader.c reflection.c: Use mono_method_get_index ().
14936
14937         * class.c (mono_class_get_method_from_name_flags): New helper method.
14938
14939         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
14940         this.
14941
14942         * class.c (mono_class_get_cctor): New helper method.
14943
14944         * string-icalls.c object.c class.c marshal.c reflection.c: Use
14945         mono_class_get_method () to look up methods.
14946
14947 2005-02-01  Miguel de Icaza  <miguel@novell.com>
14948
14949         * console-io.c: Fix the build, this should work on Windows.
14950
14951 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
14952
14953         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
14954         be set to null to keep things valid
14955
14956 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14957
14958         * icall.c: added Console 2.0 icalls.
14959         * Makefile.am: added console-io.[ch]
14960         * console-io.[ch]: internal calls for Console 2.0 API.
14961
14962 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
14963
14964         * class.c: make sure we consider all the interfaces
14965         when calculating max_interface_id (bug found by
14966         Jeroen Frijters running ikvm).
14967
14968 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
14969
14970         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
14971         valuetype fields to null.
14972
14973         * object.c (set_value): Ditto. Fixes #71669.    
14974
14975 2005-01-31  Martin Baulig  <martin@ximian.com>
14976
14977         * metadata.c (mono_metadata_has_generic_params): New public
14978         function; checks whether something is a generic method.
14979
14980 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
14981
14982         * appdomain.c: fix infinite recursion when adding assemblies.
14983
14984 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
14985
14986         * object.c: Fix small typo to return all items for Environment.
14987         GetCommandLineArgs.
14988
14989 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
14990
14991         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
14992         reflection.c: more domain and assembly-unload related fixes
14993         and memory leaks plugs.
14994
14995 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
14996
14997         * 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.
14998
14999 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
15000
15001         * loader.c (mono_method_signature): Make this method lazy
15002         (mono_get_method_from_token): Don't computate the signature here.
15003
15004         Doing this saves quite a bit of memory. I got 90 kb on starting up
15005         monodoc. It should also save some disk reads on startup.
15006
15007         * *: MonoMethod->signature might be NULL now. You *MUST* use
15008         mono_method_signature.
15009
15010 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
15011
15012         * object.c (mono_runtime_get_main_args): Return an array from the
15013         current domain here. Fixes #71938.
15014
15015 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
15016
15017         * monitor.c: formatting changes to comply with the
15018         mono coding style and remove #ifdefs from the code.
15019
15020 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
15021
15022         * metadata.c, private.h: remove some unneeded data
15023         and use a more compact representation for table schemas.
15024
15025 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
15026
15027         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
15028         to get a better distribution in hash tables.
15029         * *.c: use mono_aligned_addr_hash() where appropriate.
15030         * assembly.c: make var static.
15031
15032 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
15033
15034         * domain-internals.h: Put MonoJitInfo on a diet.
15035
15036         * domain.c: Fix a warning.
15037
15038 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
15039
15040         * gc.c: rework the gc handles code to reuse handles
15041         when freed.
15042
15043 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
15044
15045         * domain.c: fixed long standing bug in mono_string_equal() which
15046         was brought to light with the ldstr changes.
15047
15048 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
15049
15050         * reflection.c: Remove warning by adding missing include for marshal.h
15051
15052 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
15053
15054         * domain.c, object.c: change the ldstr_table to hold
15055         MonoString* as keys: makes the runtime isinterned lookup
15056         faster and simplifies memory management.
15057
15058 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
15059  
15060         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
15061         possible to add imperative security checks before calling the icall.
15062         * reflection.c: Return security attributes on the original MonoMethod
15063         (and not the wrapped one). This fix permissions on icalls.
15064
15065 2005-01-25  Dick Porter  <dick@ximian.com>
15066
15067         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
15068         the check for mktime() support actually test the mktime() return
15069         value.  "Fixes" bug 71682, though the output is still different to
15070         MS.
15071
15072 2005-01-25  Martin Baulig  <martin@ximian.com>
15073
15074         * class.c (mono_class_is_assignable_from): Make this work for
15075         generic instances.
15076
15077 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
15078
15079         * marshal.c (mono_string_utf8_to_builder)
15080         (mono_string_builder_to_utf16): We might not have ownership of the
15081         string. In thise case, we need to create a new buffer.
15082
15083         * object-internals.h (mono_stringbuilder_capacity): sb->str might
15084         be null, in which case, use the default capacity.
15085
15086 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
15087
15088         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
15089         GC events to the profiler.
15090
15091 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
15092
15093         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
15094         if you don't want the GC to run.
15095
15096 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
15097
15098         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
15099         start providing a GC API and keeping different implementations in
15100         their own file.
15101         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
15102
15103 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
15104
15105         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
15106         mmap rather than allocating a huge buffer.
15107         (mono_debug_close_mono_symbol_file): Free the buffer allocated
15108         above.
15109
15110 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
15111
15112         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
15113         and CheckExecutionRights.
15114         * reflection.c|h: Keep the index of the declarative security to be 
15115         used, instead of the pointer, when AOT compiler is used. Also add 
15116         class initialization when requesting demands.
15117         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
15118         CheckExecutionRights. Both properties are now FALSE by default, and
15119         unmodifiable, unless the --security option is used.
15120
15121 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
15122
15123         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
15124         reflection.c: properly refcount images and assemblies, many leaks fixed.
15125
15126 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15127
15128         * threadpool.c: increase the timeout for threads in the thread pool to
15129         10s.  Fixes bug #67159.
15130
15131 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
15132
15133         * class-internals.h: Sun's compiler insists on explicit
15134         signed on bit fields to handle then correctly.
15135
15136 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
15137
15138         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
15139         Make the size of the array fit only the number of invalid path
15140         chars that we have.
15141
15142         * class.c (_mono_class_get): Improve the error reporting when a
15143         class referenced is not found, to assist debugging. 
15144
15145 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
15146
15147         * threads.c: fix off-by-one error.
15148         * domain.c: free data allocated in the domain.
15149
15150 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
15151
15152         * reflection.c (mono_method_body_get_object): Fill out exception info
15153         as well.
15154
15155         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
15156         structure.
15157         
15158 2005-01-19  Martin Baulig  <martin@ximian.com>
15159
15160         * loader.c (mono_get_method_constrained): Make this work again.
15161
15162 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
15163
15164         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
15165         guint16 to match the managed side.
15166
15167         * reflection.c (mono_reflection_body_get_object): Fill out local
15168         variables array.
15169
15170         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
15171         as well.
15172
15173         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
15174         'local_var_sig_token'.
15175
15176 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
15177
15178         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
15179         System.Drawing.
15180
15181         * reflection.c (mono_method_body_get_object): Handle abstract and
15182         runtime methods.
15183
15184 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
15185
15186         * marshal.c, loader.c, class-internals.h, reflection.c:
15187         store the emthod data for a wrapper in an array instead of a list.
15188
15189 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
15190
15191         * marshal.c: change the code to allocate memory more
15192         conservatively for method wrappers.
15193
15194 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
15195
15196         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
15197         fields from MonoClass to the marshal info structure where they belong.
15198
15199 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
15200
15201         * class.c, object.c, class-internals.h, marshal.c: rearrange
15202         some fields and tweak some types to lower memory usage.
15203
15204 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
15205
15206         * threads.c (signal_thread_state_change): Handle the case when the
15207         target thread is the current thread.
15208
15209         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
15210
15211         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
15212         emit_ptr_to_object_conv. 
15213
15214         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
15215         marshalling. Fixes #71352.
15216
15217 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
15218
15219         * metadata.h, blob.h: move table enum to blob.h so it can be included
15220         in any header.
15221         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
15222         cut the size of MonoImage/MonoDynamicImage.
15223
15224 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
15225
15226         * profiler.c (mono_profiler_install_simple): Fix default arguments.
15227
15228 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
15229
15230         * reflection.c, reflection.h, icall.c: add a function to check
15231         if an attribute type is defined for a metadata object.
15232
15233 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
15234
15235         * object-internals.h: Added some needed fields from StringBuilder class.
15236         * marshal.c: Set the maxCapacity when creating a StringBuilder.
15237
15238 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
15239
15240         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
15241         threads before shutting down the runtime.
15242
15243         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
15244
15245 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
15246
15247         * object-internal.h, threads.c: implement stacksize and 
15248         parameterized thread start functionality (requires
15249         matching corlib). Marked broken code for later removal.
15250
15251 2005-01-12  Martin Baulig  <martin@ximian.com>
15252
15253         * class-internals.h (MonoGenericClass): Moved the `initialized'
15254         flag to MonoDynamicGenericClass, removed `init_pending'.
15255         (MonoGenericInst): Added `is_reference' flag.
15256
15257 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
15258
15259         * reflection.c (mono_image_create_pefile): Only set the pe_offset
15260         inside the MSDOS header. Fixes #71201.
15261
15262         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
15263         gc thread.
15264         (mono_domain_finalize): Ditto.
15265
15266 2005-01-12  Martin Baulig  <martin@ximian.com>
15267
15268         * class.c (mono_get_shared_generic_class): Use the cache for
15269         non-dynamic generic classes.
15270
15271         * class-internals.h (mono_class_create_generic_2): Removed
15272         function prototype, this function is now static inside class.c.
15273
15274         * class.c (mono_class_create_generic_2): Made this static, only
15275         call it from mono_class_init() and mono_class_setup_parent().
15276         (collect_implemented_interfaces_aux): Call mono_class_init() on
15277         the interfaces we collect.
15278         (mono_class_setup_vtable): Call mono_class_init (class->parent).
15279
15280 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
15281
15282         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
15283         it a real thread handle.
15284
15285         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
15286         MonoJitExceptionInfo, since each catch clause needs its own variable.
15287         
15288 2005-01-11  Dick Porter  <dick@ximian.com>
15289
15290         * image.c (mono_pe_file_open): New variant on mono_image_open()
15291         that does not set up the CLI metadata; used for FileVersionInfo so
15292         it can get the data for windows binaries too.
15293         
15294         * process.c (process_read_string_block): Don't read off the end of
15295         the StringTable block.
15296
15297         These both fix bug 70766.
15298
15299 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
15300
15301         * gc.c: set some fields to NULL at GC cleanup time.
15302         * threads.c: if we quit the main thread, call exit ().
15303
15304 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
15305
15306         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
15307
15308 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
15309
15310         * threads.h, threads.c, object.c: added accessor and settor for
15311         main_thread. Handle it specially when exiting from it: wait
15312         for other foreground threads to exit.
15313
15314 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
15315
15316         * process.c, verify.c: remove some bloat.
15317
15318 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
15319
15320         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
15321         the calling convention to cdecl under win32.
15322
15323 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
15324
15325         * object.c (mono_object_get_size): New function to get the size of
15326         an object instance.
15327
15328         * profiler.c (simple_allocation): Use above.
15329
15330 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
15331
15332         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
15333         ves_icall_System_AppDomain_getRootDomain (as it's not required to
15334         get an appdomain by it's id and we can't assume the root's id is 0).
15335         * domain-internals.h: Change the function prototype to match.
15336         * icall.c: Change the icall table for AppDomain.
15337
15338 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
15339
15340         * locales.c (string_invariant_compare_char): Only compute
15341         GUnicodeTypes in the case where we need them.  Test for ordinality
15342         first and return if so.
15343
15344         From the commit:
15345
15346                 /*
15347                  * FIXME: here we must use the information from c1type and c2type
15348                  * to find out the proper collation, even on the InvariantCulture, the
15349                  * sorting is not done by computing the unicode values, but their
15350                  * actual sort order.
15351                  */
15352
15353 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
15354
15355         * loader.c: for P/Invoke methods, allow the "Internal" shared
15356         library name to refer to the calling process symbol namespace.
15357
15358 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
15359
15360         * Makefile.am: Add the security manager to the build.
15361         * security-manager.c|h: New. Initialization of the security manager.
15362
15363 2005-01-07  Dick Porter  <dick@ximian.com>
15364
15365         * threads.c: 
15366         * monitor.c: Update thread state during Monitor and WaitHandle
15367         waits.  Fixes bug 71031.
15368
15369 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
15370
15371         * reflection.c (property_encode_signature): Correctly handle when the
15372         property has no methods.
15373
15374 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
15375
15376         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
15377         
15378         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
15379         fields from mb, not rmb. Fixes #71017.
15380
15381         * marshal.c (emit_ptr_to_str_conv): Add support for 
15382         ByValTStr -> string conversion. Fixes #71015.
15383
15384         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
15385
15386         * mempool.c (mono_mempool_contains_addr): New helper function.
15387
15388 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
15389
15390         * metadata.c (mono_metadata_compute_size): Fix size calculation of
15391         HasSematics encoded fields.
15392         
15393         * metadata.c (mono_type_to_unmanaged): Improve error message for 
15394         invalid string marshalling.
15395
15396         * metadata.c: Fix warnings.
15397         
15398 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
15399
15400         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
15401         profiler support.
15402
15403 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
15404
15405         * domain.c object.c domain-internals.h: Revert part of r38077 since the
15406         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
15407         tests.
15408
15409 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
15410
15411         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
15412         so methods containing these can be AOTed.
15413
15414 2005-01-03  Martin Baulig  <martin@ximian.com>
15415
15416         * loader.c (find_method): Removed the hack for generic instances.
15417         (method_from_memberref): If our parent is a generic instance, pass
15418         its generic type definition to find_method() and then inflate the
15419         method.
15420         (mono_get_method_constrained): Pass the generic type definition to
15421         find_method() and inflate the method later.
15422
15423         * class-internals.h (MonoStats): Added `generic_class_count'.
15424
15425         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
15426         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
15427
15428         * reflection.c (mono_custom_attrs_from_params): Don't ignore
15429         generic type definitions.
15430
15431 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
15432
15433         * loader.c icall.c: Fix warnings.
15434
15435 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
15436
15437         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
15438         blittable types. Fixes #70864.
15439
15440 2004-12-29  Martin Baulig  <martin@ximian.com>
15441
15442         * icall.c
15443         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
15444
15445         * reflection.c (mono_method_get_object): Create a
15446         "System.Reflection.MonoGenericMethod" for inflated methods; don't
15447         call mono_get_inflated_method().
15448
15449         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
15450
15451 2004-12-27  Martin Baulig  <martin@ximian.com>
15452
15453         * class-internals.h (MonoMethod): Added `is_inflated' flag.
15454         (MonoMethodInflated): Added `inflated' field.
15455
15456         * class.c (mono_class_inflate_generic_method): Don't really
15457         inflate the method here; just set the `is_inflated' flag in the
15458         MonoMethod.
15459         (mono_class_get_inflated_method): Actually inflate the method here
15460         if it's not already inflated; we use the MonoMethodInflated's new
15461         `inflated' field as a cache.
15462
15463 2004-12-26  Martin Baulig  <martin@ximian.com>
15464
15465         * class.c
15466         (inflate_generic_class): Moved some code out of inflate_generic_type().
15467         (mono_class_inflate_generic_method): If we're already inflated,
15468         inflate the context and use the declaring method; ie. make sure
15469         the declaring method of an inflated method is always the generic
15470         method definition.
15471         (mono_class_create_from_typedef): Create
15472         `class->generic_container->context->gclass'.
15473
15474 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
15475
15476         * metadata-internals.h, marshal.c, reflection.c: More
15477         MonoGHashTable->GHashTable.
15478
15479         * domain-internals.h, class.c: Change MonoGHashTable's into
15480         GHashTables for some cases where no gc stuff is used
15481
15482         All users: update apis
15483
15484 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
15485
15486         * metadata.c (builtin_types): Make this `const'. Makes this get
15487         put into the shareable section.
15488         (mono_metadata_init): Casts to make gcc happy.
15489
15490 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
15491
15492         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
15493
15494 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
15495
15496         * icall.c: Added an internal call to retrieve the position and length
15497         of assembly-level declarative security attributes (RequestMinimum, 
15498         RequestOptional and RequestRefuse). This is used by the Assembly class
15499         to re-create the corresponding permission sets.
15500
15501 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
15502
15503         * marshal.c: fix the stelemref wrapper to be type correct
15504         (and faster).
15505
15506 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
15507
15508         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
15509         to do key & 0x7fffffff. Hashtable already does this. It just
15510         results in longer code.
15511
15512 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
15513
15514         * appdomain.c: Bump corlib version.
15515         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
15516         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
15517         * reflection.c|h: Add functions to get declarative security infos
15518         (blob position and length) for assemblies, classes and methods.
15519
15520 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
15521
15522         * reflection.c: sort the constant table (bug #70693).
15523
15524 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
15525
15526         * object-internals.h, threads.c, domain.c: add accessors for
15527         the MonoThread and MonoDomain tls keys.
15528
15529 2004-12-18  Martin Baulig  <martin@ximian.com>
15530
15531         * class.c (inflate_generic_type): If we're inflating a generic
15532         instance, set `ngclass->context->container = context->container';
15533         ie. the container we inflated into.
15534
15535         * metadata.c (mono_metadata_parse_generic_param): Reflect above
15536         inflate_generic_type() changes.
15537
15538 2004-12-17  Martin Baulig  <martin@ximian.com>
15539
15540         * class-internals.h
15541         (MonoGenericClass): Replaced `MonoType *generic_type' with
15542         `MonoClass *generic_class'.  Removed `dynamic_info'; if
15543         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
15544         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
15545
15546 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
15547
15548         * exception.c (mono_exception_from_token): New helper function.
15549
15550 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
15551
15552         * assembly.c (mono_assembly_load_with_partial_name): Call 
15553         mono_assembly_loaded before invoking the preload hooks. Fixes
15554         #70564.
15555
15556         * object-internals.h (MonoThread): Change culture_info and 
15557         ui_culture_info into an array.
15558
15559         * threads.c: Cache culture info objects from more than one appdomain.
15560
15561         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
15562         current UI culture.
15563
15564 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
15565
15566         * threads.h threads.c appdomain.c: Clear the culture_info field of
15567         all threads during unloading if they point to an object in the dying
15568         appdomain.
15569
15570 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
15571
15572         * culture-info.h (TextInfoEntry): New struct
15573         * object-internals.h: sync with managed
15574         * locales.c: fill the `text_info_data' field
15575         * culture-info-tables.h: update
15576
15577 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
15578
15579         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
15580         collector.
15581
15582 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
15583
15584         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
15585         (ves_icall_ModuleBuilder_getMethodToken): Ditto
15586
15587 2004-12-12  Martin Baulig  <martin@ximian.com>
15588
15589         * mono-debug-debugger.c (write_type): If we're an enum and the
15590         builtin types have already been initialized, call mono_class_init().
15591
15592 2004-12-11  Martin Baulig  <martin@ximian.com>
15593
15594         * metadata.c (mono_metadata_load_generic_params): Added
15595         `MonoGenericContainer *parent_container' argument; automatically
15596         compute `container->is_method'; pass the correct owner to
15597         get_constraints().      
15598
15599         * reflection.c (compare_genericparam): Sort the GenericParam table
15600         according to increasing owners. 
15601
15602 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
15603
15604         * profiler.c: allow disabling the default profiler.
15605
15606 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
15607
15608         * decimal.c, icall.c: allow disabling System.Decimal support.
15609
15610 2004-12-09  Marek Safar <marek.safar@seznam.cz>
15611
15612         * reflection.c: Add support for null attribute arguments.
15613
15614 2004-12-09  Martin Baulig  <martin@ximian.com>
15615
15616         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
15617         names to get rid of compiler warnings.
15618
15619 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
15620
15621         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
15622         mono_marshal_load_type_info (). Fixes #69625.
15623         (mono_marshal_get_ptr_to_struct): Likewise.
15624
15625 2004-12-08  Martin Baulig  <martin@ximian.com>
15626
15627         * mono-debug.h: Bumped version number to 47.
15628
15629         * mono-debug-debugger.c
15630         (mono_debugger_event_handler, mono_debugger_event): Take two
15631         guint64 arguments insteed of a gpointer and a guint32.  
15632
15633 2004-12-08  Martin Baulig  <martin@ximian.com>
15634
15635         * debug-mono-symfile.h
15636         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
15637         `address' to `native_offset'.
15638
15639 2004-12-08  Martin Baulig  <martin@ximian.com>
15640
15641         * class.c (mono_class_create_from_typespec): Only inflate if we
15642         either have `context->gclass' or `context->gmethod'.
15643
15644 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
15645
15646         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
15647
15648         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
15649
15650         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
15651
15652         * reflection.c (mono_assembly_get_object): Remove the workaround put
15653         in for the release.
15654         
15655         * appdomain.c: Use the corlib_internal field from MonoAssembly.
15656
15657         * appdomain.c: Bump corlib version.
15658
15659         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
15660         be visible in other appdomains.
15661
15662 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
15663
15664         * threads.c: Interlocked inc and dec for longs were messed up,
15665         use a KISS based impl for this. Fixes 70234
15666
15667 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
15668
15669         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
15670
15671 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
15672
15673         * icall.c: fix to follow policy not to allow struct
15674         arguments in icalls.
15675
15676 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15677
15678         * process.c: make the patch that handles spaces in file paths work
15679         on mono/windows too.
15680
15681 2004-12-06  Martin Baulig  <martin@ximian.com>
15682
15683         * class.c (mono_class_create_generic): Call
15684         mono_class_setup_supertypes() if we're dynamic.
15685         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
15686
15687 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
15688
15689         * object-internals.h: Add new fields to MonoThread.
15690
15691         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
15692
15693         * icall.c threads-types.h threads.c: Add new icalls.
15694
15695         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
15696
15697         * object-internals.h (MonoReflectionAssembly): Sync object layout with
15698         managed side.
15699
15700         * appdomain.c: Bump corlib version.
15701
15702         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
15703         internal assemblies. Fixes #69181.
15704
15705 2004-12-05  Martin Baulig  <martin@ximian.com>
15706
15707         * class.c (mono_class_inflate_generic_signature): Make this a
15708         no-op if `context' is NULL or we don't have any type parameters;
15709         also copy `sentinelpos'.        
15710
15711 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
15712
15713         * image.c: Add unbox_wrapper_cache.
15714
15715         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
15716
15717         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
15718         function generator.
15719         
15720         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
15721         Fixes #70173.
15722
15723         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
15724         
15725 2004-12-04  Martin Baulig  <martin@ximian.com>
15726
15727         * loader.c (mono_method_get_signature_full): New public function;
15728         like mono_method_get_signature(), but with an additional
15729         `MonoGenericContext *' argument.
15730
15731         * class.c (mono_class_inflate_generic_signature): Formerly known
15732         as inflate_generic_signature(); make this public.
15733
15734 2004-12-04  Martin Baulig  <martin@ximian.com>
15735
15736         * metadata.c
15737         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
15738         instead of a `MonoGenericContainer *'.  
15739         (mono_metadata_parse_array_full): Likewise.
15740         (mono_metadata_parse_signature_full): Likewise.
15741         (mono_metadata_parse_method_signature_full): Likewise.
15742         (mono_metadata_parse_generic_inst): Likewise.
15743         (mono_metadata_parse_generic_param): Likewise.
15744         (mono_metadata_parse_mh_full): Likewise.
15745         (mono_type_create_from_typespec_full): Likewise.
15746
15747 2004-12-03  Martin Baulig  <martin@ximian.com>
15748
15749         * class-internals.h (MonoGenericContainer): Replaced the
15750         `MonoGenericContext * pointer with a `MonoGenericContext'
15751         structure and made it the first element.
15752
15753 2004-12-03  Martin Baulig  <martin@ximian.com>
15754
15755         * class.c
15756         (inflate_generic_type): Set the `context->container' when creating
15757         a new MonoGenericContext.
15758         (mono_class_inflate_generic_method): Likewise.
15759         (mono_class_create_from_typespec): Just use `context->container'
15760         to get the container.
15761
15762         * loader.c (method_from_methodspec): Set `context->parent' from
15763         `context->container' - and if that's a method container, use its
15764         parent.  Also set the `context->container' when creating a new
15765         MonoGenericContext.
15766         (mono_get_method_from_token): Use just `context->container' to get
15767         the container.
15768
15769         * metadata.c (do_mono_metadata_parse_generic_class): Also set
15770         `gclass->context->container'.
15771
15772         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
15773         the `context->container' when creating a new MonoGenericContext.
15774
15775 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
15776
15777         * reflection.c (compare_genericparam): Sort params with identical
15778         owner by their number. Fixes gen-111 on sparc.
15779
15780 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
15781
15782         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
15783         around the domain changes.
15784
15785         * appdomain.c (mono_domain_unload): Handle the case when the thread
15786         calling Unload is itself being aborted during unloading. Fixes #70022.
15787
15788         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
15789
15790         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
15791         checkpoint_func as an icall so it gets a wrapper.
15792         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
15793         in the cross-appdomain wrappers too.
15794
15795         * threads.c (mono_thread_has_appdomain_ref): Make this public.
15796
15797         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
15798
15799         * reflection.c: Fix some memory leaks.
15800         
15801 2004-12-02  Martin Baulig  <martin@ximian.com>
15802
15803         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
15804
15805         * metadata.c (generic_class_cache): New static hashtable.
15806         (mono_metadata_lookup_generic_class): New public method.
15807
15808 2004-12-02  Martin Baulig  <martin@ximian.com>
15809
15810         * class.c (mono_class_create_from_typedef): Call
15811         mono_class_setup_parent() and mono_class_create_mono_type() before
15812         parsing the interfaces.
15813
15814 2004-12-02  Martin Baulig  <martin@ximian.com>
15815
15816         * metadata.c (generic_inst_cache): New static hashtable.
15817         (mono_metadata_lookup_generic_inst): New public function.
15818         (mono_metadata_inflate_generic_inst): New public function.
15819         (mono_metadata_parse_generic_inst): New public function.
15820         (do_mono_metadata_parse_generic_class): Use the new
15821         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
15822         since this'll also use the cache.
15823
15824         * reflection.c (mono_reflection_bind_generic_method_parameters):
15825         Use mono_metadata_lookup_generic_inst() to use the new cache.
15826
15827         * class.c (inflate_mono_type): Use
15828         mono_metadata_inflate_generic_inst() to inflate a generic
15829         instance; this'll also use the new cache.
15830
15831         * loader.c (method_from_methodspec): Use
15832         mono_metadata_parse_generic_inst() and
15833         mono_metadata_inflate_generic_inst() rather than parsing it
15834         manually, so we can use the new cache.
15835
15836 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
15837
15838         * threads.c (wait_for_tids): Do not incorrectly free threads when 
15839         the wait times out.
15840
15841 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
15842
15843         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
15844         iter->args based on whether parameters are passed in registers (i.e.
15845         MONO_ARCH_REGPARMS is defined)
15846
15847 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
15848
15849         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
15850         the exception message. Fixes #70070.
15851         (method_from_methodspec): Fix warnings.
15852
15853 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15854
15855         * process.c: (complete_path) return the path quoted
15856
15857 2004-12-01  Martin Baulig  <martin@ximian.com>
15858
15859         * class-internals.h (MonoGenericInst): New structure.
15860         (MonoGenericClass): Replaced `type_argc', `type_argv' and
15861         `is_open' with `MonoGenericInst *inst'.
15862         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
15863         `is_open' with `MonoGenericInst *inst'.
15864
15865 2004-11-30  Martin Baulig  <martin@ximian.com>
15866
15867         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
15868
15869         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
15870         to `generic_class_cache'.
15871
15872         * metadata.c
15873         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
15874         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
15875         (mono_generic_inst_is_valuetype): Renamed to
15876         mono_generic_class_is_valuetype().
15877
15878         * class-internals.h
15879         (MonoGenericInst): Renamed to MonoGenericClass.
15880         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
15881         (MonoClass): Renamed `generic_inst' to `generic_class'.
15882         (MonoGenericContext): Renamed `ginst' to `gclass'.
15883
15884         * object-internals.h
15885         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
15886
15887         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
15888         mono_reflection_generic_class_initialize().
15889
15890         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
15891         now known as "System.Reflection.MonoGenericClass".
15892         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
15893
15894 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
15895
15896         * class-internals.h: Added a flag field to MonoClass to cache the
15897         declarative security attributes actions associated with the class.
15898         * domain-internals.h: Added booleans to MonoJitInfo to cache the
15899         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
15900         applicable to the JITted method.
15901         * reflection.c|h: Added functions to extract (as flags) which security
15902         actions are available (declaratively) for a method, class or assembly.
15903         * metadata.c|h: Added functions to search the declarative security
15904         table in the metadata.
15905         
15906 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
15907
15908         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
15909         EXPORTEDTYPES are already in the class name cache, so there is no
15910         need to add extra code here to look at them. Just removes a bit of
15911         cruft.
15912
15913         (ves_icall_System_Environment_get_TickCount): No need for #if
15914         WINDOWS. We already have the code in io-layer.
15915
15916 2004-11-28  Martin Baulig  <martin@ximian.com>
15917
15918         * loader.c
15919         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
15920         Fixes gen-112.cs.
15921
15922 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
15923
15924         * assembly.c (do_mono_assembly_open): Instead of having a
15925         conditional WITH_BUNDLE, incorporate support for bundles here, by
15926         having a global `bundles' variable holding a pointer to the actual
15927         bundles. 
15928
15929         (mono_register_bundled_assemblies): New API call used by the
15930         bundle code. 
15931
15932         See mkbundle.1 for details.
15933         
15934 2004-11-27  Martin Baulig  <martin@ximian.com>
15935
15936         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
15937         the vtable for generic methods.
15938
15939 2004-11-26  Martin Baulig  <martin@ximian.com>
15940
15941         * metadata.c
15942         (mono_metadata_generic_method_hash): New public function.
15943         (mono_metadata_generic_method_equal): Likewise.
15944
15945         * class-internals.h
15946         (MonoGenericContainer): Added `GHashTable *method_hash'.
15947
15948         * reflection.c (ReflectionMethodBuilder): Added
15949         `MonoGenericContainer *generic_container'.
15950         (reflection_methodbuilder_to_mono_method): Don't create a new
15951         MonoGenericContainer each time we're called.
15952         (mono_reflection_bind_generic_method_parameters): Use
15953         `container->method_hash' to cache the results so we don't create a
15954         different method if we're called several times with the same
15955         arguments.
15956
15957         * loader.c (method_from_methodspec): Use the new
15958         `container->method_hash' here, too.
15959
15960 2004-11-26  Martin Baulig  <martin@ximian.com>
15961
15962         * class.c (inflate_generic_signature): Correctly compute
15963         `res->has_type_parameters'.
15964         (mono_class_vtable): Use the `has_type_parameters' flag to
15965         determine whether we're a generic method.
15966
15967         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
15968
15969 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
15970
15971         * object.c (mono_runtime_run_main): Fix a small memory leak.
15972
15973 2004-11-25  Martin Baulig  <martin@ximian.com>
15974
15975         * class.c (set_generic_param_owner): Fixed the loop.
15976
15977 2004-11-25  Martin Baulig  <martin@ximian.com>
15978
15979         * object.c (mono_class_vtable): Don't create any JIT wrappers for
15980         generic methods.
15981
15982 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
15983
15984         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
15985         names. Fixes #69787.
15986
15987 2004-11-24  Martin Baulig  <martin@ximian.com>
15988
15989         * class.c (mono_class_create_generic_2): If we don't have a
15990         `ginst->parent', inflate `gklass->parent' to get our parent.
15991
15992 2004-11-24  Martin Baulig  <martin@ximian.com>
15993
15994         * reflection.c (compare_genericparam): Correctly sort the
15995         GenericParam table; fixes #69779.
15996
15997 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
15998
15999         * reflection.c: When writing a PE file, don't create a huge
16000         buffer in memory. Just write the arrays we have to the file.
16001         This reduces memory usage.
16002
16003         * metadata-internals.h: MonoDynamicStream pefile is no longer used
16004         globally.
16005
16006 2004-11-17  Martin Baulig  <martin@ximian.com>
16007
16008         * class.c (mono_class_init): Don't setup `class->parent' for
16009         dynamic instances; moved this to mono_class_generic_2().
16010         (mono_class_create_generic): Also set `klass->inited' for dynamic
16011         generic instances.
16012         (mono_class_create_generic_2): Don't do anything for dynamic
16013         generic instances.  Set `klass->parent' here and also call
16014         mono_class_setup_parent() here. 
16015
16016         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
16017         `MonoType *parent' argument; set `ginst->parent' before calling
16018         mono_class_create_generic_2(), so we set the correct parent.
16019
16020 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
16021
16022         * reflection.c: allow getting attributes from ModuleBuilder
16023         (used by ikvm).
16024
16025 2004-11-17  Martin Baulig  <martin@ximian.com>
16026
16027         * class.c (mono_class_create_from_typedef): If a type parameter is
16028         inherited from an outer class, set its owner to that class.
16029
16030 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
16031
16032         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
16033           for (int*) written size. This fixes bug #69592.
16034
16035 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
16036
16037         * icall.c: Added IsAuthenticodePresnet internal call.
16038         * image.c|h: New function that check a MonoImage for an Authenticode
16039         signature in the certificate PE data directory.
16040         * security.c|h: New internal call to ask the runtime if an 
16041         Authenticode signature seems referenced in the PE header.
16042
16043 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
16044
16045         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
16046
16047         * reflection.c (mono_image_create_pefile): Free the assembly streams
16048         after writing out the assembly file.
16049
16050         * object.c (mono_runtime_run_main): Fix small memory leak.
16051
16052         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
16053         property access modifiers. Fixes #69389.
16054
16055 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
16056
16057         * domain.c, object.c, object-internals.h, domain-internals.h,
16058         object.h, marshal.c: keep dynamic code info per domain.
16059
16060 2004-11-15  Martin Baulig  <martin@ximian.com>
16061
16062         * class.c (mono_type_get_name_recurse): Put type arguments in
16063         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
16064         see bug #68387.
16065
16066 2004-11-15  Martin Baulig  <martin@ximian.com>
16067
16068         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
16069         (mono_class_setup_vtable): When computing `the_cname' for a
16070         generic instance, don't include the namespace since we'd otherwise
16071         add it twice.
16072
16073 2004-11-15  Martin Baulig  <martin@ximian.com>
16074
16075         * class.c (mono_class_create_generic): Changed return type to void.
16076         (mono_class_create_generic_2): New public function; setup
16077         `class->method', `class->field' and `class->interfaces' here
16078         instead of in mono_class_init().
16079
16080         * class.h (mono_class_create_generic): Moved to class-internals.h.
16081
16082 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
16083
16084         * reflection.c (mono_image_create_pefile): take a file HANDLE.
16085         rather than writing to memory, write to this file. Right now,
16086         we are just writting into a buffer, and copying that. However
16087         we can avoid the buffer later.
16088
16089         (mono_dynamic_stream_reset): new function
16090
16091         * icall.c, object-internals.h: update for the above.
16092
16093 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
16094
16095         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
16096         have been using gc'd memory. First it is slower, unlikely
16097         the comment in the source code said, secondly, it increases
16098         our footprint to do it in the gc.
16099
16100         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
16101         the method so that it does not have to copy to managed code.
16102
16103 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
16104
16105         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
16106
16107 2004-11-12  Martin Baulig  <martin@localhost>
16108
16109         * reflection.c (mono_image_create_token): Allow generic method
16110         definitions here, since they may appear in an `.override'; see
16111         gen-98/gen-99 for an example.
16112
16113 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
16114
16115         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
16116         #69365.
16117
16118         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
16119         descriptive.
16120
16121 2004-11-11  Martin Baulig  <martin@ximian.com>
16122
16123         * class.c (mono_class_setup_vtable): In an explicit interface
16124         implementation, the method name now includes the arity.
16125
16126 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
16127
16128         * object.c (mono_array_full_copy): Fix warning.
16129
16130 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
16131
16132         * appdomain.c: Removed look_for_method_by_name(). Use the new method
16133         mono_class_get_method_from_name() instead.
16134         
16135         * class-internals.h: Added two new types of wrappers. 
16136         Added MonoRemotingTarget enum. Added new trampoline function type, which
16137         takes an additional MonoRemotingTarget value as parameter, so it is
16138         possible to request a trampoline for a specific target.
16139         
16140         * class.c: Added new mono_class_get_method_from_name() method.
16141         
16142         * class.h: In MonoRemoteClass, we can have now to vtables, one for
16143         general remoting sinks and one specific for cross domain calls.
16144         
16145         * debug-helpers.c: Added new wrapper names.
16146         
16147         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
16148         of a remote class.
16149         
16150         * image.c: Porperly delete value objects form the remoting invoke hashtable.
16151         
16152         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
16153         with several other methods (mono_marshal_get_xappdomain_dispatch,
16154         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
16155         and others) can generate a fast remoting wrapper for cross domain calls.
16156         More information can be found in docs/remoting.
16157         Other changes: Removed mono_find_method_by_name, and used
16158         mono_class_get_method_from_name instead.
16159         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
16160         is stored in the remoting invoke hashtable.
16161         
16162         * marshal.h: published the new method for getting the xdomain wrapper,
16163         and also added a method for getting the adequate wrapper for a given
16164         method and target.
16165         
16166         * object-internals.h, object.c: Added a couple of methods for capying and
16167         cloning arrays.
16168         Modified mono_install_remoting_trampoline, which takes the new remoting
16169         trampoline that has a remoting target as parameter.
16170         mono_class_proxy_vtable now also takes a remoting target as parameter, and
16171         will return the most suitable vtable for the target.
16172         Added mono_remote_class_vtable, which returns the vtable of a remote class
16173         (which can be the normal remoting vtable or the xdomain vtable).
16174         
16175         * threads.c: the xdomain invoke and dispatch wrappers must also be
16176         protected against interruptions.
16177
16178 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16179
16180         * icall.c: use memmove in BlockCopyInternal when the source and
16181         destination arrays are the same.
16182
16183 2004-11-09  Martin Baulig  <martin@ximian.com>
16184
16185         * class-internals.h (MonoGenericContainer): Removed `method' and
16186         `signature', replaced them with `is_method' and `is_signature'
16187         flags.  Added `context'.
16188
16189         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
16190         instead of a `MonoGenericContainer *'.
16191
16192         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
16193         for dynamic type parameters.
16194         (mono_metadata_load_generic_params): Setup `container->context'.
16195
16196         * reflection.c (mono_reflection_setup_generic_class): Setup
16197         `tb->generic_container->context'.
16198         (do_mono_reflection_bind_generic_parameters): Use
16199         mono_class_inflate_generic_type() to correctly inflate types,
16200         rather than using our own hack just for MONO_TYPE_VAR.
16201
16202 2004-11-09  Martin Baulig  <martin@ximian.com>
16203
16204         * class.c (mono_class_inflate_generic_method): Small fix; don't
16205         crash here.
16206
16207         * icall.c
16208         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
16209         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
16210         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
16211         (ves_icall_Type_BindGenericParameters): Likewise.
16212         (ves_icall_Type_get_IsGenericInstance): Likewise.
16213         (ves_icall_Type_GetGenericParameterPosition): Likewise.
16214         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
16215         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
16216         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
16217
16218 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
16219
16220         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
16221         assembly versions and public key tokens. Fixes #69113.
16222
16223 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
16224
16225         * metadata.c: fix bug introduced with the type cache changes
16226         on 2004-11-06.
16227
16228 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
16229
16230         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
16231         the MonoClass pointer instead of the token in exception clauses.
16232         * reflection.c: updates for the above and make the code not depend
16233         on the structure of MonoExceptionClause.
16234
16235 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
16236
16237         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
16238         Add support for dynamic assemblies. Fixes #69114.
16239
16240         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
16241
16242 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
16243
16244         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
16245         since most only those methods use it. the code member of
16246         MonoMethodPInvoke was dead, so that can be removed too. Also,
16247         remove inline_count (again, not used), and move slot so that it
16248         can share bits with some other flags. This saves 8 bytes in the
16249         structure and gives us about 50 kb back for mcs helloworld.cs
16250
16251         * *.[ch]: Do naming changes for the above.
16252
16253         * loader.c (mono_method_get_header): Lazily init the header
16254         on first access.
16255         (mono_get_method_from_token): don't init the header here
16256         (mono_free_method): the header may never be allocated
16257
16258         Overall, this saves 150 kb of unmanaged allocations
16259         for mcs helloworld.cs. That accounts for 10% of the unmanaged
16260         memory at runtime.
16261         
16262         * loader.c, loader.h (mono_method_get_header): new accessor.
16263
16264         * *.[ch]: use the above method. Prepares us to lazily load
16265         the header.
16266
16267         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
16268         three warnings, which are actual bugs (see 69206).
16269
16270         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
16271         unused. Saves a cool 4 bytes / method.
16272
16273 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
16274
16275         * metadata.c (builtin_types): Add types for System.Object here.
16276         (mono_metadata_parse_type_full): Cache MonoType*'s that are
16277         for a class or valuetype from klass->this_arg or klass->byval_arg.
16278
16279         On mcs for a hello world, this gets us down from 21836 MonoType's
16280         to 14560.
16281
16282         (mono_metadata_free_type): Account for the above change.
16283
16284 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
16285
16286         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
16287         exception instead of asserting if name is null.
16288         (ves_icall_System_AppDomain_GetData): Ditto.
16289
16290 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
16291
16292         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
16293         EnumBuilder.
16294
16295         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
16296         Return NULL when the domain does not have entry_assembly set.
16297
16298         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
16299         Add a 'resource_modules' argument.
16300         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
16301
16302         * reflection.c (mono_reflection_create_runtime_class): Move setting
16303         of wastypebuilder here, so mono_get_type_object () returns a MonoType
16304         for enums too.
16305
16306         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
16307         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
16308         Throw an ArgumentNullException if 'ptr' is null.
16309
16310         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
16311         assemblies here. Fixes #69020.
16312
16313 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
16314
16315         * reflection.c (build_compressed_metadata): Fix the previous patch for
16316         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
16317         the stack.
16318
16319 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
16320
16321         * assembly.c (mono_assembly_names_equal): Allow a match if one of
16322         the cultures is false. Fixes #69090.
16323
16324         * reflection.c (build_compressed_metadata): Fix invalid memory read 
16325         detected by valgrind.
16326         
16327         * reflection.c (mono_reflection_get_type): Avoid triggering a 
16328         TypeResolve multiple times for the same type. Fixes #65577.
16329
16330 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
16331
16332         * marshal.c: Avoid using ldftn to call managed functions. It is
16333         much slower than just a call.
16334
16335         * reflection.c (mono_module_get_object): free the basename we
16336         allocate here from glib.
16337         
16338         * reflection.c (ensure_runtime_vtable): make sure to free
16339         overrides.  Also, we were allocating an array of MonoMethod not an
16340         array of MonoMethod*.
16341
16342         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
16343
16344         * image.c (mono_image_close): free image->guid here.
16345
16346 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
16347
16348         * reflection.c: Fix some spec conformance issues with the PE file
16349         structures so mcs compiled apps run on the Net 2.0 beta.
16350
16351 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
16352
16353         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
16354         Implement this. Fixes #67264.
16355
16356         * debug-helpers.h debug-helpers.c marshal.c: Move 
16357         mono_find_method_by_name to debug-helpers.c.
16358
16359 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
16360
16361         * object.c (mono_release_type_locks): type_initialization_hash is
16362         a GHashTable.
16363
16364         * reflection.c object.c object-internals.h: Fix warnings.
16365
16366         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
16367         without accessors. Fixes #61561.
16368
16369         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
16370         application base from the root domain if not set. Fixes #65641.
16371         (mono_runtime_init): Fix warning.
16372
16373 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16374
16375         * appdomain.c: call mono_thread_pool_init.
16376         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
16377         of worker threads based on the number of CPUs and the environment
16378         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
16379         for non-windows (windows) systems.
16380
16381 2004-10-27  Chris Toshok  <toshok@ximian.com>
16382
16383         * mono-debug-debugger.c (write_class): don't call mono_class_init
16384         here, as even with the check for (!klass->init_pending), we get
16385         into a situation where we're hitting cycles in class
16386         initialization.  Fixes #68816.
16387
16388 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
16389
16390         * image.c: Avoid overwriting values in the loaded_images_hash when an
16391         assembly is loaded multiple times. Fixes #61152.
16392
16393         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
16394         so multiple satellite assemblies for the same name can be loaded.
16395         Fixes #68259.
16396
16397         * mono_domain_assembly_preload: Actually return the loaded assembly, 
16398         not NULL.
16399
16400         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
16401         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
16402
16403         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
16404         pending finalizers are not invoked after the appdomain has been 
16405         unloaded. Fixes #67862.
16406
16407 2004-10-22  Martin Baulig  <martin@ximian.com>
16408
16409         * mono-debug-debugger.c
16410         (mono_debugger_runtime_invoke): Don't box valuetypes.
16411
16412 2004-10-22  Chris Toshok  <toshok@ximian.com>
16413
16414         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
16415         don't hide private methods.
16416
16417 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
16418
16419         * icall.c: Allows the runtime to "share" (when known) the public key
16420         token of an assembly. This avoid the need to recalculate the token 
16421         (from the public key) in managed code.
16422
16423 2004-10-21  Chris Toshok  <toshok@ximian.com>
16424
16425         * debug-helpers.c (append_class_name): argh, revert last patch.
16426         
16427 2004-10-21  Chris Toshok  <toshok@ximian.com>
16428
16429         * debug-helpers.c (append_class_name): use '+' as the delimiter,
16430         not '/', so that it matches what the debugger uses to look up
16431         methods.
16432
16433 2004-10-21  Martin Baulig  <martin@ximian.com>
16434
16435         * mono-debug-debugger.c (mono_debugger_throw_exception): New
16436         public method; this is called each time an exception is thrown and
16437         allows the debugger to use exception catch points.
16438
16439 2004-10-21  Martin Baulig  <martin@ximian.com>
16440
16441         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
16442         the stack pointer and the exception object in some struct and pass
16443         that to the debugger.
16444
16445 2004-10-21  Chris Toshok  <toshok@ximian.com>
16446
16447         * mono-debug-debugger.c (do_write_class): add instance/static
16448         event support.  We don't expose "raise" or "other" yet.
16449         (event_is_static): new method.
16450
16451 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
16452
16453         * mono-debug-debugger.c
16454         (mono_debugger_handle_exception): Remove
16455         bogus return value for fussy compilers.
16456
16457 2004-10-20  Martin Baulig  <martin@ximian.com>
16458
16459         * mono-debug-debugger.c
16460         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
16461         (mono_debugger_handled_exception): Likewise.
16462
16463 2004-10-20  Martin Baulig  <martin@ximian.com>
16464
16465         * mono-debug-debugger.h (MonoDebuggerEvent): Added
16466         MONO_DEBUGGER_EVENT_EXCEPTION.
16467
16468         * mono-debug-debugger.c (mono_debugger_handle_exception): New
16469         public function to send the debugger a notification for an
16470         exception and inform it about a catch/finally clause.
16471
16472 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
16473
16474         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
16475         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
16476         fix 2.95 build. 
16477
16478         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
16479
16480 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
16481
16482         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
16483         marshalled as [In,Out]. Fixes #58325.
16484
16485 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
16486
16487         * reflection.c (mono_method_body_get_object): Implement some fields.
16488
16489 2004-10-12  Martin Baulig  <martin@ximian.com>
16490
16491         * reflection.c (mono_reflection_bind_generic_parameters): Small
16492         fix, correctly retrieve our parent from a generic instance.
16493
16494 2004-10-12  Martin Baulig  <martin@ximian.com>
16495
16496         * metadata.c (mono_metadata_generic_param_equal): We always have
16497         an owner.
16498
16499         * class.c
16500         (mono_class_from_generic_parameter): We need to have an owner.
16501         (my_mono_class_from_generic_parameter): Likewise.
16502
16503         * reflection.c (mono_reflection_setup_generic_class): Renamed to
16504         mono_reflection_create_generic_class() and added a new
16505         mono_reflection_setup_generic_class().  
16506         (mono_reflection_initialize_generic_param): If we're a nested
16507         generic type and inherited from the containing class, set our
16508         owner to the outer class.
16509
16510 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
16511
16512         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
16513
16514         * reflection.c (mono_method_body_get_object): New function to create
16515         a MethodBody object.
16516
16517         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
16518
16519 2004-10-11  Martin Baulig  <martin@ximian.com>
16520
16521         * metadata.c (_mono_metadata_type_equal): Renamed to
16522         do_mono_metadata_type_equal() and made static.
16523
16524 2004-10-11  Martin Baulig  <martin@ximian.com>
16525
16526         * appdomain.c: Bump corlib version number to 28.
16527
16528 2004-10-10  Martin Baulig  <martin@ximian.com>
16529
16530         * class-internals.h
16531         (MonoGenericInst): Added `MonoGenericContainer *container'.
16532         (MonoGenericMethod): Likewise.
16533         (MonoGenericContext): Likewise.
16534         (MonoGenericParam): Added `MonoGenericContainer *owner'.
16535
16536         * metadata.c
16537         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
16538         (do_mono_metadata_parse_generic_inst): Likewise.
16539         (mono_metadata_parse_type_full): New public method.  This is the actual
16540         mono_metadata_parse_type() implementation - with an additional
16541         `MonoGenericContainer *' argument.
16542         (mono_metadata_parse_array_full): Likewise.
16543         (mono_metadata_parse_signature_full): Likewise.
16544         (mono_metadata_parse_method_signature_full): Likewise.
16545         (mono_metadata_parse_mh_full): Likewise.
16546         (mono_type_create_from_typespec): Likewise.
16547         (mono_metadata_interfaces_from_typedef_full): New public method;
16548         this is similar to the other _full() methods, but we take a
16549         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
16550         (mono_metadata_parse_generic_param): Take an additional
16551         `MonoGenericContainer *' argument and lookup the MonoGenericParam
16552         from that container.
16553         (mono_metadata_generic_param_equal): New static method to compare
16554         two type parameters.
16555         (_mono_metadata_type_equal): New static method; takes an
16556         additional `gboolean signature_only' argument - if true, we don't
16557         compare the owners of generic parameters.
16558         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
16559         with a TRUE argument - do a signature-only comparision.
16560
16561         * loader.c: Use the new _full() methods and pass the
16562         MonoGenericContainer to them.
16563
16564         * object-internals.h (MonoReflectionTypeBuilder): Added
16565         `MonoGenericContainer *generic_container' field.
16566         (MonoReflectionMethodBuilder): Likewise.
16567
16568 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
16569
16570         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
16571         case initial images of dynamic assemblies.
16572
16573         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
16574
16575         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
16576
16577         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
16578         length of event->other array.
16579         (typebuilder_setup_events): Ditto.
16580
16581         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
16582         'assembly_by_name' and add an 'assemblies' list.
16583
16584         * assembly.h assembly.c: Add a new search hook for determining whenever
16585         an assembly is already loaded. Use this instead of searching in the
16586         loaded_assemblies list.
16587
16588         * domain.c appdomain.c: Implement the new search hook so loaded 
16589         assemblies are now scoped by appdomain. Fixes #67727.
16590
16591 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
16592
16593         * threads.c (mono_thread_attach): Initialize synch_lock field so
16594         mono_thread_detach works again.
16595
16596         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
16597         'lib' too. Fixes #63130.
16598
16599 2004-10-06  Jackson Harper  <jackson@ximian.com>
16600
16601         * culture-info-tables.h: regenerated.
16602
16603 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
16604
16605         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
16606         implemented by other interfaces in the result. Fixes #65764.
16607         
16608         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
16609         Handle unloadable modules without crashing.
16610
16611         * image.c (load_modules): Revert the previous patch since modules must
16612         have a fixed index inside the array.
16613         
16614         * image.c (load_modules): Don't include native modules in the modules
16615         array.
16616
16617 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
16618
16619         * reflection.h: Add param_defaults field.
16620
16621         * reflection.c: Add support for parameter defaults in dynamic methods.
16622         Fixes #64595.
16623
16624         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
16625         an empty string when a type has no namespace. Fixes #64230.
16626
16627 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
16628
16629         * tabledefs.h: Added "internal" security actions to support non-CAS
16630         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
16631         Note: they do not seems to be used anymore in 2.0 (new metadata format)
16632
16633 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
16634
16635         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
16636         constructor of abstract class. Fixes #61689.
16637
16638 2004-10-04  Martin Baulig  <martin@ximian.com>
16639
16640         * class-internals.h (MonoGenericContainer): New type.
16641         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
16642         `MonoGenericContainer *generic_container'.
16643         (MonoClass): Replaced `gen_params' and `num_gen_params' with
16644         `MonoGenericContainer *generic_container'.
16645
16646         * metadata.c (mono_metadata_load_generic_params): Return a
16647         `MonoGenericContainer *' instead of a `MonoGenericParam *';
16648         removed the `num' argument.
16649
16650 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
16651
16652         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
16653         for dynamic images.
16654
16655         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
16656         machine fields.
16657
16658         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
16659
16660         * reflection.c: Save pe_kind and machine values into the generated
16661         image file.
16662
16663         * appdomain.c: Bump corlib version number.
16664
16665         * object-internals.h: Reorganize layout of LocalBuilder.
16666
16667         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
16668         New helper function.
16669
16670         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
16671         created MonoType for dynamic types. Fixes #66180.
16672
16673 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
16674
16675         * threadpool.c: the ares hashtable needs a critical section around it.
16676         this prevents some nasty segfaults
16677
16678 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
16679
16680         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
16681         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
16682         bug 67324).
16683         
16684 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
16685
16686         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
16687         
16688 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
16689
16690         * image.c: Always canonicalize image file names, to avoid loading
16691         the same assembly twice when referenced using a relative path.
16692
16693 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
16694
16695         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
16696
16697         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
16698
16699         * marshal.c: Fix warnings.
16700
16701 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
16702
16703         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
16704         attempting to marshal the delegate_trampoline as the method_addr.
16705         This patch has a static hashtable of marshalled delegates so that 
16706         we can map delegate_trampoline addresses back to delegates.  This
16707         allows a delegate passed to managed code to be passed back into native
16708         code.  Fixes #67039
16709
16710 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
16711
16712         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
16713
16714         * reflection.c (method_encode_code): Align method headers properly.
16715         Fixes #66025.
16716
16717 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
16718
16719         * marshal.c: In the runtime invoke wrapper, reset the abort
16720         exception if it is cached. This avoids the automatic rethrowal of 
16721         the exception after the catch of the wrapper. Also check for pending
16722         interruptions before calling the managed method. This is done using
16723         the new method emit_thread_force_interrupt_checkpoint, since the
16724         normal checkpoint method is ignored when running the invoke wrapper.
16725         * object.c: If the abort exception is rethrown, set the abort_exc
16726         field of the thread, so it will be rethrown aftere every catch.
16727         * threadpool.c: Only run an interruption checkpoint if what has been
16728         requested is a stop of the thread (aborts will be ignored).
16729         * threads.c: By default, a thread will now never be interrumped while
16730         running the runtime invoke wrapper (this ensures that runtime_invoke
16731         will always return to the caller if an exception pointer is provided).
16732         There is a new special method mono_thread_force_interruption_checkpoint()
16733         to force an interruption checkpoint even if running a protected
16734         wrapper, which is used by the same runtime invoke wrapper to do a check
16735         at a safe point.
16736
16737 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
16738
16739         * object.c, object-internals.h: Implemented mono_release_type_locks,
16740         which releases the cctor locks held by a thread.
16741         * threads.c, threads.h: In thread_cleanup, release cctor locks held
16742         by a thread. Added mono_thread_exit() method to be used to safely stop
16743         a thread.
16744
16745 2004-09-28  Raja R Harinath  <rharinath@novell.com>
16746
16747         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
16748         Move null check before dereference.  Avoid indexing beyond the end
16749         of the 'modules' array.
16750
16751 2004-09-28  Raja R Harinath  <rharinath@novell.com>
16752
16753         * metadata-internals.h (MonoImage): Add module_count field.
16754         * image.c (load_modules): Set image->module_count.
16755         (mono_image_load_file_for_image): Use image->module_count.
16756         * reflection.c (mono_image_load_module): Append to image->modules array 
16757         of dynamic assembly.
16758         (mono_module_get_object): Fix loop to actually increment index.
16759         Use image->module_count.
16760         * assembly.c (mono_assembly_load_references): Use image->module_count.
16761         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
16762         Likewise.
16763
16764 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
16765
16766         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
16767         Avoid assert on generic types.
16768
16769 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
16770
16771         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
16772
16773         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
16774
16775         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
16776         function to convert a MarshalSpec structure to its managed counterpart.
16777
16778         * reflection.c: Fix warnings.
16779         
16780         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
16781         field.
16782
16783         * icall.c (mono_create_icall_signature): Fix build.
16784
16785 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
16786
16787         * icall.c: Add MakePointType icall.
16788
16789         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
16790         warnings.
16791
16792 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16793
16794         * threadpool.c: reuse allocated slots in the queue.
16795
16796 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
16797
16798         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
16799
16800         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
16801
16802         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
16803         previous change.
16804
16805         * tabledefs.h: Add constants for pinvoke attributes BestFit and
16806         ThrowOnUnmappableChar.
16807
16808         * icall.c (ves_icall_Type_GetPacking): New icall.
16809
16810 2004-09-24  Martin Baulig  <martin@ximian.com>
16811
16812         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
16813
16814 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16815
16816         * appdomain.c:
16817         (mono_domain_set): allow setting a domain that is being unloaded.
16818         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
16819         being unloaded.
16820
16821 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
16822
16823         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
16824         the GetCustomAttributes icall.
16825
16826 2004-09-23  Martin Baulig  <martin@ximian.com>
16827
16828         * object-internals.h (MonoReflectionGenericParam): Replaced
16829         'has_ctor_constraint', `has_reference_type' and `has_value_type'
16830         with `guint32 attrs'.
16831
16832 2004-09-23  Martin Baulig  <martin@ximian.com>
16833
16834         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
16835
16836 2004-09-23  Martin Baulig  <martin@ximian.com>
16837
16838         * object-internals.h (GenericParameterAttributes): New enum.
16839
16840 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
16841
16842         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
16843         
16844         * class.c (init_events): Fill out event->other field.
16845
16846         * class.c: Fix warnings.
16847
16848         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
16849
16850 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
16851
16852         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
16853         walk which doesn't supply the IL offset.
16854
16855 2004-09-22  Martin Baulig  <martin@ximian.com>
16856
16857         * reflection.c (mono_reflection_setup_internal_class): If we're
16858         System.ValueType, System.Object or System.Enum, set
16859         `klass->instance_size' and create the vtable.
16860         (mono_reflection_create_internal_class): If we're an enum type,
16861         get the base class from our current corlib.
16862
16863 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
16864
16865         * reflection.h (MonoResolveTokenError): New type.
16866
16867         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
16868         icall.
16869
16870         * icall.c: Add an 'error' argument to the ResolveToken icalls.
16871
16872 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
16873
16874         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
16875         Support also calling constructors, but only for already allocated objects.
16876
16877 2004-09-17  Geoff Norton <gnorton@customerdna.com>
16878
16879         * reflection.c (type_get_qualified_name): If the klass is null
16880         return the typename to avoid a NullRefEx.
16881         (encode_cattr_value): Get the qualified name of the boxed type,
16882         not the underlying enumtype.  Fixes #62984.
16883
16884 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
16885
16886         * marshal.c: Fix problems with previous checkin.
16887
16888 2004-09-21    <vargaz@freemail.hu>
16889
16890         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
16891         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
16892
16893         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
16894
16895 2004-09-21  Geoff Norton <gnorton@customerdna.com>
16896
16897         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
16898         should only return a type for pointers, arrays, and passbyref types.
16899         Fixes bug #63841.
16900
16901 2004-09-21  Martin Baulig  <martin@ximian.com>
16902
16903         * domain.c (mono_debugger_check_runtime_version): New public
16904         function.
16905
16906         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
16907
16908 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
16909
16910         * reflection.c: Added missing sort to the declarative security 
16911         attributes table. MS implementation stops seeing the attributes if the
16912         token number regress in the table (as shown by ildasm and permview).
16913
16914 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
16915
16916         * object-internals.h (MonoReflectionModule): Add 'token' field.
16917         
16918         * reflection.c (mono_reflection_get_token): Add support for Module
16919         and Assembly.
16920         (mono_module_get_object): Set 'token' field.
16921         (mono_module_file_get_object): Set 'token' field.
16922
16923         * icall.c: Add new Assembly and Module icalls.
16924
16925         * appdomain.c: Bump corlib version.
16926
16927 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
16928
16929         * loader.h loader.c class.h class.c: Add helper functions for obtaining
16930         tokens of metadata objects.
16931
16932         * reflection.h reflection.c (mono_reflection_get_token): New function
16933         to obtain the token of a metadata object.
16934
16935         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
16936
16937 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
16938
16939         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
16940         
16941         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
16942
16943 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
16944
16945         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
16946         * object-internals.h: Added 3 MonoArray* members to MonoReflection
16947         AssemblyBuilder to access the permissions set in the class lib.
16948         * reflection.c: Added security attributes encoding step in 
16949         mono_image_build_metadata.
16950         * tabledefs.h: Added new security actions defined in 2.0:
16951         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
16952
16953 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
16954
16955         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
16956         macro parameter.
16957
16958 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
16959  
16960         * locales.c: nullify the ICU_collator member of CompareInfo when it is
16961           finalized. There where random SIGSEVs at program termination, when
16962           an object being finalized was trying to do a string comparison and
16963           the current culture was already finalized.
16964  
16965 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16966
16967         * threads.c: call thread_cleanup before finishing the thread if we get
16968         there.
16969
16970 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
16971
16972         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
16973         assemblies from the parent. Fixes #65665.
16974
16975 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
16976
16977         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
16978         modifiers.
16979
16980 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
16981
16982         * reflection.h: add prototype for mono_get_dbnull_object
16983         * reflection.c: add prototypes for get_default_param_value_blobs 
16984         and mono_get_object_from_blob for fussier compilers
16985
16986 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
16987  
16988         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
16989         false deadlock checks in class initialization.
16990  
16991 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
16992
16993         * image.c (mono_image_addref): Fix comment.
16994
16995         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
16996         possible.
16997
16998 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
16999
17000         * reflection.c (mono_param_get_objects): Modified to return
17001         ParameterInfo.DefaultValue object.
17002
17003         (get_default_param_value_blobs):
17004         (mono_get_object_from_blob):
17005         (mono_get_dbnull_object): New helper routines. 
17006
17007         * object.c (mono_get_constant_value_from_blob): New helper routine
17008         carved out from get_default_field_value ()
17009
17010         * object-internals.h (mono_get_constant_value_from_blob): Added
17011         function declaration.
17012
17013 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
17014
17015         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
17016         referenced assemblies. Fixes #62135.
17017
17018         * exception.h exception.c (mono_get_exception_file_not_found2): New
17019         helper function.
17020
17021 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
17022
17023         * class.h class.c: Add mono_type_get_underlying_type ().
17024
17025 2004-09-09  Geoff Norton <gnorton@customerndna.com>
17026
17027         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
17028         Fix GetTypes() to support dynamically created assemblies.
17029
17030 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
17031
17032         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
17033         
17034         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
17035         previous patch.
17036
17037         * reflection.h reflection.c loader.c: Allow dynamic construction of
17038         pinvoke methods. Fixes #65571.
17039         
17040         * reflection.c (mono_reflection_get_type): Revert previous change since
17041         it causes regressions.
17042
17043 2004-09-08  Martin Baulig  <martin@ximian.com>
17044
17045         * class.c (class_compute_field_layout): Don't call
17046         mono_class_layout_fields() for open generic instances.
17047
17048 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
17049         * threads.c appdomain.c: fix typo in GC macro
17050
17051 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17052
17053         * threads.c: don't call mono_thread_detach() in start_wrapper(),
17054         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
17055
17056 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
17057
17058         * image.c (mono_image_close): Applied patch from 
17059         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
17060         assembly is loaded multiple times from data.
17061         
17062         * image.c (mono_image_open): Fix warning.
17063
17064 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
17065
17066         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
17067         once. Fixes #58334.
17068         
17069         * reflection.c (mono_reflection_create_runtime_class): Initialize
17070         klass->nested_classes. Fixes #61224.
17071
17072 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
17073
17074         * threads.c: sched_yield() on exit, to allow threads to quit.
17075
17076 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
17077
17078         * object.c (mono_unhandled_exception): Remove leftover debug code.
17079
17080 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
17081
17082         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
17083
17084 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
17085
17086         * marshal.c (emit_marshal_array): Really null terminate string arrays.
17087         
17088         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
17089
17090 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
17091
17092         * marshal.c (emit_marshal_array): Null terminate string arrays.
17093         
17094         * marshal.c (raise_auto_layout_exception): Fix warning.
17095
17096         * reflection.c (mono_param_get_objects): Initialize the default value
17097         with DBNull.Value, not null. Fixes #62123.
17098
17099 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
17100
17101         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
17102         throw an exception with a cute explanation.
17103
17104 2004-09-06  Dick Porter  <dick@ximian.com>
17105
17106         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
17107         Close the new process's thread handle, as we don't use it.  The
17108         handle stays around forever otherwise.
17109
17110 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
17111
17112         * object.c (arith_overflow): Fix warning.
17113
17114         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
17115         calling conventions in method refs. Fixes #65352.
17116
17117         * reflection.c: Fix warnings.
17118
17119 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
17120
17121         * icall.c: Add a new icall for Array.Clear
17122
17123 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
17124
17125         * object.c: When allocating an array, we have to throw
17126         an overflow exception if any of the lengths are < 0.
17127
17128 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
17129
17130         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
17131         properly. Also move implementation of string array marshalling to 
17132         managed code. Fixes #42316.
17133
17134 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17135
17136         * assembly.c: provide more information when loading an assembly fails.
17137
17138 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17139
17140         * filewatcher.c: don't expect the development fam package to be
17141         installed.
17142
17143 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
17144
17145         * marshal.c: Make a copy of the signature cookie since it will be
17146         freed by the caller.
17147         
17148         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
17149
17150         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
17151
17152         * metadata.c (mono_metadata_free_marshal_spec): New function to free
17153         marshal specs.
17154
17155         * marshal.c: More refactoring.
17156         
17157         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
17158         smaller functions.
17159
17160 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
17161
17162         * object.c: In mono_message_invoke, fill the output parameter array after
17163           calling the managed method (it was done before the call). This fixes
17164           bug #59299.
17165
17166 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
17167
17168         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
17169         as well.
17170
17171 2004-09-02  Martin Baulig  <martin@ximian.com>
17172
17173         * class.c (mono_class_instance_size): Don't allow generic type
17174         definitions or open generic instances.
17175         (mono_class_array_element_size): If we're a value type, call
17176         mono_class_instance_size() on the original class.
17177
17178         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
17179         handle generic instances.
17180
17181         * mono-debug-debugger.c (write_type): Handle generic instances
17182         like classes.
17183
17184 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
17185
17186         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
17187         the allocation request fails. Fixes #65089.
17188
17189         * object.c (mono_runtime_free_method): Do not call mono_free_method.
17190         
17191         * object.c (mono_runtime_free_method): New function to free a dynamic
17192         method.
17193
17194         * marshal.c (mono_delegate_free_ftnptr): New function to free the
17195         delegate trampoline.
17196
17197         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
17198         with hasthis as dynamic,
17199
17200         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
17201
17202         * domain.c (mono_jit_info_table_remove): New function to remove an
17203         entry from the jit info table.
17204
17205         * class-internals.h (MonoMethod): Add 'dynamic' field.
17206
17207         * loader.c: Fix warnings.
17208
17209 2004-09-01  Martin Baulig  <martin@ximian.com>
17210
17211         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
17212         instead of mono_debugger_lock() because the latter one is a no-op
17213         unless running in the debugger.
17214
17215 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
17216
17217         * class.c (class_compute_field_layout): Classes with auto-layout or
17218         reference fields are not blittable.
17219         
17220 2004-09-01  Dick Porter  <dick@ximian.com>
17221
17222         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
17223         mono_image_get_filename() to get the assembly location.
17224
17225         * icall.c:
17226         * metadata.h: Fix compile warnings
17227
17228 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
17229
17230         * class.c (class_compute_field_layout): System.Object is blittable.
17231
17232         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
17233         as in/out. Fixes #59909.
17234
17235 2004-09-01  Martin Baulig  <martin@ximian.com>
17236
17237         * metadata.h (MONO_TYPE_ISREFERENCE): Call
17238         mono_metadata_generic_inst_is_valuetype() if we're a generic
17239         instance to check whether our underlying type is a reference type.
17240
17241 2004-09-01  Martin Baulig  <martin@ximian.com>
17242
17243         * metadata.c (mono_type_size): If we're a generic instance, call
17244         mono_class_value_size() for value types.
17245
17246 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
17247
17248         * marshal.c: Implement more custom marshalling functionality. Fixes
17249         #64915.
17250
17251 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
17252
17253         * mono-debug.c, debug-mono-symfile.c: add some locking love.
17254
17255 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
17256
17257         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
17258
17259         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
17260
17261         * icall.c: Fix some warnings.
17262
17263         * threads.c (abort_appdomain_thread): Fix unref errors.
17264         (mono_thread_current): Fix THREAD_DEBUG define.
17265
17266 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
17267
17268         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
17269
17270         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
17271
17272 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
17273
17274         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
17275         string arrays.
17276
17277 2004-08-28  Martin Baulig  <martin@ximian.com>
17278
17279         * metadata.c
17280         (mono_metadata_generic_inst_is_valuetype): New public function.
17281
17282         * metadata.h (MONO_TYPE_ISSTRUCT): Call
17283         mono_metadata_generic_inst_is_valuetype() if we're a generic
17284         instance to check whether our underlying type is a valuetype.
17285
17286 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
17287
17288         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
17289         #63768.
17290
17291 2004-08-25  Martin Baulig  <martin@ximian.com>
17292
17293         * loader.c (mono_get_method_from_token): Abstract methods can also
17294         be generic and thus have type parameters.
17295
17296         * metadata-internals.h
17297         (MonoDynamicImage): Added `GPtrArray *gen_params'.
17298
17299         * reflection.c (mono_image_get_generic_param_info): Don't create a
17300         metadata row, just add an entry to the `gen_params' array.
17301         (build_compressed_metadata): Sort the `gen_params' array and then
17302         actually create the metadata.
17303
17304 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17305
17306         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
17307
17308 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
17309
17310         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
17311
17312 2004-08-24  Martin Baulig  <martin@ximian.com>
17313
17314         * class.cs (mono_class_is_subclass_of): Like an interface, a
17315         generic instance also derives from System.Object.
17316
17317 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
17318
17319         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
17320         custom modifiers to be in any order. Fixes #61990.
17321
17322 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
17323
17324         * object.c: Register mono_object_new_fast icall.
17325         
17326         * object.c (mono_class_get_allocation_ftn): Return to calling
17327         mono_object_new_fast, since it seems faster to compute the object 
17328         size in unmanaged code than passing it as a parameter.
17329
17330         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
17331
17332         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
17333         this function with Boehm as the oom handler, so we don't have to check
17334         the result of GC_malloc.
17335
17336         * object.c: Remove checks for oom.
17337
17338         * object.h object.c (mono_class_get_allocation_ftn): New function to
17339         return the icall which can be used to allocate an instance of a given
17340         class. 
17341
17342         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
17343
17344         * class-internals.h: Add 'enabled' field.
17345
17346 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
17347
17348         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
17349
17350 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
17351         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
17352         value 0x0010.
17353
17354 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
17355
17356         * appdomain.c: use the Tls function for appdomain too,
17357         at Zoltan's request. Actually return in mono_context_get
17358
17359         * appdomain.c, profiler.c, threads.c: use __thread
17360
17361 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
17362
17363         * appdomain.c threads.c: Call GC_CreateThread on windows.
17364
17365         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
17366         multiple libraries since this don't work on windows.
17367
17368 2004-08-18  Martin Baulig  <martin@ximian.com>
17369
17370         * class-internals.h
17371         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
17372         MonoMethodHeader.
17373
17374         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
17375         MonoMethodNormal since we also need it for abstract and interface
17376         methods.
17377
17378         * reflection.c
17379         (build_compressed_metadata): Sort the GenericParam table.
17380         (mono_image_create_token): Added `gboolean create_methodspec'
17381         argument; this is false when generating a MethodImpl token.
17382         (reflection_methodbuilder_to_mono_method): Abstract and interface
17383         methods may also have generic parameters.
17384
17385 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
17386
17387         * appdomain.c: thread local alloc
17388
17389 2004-08-17  Martin Baulig  <martin@ximian.com>
17390
17391         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
17392
17393         * icall.c
17394         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
17395         argument.
17396
17397         * class.c (mono_type_get_full_name): New public function.
17398         (mono_type_get_name): Don't include the type arguments.
17399
17400 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
17401
17402         * Makefile.am: Build static versions of libmetadata and libmonoruntime
17403         for inclusion into the mono executable.
17404
17405 2004-08-16  Martin Baulig  <martin@ximian.com>
17406
17407         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
17408         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
17409
17410 2004-08-14  Martin Baulig  <martin@ximian.com>
17411
17412         * class.c (dup_type): Also copy the `byref' field.
17413
17414 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
17415
17416         * reflection.c (create_dynamic_mono_image): Revert the last change 
17417         since it breaks bootstrap.
17418
17419 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
17420
17421         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
17422
17423         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
17424         not free them with g_free.
17425
17426 2004-08-11  Martin Baulig  <martin@ximian.com>
17427
17428         * reflection.c (mono_reflection_setup_internal_class): Also call
17429         mono_class_setup_mono_type() if we already have a `tb->type.type'.
17430
17431 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
17432
17433         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
17434         called during default (first) AppDomain creation. Keep track of
17435         Evidence when loading assemblies.
17436
17437 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
17438
17439         * opcodes.c, opcodes.h: reduce runtime relocations.
17440
17441 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
17442
17443         * culture-info.h, locales.c: fixes and chages to sue the new
17444         optimized format of the locale data.
17445         * culture-info-tables.h: regenerated.
17446
17447 2004-08-06  Geoff Norton <gnorton@customerdna.com>
17448         
17449         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
17450
17451 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
17452
17453         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
17454         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
17455         * domain-internals.h: icall declaration.
17456         * icall.c: icall registration.
17457         * object-internals.h: New fields in MonoAssembly for CAS.
17458
17459 2004-08-05  Duncan Mak  <duncan@ximian.com>
17460
17461         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
17462         CEE_LDELEM_ANY.
17463
17464 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
17465
17466         * reflection.c: fix to deal with object[] arrays in custom ctors
17467         (bug #62550).
17468
17469 2004-08-05  Martin Baulig  <martin@ximian.com>
17470
17471         * class.c (mono_class_array_element_size): Added support for
17472         generic instances and correctly handle "recursive" types.
17473
17474 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
17475
17476         * assembly.c: Fix warnings.
17477
17478 2004-08-04  Martin Baulig  <martin@ximian.com>
17479
17480         * class.c
17481         (mono_type_get_name_recurse): Added `gboolean include_arity'
17482         argument specifying whether or not we should include the generic
17483         arity in the type name.
17484         (_mono_type_get_name): New static function.
17485         (mono_class_setup_vtable): If we're a generic instance, don't
17486         include the generic arity in the names of explicit method
17487         implementations.        
17488
17489 2004-08-03  Martin Baulig  <martin@ximian.com>
17490
17491         * class.c (mono_type_get_name_recurse): Enclose the generic type
17492         arguments in `<', '>'.
17493
17494 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
17495
17496         * gc.c: make GC warning messages use the trace API, they are just
17497         noise to most of the users.
17498
17499 2004-08-03  Martin Baulig  <martin@ximian.com>
17500
17501         * debug-mono-symfile.c (read_string): Correctly read the string.
17502
17503 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
17504
17505         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
17506         
17507         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
17508         icalls.
17509         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
17510
17511 2004-07-30  Martin Baulig  <martin@ximian.com>
17512
17513         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
17514         Reflect latest symbol writer changes.   
17515
17516 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
17517
17518         * object.c: always create an object if null is passed
17519         to Invoke() where a valuetype is expected.
17520
17521 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
17522
17523         * marshal.c (mono_marshal_init): make managed
17524         signatures match native ones better for 64bits.
17525
17526 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17527
17528         * appdomain.c: hack to build correctly the private bin path on windows.
17529         Fixes bug #61991.
17530
17531 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
17532
17533         * assembly.c: Load mscorlib from the correct framework directory
17534           (mono/<version>/mscorlib.dll).
17535         * appdomain.h: Added prototypes for new functions.
17536         * internals.h: Added some prototypes.
17537         * domain.c: When initializing the runtime, get from the executable and
17538           the configuration files the runtime version that the app supports.
17539           Added support methods for reading app.exe.config. Added list of versions
17540           supported by the JIT. Added two new methods: mono_init_from_assembly,
17541           which initializes the runtime and determines the required version from
17542           the provided exe file, and mono_init_version, which initializes
17543           the runtime using the provided version.
17544         * icall.c: Get machine.config from version-specific directory.
17545         * reflection.c: When generating an image, embed the version number
17546           of the current runtime.
17547
17548 2004-07-28  Dick Porter  <dick@ximian.com>
17549
17550         * socket-io.c
17551         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
17552         returned sockaddr size before creating the remote address object.
17553         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
17554         61608.
17555
17556 2004-07-28  Dick Porter  <dick@ximian.com>
17557
17558         * locales.c (string_invariant_compare_char): Fix invariant char
17559         compares between upper and lower cases.  Fixes bug 61458.
17560
17561 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
17562         
17563         * marshal.c: actually cache stelem.ref wrappers.
17564         
17565 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
17566
17567         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
17568         sections and remove the mono_cli_rva_map () function.
17569
17570 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
17571
17572         * debug-mono-symfile.c: fix one more endianess issue, from a patch
17573         by Geoff Norton (<gnorton@customerdna.com>).
17574
17575 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
17576
17577         * class.c: fix class loads for pointer types (typeof(int) !=
17578         typeof(int*)).
17579
17580 2004-07-27  Martin Baulig  <martin@ximian.com>
17581
17582         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
17583         reading the debugging information from an external ".mdb" file.
17584
17585 2004-07-24  Martin Baulig  <martin@ximian.com>
17586
17587         * reflection.c (mono_image_get_type_info): Only write a class
17588         layout entry if we actually have a size or a packing size.
17589
17590 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
17591
17592         * reflection.c (type_get_fully_qualified_name): 
17593         insert cast to get type checking of ?: with non-gcc compilers
17594
17595 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
17596
17597         * rand.c: use g_getenv for both lookups of
17598         MONO_EGD_SOCKET
17599
17600 2004-07-17  Martin Baulig  <martin@ximian.com>
17601
17602         * reflection.c (mono_reflection_bind_generic_method_parameters):
17603         Set `gmethod->reflection_info'.
17604
17605 2004-07-17  Martin Baulig  <martin@ximian.com>
17606
17607         * class.c (mono_class_create_from_typedef): Insert the newly
17608         created class into the hash table before computing the interfaces
17609         since we could be called recursively.
17610
17611 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
17612
17613         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
17614         function to implement stelem.ref in managed code
17615         * class-internals.h, debug-helpers.c: a new wrapper type
17616         for the above.
17617
17618 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
17619
17620         * gc.c: allow GC handles to work even when no GC is compiled in.
17621         Fix part of bug #61134 (GetAddrOfPinnedObject).
17622
17623 2004-07-13  Peter Williams  <peter@newton.cx>
17624  
17625         * process.c (complete_path): Make sure we don't attempt to execute
17626         directories.
17627  
17628 2004-07-12  Geoff Norton <gnorton@customerdna.com>
17629
17630         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
17631           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
17632           and will add/subtract the hour if needed
17633
17634 2004-07-12  Martin Baulig  <martin@ximian.com>
17635
17636         * reflection.c (mono_field_get_object): If we have
17637         `field->generic_info', take the attributes from
17638         `field->generic_info->generic_type'.    
17639
17640 2004-07-12  Martin Baulig  <martin@ximian.com>
17641
17642         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
17643         This function must be called before initializing the runtime.
17644         (mono_debug_init_1): New function; call this after initializing
17645         the runtime, but before loading the assembly.  It tells the
17646         debugger to load corlib and the builtin types.
17647
17648         * mono-debug-debugger.c: Did some larger changes in the debugging
17649         code; support recursive class declarations, make sure we actually
17650         add all classes.
17651
17652 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17653
17654         * debug-helpers.c: undo my previous patch and fixed the real issue in
17655         ../mini/exceptions-x86.c
17656
17657 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17658
17659         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
17660         when no HOME env. variable was set and a NullRef was thrown in a .cctor
17661         called from other .cctors.
17662
17663 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
17664
17665         * loader.c: Removed the mono_loader_wine_init hack now that we are
17666         doing a managed version of Windows.Forms.
17667
17668 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
17669
17670         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
17671         threadpool.c, threads.c: remove static data from rootset.
17672
17673 2004-07-09  Dick Porter  <dick@ximian.com>
17674
17675         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
17676         Don't do any more processing if the matched length was 0.  It was
17677         increasing the size of the string before.  Fixes bug 61167.
17678
17679 2004-07-09  Dick Porter  <dick@ximian.com>
17680
17681         * socket-io.h:
17682         * socket-io.c
17683         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
17684         Add support for SO_PEERCRED if its available.
17685
17686 2004-07-09  Peter Bartok <pbartok@novell.com>
17687         * loader.c: winelib.exe.so error message is now only displayed if
17688         MONO_DEBUG is set. To help us avoid questions when people are trying
17689         out the new Managed.Windows.Forms.
17690
17691 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
17692
17693         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
17694         for isinst and castclass wrappers.
17695
17696         * class-internals.h icall.c: Move registration and lookup of JIT icalls
17697         to libmetadata from the JIT, so they could be used by the marshalling
17698         code and the interpreter.
17699
17700         * marshal.c: Register marshalling related JIT icalls here instead of
17701         in mini.c. Use CEE_MONO_ICALL instead of the family of 
17702         CEE_MONO_PROC<x> opcodes to call marshalling functions.
17703
17704         * metadata.h: Remove unneeded marshalling conversions.
17705
17706         * opcodes.c: Update for new opcodes.
17707         
17708 2004-07-08  Martin Baulig  <martin@ximian.com>
17709
17710         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
17711         (mono_debug_get_domain_data): Make this function static.
17712
17713 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
17714
17715         * gc.c, object.h: add nice GC handle API for embedders.
17716
17717 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
17718
17719         * reflection.c: more changes for the new api
17720
17721         * object.c: When we reflect on a field w/ a constant value, it
17722         will not have a memory location, so we must access metadata. Also,
17723         allow easier reading of strings so that we can read them from
17724         the constant data.
17725
17726         * class.c (mono_class_layout_fields): no need for literal fields here.
17727
17728         * class-internals.h: api changes for const fields
17729
17730         * icall.c (ves_icall_get_enum_info): use new apis for const fields
17731
17732 2004-07-06  Martin Baulig  <martin@ximian.com>
17733
17734         * mono-debug.h: Increment version number to 44.
17735
17736         * mono-debug.c (mono_debug_add_wrapper): The second argument is
17737         now a gpointer, rewrote this whole method.
17738
17739         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
17740         function.  Add information about the wrapper in a new "misc table".
17741
17742         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
17743         for the new misc table.
17744
17745 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
17746
17747         * metadata-internals.h image.c: Add a cache for helper signatures.
17748
17749         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
17750
17751 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
17752
17753         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
17754         delegates from a delegate. Fixes #61033.
17755         
17756         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
17757         marshalling of stringbuilder arrays. Fixes #59900.
17758
17759 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
17760
17761         * icall.c: Add EnumBuilder:setup_enum_type icall.
17762
17763 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
17764
17765         * icall.c: Added a new icall for the property version of
17766         OffsetOfStringData.
17767
17768 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
17769
17770         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
17771         it has a constant size across platforms.
17772
17773         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
17774         stack trace.
17775
17776 2004-06-29  Martin Baulig  <martin@ximian.com>
17777
17778         * mono-debug.c (mono_debug_add_method): Protect the whole function
17779         in mono_debugger_lock(), not just parts of it.
17780
17781 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
17782
17783         * reflection.c: make sure padding bytes in heaps are zeroed.
17784
17785 2004-06-24  David Waite  <mass@akuma.org>
17786
17787         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
17788         image.c, loader.c, locales.c, marshal.c, metadata.c,
17789         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
17790         string-icalls.c, threads.c: change to C90-style comments from C99 /
17791         C++ -style
17792
17793 2004-06-24  Dick Porter  <dick@ximian.com>
17794
17795         * threads.c
17796         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
17797         return createdNew.  Fixes bug 60412.
17798
17799         * threads-types.h: 
17800         * icall.c: Add createdNew parameter to CreateMutex icall
17801
17802 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
17803
17804         * reflection.c, object-internals.h: save default value in params.
17805
17806 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17807
17808         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
17809         no need to build a new path combining that with the application base.
17810         Fixes bug #60442.
17811
17812 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
17813
17814         * reflection.c: fixed minor standard compliance issues.
17815
17816 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
17817
17818         * reflection.c: fixed issue with encoding some custom attributes
17819         (arrays in properties and fields, bug #60411).
17820
17821 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17822
17823         * reflection.c: fix start address when copying the public key token.
17824
17825 2004-06-23  Martin Baulig  <martin@ximian.com>
17826
17827         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
17828         the `exc' object in a static object to put it into the GC's root set.
17829
17830 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
17831
17832         * reflection.c: make mono_reflection_setup_internal_class ()
17833         callable a second time to setup a new parent class.
17834
17835 2004-06-23  Dick Porter  <dick@ximian.com>
17836
17837         * threads.c: Check for WAIT_IO_COMPLETION return values.
17838
17839 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
17840
17841         * appdomain.c: Removed the g_free on the public key token. Now copy 
17842         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
17843         * assembly.c: Added public key token string value when loading 
17844         assemblies. Fix bug #60439.
17845         * icall.c: Added missing informations (like public key) in 
17846         GetReferencedAssemblies. Fix #60519.
17847         * image.h: Changed definition for public key token from const char*
17848         public_tok_value to guchar public_key_token [17];
17849         * reflection.c: Updated for changes to public key token.
17850
17851 2004-06-22  Lluis Sanchez Gual
17852
17853         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
17854         for the field in base classes.
17855
17856 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
17857
17858         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
17859         mark headers as not supported, they are installed only for use by the
17860         debugger.
17861
17862 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
17863
17864         * *.c, *.h: avoid namespace pollution in public headers.
17865
17866 2004-06-21  Martin Baulig  <martin@ximian.com>
17867
17868         * exception.c (mono_get_exception_security): It's in
17869         "System.Security", not in "System".
17870
17871         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
17872         the exception classes.
17873
17874 2004-06-21  Martin Baulig  <martin@ximian.com>
17875
17876         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
17877         Protect the exception object from being finalized.
17878
17879 2004-06-21  Martin Baulig  <martin@ximian.com>
17880
17881         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
17882         public function.
17883
17884 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
17885
17886         * reflection.c: Load the assembly in mono_reflection_type_from_name,
17887         if it was not loaded before. Fix parts of #60439.
17888
17889 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
17890
17891         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
17892         code that was broken since Ben's change: wrappers are now
17893         dependent on the method signature only again.
17894
17895 2004-06-21  Martin Baulig  <martin@ximian.com>
17896
17897         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
17898         added interface support.
17899
17900 2004-06-21  Martin Baulig  <martin@ximian.com>
17901
17902         * class.c (mono_vtable_get_static_field_data): New public method.
17903
17904 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
17905
17906         * filewatcher.c : Windows build fix to be compliant with API changes.
17907
17908 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
17909
17910         * class.h, class.c: more accessors.
17911         * metadata.h, metadata.c: prepare for hiding MonoType and
17912         MonoMethodSignature: people should use the accessors from now on
17913         outside of the tree.
17914
17915 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
17916
17917         * *.c, *.h: more API cleanups.
17918
17919 2004-06-18  Jackson Harper  <jackson@ximian.com>
17920
17921         * assembly.c: Trace loading assemblies.
17922         * loader.c: Trace loading native libraries.
17923         * mono-config.c: Trace loading config files.
17924         
17925 2004-06-18  Dick Porter  <dick@ximian.com>
17926
17927         * locales.c: Tell ICU the lengths of strings, it can cope with
17928         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
17929
17930 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
17931
17932         * image.c: swapped name/filename;
17933
17934 2004-06-18  Martin Baulig  <martin@ximian.com>
17935
17936         * mono-debug-debugger.c (write_class): Write the parent class at
17937         the end of the header.
17938
17939 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
17940
17941         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
17942
17943 2004-06-17  Raja R Harinath  <rharinath@novell.com>
17944
17945         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
17946         (bundle_obj): New conditional define.
17947         (BUILT_SOURCES): Remove.
17948         ($(bundle_srcs)): Make parallel-make safe.
17949         (libmonoruntime_la_LIBADD): Make unconditional.
17950         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
17951         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
17952
17953 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
17954
17955         * culture-info-tables.h: It was inconsistent with the latest
17956           supp info files.
17957
17958 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
17959
17960         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
17961         be loaded.
17962
17963         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
17964         with gcc 2.95.
17965
17966 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
17967
17968         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
17969         cleaned up public header threads.h.
17970
17971 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
17972
17973         * Makefile.am, *.c, *.h: more API cleanups.
17974
17975 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
17976
17977         * Makefile.am: removed monosn from compilation.
17978         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
17979         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
17980         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
17981         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
17982         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
17983         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
17984
17985 2004-06-15  Jackson Harper  <jackson@ximian.com>
17986
17987         * assembly.c: Make locales lower case when searching the GAC for
17988         assemblies. gacutil will always make locales lowercase when
17989         installing so this effectively makes them case insensitive.
17990         
17991 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
17992
17993         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
17994         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
17995           parameter which allows to choose whether the wait can be interrupted or 
17996           not. Also added the method mono_monitor_enter(), which locks the monitor
17997           using an infinite wait and without allowing interruption.
17998           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
17999           interrupted.
18000         * object.h: Added new fields in MonoThread. suspend_event holds the event
18001           used to susped/resume the thread. synch_lock is the lock object to use for
18002           modifying the thread state.
18003         * threads.c: Use the new synch_lock object for locking, instead of "this",
18004           which can generate deadlocks.
18005           Moved thread state change in Thread.Sleep and Thread.Join from managed
18006           to unmanaged code. This avoids a deadlock when the thread was suspended
18007           just after acquiring the thread lock.
18008           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
18009           Implemented Thread.Suspend using an event instead of ThreadSuspend,
18010           which is not fully implemented in the io-layer.
18011         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
18012
18013 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
18014
18015         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
18016         threads-types.h: more API cleanups.
18017
18018 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
18019
18020         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
18021         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
18022         threadpool.c, threads.c: first pass at the exported API cleanup.
18023
18024 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
18025
18026         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
18027
18028 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18029
18030         * icall.c: added internalGetHome.
18031
18032 2004-06-14  Dick Porter  <dick@ximian.com>
18033
18034         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
18035         possible to return successfully when '.' or '..' were the only
18036         entries in a directory, but were skipped.  The MonoIOStat was not
18037         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
18038         Fixes bug 59574.
18039
18040 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
18041
18042         * reflection.c: make binaries run on .Net 1.1 by default.
18043
18044 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
18045
18046         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
18047
18048 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
18049
18050         * marshal.c: keep track of struct size with explicit layout
18051         (bug #59979).
18052
18053 2004-06-12  Martin Baulig  <martin@ximian.com>
18054
18055         * mono-debug-debugger.c: Comment out a debugging g_message().
18056
18057 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
18058
18059         * reflection.c, reflection.h: do not free custom attrs that are cached.
18060         * icall.c: use braces to make code clearer.
18061
18062 2004-06-11  Martin Baulig  <martin@ximian.com>
18063
18064         * class.h (MonoInflatedField): New type.
18065         (MonoClassField): Replaced `MonoType *generic_type' with
18066         `MonoInflatedField *generic_info'.
18067
18068         * icall.c
18069         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
18070
18071 2004-06-11  Martin Baulig  <martin@ximian.com>
18072
18073         * reflection.c (mono_image_create_method_token): Correctly encode
18074         varargs methods.
18075
18076 2004-06-11  Martin Baulig  <martin@ximian.com>
18077
18078         * metadata.c (mono_metadata_parse_method_signature): When parsing
18079         a MethodDef which has VarArgs, also set sentinelpos if we don't
18080         have any parameters.
18081
18082 2004-06-11  Martin Baulig  <martin@ximian.com>
18083
18084         * verify.c (mono_method_verify): In CEE_CALL, use
18085         mono_method_get_signature() to get the method's signature, unless
18086         we're a PInvoke method.
18087
18088 2004-06-10  Jackson Harper  <jackson@ximian.com>
18089
18090         * assembly.c: Use <path>/lib/mono/gac for the extra paths
18091         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
18092         logical name as the supplied path is just a prefix to the gac not
18093         the direct path to it.
18094         
18095 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
18096
18097         * reflection.c: make the token for a created method match
18098         the token of the MethodBuilder it was created from
18099         (IKVM requires this behaviour now).
18100
18101 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
18102
18103         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
18104         reflection.c, socket-io.c: leak fixes.
18105
18106 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
18107
18108         * icall.c: handle sentinel pos in vararg methods in position different
18109         from 0.
18110
18111 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18112
18113         * culture-info-tables.h: freshly generated.
18114
18115 2004-06-09  Martin Baulig  <martin@ximian.com>
18116
18117         * loader.c (mono_get_method_constrained): Call `mono_class_init
18118         (constrained_class)'.   
18119
18120 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
18121
18122         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
18123         any methods. Fixes #59629.
18124
18125 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
18126
18127         * culture-info-tables.h: reflecting locale-builder updates.
18128
18129 2004-06-08  Dick Porter  <dick@ximian.com>
18130
18131         * object.h:
18132         * locales.c: Fixed compile warnings, including a real bug in
18133         CompareInfo_internal_compare.
18134         
18135 2004-06-08  Dick Porter  <dick@ximian.com>
18136
18137         * locales.c
18138         (ves_icall_System_Globalization_CompareInfo_internal_index):
18139         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
18140         Double-check the resuls of usearches, because ICU currently
18141         ignores most of the collator settings here.  Fixes bug 59720.
18142         
18143 2004-06-08  Dick Porter  <dick@ximian.com>
18144
18145         * locales.c
18146         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
18147         Fix memory leak and segfault-causing typo.  No idea how this one
18148         lasted so long without being noticed.
18149
18150 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
18151
18152         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
18153         any methods. Fixes #59629.
18154
18155 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18156
18157         * assembly.c:
18158         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
18159         own the critical section before). Removed dead code (that's done
18160         in the preload hook).
18161
18162         (mono_assembly_load_with_partial_name): call the preload hook.
18163
18164 2004-06-08  Martin Baulig  <martin@ximian.com>
18165
18166         * metadata.c (mono_metadata_signature_alloc): Default
18167         `sentinelpos' to -1.
18168
18169         * reflection.c (mono_image_get_array_token): Likewise.
18170
18171 2004-06-08  Martin Baulig  <martin@ximian.com>
18172
18173         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
18174
18175         * metadata.c (mono_metadata_parse_method_signature): When parsing
18176         a MethodDef which has VarArgs, set sentinelpos.
18177
18178         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
18179         `gint16' since we're using -1 for non-varargs methods.
18180
18181         * reflection.c
18182         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
18183         (method_encode_signature): Added varargs support.
18184         (method_builder_encode_signature): Likewise.
18185         (mono_image_get_varargs_method_token): New static method.
18186         (mono_image_create_method_token): New public method; this is
18187         called via an icall instead of mono_image_create_token() when
18188         calling a varargs method.       
18189
18190 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
18191
18192         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
18193
18194 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
18195
18196         * culture-info-tables.h : Reflecting the latest locale-builder that
18197           fixed empty array representation ({} to {0}).
18198
18199 2004-06-07  Jackson Harper  <jackson@ximian.com>
18200
18201         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
18202         looking up extra gac paths. This allows MONO_GAC_PATH to act
18203         exactly like a prefix.
18204         
18205 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
18206
18207         * reflection.c (mono_reflection_type_from_name): Make a copy of the
18208         type name before modifying it. Fixes #59405.
18209
18210 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
18211
18212         * culture-info.h: added fields for "all datetime patterns".
18213         * locales.c: (  ves_icall_System_Globalization_CultureInfo
18214           _construct_datetime_format ()): fill xxx_patterns fields.
18215         * object.h: added fields for "all datetime patterns" to
18216           MonoDateTimeFormatInfo.
18217         * culture-info-tables.h: reflecting locale-builder updates.
18218
18219 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
18220
18221         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
18222         the event has no add and remove methods. Fixes #59629.
18223
18224 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
18225
18226         * object.c: Fixed possible integer overflow when allocating large
18227         strings.
18228
18229 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
18230
18231         * culture-info-tables.h: reflecting locale-builder updates.
18232
18233 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
18234
18235         * culture-info-tables.h: reflecting locale-builder updates.
18236
18237 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
18238
18239         * culture-info-tables.h: reflecting locale-builder updates.
18240
18241 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
18242
18243         * threads.c: Made Thread.Sleep abortable.
18244
18245 2004-06-02  Martin Baulig  <martin@ximian.com>
18246
18247         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
18248
18249         * debug-mono-symfile.h: Bumped symbol file version number to 37.
18250
18251 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
18252
18253         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
18254
18255 2004-05-30  Jackson Harper  <jackson@ximian.com>
18256
18257         * reflection.c: Do not hardcode assembly versions or public key
18258         tokens anymore. All of this except the corlib section was dead
18259         code anyways.
18260         
18261 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
18262
18263         * object.c (mono_runtime_invoke_array): Automatically create boxed
18264         objects for byref valuetypes if needed. Fixes #59300.
18265         
18266         * object.c (mono_method_return_message_restore): Handle 
18267         MONO_TYPE_OBJECT as well.
18268
18269 2004-05-28  Jackson Harper  <jackson@ximian.com>
18270
18271         * reflection.c: The modified type encoding was causing build
18272         problems. Reverted for now.
18273         
18274 2004-05-28  Jackson Harper  <jackson@ximian.com>
18275
18276         * reflection.c/h: Take an assembly ref so that we dont create
18277         fully qualified names when encoding types in the same assembly as
18278         the custom attribute being emitted.
18279         * appdomain.c: Increment version number.
18280         
18281 2004-05-26  Duncan Mak  <duncan@ximian.com>
18282
18283         * icall.c
18284         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
18285         Set the full version number (major, minor, build, revision).
18286
18287 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
18288
18289         * marshal.c (emit_struct_conv): increment src/dst after blit
18290         (mono_marshal_get_managed_wrapper,
18291         mono_marshal_get_native_wrapper): make sure we have marshalling
18292         info before marshalling params (info computation affects
18293         blittable)
18294
18295         * class.c (class_compute_field_layout): correctly deal with
18296         blittable
18297         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
18298         value types (as per what windows dows by default)
18299         (mono_class_setup_mono_type): System.ValueType is blittable
18300         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
18301         blittable
18302
18303         * marshal.c (mono_marshal_load_type_info): flag types  as
18304         non-blittable if the native layout doesn't match the managed
18305         layout
18306
18307 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18308
18309         * appdomain.c: don't add stuff in the private search path that is
18310         above the application base. If application base is not set, there's
18311         no private search path.
18312
18313 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
18314
18315         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
18316         byref struct arguments in native->managed marshalling.
18317
18318 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
18319
18320         * marshal.c (mono_marshal_get_runtime_invoke): correctly
18321         cache methods using signature (special case for methods
18322         that are value type or string class)
18323         
18324         * image.c (mono_image_close): clean up allocated GSList's
18325         in runtime_invoke_cache.
18326
18327 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18328
18329         * mono-config.c: set the correct path for mono_cfg_dir on windows when
18330         there's no MONO_CFG_DIR environment variable defined.
18331
18332 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18333
18334         * threads.c: windows version must be >= 0x0500 to include OpenThread.
18335
18336 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
18337
18338         * threadpool.c: Really wait for 500ms after the async call, even if the wait
18339           is interrumped.
18340         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
18341           before waiting for it, and call CloseHandle after the wait to unref it.
18342           This will make sure that handles are not disposed too early.
18343
18344 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18345
18346         * appdomain.c:
18347         * appdomain.h:
18348         * icall.c: removed
18349         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
18350         needed now.
18351
18352         * object.c: se the application_base only for the domain that runs
18353         Main. Fixes bug #59216,
18354
18355 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18356
18357         * appdomain.c:
18358         * object.c: only the domain in which Main is run have
18359         SetupInformation.ConfigurationFile set, so moved a few lines from
18360         appdomain.c to object.c.
18361
18362 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18363
18364         * appdomain.c: we tried to load [name].(dll|exe), but according
18365         to bug #57710, we must also try [culture]/[name].(dll|exe) and
18366         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
18367         There's a test case attached to bug #58922.
18368
18369 2004-05-27  Dick Porter  <dick@ximian.com>
18370
18371         * icall.c:
18372         * file-io.c: Implemented icalls for locking and unlocking regions
18373         in a file.
18374         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
18375         FALSE on error (fixes both compiler warning and real bug.)
18376
18377 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
18378
18379         * culture-info-tables.h: reflecting locale-builder updates.
18380
18381           (Added missing ChangeLog entry for 05/26)
18382
18383 2004-05-27  Jackson Harper  <jackson@ximian.com>
18384
18385         * locales.c: Fix some cut and paste errors.
18386         
18387 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18388
18389         * mono-config.c: set the correct path for config. directory on windows.
18390
18391 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
18392
18393         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
18394           on win32.
18395
18396 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
18397
18398         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
18399         from pinvoke functions.
18400         
18401         * marshal.c (mono_ftnptr_to_delegate): Implement this.
18402
18403 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
18404
18405         * culture-info-tables.h: reflecting locale-builder updates.
18406
18407 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
18408
18409         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
18410         #59086.
18411
18412 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
18413
18414         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
18415         * icall.c: Modified icalls for RNG.
18416         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
18417         Windows (CryptoAPI).
18418
18419 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
18420
18421         * locales.c: Fix build.
18422
18423 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
18424
18425         * culture-info-tables.h: reflecting locale-builder updates.
18426
18427 2004-05-25  Jackson Harper  <jackson@ximian.com>
18428
18429         * locales.c: When creating the current culture use the $LANGs
18430         specific culture. So DateTimeFormat and NumberFormat entries are created.
18431         
18432 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
18433
18434         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
18435         a char array as parameter.
18436
18437 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
18438
18439         * image.c: In mono_image_open(), always use an absolute path name to
18440           look for already loaded images.
18441
18442 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
18443
18444         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
18445         missing in the windows build (like older cygwin include files).
18446
18447 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
18448
18449         * icall.c: Fixed check for possible integer overflow in Buffer_
18450         BlockCopy icall. Replaced comments style // by /* */.
18451
18452 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
18453
18454         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
18455         
18456         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
18457         check after MONO_VTADDR. Fixes pinvoke2.exe.
18458
18459         * marshal.h marshal.c metadata.h: Add beginnings of support for
18460         ftnptr -> delegate marshalling.
18461
18462 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
18463
18464         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
18465         * threads.c: Fix warnings.
18466
18467 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
18468
18469         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
18470         * icall.c: Registered icalls for Suspend and Resume.
18471         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
18472           Thread.Abort.
18473         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
18474         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
18475         * process.c: Use WaitForSingleObjectEx.
18476         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
18477           checkpoints.
18478         * threads.c, threads.h: Make use of new Ex wait methods. Improved
18479           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
18480           for Suspend and Resume. Added new mono_thread_stop, used for stoping
18481           background threads. Added basic support for Abort in Windows.
18482           Start new threads using a managed delegate invoke wrapper. This wrapper
18483           has an interruption checkpoint that is needed since an interruption
18484           can be requested before the thread leaves the unmanaged code that starts 
18485           the thread.
18486         * marshal.c: Added interruption checkpoint after every native call, and
18487           also before managed calls for wrappers called from unmanaged code to
18488           go into managed code.
18489         * object.h: Added new field in MonoThread to keep track of interruption
18490           requests.
18491
18492 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
18493
18494         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
18495         calls.
18496
18497 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18498
18499         * appdomain.c:
18500         * assembly.c:
18501         * gc.c:
18502         * locales.c:
18503         * mono-config.c:
18504         * rand.c: getenv -> g_getenv (windows!)
18505
18506         * process.c: complete_path is also used on non-windows platforms.
18507
18508 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18509
18510         * icall.c: new signature for Process_Start.
18511
18512         * process.[ch]: new signature for Process_Start. If we're on windows
18513         and UseShellExecute is false, we have to search for the program by
18514         ourselves if we don't get a full path.
18515
18516 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
18517
18518         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
18519         marshalling and call CleanUpNativeData if needed. Fixes #58646.
18520
18521 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18522
18523         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
18524         Fixes bug #58373.
18525
18526 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18527
18528         * process.c: use double quotes to quote program name and arguments on
18529         windows. Fixes bug #58575.
18530
18531 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18532
18533         * file-io.c: don't return "." and ".." when using windows Find*File.
18534
18535 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
18536
18537         * marshal.c: Don't pass wrappers to message init because method 
18538         addressed used to lookup metadata. part of remoting[2|3] fix.
18539
18540 2004-05-15  Jackson Harper  <jackson@ximian.com>
18541
18542         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
18543         path is essentially the same as MONO_PATH except that it points to
18544         GACs instead of lib directories.
18545         * loader.h: The user gac is gone so we dont need function to
18546         enable/disable it.
18547         * mono-config.c: user gac option is now gone.
18548         
18549 2004-05-15  Jackson Harper  <jackson@ximian.com>
18550
18551         * culture-info.h: Make defines more consistent, add calendar data
18552         to the culture info table.
18553         * culture-info-tables.h: Add basic calendar data. Basically
18554         everyone gets default gregorian until all the data is
18555         updated.
18556         * locales.c: Use the new consistent defines. Set calendar data for
18557         culture info objects.
18558         * object.h: add a field for calendar data to CultureInfo
18559         
18560 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
18561
18562         * image.c: image->runtime_invoke_cache is keyed on signatures now.
18563         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
18564         a signature.
18565         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
18566         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
18567         an extra param that is the pointer of the method to invoke. The IL for
18568         the invoke method is no longer specific to the method, but to the
18569         signature of the method. Thus, we can share the same code for multiple
18570         methods. This reduces the number of methods that have to be compiled.
18571
18572 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
18573
18574         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
18575
18576         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
18577
18578         * icall.c: Optimize Buffer.BlockCopy.
18579
18580 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18581
18582         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
18583         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
18584         quote). Changed them to "MMMM yyyy".
18585
18586 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
18587
18588         * rand.c
18589         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
18590
18591 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
18592
18593         * reflection.h: Updated after changes to managed structures.
18594
18595         * appdomain.c: Bump corlib version.
18596
18597 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18598
18599         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
18600         windows.
18601
18602 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18603
18604         * Makefile.am: link to ../os/libmonoos.la on windows.
18605
18606         * assembly.c:
18607                 -If MONO_DEBUG, warn about non-existing directories in
18608                 MONO_PATH.
18609                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
18610                 compile time variable.
18611                 -Removed init_default_path and call mono_set_rootdir from
18612                 libmonoos.a instead (windows only).
18613
18614         * assembly.h: declare mono_assembly_getrootdir().
18615
18616         * domain.c:
18617         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
18618
18619         * loader.c: s/getenv/g_getenv/
18620
18621 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
18622
18623         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
18624
18625         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
18626
18627         * metadata.h: Add new marshalling conversions.
18628
18629         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
18630         function.
18631
18632         * reflection.c (mono_reflection_get_type): Lookup the type in all
18633         modules of a multi-module assembly. Fixes #58291.
18634
18635 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
18636
18637         * threads.c: Before aborting a background, set the StopRequested
18638         state.  This avoids throwing the Abort exception.
18639         In mono_thread_manage, don't continue with the shutdown until all
18640         aborted threads have actually stopped.
18641
18642 2004-05-10  Jackson Harper  <jackson@ximian.com>
18643
18644         * locales.c: Remove the modifier from culture names.
18645         
18646 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18647
18648         * Makefile.am: monosn is not installed any more. It has been deprecated
18649         in favor of sn.
18650
18651 2004-05-07  Jackson Harper  <jackson@ximian.com>
18652
18653         * locales.c
18654         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
18655         Fix array construction, add bailout if the length is 0.
18656
18657 2004-05-07  Dick Porter  <dick@ximian.com>
18658
18659         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
18660         machine doesn't have a DNS entry.  Patch by Urs Muff
18661         (umuff@quark.com), fixes bug 57928.
18662
18663 2004-05-06  Jackson Harper  <jackson@ximian.com>
18664
18665         * reflection.c: Handle null PublicTokens properly. alloc mem for
18666         assembly names culture so we dont crash when freeing it.
18667         
18668 2004-05-06  Jackson Harper  <jackson@ximian.com>
18669
18670         * assembly.c: Check the usergac when loading with partial names.
18671         
18672 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
18673
18674         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
18675         does nothing for now (not required for Linux/Windows) but the class
18676         library can call it (and a newer or modified runtime could need it).
18677         * icall.c: Registred icall.
18678
18679 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18680
18681         * loader.c: prints a message on module loading error we set MONO_DEBUG
18682         environment variable.
18683
18684 2004-05-05  Jackson Harper  <jackson@ximian.com>
18685
18686         * appdomain.c: Handle PublicKeyToken=null properly.
18687         
18688 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
18689
18690         * environment.c|h: Added icall ves_icall_System_Environment_
18691         GetOSVersionString to get the current OS version as a string.
18692         * icall.c: Registred icall.
18693
18694 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
18695
18696         * object.c: in mono_object_get_virtual_method(), take into account that
18697         non-virtual methods don't have a slot in the vtable. Check needed when
18698         the object is a proxy.
18699
18700 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
18701
18702         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
18703         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
18704
18705         * object.c (mono_class_compute_gc_descriptor): Fix warning.
18706
18707         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
18708         passed when a valuetype is expected.
18709
18710         * object.c (mono_unhandled_exception): Only set the exit code if the
18711         exception happens in the main thread. Fixes thread5.exe.
18712
18713         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
18714         invalid names. Fixes #58047.
18715
18716 2004-05-03  Jackson Harper  <jackson@ximian.com>
18717
18718         * assembly.c: This line was committed accidently and is unneeded.
18719         
18720 2004-05-03  Jackson Harper  <jackson@ximian.com>
18721
18722         * icall.c: Add new icall for Assembly::LoadWithPartialName
18723         * assembly.c/.h: new function that probes the GAC to load partial
18724         assembly names by Paolo Molaro.
18725         
18726 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18727
18728         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
18729         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
18730         (type_get_fully_qualified_name): Added PublicKeyToken when building a
18731         full type name.
18732
18733 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18734
18735         * appdomain.c: fixed check for 'neutral' culture and removed warning.
18736         * reflection.c: fix bug when parsing a full type name and Version is not
18737         the last thing in the string.
18738
18739 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
18740
18741         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
18742         crashes when it is freed.
18743
18744 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18745
18746         * assembly.c: print the compat warning to stderr.
18747
18748 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
18749
18750         * assembly.c (mono_assembly_load_references): Add a compatibility
18751         hack to run old applications that might be still referencing the
18752         3300-based assemblies, only do this for System.xxx.
18753
18754 2004-05-01  Jackson Harper  <jackson@ximian.com>
18755
18756         * appdomain.c: If the culture is neutral we set it to "".
18757         
18758 2004-04-29  Jackson Harper  <jackson@ximian.com>
18759
18760         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
18761
18762 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
18763  
18764         * string-icalls.c: added low overhead function for copying chars
18765         * icall.c: added needed icall for the above function
18766  
18767 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18768
18769         * icall.c: fix return value of get_global_assembly_cache.  Implemented
18770         Environment.GetLogicalDrives.
18771
18772 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
18773
18774         * rand.c: try and talk to egd or prngd
18775         for random bytes if opening devices fail.
18776
18777 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
18778
18779         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
18780         alignment for the type using the native alignment of its members 
18781         instead of using klass->min_align.
18782
18783         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
18784
18785 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18786
18787         * file-io.c:
18788         * socket-io.c: added check for sys/aio.h.
18789
18790 2004-04-28  Dick Porter  <dick@ximian.com>
18791
18792         * threads.c: Don't abort a thread thats already aborting, when
18793         terminating everything.
18794
18795 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18796
18797         * icall.c: added 2 new async calls for Socket.
18798
18799         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
18800         IO on *nix systems.
18801
18802         * threadpool.c: removed unused variable.
18803
18804 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
18805
18806         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
18807
18808 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
18809
18810         * locales.c: put back string_invariant_tolower () and
18811         string_invariant_toupper ().
18812
18813 2004-04-26 David Waite <mass@akuma.org>
18814
18815         * file-io.h:
18816         * socket-io.h:
18817         * threads.h:
18818         * unicode.h: remove comma from end of enumeration declarations
18819
18820 2004-04-26 David Waite <mass@akuma.org>
18821
18822         * debug-mono-symfile.h:
18823         * decimal.c:
18824         * mono_debug.h:
18825         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
18826
18827
18828 2004-04-26  Jackson Harper  <jackson@ximian.com>
18829
18830         * appdomain.c: Increment version number.
18831         
18832 2004-04-26  Jackson Harper  <jackson@ximian.com>
18833
18834         * appdomain.c: Set assembly references public token value when
18835         PublicKeyToken is specified, not the hash_value. Free public token
18836         values when free assembly name data. Previously the public key
18837         token was hex decoded, however we are using hex encoded public key
18838         tokens, so this is not neccasary.
18839         * assembly.c: Lookup assemblies in the gac if their public token
18840         value is set. Add function to allow enabling user gac
18841         lookups. Specify whether or not the assembly was loaded from the
18842         GAC. Compare full assembly names when checking the cache for
18843         assemblies (Temporarily disabled see comment in code). Remove
18844         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
18845         specifies trace-loader they get extra info to stdout on the
18846         loading of assemblies.
18847         * image.h: Add a field for an assembly references public token
18848         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
18849         whether an assembly has been loaded from the GAC.
18850         * image.c: Remove a corlib -> mscorlib name mapping.
18851         * loader.h: Add function to enable/disable the user gac.
18852         * mono-config.c: Check if the usergac is enabled in the config
18853         file.
18854         * icall.c: New icall to determine whether or not an assembly has
18855         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
18856         * tabldefs.h: Add constant for assemblyref flag that specifies a
18857         full public key is used instead of a public token.
18858         * reflection.c: Remove mscorlib -> corlib mappings. Set
18859         PublicTokenValue instead of hash value. This value is a hex
18860         string so it does not need to be expanded.
18861
18862 2004-04-26  Martin Baulig  <martin@ximian.com>
18863
18864         * mono-debug-debugger.c (mono_debugger_initialize): Set
18865         `mono_debugger_initialized' before calling mono_debug_lock().
18866
18867 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
18868
18869         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
18870           InternalToUpper/InternalToLower.
18871         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
18872           removed invariant culture shortcut.  This is now done in managed code.
18873         * locales.c: (string_invariant_toupper/tolower) removed.
18874
18875 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18876
18877         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
18878         Added Poll internal call.
18879
18880         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
18881         call for Poll. Select was too heavy for polling a single socket.
18882
18883         * threadpool.[ch]: added mono_threadpool_cleanup.
18884         * threads.c: use it. Don't use Thread_Abort on windows.
18885
18886 2004-04-23  Martin Baulig  <martin@ximian.com>
18887
18888         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
18889
18890 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
18891
18892         * icall.c: Registred new icalls for key pair protection and added an
18893         icall for Environment.GetFolderPath on Windows.
18894         * security.c|h: Added new icalls for key pair protection.
18895
18896 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18897
18898         * socket-io.c: don't display the non-supported family warning for known
18899         families. Now this is not displayed on windows when checking support
18900         for IPv4/IPv6.
18901
18902 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18903
18904         * class.c: don't display the layout warning for static fields.
18905
18906 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
18907
18908         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
18909         * locales.c, locales.h: Added new icalls for culture-specific
18910         Char.ToLower and Char.ToUpper.
18911
18912 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18913
18914         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
18915         by David Waite.
18916
18917 2004-04-20  Martin Baulig  <martin@ximian.com>
18918
18919         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
18920         of the type name before passing it to mono_reflection_type_from_name().
18921
18922 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
18923
18924         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
18925         encodings here. Fixes #56965.
18926
18927 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
18928
18929         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
18930         fix test on strstr result not that I can see anything that
18931         relies on the result.
18932
18933 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
18934
18935         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
18936         Fixes #57081.
18937
18938         * marshal.c (mono_marshal_get_string_encoding): New helper function.
18939
18940         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
18941         function to determine which marshalling to use for strings. Fixes
18942         #56965.
18943
18944         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
18945
18946         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
18947
18948 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
18949
18950         * icall.c: #include mono-config.h
18951
18952 2004-04-15  Jackson Harper  <jackson@ximian.com>
18953
18954         * culture-info-tables.h: Fix date formats for en-US culture.
18955         
18956 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
18957
18958         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
18959         ThreadPool.SetMinThreads.
18960         * threadpool.c: Implemented ThreadPool.GetMinThreads and
18961         ThreadPool.SetMinThreads.
18962
18963 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
18964
18965         * mono-config.c: also load the .config file in the directory
18966         where the assembly was found.
18967
18968 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
18969
18970         * assembly.c: load per-assembly config files.
18971         * icall.c: decrapified code to get the config dir and moved to
18972         mono-config.c.
18973         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
18974         per-assembly config files. When doing a dll map lookup give precedence
18975         to the per-assembly data.
18976
18977 2004-04-14  Martin Baulig  <martin@ximian.com>
18978
18979         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
18980         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
18981         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
18982
18983         * mono-debugger-debugger.c: While the debugger is locked, remember
18984         whether the symbol tables have changes and send one single
18985         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
18986
18987 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
18988
18989         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
18990
18991         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
18992         function.
18993
18994         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
18995         account when marshalling string arrays. Fixes #56965.
18996
18997 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
18998
18999         * icall.c: Add new icalls mapping for security.
19000         * security.c|h: Add internal calls for WindowsIdentity,
19001         WindowsImpersonationContext and WindowsPrincipal.
19002
19003 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
19004
19005         * class.c: Added comment to ensure the System.MonoDummy class
19006         is removed when no longer necessary
19007
19008 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
19009
19010         * appdomain.c: Pass arguments to the bootstraping exceptions to
19011         minimize JITed methods at boot
19012
19013         * metadata.c (mono_exception_from_name_two_strings): Allow for the
19014         second string to be null.
19015
19016         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
19017         Change the protocol to minimize the JIT methods at startup.  Now
19018         it Returns the internal codepage, if the value of "int_code_page"
19019         is 1 at entry, and we can not compute a suitable code page
19020         number, returns the code page as a string.
19021
19022 2004-04-13  Jackson Harper  <jackson@ximian.com>
19023
19024         * culture-info-tables.h: Fix number of decimal digits for all
19025         english locales.
19026
19027 2004-04-13  Jackson Harper  <jackson@ximian.com>
19028
19029         * icall.c: Clairfy out of sync error message. It is not always
19030         your corlib that is out of sync.
19031
19032 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
19033
19034         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
19035         properties when only the set accessor is overriden. Fixes #55874.
19036
19037 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
19038
19039         * assembly.c (mono_assembly_load_references): Make this thread safe.
19040         Fixes #56327.
19041
19042 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
19043
19044         * monosn.c: Add missing initialization calls.
19045
19046 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
19047
19048         * locales.c:
19049         ves_icall_System_Globalization_CultureInfo_construct_number_format
19050         Fix g_assert so it compiles on fussier compilers re int/ptr
19051         mismatch
19052
19053 2004-04-08  Dick Porter  <dick@ximian.com>
19054
19055         * socket-io.h:
19056         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
19057         53992.  Also rearrange the code so that the internal calls return
19058         an error value and exceptions are thrown from managed code.
19059
19060         * icall.c: Add type info to the socket icalls.
19061
19062 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19063
19064         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
19065         owes me a beer.
19066
19067 2004-04-07  Martin Baulig  <martin@ximian.com>
19068
19069         * class.c (mono_class_from_generic_parameter): Don't default
19070         `klass->parent' to `mono_defaults.object_type'.
19071
19072 2004-04-07  Martin Baulig  <martin@ximian.com>
19073
19074         * reflection.c (mono_reflection_initialize_generic_parameter): Set
19075         `param->pklass->reflection_info'.       
19076
19077 2004-04-07  Jackson Harper  <jackson@ximian.com>
19078
19079         * culture-info-tables.h: Fix date separator symbol.
19080         
19081 2004-04-07  Martin Baulig  <martin@ximian.com>
19082
19083         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
19084         from System.Type to System.MonoType.
19085
19086 2004-04-07  Martin Baulig  <martin@ximian.com>
19087
19088         * reflection.h
19089         (MonoReflectionGenericParam): Added `has_reference_type' and
19090         `has_value_type' fields.
19091
19092         * reflection.c (mono_image_get_generic_param_info): Encode the
19093         correct flags if we have the `class' or `struct' constraint.
19094
19095 2004-04-07  Martin Baulig  <martin@ximian.com>
19096
19097         * reflection.h
19098         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
19099
19100 2004-04-07  Jackson Harper  <jackson@ximian.com>
19101
19102         * appdomain.c: Revert extra patches, just wanted to bump the
19103         version number.
19104         
19105 2004-04-07  Jackson Harper  <jackson@ximian.com>
19106
19107         * Makefile.am: Add culture-info private headers.
19108         * icall.c: Add new icalls for contructing locales.
19109         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
19110         * locales.h: Declare new culture info construction methods.
19111         * object.h: Add new fields used to avoid the CultureMap to
19112         MonoCultureInfo.
19113         * culture-info.h: Definition of structs used in the culture info
19114         tables.
19115         * culture-info-tables.h: Autogenerated tables that contain culture
19116         info data. This file was generated with the locale-builder tool.
19117         * appdomain.c: Incement corlib version number.
19118         
19119 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
19120
19121         * appdomain.c: (mono_runtime_init) move mono_thread_init
19122         to before mono_object_new calls so critical sections
19123         are initialized before use.
19124
19125 2004-04-07  Martin Baulig  <martin@ximian.com>
19126
19127         * icall.c
19128         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
19129         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
19130         (ves_icall_MonoGenericParam_initialize): Removed.
19131         (monogenericparam_icalls): Removed.
19132         (generictypeparambuilder_icalls): Added new table for
19133         System.Reflection.Emit.GenericTypeParameterBuilder.
19134
19135         * reflection.c
19136         (mono_reflection_define_generic_parameter): Removed.
19137         (mono_reflection_initialize_generic_parameter): This is now called
19138         from GenericTypeParameterBuilder's .ctor.
19139
19140 2004-04-06  Martin Baulig  <martin@ximian.com>
19141
19142         * class.c (mono_class_init): Don't inflate nested classes in a
19143         generic instance.
19144         (mono_type_get_name_recurse): Include the generic arguments for
19145         generic instances and generic type declarations.
19146         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
19147         (_mono_class_get_instantiation_name): Removed.
19148         (mono_class_create_generic): Always use `gklass->name' as our name.
19149
19150         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
19151
19152         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
19153         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
19154         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
19155         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
19156         closed generic methods here.
19157
19158         * reflection.c
19159         (mono_reflection_generic_inst_get_nested_types): Removed.
19160         (inflate_mono_method): Copy the generic parameters from the
19161         MonoMethodHeader into out MonoGenericMethod.
19162
19163 2004-04-06  Martin Baulig  <martin@ximian.com>
19164
19165         * row-indexes.h
19166         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
19167
19168         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
19169
19170         * reflection.c (build_compressed_metadata): If we have any entries
19171         in the GenericParam, MethodSpec or GenericParamConstraint tables,
19172         set the header version to 1.1.
19173
19174 2004-04-06  Martin Baulig  <martin@ximian.com>
19175
19176         * class.c (mono_class_init): If we're a generic instance,
19177         initialize our nested classes, too.
19178         (_mono_class_get_instantiation_name): Deal with the new `!%d'
19179         suffix. 
19180
19181 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19182
19183         * process.c: quote the argument passed to the shell on windows.
19184
19185 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
19186
19187         * threads.c (mono_alloc_special_static_data): Allow this to be
19188         called during startup.
19189
19190 2004-04-02  Martin Baulig  <martin@ximian.com>
19191
19192         * icall.c
19193         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
19194
19195 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
19196
19197         * icall.c: Fix build.
19198
19199 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
19200
19201         * Makefile.am: Added security.c|h.
19202         * icall.c: Added icall for get_UserName;
19203         * security.c: New file for security related icalls. Added function
19204         get_UserName for System.Environment (fix #56144).
19205         * security.h: New. Header file for security.c
19206
19207 2004-04-02  Dick Porter  <dick@ximian.com>
19208
19209         * icall.c: Deleted the icalls that were obsoleted some time ago
19210         by the ICU string code, and which were mixed into the icall
19211         rearranging.  Fixes bug 55969.
19212
19213         * string-icalls.h: 
19214         * string-icalls.c: Deleted the code that those icalls reference.
19215
19216 2004-04-01  Martin Baulig  <martin@ximian.com>
19217
19218         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
19219
19220         * class.c (mono_class_from_generic_parameter): Don't set 
19221         TYPE_ATTRIBUTE_INTERFACE.
19222         (my_mono_class_from_generic_parameter): Likewise.
19223
19224 2004-04-01  Martin Baulig  <martin@ximian.com>
19225
19226         * loader.c (find_method): Added an optional `MonoClass *ic'
19227         argument to search in a specific interface.
19228         (mono_get_method_constrained): New public function.
19229
19230 2004-04-01  Martin Baulig  <martin@ximian.com>
19231
19232         * reflection.c (mono_image_get_generic_field_token): Use the
19233         `handleref' cache here.
19234
19235 2004-04-01  Martin Baulig  <martin@ximian.com>
19236
19237         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
19238
19239         * reflection.c (create_generic_typespec): Use the `typespec' hash
19240         here, not the `typeref' one.    
19241
19242 2004-04-01  Martin Baulig  <martin@ximian.com>
19243
19244         * class.c (mono_class_inflate_generic_type): Moved the
19245         functionality into a new static inflate_generic_type() which
19246         returns NULL if it didn't do anything.  Only increment the
19247         `mono_stats.inflated_type_count' if we actually inflated
19248         something.
19249         (mono_class_get_full): Check the classes type to see whether we
19250         need to inflate it; also inflate MONO_TYPE_(M)VAR.
19251
19252 2004-04-01  Jackson Harper  <jackson@ximian.com>
19253
19254         * reflection.c: Set culture for assembly references.
19255         
19256 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
19257
19258         * reflection.[ch], icall.[ch], Fix support for pinning variables.
19259
19260 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19261
19262         * assembly.c:
19263         (do_mono_assembly_open): the critical section also covers
19264         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
19265
19266 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19267
19268         * threads.c:
19269         (mono_manage_threads): abort the background threads when finishing.
19270         Fixes bug #47232.
19271
19272 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19273
19274         * gc.c: only close the done_event handle if there was no timeout.
19275         C-ified comments.
19276
19277 2004-03-30  Martin Baulig  <martin@ximian.com>
19278
19279         * icall.c (icall_entries): It's called "System.Activator", not
19280         "System.Activation".    
19281
19282 2004-03-30  Martin Baulig  <martin@ximian.com>
19283
19284         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
19285         (mono_class_create_from_typespec): Likewise.
19286
19287 2004-03-30  Martin Baulig  <martin@ximian.com>
19288
19289         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
19290         `has_ctor_constraint' and `initialized'.
19291
19292 2004-03-30  Martin Baulig  <martin@ximian.com>
19293
19294         * reflection.c (encode_new_constraint): New static function to add
19295         the constructor constraint attribute to a type parameter.
19296         (encode_constraints): Call encode_new_constraint() if necessary.
19297
19298         * reflection.h
19299         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
19300
19301         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
19302         
19303 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
19304
19305         * reflection.c, icall.c: add support for pinning variables. 
19306
19307 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
19308
19309         * marshal.c (mono_marshal_get_managed_wrapper):
19310         init bool local with zero rather than null.
19311
19312 2004-03-29  Martin Baulig  <martin@ximian.com>
19313
19314         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
19315         the "official" behavior here.
19316         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
19317
19318 2004-03-29  Martin Baulig  <martin@ximian.com>
19319
19320         * icall.c: Reflect latest API changes.
19321
19322 2004-03-29  Martin Baulig  <martin@ximian.com>
19323
19324         * loader.c (mono_get_method_from_token): Also call
19325         mono_metadata_load_generic_params () for abstract and interface
19326         methods; replace the type arguments in the method signature with
19327         the ones which are loaded from the metadata.
19328
19329 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
19330
19331         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
19332         of the lock is not the current thread. MS.NET don't do it, in spite of
19333         what the documentation says. See bug #56157.
19334
19335 2004-03-28  Martin Baulig  <martin@ximian.com>
19336
19337         * class.c (mono_class_init): Don't call init_properties() and
19338         init_events() for generic instances; set `prop->parent' when
19339         inflating properties.
19340
19341         * reflection.c (mono_generic_inst_get_object): Call
19342         `mono_class_init (ginst->klass)'.
19343         (mono_type_get_object): Only create a MonoGenericInst if your
19344         generic type is a TypeBuilder.
19345         (do_mono_reflection_bind_generic_parameters): Only set
19346         `ginst->is_dynamic' if our generic type is a TypeBuilder.
19347
19348 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
19349
19350         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
19351         Fixes #56091.
19352
19353 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19354
19355         * icall.c: added Kill_internal icall.
19356         * process.[ch]: added Kill_internal icall.
19357
19358 2004-03-25  Martin Baulig  <martin@ximian.com>
19359
19360         * class.h (MonoStats): Added `generic_instance_count',
19361         `inflated_method_count', `inflated_type_count' and
19362         `generics_metadata_size'.       
19363
19364 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19365
19366         * reflection.c: no warnings now.
19367
19368 2004-03-25  Martin Baulig  <martin@ximian.com>
19369
19370         * class.c (mono_class_get_full): New public function; does a
19371         mono_class_get(), but also takes a `MonoGenericContext *'.
19372
19373         * loader.c (mono_field_from_memberref): Renamed to
19374         `field_from_memberref', made static and added `MonoGenericContext *'
19375         argument.
19376         (mono_field_from_token): Added `MonoGenericInst *' argument.
19377         (method_from_memberef): Likewise.
19378         (mono_get_method_from_token): Likewise.
19379         (mono_get_method_full): New public function; does a
19380         mono_get_method(), but also takes a `MonoGenericContext *'.
19381
19382         * verify.c (mono_method_verify): Get the method's generic context
19383         and pass it to mono_field_from_token(), mono_get_method_full() and
19384         mono_class_get_full().
19385
19386 2004-03-25  Martin Baulig  <martin@ximian.com>
19387
19388         * class.c (mono_class_inflate_generic_type): Take a
19389         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
19390         `MonoGenericMethod *'.
19391
19392 2004-03-25  Martin Baulig  <martin@ximian.com>
19393
19394         * loader.h (MonoMethodInflated): Store the MonoGenericContext
19395         instead of the MonoGenericMethod here.
19396
19397 2004-03-25  Martin Baulig  <martin@ximian.com>
19398
19399         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
19400         each time we create a new MonoGenericInst, we also create a new
19401         context which points back to us.
19402
19403         * class.c (inflate_method): Use `ginst->context' instead of
19404         creating a new context.
19405
19406         * loader.c (method_from_memberref): Use
19407         `klass->generic_inst->context' instead of creating a new context.
19408
19409 2004-03-25  Martin Baulig  <martin@ximian.com>
19410
19411         * class.h (MonoGenericContext): New struct.
19412         (MonoGenericMethod): Removed `generic_inst'.
19413
19414         * class.c (mono_class_inflate_generic_method): Take a
19415         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
19416
19417 2004-03-25  Martin Baulig  <martin@ximian.com>
19418
19419         * loader.h (MonoMethodInflated): New typedef.
19420
19421         * metadata.h (MonoMethodSignature): Removed `gen_method', make
19422         `generic_param_count' consume just 30 bits, added `is_inflated'
19423         and `has_type_parameters' flags (one bit each).
19424
19425         * class.c (mono_class_inflate_generic_method): Create a
19426         MonoMethodInflated instead of a MonoMethodNormal and set
19427         `is_inflated' in the method signature.
19428
19429         * class.h (MonoGenericMethod): Removed `generic_method'.
19430
19431 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
19432
19433         * image.c: Make sure the name of a MonoImage is always an absolute path.
19434           This fixes bug #54415.
19435
19436 2004-03-24  Martin Baulig  <martin@ximian.com>
19437
19438         * class.c (mono_class_setup_vtable): If we're a generic instance,
19439         use our generic type's vtable size.
19440
19441 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
19442
19443         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
19444         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
19445         problems.
19446
19447 2004-03-23  Martin Baulig  <martin@ximian.com>
19448
19449         * class.h (MonoDynamicGenericInst): Added `int count_events' and
19450         `MonoEvent *events'.
19451
19452         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
19453         (typebuilder_icalls): Added "get_event_info"; calls
19454         mono_reflection_event_builder_get_event_info(). 
19455
19456         * reflection.c (mono_reflection_generic_inst_initialize): Added
19457         `MonoArray *events'.
19458         (mono_reflection_event_builder_get_event_info): New function.
19459
19460 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
19461
19462         * object.h: add mono_type_initialization_init
19463
19464         * object.c (mono_runtime_class_init): 
19465         implement class constructor synchronization rules
19466         to cope with threading issues.  
19467         add mono_type_initialization_init
19468
19469         * appdomain.c (mono_runtime_init): call 
19470         mono_type_initialization_init
19471
19472         * class.h: removing initializing field from MonoVTable
19473
19474 2004-03-23  Martin Baulig  <martin@ximian.com>
19475
19476         * class.c (my_mono_class_from_generic_parameter): Use
19477         `param->name' if it's not NULL. 
19478
19479 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
19480
19481         * class.c: do not insert non-virtual methods in the vtable.
19482         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
19483         that means the method is non-virtual. This never would have
19484         happened before.
19485
19486 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
19487
19488         * profiler.c: Added lock for accessing coverage_hash.
19489
19490 2004-03-22  Martin Baulig  <martin@ximian.com>
19491
19492         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
19493         `method->method->signature->generic_param_count != 0' to make it
19494         work for interface methods.
19495
19496 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19497
19498         * process.c: quote the string passed to the shell using g_shell_quote.
19499
19500 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19501
19502         * threads.c:
19503         (mono_threads_manage): don't remove the finalizer thread and self
19504         from the threads hash table so that mono_thread_manage can be called
19505         more than once.
19506
19507 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19508
19509         * process.c: quote the arguments when UseShellExecute is true. Fixes
19510         bug #55790.
19511
19512 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19513
19514         * threads.c: set mono_thread_detach as a cleanup routine for every
19515         thread. This way it's always executed upon thread termination, either
19516         aborted or finished normally. No more xsp hangs!
19517
19518 2004-03-17  Martin Baulig  <martin@ximian.com>
19519
19520         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
19521         `int count_nested' and a `MonoType **nested'.
19522
19523         * reflection.c (mono_reflection_bind_generic_parameters): Moved
19524         most of the functionality into a new static
19525         do_mono_reflection_bind_generic_parameters() and don't take a
19526         `MonoType *nested_in' argument any more.  Don't compute nested
19527         types here.
19528         (mono_reflection_generic_inst_get_nested_types): New public method
19529         to get nested types.
19530
19531         * class.c (mono_class_create_generic): Set `klass->nested_in' if
19532         we're a nested class.
19533
19534         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
19535         mono_reflection_generic_inst_get_nested_types() to compute the
19536         nested types.
19537
19538 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
19539
19540         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
19541         descriptive error message under windows.
19542         
19543 2004-03-17  Martin Baulig  <martin@ximian.com>
19544
19545         * class.c (dup_type): Added `const MonoType *original' argument;
19546         copy the attrs from the original type.
19547
19548 2004-03-17  Martin Baulig  <martin@ximian.com>
19549
19550         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
19551         `m->generic_inst_cache' here.
19552
19553 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
19554
19555         * exception.h exception.c: Add stack_overflow_exception.
19556
19557 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19558
19559         * threadpool.c:
19560         (overlapped_callback): call SetEvent *after* invoking the callback.
19561         No need to call CloseHandle.
19562
19563 2004-03-16  Martin Baulig  <martin@ximian.com>
19564
19565         * reflection.c (mono_image_get_fieldref_token): Take a
19566         `MonoReflectionField *' instead of a `MonoClassField *' and a
19567         `MonoClass *'; store the `MonoReflectionField *' in the hash.
19568
19569 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19570
19571         * appdomain.c: don't add the culture to the filename we're looking for
19572         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
19573
19574 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19575
19576         * locales.c: don't ignore symbols when doing case insensitive compares.
19577         Thanks Dick! Fixes bug #54046.
19578
19579         * threads.c: surround 'threads' usage with enter/leave in
19580         mono_thread_manage.
19581
19582 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
19583
19584         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
19585         implicitly marshalled as [Out]. Fixes #55450.
19586
19587         (mono_marshal_get_runtime_invoke): Zero out the result if there is
19588         an exception.
19589
19590 2004-03-16  Martin Baulig  <martin@ximian.com>
19591
19592         * class.c (mono_class_from_generic_parameter): Use the actual
19593         parameter name. 
19594
19595 2004-03-16  Martin Baulig  <martin@ximian.com>
19596
19597         * reflection.c (type_get_signature_size): New static function.
19598         Compues the size of the type in a method signature.
19599         (method_get_signature_size): New static function; calls
19600         type_get_signature_size() to compute the actual size of the
19601         method's signature.
19602         (method_encode_signature): Use method_get_signature_size() to get
19603         the signature's size rather than using `nparams * 10'.
19604
19605 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19606
19607         * file-io.h: define here WapiOverlapped on windows. I don't want the
19608         regular OVERLAPPED one.
19609
19610         * file-io.c:
19611         * threadpool.c: somehow, BindIoCompletionCallback is not found.
19612         Disabling AIO on windows.
19613
19614 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19615
19616         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
19617         bug #55385.
19618
19619 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19620
19621         * appdomain.c: upgraded corlib version.
19622
19623         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
19624         and BeginWrite. Allow opening files for asynchrnous operations.
19625
19626         * file-io.h: new struct that maps FileStreamAsyncResult.
19627         * icall.c: added new icalls.
19628         * process.[ch]: support setting child process environment variables
19629         and use the SHELL or COMSPEC when UseShellExecute is true.
19630
19631         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
19632         callback for async. IO is here and also BindHandle.
19633
19634         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
19635         from here.
19636
19637 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
19638
19639         * reflection.c (create_custom_attr): Allow len == 0.
19640
19641         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
19642         computation on big-endian machines.
19643
19644 2004-03-13  Martin Baulig  <martin@ximian.com>
19645
19646         * class.h (MonoGenericInst): Added `int count_ifaces'.
19647
19648         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
19649         `ginst->count_ifaces' instead `klass->interface_count' since we
19650         may get called before the vtable is created.
19651
19652         * loader.c (mono_method_get_param_names): If we're a generic
19653         instance, return and don't initialize the class.
19654
19655         * reflection.c (mono_reflection_setup_generic_class): Don't call
19656         ensure_runtime_vtable().
19657         (mono_reflection_bind_generic_parameters): Set
19658         `ginst->count_ifaces'.
19659
19660 2004-03-11  Jackson Harper <jackson@ximian.com>
19661
19662         * icall.c:
19663         * unicode.c:
19664         * unicode.h: Remove unused System.Char icalls.
19665         
19666 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
19667
19668         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
19669         code when we P/Invoke the first library in Windows.Forms, instead
19670         of when we first open the assembly.
19671
19672         * assembly.c: Drop the lookup from here.
19673
19674 2004-03-10  Martin Baulig  <martin@ximian.com>
19675
19676         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
19677         class for properties, fields and events.  Finally fixes #54945.
19678
19679 2004-03-10  Martin Baulig  <martin@ximian.com>
19680
19681         * metadata.c (mono_metadata_class_equal): New static function;
19682         checks whether two generic instances or two generic parameters are
19683         equal.
19684         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
19685         compare classes.        
19686
19687 2004-03-10  Martin Baulig  <martin@ximian.com>
19688
19689         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
19690
19691         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
19692         argument and write it into the `reflection_info' field.
19693
19694         * icall.c
19695         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
19696         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
19697
19698 2004-03-09  Jackson Harper  <jackson@ximian.com>
19699
19700         * char-conversions.h: use 8 bits for numeric data its all we need
19701         * icall.c: numeric data is only 8 bits now.
19702
19703 2004-03-09  Martin Baulig  <martin@ximian.com>
19704
19705         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
19706
19707         * class.c (init_properties, init_events): Initialize the new
19708         `parent' field.
19709
19710         * reflection.c (typebuilder_setup_properties): Likewise.
19711         (typebuilder_setup_events): Likewise.
19712
19713         * reflection.h (MonoEventInfo): Replaced `parent with
19714         `declaring_type' and `reflected_type'.
19715
19716         * icall.c (ves_icall_get_property_info): Distinguish between
19717         declaring and reflected type.
19718         (ves_icall_get_event_info): Likewise.
19719
19720 2004-03-09  Martin Baulig  <martin@ximian.com>
19721
19722         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
19723         (ves_icall_Type_GetField): Correctly set field->klass.
19724
19725 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
19726
19727         * loader.h: Fix warning.
19728
19729 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
19730
19731         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
19732         library routine if present.  Notice that it will still continue
19733         executing even if its missing, for those working on the Gtk#
19734         edition of Windows.Forms.
19735
19736         * assembly.c (do_mono_assembly_open): If loading the
19737         System.Windows.Forms call mono_loader_wini_init.
19738
19739 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
19740
19741         * class.h: Added MonoRemoteClass struct.
19742         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
19743         function for MonoStrings.
19744         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
19745         Added internal call for getting the proxy type.
19746         * marshal.c: Get the type of transparent proxies from its remote_class.
19747         Added methods that generate the IL for type checks and casts:
19748         mono_marshal_get_isinst, mono_marshal_get_castclass, 
19749         mono_marshal_get_proxy_cancast.
19750         * marshal.h: Declaration of the previous new methods.
19751         * object.c: Added new moethods for creating and updating MonoRemoteClass
19752         instances: mono_remote_class, mono_upgrade_remote_class, 
19753         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
19754         * verify.c: FIx transparent_proxy_fields layout.
19755         * appdomain.c: Bump corlib version.
19756
19757 2004-03-04  Jackson Harper  <jackson@ximian.com>
19758
19759         * icall.c: Add icall to access char conversion tables.
19760         * char-conversions.h: Character conversion tables.
19761         * Makefile.am: Add char-conversions.h private header file.
19762         
19763 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
19764
19765         * appdomain.c (unload_thread_main): Increase unloading timeout to
19766         10 sec as a temporary workaround for Nant problems.
19767
19768 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
19769
19770         * gc.c: Add checks for GC_enable and GC_disable.
19771
19772         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
19773         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
19774         (bug #54988).
19775         
19776 2004-02-27  Martin Baulig  <martin@ximian.com>
19777
19778         * reflection.c (mono_reflection_bind_generic_parameters): Take a
19779         `MonoReflectionType *' instead of a `MonoType *'.
19780
19781 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
19782
19783         * gc.c (run_finalize): Avoid finalizing the object representing the
19784         finalizer thread.
19785         (finalizer_thread): Fix warning.
19786
19787 2004-02-25  Martin Baulig  <martin@ximian.com>
19788
19789         * class.c (_mono_class_get_instantiation_name): Added `int offset'
19790         argument for nested types.
19791         (mono_class_create_generic): Added support for nested generictypes.
19792
19793         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
19794         `GList *nested'.
19795
19796         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
19797
19798         * reflection.c (method_encode_signature): Increase the minimum
19799         value of `size' from 10 to 11.
19800         (mono_reflection_bind_generic_parameters): Take `int type_argc'
19801         and `MonoType **types' arguments instead of the `MonoArray
19802         *types'; added `MonoType *nested_in'.  Recursively instantiate
19803         nested classes. 
19804
19805 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
19806
19807         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
19808         stack_overflow_ex members which are used by exception handling.
19809
19810         * appdomain.c (mono_runtime_init): Initialize the new members.
19811
19812         * gc.c (mono_gc_enable): New helper function.
19813         * gc.c (mono_gc_disable): New helper function.
19814
19815 2004-02-23  Martin Baulig  <martin@ximian.com>
19816
19817         * icall.c: I must have been really stupid - make it actually work
19818         this time ;-)
19819
19820 2004-02-23  Martin Baulig  <martin@ximian.com>
19821
19822         * loader.c (method_from_memberref): Only inflate the method if
19823         it's in another klass.
19824
19825 2004-02-23  Martin Baulig  <martin@ximian.com>
19826
19827         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
19828         (mono_class_init): If we're a generic instance and an interface,
19829         compute `class->interface_id'; also create `class->interfaces'
19830         here and inflate them.
19831
19832         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
19833         `ginst->is_open'.
19834         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
19835
19836         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
19837
19838 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
19839
19840         * reflection.c (method_encode_code): Improved the error message
19841         generated by the exception.
19842
19843 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19844
19845         * icall.c: Martin did not do what he said in the ChangeLog for
19846         2004-02-18, but put back the changes for properties and events.
19847         Commenting those changes out again and adding comment to bug #54518.
19848         
19849         * process.c: removed warning.
19850
19851 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
19852
19853         * marshal.c (emit_struct_conv): Print an error message instead of
19854         asserting when a type does not have the StructLayout attribute.
19855
19856 2004-02-20  Martin Baulig  <martin@ximian.com>
19857
19858         * reflection.c (mono_type_get_object): Also use the cache for
19859         generic instances.
19860         (mono_reflection_bind_generic_parameters): Always compute
19861         `ginst->ifaces'.        
19862
19863 2004-02-20  Martin Baulig  <martin@ximian.com>
19864
19865         * class.h (MonoGenericMethod): Removed `klass'.
19866
19867         * class.c (mono_class_inflate_generic_method): Added `MonoClass
19868         *klass' argument.
19869
19870 2004-02-20  Martin Baulig  <martin@ximian.com>
19871
19872         * reflection.c (method_encode_methodspec): Actually use the
19873         uninflated signature for the memberref.
19874
19875 2004-02-20  Martin Baulig  <martin@ximian.com>
19876
19877         * class.h (MonoGenericMethod): Removed `declaring'.
19878
19879         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
19880         is NULL, compute it here.
19881
19882 2004-02-20  Martin Baulig  <martin@ximian.com>
19883
19884         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
19885
19886         * metadata.c (mono_metadata_generic_inst_hash): New method.
19887         (mono_metadata_generic_inst_equal): New method.
19888
19889         * reflection.c (mono_reflection_bind_generic_parameters): Use the
19890         `klass->image->generic_inst_cache' cache to avoid creating
19891         duplicate MonoGenericInst's.
19892
19893         * class.c (mono_class_inflate_generic_type): Use the cache.
19894
19895 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
19896
19897         * object.c: fixed gc descriptor calculation for embedded valuetypes.
19898
19899 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19900
19901         * icall.c: added Socket.WSAIoctl icall.
19902
19903         * socket-io.[ch]: implemented
19904         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
19905
19906 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
19907
19908         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
19909
19910 2004-02-18  Urs C Muff  <umuff@quark.com>
19911
19912         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
19913         this work on PPC and other big-endian architectures.
19914
19915         * debug-mono-symfile.h: Prepended the names of all the `guint32'
19916         fields with an underscore to make sure they're only accessed by
19917         the read32() macro.
19918
19919 2004-02-18  Martin Baulig  <martin@ximian.com>
19920
19921         * icall.c: Put the klass->refclass changes back for methods and
19922         fields, but not for properties and events.  We're currently not
19923         distinguishing between DeclaringType and ReflectedType for
19924         properties and events, that's what caused the regressions.
19925
19926 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19927
19928         * object.c:
19929         (mono_async_result_new): the handle can be NULL.
19930
19931         * threadpool.c: Use an event instead of a semaphore, don't initialize
19932         it until needed. This saves quite a few semaphores from being created
19933         when using the threadpool.
19934
19935 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
19936
19937         * object.c (mono_string_is_interned_lookup): Fix interning of long
19938         strings. Fixes #54473.
19939
19940         * domain.c (ldstr_equal): Optimize if the two strings are equal.
19941
19942         * icall.c: Revert the klass->refclass changes since they introduce
19943         regressions (bug #54518).
19944
19945 2004-02-18  Martin Baulig  <martin@ximian.com>
19946
19947         * class.c (mono_class_init): If we're a generic instance and don't
19948         come from a TypeBuilder, inflate our members here.
19949         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
19950         (mono_class_create_generic): New public method.
19951         (mono_class_initialize_generic): Removed.
19952         (get_instantiation_name): Renamed to
19953         _mono_class_get_instantiation_name() and made it public.
19954
19955 2004-02-18  Martin Baulig  <martin@ximian.com>
19956
19957         * class.c (mono_class_inflate_generic_type): Clear the new
19958         instance's `nginst->klass' when inflating a generic instance.
19959         (mono_class_is_subclass_of): Added (basic) support for generic
19960         instances.
19961
19962 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
19963
19964         * appdomain.h, domain.c: use a MonoCodeManager instead of a
19965         MonoMempool to hold compiled native code.
19966
19967 2004-02-17  Martin Baulig  <martin@ximian.com>
19968
19969         * class.h (MonoDynamicGenericInst): Added `count_properties' and
19970         `properties'.
19971
19972         * reflection.c (mono_reflection_generic_inst_initialize): Added
19973         `MonoArray *properties' argument.
19974
19975         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
19976
19977 2004-02-17  Martin Baulig  <martin@ximian.com>
19978
19979         * icall.c (ves_icall_Type_GetFields): Renamed to
19980         ves_icall_Type_GetFields_internal() and added a
19981         `MonoReflectionType *rtype' argument; pass it to
19982         mono_field_get_object() to set the field's "reflected" type.
19983         (ves_icall_Type_GetConstructors): Likewise.
19984         (ves_icall_Type_GetEvents): Likewise.
19985         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
19986         argument; pass it to mono_method_get_object() to set the method's
19987         "reflected" type.       
19988
19989 2004-02-17  Martin Baulig  <martin@ximian.com>
19990
19991         * class.h (MonoDynamicGenericInst): New type.
19992         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
19993
19994         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
19995         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
19996         (ves_icall_MonoGenericInst_GetFields): New interncall.
19997
19998         * class.c (mono_class_from_generic): Don't call
19999         mono_class_initialize_generic() if this is a dynamic instance;
20000         ie. it's being created from a TypeBuilder.
20001         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
20002         `class->byval_arg.type'.
20003
20004         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
20005         to `inflate_method' and made static.
20006         (mono_reflection_inflate_field): Removed.
20007         (mono_reflection_generic_inst_initialize): New public method.
20008
20009         * reflection.h (MonoReflectionGenericInst): Removed `methods',
20010         `ctors' and `fields'; added `initialized'.
20011
20012 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
20013
20014         * debug-helpers.c (mono_method_full_name): Fix output for empty
20015         namespaces.
20016
20017 2004-02-12  Martin Baulig  <martin@ximian.com>
20018
20019         * class.h (MonoClassField): Added `MonoType *generic_type'.
20020
20021         * reflection.c (mono_image_get_fieldref_token): Added support for
20022         instantiated generic types.
20023         (field_encode_inflated_field): Removed.
20024         (mono_image_get_inflated_field_token): Removed.
20025         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
20026
20027         * reflection.h (MonoReflectionInflatedField): Removed.
20028
20029 2004-02-12  Martin Baulig  <martin@ximian.com>
20030
20031         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
20032         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
20033
20034         * reflection.c (mono_image_get_methodspec_token): Take a
20035         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
20036         (mono_image_create_token): Check whether we have a
20037         `method->signature->gen_method' and call
20038         mono_image_get_methodspec_token() if appropriate.
20039         (inflated_method_get_object): Removed.
20040         (mono_reflection_bind_generic_method_parameters): Return a
20041         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
20042         (mono_reflection_inflate_method_or_ctor): Likewise.
20043
20044         * reflection.h (MonoReflectionInflatedMethod): Removed.
20045
20046 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
20047
20048         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
20049         for custom valuetype marshalling.
20050
20051         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
20052
20053 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20054
20055         * icall.c: fixed WSAGetLastError_internal name.
20056
20057 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
20058
20059         * threads.c (mono_thread_attach): Allow this to be called multiple
20060         times for a thread.
20061         
20062         * threads.c (build_wait_tids): Do not wait for ourselves.
20063
20064         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
20065         appdomain list is empty.
20066
20067         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
20068         memory returned by mono_string_builder_to_utf16, since it points into
20069         managed memory. Thanks to Bernie Solomon for noticing this.
20070
20071         * icall.c: Add AppDomainSetup icalls.
20072
20073         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
20074
20075         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
20076         types.
20077
20078         * reflection.c (reflection_methodbuilder_to_mono_method): Save
20079         custom attributes to the method_aux struct. Also fix array indexes etc.
20080
20081         * loader.c (mono_method_get_param_names): Make dynamic case work again.
20082         
20083 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
20084
20085         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
20086         (both static and runtime) and reduce startup time.
20087
20088 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
20089
20090         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
20091         AsAny marshalling conversion instead of crashing.
20092
20093         * marshal.c: Fix warnings.
20094
20095 2004-02-09  Martin Baulig  <martin@ximian.com>
20096
20097         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
20098
20099         * reflection.h (MonoReflectionInflatedMethod): Removed the
20100         `declaring' field, it's now in the unmanaged MonoGenericMethod.
20101
20102         * reflection.c (method_encode_methodspec): Removed the `method'
20103         argument; we get it from `gmethod->declaring'.
20104         (inflated_method_get_object): Removed the `declaring' argument.
20105
20106 2004-02-09  Martin Baulig  <martin@ximian.com>
20107
20108         * class.h (MonoGenericMethod): New type.
20109         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
20110         `generic_method'.
20111
20112         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
20113         a `MonoGenericMethod *gen_method' one.
20114
20115         * class.c (mono_class_inflate_generic_type): Take an additional
20116         `MonoGenericMethod * argument.  This is only non-NULL if we're
20117         inflating types for a generic method.   
20118         (mono_class_inflate_generic_signature): Renamed to
20119         inflate_generic_signature() and made static; take a
20120         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
20121         (inflate_generic_header): Take a `MonoGenericMethod *' argument
20122         instead of a `MonoGenericInst *' one.
20123         (mono_class_inflate_generic_method): Likewise.
20124
20125         * reflection.c (encode_generic_method_sig): Take a
20126         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
20127         (method_encode_methodspec): Likewise.
20128         (inflated_method_get_object): Likewise. 
20129
20130         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
20131         field with a `MonoGenericMethod *gmethod' one.  
20132
20133 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
20134
20135         * class.h (mono_class_has_parent): add parens to expansion
20136         so you can ! this.
20137
20138 2004-02-08  Martin Baulig  <martin@ximian.com>
20139
20140         * image.h (MonoImage): Removed `generics_cache'.
20141
20142         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
20143         instead of a `MonoType *' argument; removed the `inflate_methods'
20144         argument.  Don't inflate methods here.
20145
20146         * loader.c (find_method): If it's a generic instance, call
20147         mono_class_init() on the `sclass->generic_inst->generic_type'.
20148
20149         * metadata.c (mono_type_size): Make this work on uninitialized
20150         generic instances; call it on the `ginst->generic_type's class.
20151
20152         * reflection.c (mono_reflection_bind_generic_parameters): Call
20153         mono_class_from_generic() to create the `ginst->klass'.
20154
20155 2004-02-08  Martin Baulig  <martin@ximian.com>
20156
20157         * class.h (MonoClass): Changed type of `generic_inst' from
20158         `MonoType *' to `MonoGenericInst *'.
20159
20160 2004-02-08  Martin Baulig  <martin@ximian.com>
20161
20162         * icall.c (ves_icall_Type_BindGenericParameters): Just call
20163         mono_type_get_object(), this is now creating a `MonoGenericInst'
20164         for MONO_TYPE_GENERICINST.
20165         (ves_icall_MonoGenericInst_GetParentType): Likewise.
20166         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
20167
20168         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
20169         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
20170         (inflated_method_get_object): Added `MonoClass *refclass' argument.
20171         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
20172         and reflected type.
20173
20174         * reflection.h (MonoReflectionInflatedMethod): Removed
20175         `declaring_type' and `reflected_type'.
20176
20177 2004-02-08  Martin Baulig  <martin@ximian.com>
20178
20179         * class.h (MonoGenericInst): Added `MonoType *parent' and
20180         `MonoType **ifaces'.
20181
20182         * reflection.h (MonoReflectionGenericInst): Removed `klass',
20183         `parent' and `interfaces'.
20184
20185         * reflection.c (mono_reflection_bind_generic_parameters): Take a
20186         `MonoType *' argument and return a `MonoType *'.
20187
20188         * icall.c
20189         (ves_icall_MonoGenericInst_GetParentType): New interncall.
20190         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
20191
20192 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
20193
20194         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
20195         valuetype marshalling.
20196
20197 2004-02-06  Martin Baulig  <martin@ximian.com>
20198
20199         * class.c
20200         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
20201         (my_mono_class_from_generic_parameter): Likewise.
20202
20203 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
20204
20205         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
20206         contents of the symbol files lazily.
20207
20208         * object.h (MonoThread): Add 'name' and 'name_len' fields.
20209
20210         * threads.h threads.c icall.c: New icalls for getting and setting the
20211         threads name.
20212
20213 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
20214
20215         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
20216         Raise an exception when the domain is not found.
20217
20218 2004-02-03  Martin Baulig  <martin@ximian.com>
20219
20220         * reflection.c (mono_image_get_methodspec_token): Use the
20221         uninflated signature; fixes gen-33.
20222
20223 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
20224
20225         * gc.c threads.c: Make the finalizer thread a normal managed thread so
20226         the finalizer code can use thread functionality.
20227
20228         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
20229         the finalizer thread.
20230
20231         * threads.c: Make some functions more robust.
20232
20233         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
20234
20235         * metadata.h: Add new marshalling conventions.
20236
20237         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
20238         stringbuilder marshalling. Fixes #53700.
20239
20240         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
20241
20242         * reflection.c (mono_image_get_type_info): Save declarative security
20243         info.
20244
20245         * reflection.c (mono_image_get_field_info): Handle uninitialized 
20246         unmanaged fields as well.
20247
20248         * appdomain.c: Bump corlib version.
20249
20250 2004-02-01  Martin Baulig  <martin@ximian.com>
20251
20252         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
20253         method type arguments.  
20254
20255 2004-01-30  Duncan Mak  <duncan@ximian.com>
20256
20257         * marshal.h: Add prototype for
20258         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
20259         and
20260         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
20261         fix the build.
20262
20263 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
20264
20265         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
20266         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
20267
20268 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
20269
20270         * marshal.c (mono_marshal_get_native_wrapper): Add support for
20271         custom marshalling of valuetypes.
20272
20273         * marshal.c: Fix some warnings.
20274
20275 2004-01-29  Martin Baulig  <martin@ximian.com>
20276
20277         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
20278         for generic method parameters.
20279
20280         * reflection.c (method_encode_methodspec): Write the uninflated
20281         signature into the methodspec table.
20282         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
20283         is always the uninflated method.
20284         (reflection_methodbuilder_to_mono_method): Copy the generic
20285         parameters from the MethodBuilder into `header->gen_params'.
20286
20287 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
20288
20289         * class.c (mono_class_from_generic_parameter): Fix warning.
20290
20291 2004-01-27  Martin Baulig  <martin@ximian.com>
20292
20293         * class.c (mono_class_from_generic_parameter): Don't create
20294         `klass->methods' here.  
20295
20296 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
20297
20298         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
20299         extension since it does not work with libraries named lib<FOO>.dll.so.
20300
20301 2004-01-25  Martin Baulig  <martin@ximian.com>
20302
20303         * class.c (mono_class_inflate_generic_type): Added support for
20304         MONO_TYPE_GENERICINST.
20305
20306         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
20307         inflate methods on open constructed types.      
20308
20309 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20310
20311         * object.c: fire ProcessExit event in the root AppDomain after running
20312         Main. Fixes bug #53299.
20313
20314 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
20315
20316         * socket-io.c: include the new socket-wrappers.h header.
20317         Use the wrappers instead of the unix socket functions to make the code
20318         more clear.
20319
20320 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
20321
20322         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
20323
20324         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
20325         Fixes #22532.
20326
20327 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
20328
20329         * reflection.c (mono_image_create_pefile): Handle the case when the
20330         entry point is not a MethodBuilder.
20331
20332         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
20333         field to ReflectionMethod since it is not allways a builder.
20334
20335         * reflection.c (type_get_fully_qualified_name): New helper function to
20336         return the fully qualified name of a type.
20337
20338         * reflection.c (encode_marshal_blob): Always emit the fully qualified
20339         type name for custom marshallers.
20340
20341         * reflection.c (mono_marshal_spec_from_builder): Ditto.
20342
20343         * class.c (mono_class_setup_vtable): If a parent class already 
20344         implements an interface, use the implementing methods from that class.
20345         Fixes #53148.
20346
20347 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20348
20349         * threadpool.c: just return instead of ExitThread to allow for thread
20350         clean up earlier.
20351
20352 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
20353
20354         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
20355         when closing resource modules.
20356
20357         * reflection.c (mono_image_create_pefile): Handle the case when the
20358         entry point is not a MethodBuilder.
20359
20360         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
20361         field to ReflectionMethod since it is not allways a builder.
20362
20363 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
20364
20365         * marshal.c (mono_marshal_get_managed_wrapper): 
20366         mono_marshal_alloc takes native int so CONV_I
20367         the arg for 64bits.
20368
20369 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
20370
20371         * reflection.c (fixup_cattrs): New function to fixup the methoddef
20372         tokens in the cattr table. Fixes #53108.
20373
20374 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20375
20376         * loader.c: don't trim ".dll" before looking up in the config file.
20377         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
20378
20379 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
20380
20381         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
20382         Return the module which contains the resource as well.
20383         (ves_icall_System_Reflection_Module_Close): New icall.
20384
20385         * appdomain.c: Bump corlib version number.
20386
20387         * image.c (mono_image_addref): New public function.
20388
20389         * assembly.c: Call mono_image_addref.
20390
20391         * reflection.c (mono_module_get_object): Increase reference count of 
20392         the image.
20393
20394         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
20395         Fixes #22532.
20396
20397         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
20398         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
20399         proper exceptions on DllImport problems.
20400
20401 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
20402
20403         * class.c, metadata.c: eliminate CSIZE macro.
20404
20405 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
20406
20407         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
20408         * object.h: Added async_callback field in MonoAsyncResult.
20409         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
20410         * verify.c: Added async_callback in MonoAsyncResult layout.
20411
20412 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
20413
20414         * reflection.c (mono_reflection_get_custom_attrs): Add support
20415         for Modules.
20416
20417 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
20418
20419         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
20420         marshalling.
20421         (mono_marshal_method_from_wrapper): Add null pointer check.
20422
20423 2004-01-16  Martin Baulig  <martin@ximian.com>
20424
20425         * debug-mono-symfile.h: Set version number to 36 and reflect
20426         latest symbol writer changes.
20427
20428 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
20429
20430         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
20431         multi-dimensional arrays.
20432         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
20433         (mono_class_from_mono_type): Use bounded_array_class_get.
20434         
20435         * class.c (mono_bounded_array_class_get): New function which takes
20436         a 'bounded' bool argument to distinguish vectors from one dimensional
20437         arrays.
20438
20439         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
20440         bounded_array_class_get if the array has bounds.
20441
20442         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
20443         Search modules loaded using AssemblyBuilder:AddModule as well.
20444
20445 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20446
20447         * appdomain.c: increased corlib version.
20448         * filewatcher.c: removed g_print.
20449         * icall.c:
20450         (get_property_info): only allocate what is actually requested.
20451         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
20452
20453 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20454
20455         * Makefile.am: added filewatcher.[ch]
20456         * filewatcher.[ch]: FileSystemWatcher runtime support.
20457         * icall.c: added new FSW icalls.
20458
20459 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
20460
20461         * string-icalls.c: fix stringbuilder regression as suggested by
20462         Iain McCoy <iain@mccoy.id.au>.
20463
20464 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
20465
20466         * process.c (process_read_stringtable_block): Recognize '007f' as
20467         a language neutral stringtable block.
20468
20469 2004-01-12  Patrik Torstensson
20470
20471         * object.h (MonoStringBuilder) : Changed layout to support our
20472         new stringbuilder class.
20473         * marshal.c: Change marshalling to support the new layout of 
20474         string builder.
20475         * appdomain.c: increased version number because new layout of
20476         string builder.
20477
20478 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
20479
20480         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
20481         assembly name as an string instead of an AssemblyName, since it is
20482         easier to extract info from it.
20483
20484         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
20485         the culture subdirectories too. Fixes #52231.
20486
20487 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20488
20489         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
20490         It takes 2 new parameters with an optional name for the method to look
20491         for and case ignoring info.
20492
20493         * threadpool.c: removed unused variable.
20494
20495 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20496
20497         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
20498         It takes 2 new parameters with an optional name for the property to look
20499         for and case ignoring info.
20500         Fixes bug #52753.
20501
20502 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
20503
20504         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
20505         Fix #52451.
20506
20507 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20508
20509         * appdomain.c:
20510         * assembly.c: escape the uri before passing it to g_filename_from_uri.
20511         Fixes bug #52630.
20512
20513 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
20514
20515         * reflection.c: Add support for more than one unmanaged resource.
20516
20517         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
20518         in field->def_value, as done in all other cases.
20519
20520         * reflection.c (mono_reflection_get_custom_attrs): Add support for
20521         TypeBuilders.
20522
20523         * reflection.c (mono_reflection_create_runtime_class): Remove 
20524         errorneous assignment to klass->element_class, since it is already
20525         done in mono_reflection_setup_internal_class.
20526
20527 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20528
20529         * gc.c: added missing LeaveCriticalSection.
20530         * icall.c: indented a couple of lines.
20531         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
20532         if we call EndInvoke inside a callback. Fixes bug #52601.
20533
20534 2004-01-07  Martin Baulig  <martin@ximian.com>
20535
20536         * mono-debug-debugger.h
20537         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
20538
20539 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
20540
20541         * appdomain.c: Use messages in NotImplementedException.
20542
20543         * exception.c (mono_get_exception_not_implemented): Now this takes
20544         a message argument.
20545
20546         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
20547         exception instead of g_asserting an aborting when something is not
20548         implemented.
20549
20550         Add some inline docs.
20551
20552 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
20553
20554         * reflection.h: Update after changes to object layout.
20555
20556         * reflection.c: Implement saving of unmanaged aka win32 resources.
20557
20558         * appdomain.c: Bump version number.
20559
20560         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
20561         Handle missing domains gracefully.
20562
20563 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
20564
20565         * file-io.c : On Windows, there are much more invalid_path_chars.
20566
20567 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
20568
20569         * class.h, object.c: prepare for GetType () speedup.
20570
20571 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
20572
20573         * profiler.c: workaround for --profile null reference exception on
20574           cygwin. Patch by Patrik Torstensson.
20575
20576 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
20577
20578         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
20579         make work for unaligned access.
20580
20581 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
20582
20583         * class.c: small cleanup (class->fields [i] -> field).
20584         * image.c: check address of metadata is valid.
20585
20586 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
20587
20588         * assembly.h assembly.c (mono_assembly_loaded): New public function to
20589         search the list of loaded assemblies.
20590
20591         * reflection.c (mono_reflection_type_from_name): Use 
20592         mono_assembly_loaded instead of mono_image_loaded.
20593
20594         * reflection.c: Fix warnings.
20595
20596 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
20597
20598         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
20599         is dynamic. This is needed since an assembly can contain both dynamic and
20600         non-dynamic images.
20601
20602         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
20603         assembly->dynamic.
20604
20605         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
20606
20607         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
20608         to store modules loaded using AddModule.
20609
20610         * reflection.c (mono_image_fill_file_table): Generalize this so it works
20611         on Modules.
20612
20613         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
20614
20615         * reflection.c (mono_image_fill_export_table_from_module): New function to
20616         fill out the EXPORTEDTYPES table from a module.
20617
20618         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
20619         into a separate function. Also handle loaded non-dynamic modules.
20620
20621         * reflection.c (mono_image_basic_init): Fix memory allocation.
20622
20623         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
20624
20625         * assembly.c (mono_assembly_load_references): Make this public.
20626
20627 2003-12-19  Martin Baulig  <martin@ximian.com>
20628
20629         * class.c (mono_class_initialize_generic): Made this static, take
20630         a `MonoGenericInst *' instead of a `MonoClass *'.
20631         (mono_class_from_generic): Call mono_class_initialize_generic()
20632         unless we're already initialized or being called from
20633         do_mono_metadata_parse_generic_inst().
20634
20635         * class.h (MonoGenericInst): Added `initialized' and
20636         `init_pending' flags.
20637
20638         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
20639         `mono_class_init (gklass)' or mono_class_initialize_generic()
20640         here; set `generic_inst->init_pending' while parsing the
20641         `type_argv'.
20642
20643 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
20644
20645         * locales.c: include string.h for memxxx prototypes
20646
20647 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
20648
20649         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
20650         constructor when accessing literal fields.
20651
20652 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
20653
20654         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
20655
20656         * reflection.c (assembly_add_resource_manifest): New function to fill
20657         the MANIFESTRESOURCE table.
20658
20659         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
20660
20661         * reflection.h: Update to changes in class layout.
20662
20663         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
20664         Reenable call to mono_runtime_is_shutting_down ().
20665
20666         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
20667         determine if the runtime is shutting down.
20668
20669 2003-12-16  Jackson Harper <jackson@ximian.com>
20670
20671         * icall.c: comment out call to mono_runtime_is_shutting_down to
20672         fix build.
20673         
20674 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
20675
20676         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
20677         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
20678
20679 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
20680
20681         * reflection.c: move definition of swap_with_size
20682         to before its first call
20683
20684 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
20685
20686         * appdomain.c (mono_runtime_is_shutting_down): New public function.
20687
20688         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
20689         icall.
20690
20691         * object.c: Fix warnings.
20692
20693         * icall.c (ves_icall_Type_Get...): Only consider inherited static
20694         members if FlattenHierarchy is set.
20695
20696         * reflection.c (mono_image_add_decl_security): New function to emit
20697         declarative security.
20698
20699         * reflection.h reflection.c: Add support for declarative security.
20700
20701         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
20702         
20703 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
20704
20705         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
20706         
20707         * appdomain.c verify.c: Moved corlib version checking into its own
20708         function in appdomain.c since it needs to create vtables etc.
20709
20710 2003-12-13  Patrik Torstensson <p@rxc.se>
20711
20712         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
20713         instead of unwrapped server.
20714
20715 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
20716
20717         * verify.c (check_corlib): Fix field index.
20718
20719 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
20720
20721         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
20722         GetGacPath icall.
20723
20724 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
20725
20726         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
20727         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
20728         cope with sizeof(size_t) != sizeof(guint32).
20729
20730 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20731
20732         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
20733         in case of failure.
20734
20735 2003-12-10  Mark Crichton <crichton@gimp.org>
20736
20737         * icall.c: removed the GetNonZeroBytes.  We now handle this case
20738         in managed code.
20739
20740         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
20741
20742 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
20743
20744         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
20745         marked as deleted.
20746
20747 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
20748
20749         * verify.c (check_corlib): Handle the case when the version field is 
20750         initialized by a static constructor.
20751
20752 2003-12-08  Patrik Torstensson  <p@rxc.se>
20753
20754     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
20755
20756 2003-12-08  Martin Baulig  <martin@ximian.com>
20757
20758         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
20759         a MonoReflectionGenericParameter, also take the parameter index
20760         and name as arguments.
20761         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
20762         (ves_icall_MonoGenericParam_initialize): New interncall.
20763         (ves_icall_Type_make_byref_type): New interncall.
20764
20765         * reflection.h (MonoReflectionGenericParam): Derive from
20766         MonoReflectionType, not just from MonoObject.  Added `refobj' and
20767         `index' fields.
20768
20769         * reflection.c (mono_reflection_define_generic_parameter): Create
20770         and return a new MonoReflectionGenericParam; don't initialize the
20771         constraints here.
20772         (mono_reflection_initialize_generic_parameter): New public method;
20773         initializes the constraints and creates the `param->pklass'.
20774
20775 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
20776
20777         * reflection.h reflection.c: Use the new fields 'num_types', 
20778         'num_fields' and 'num_methods' to track the number of types etc.
20779
20780         * verify.c (check_corlib): Check corlib version number.
20781
20782 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
20783
20784         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
20785         function works on all methods.
20786
20787 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
20788
20789         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
20790         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
20791         the custom_type_info flag of the transparent proxy.
20792         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
20793         objects that supports IRemotingTypeInfo.
20794         * object.h: Added custom_type_info field in transparent proxy.
20795
20796 2003-12-06  Martin Baulig  <martin@ximian.com>
20797
20798         * class.c (mono_class_create_from_generic): Removed.
20799         (mono_class_from_generic): Check `ginst->klass' before doing
20800         anything else.  This is important to fully support "recursive"
20801         generic types.
20802
20803         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
20804         empty `generic_inst->klass' before doing anything else.
20805
20806 2003-12-06  Dick Porter  <dick@ximian.com>
20807
20808         * verify.c: 
20809         * object.h:
20810         * icall.c:
20811         * locales.c: Use C structs to access class fields.  Don't do a
20812         conversion between MonoString and UChar because both are
20813         platform-endian UTF-16.  Compare now takes startindex and count
20814         parameters.  Add a char overload for IndexOf.  Speed up the
20815         invariant string IndexOf.
20816
20817 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
20818
20819         * Makefile.am (monosn_LDADD): Fix parallel build.
20820
20821 2003-12-04  Martin Baulig  <martin@ximian.com>
20822
20823         * icall.c
20824         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
20825         (ves_icall_Type_make_array_type): New interncall.       
20826
20827 2003-12-04  Martin Baulig  <martin@ximian.com>
20828
20829         * locales.c: also change it in the !HAVE_ICU case.
20830
20831 2003-12-04  Dick Porter  <dick@ximian.com>
20832
20833         * icall.c:
20834         * locales.c: construct_compareinfo is now in CompareInfo, not
20835         CultureInfo.
20836
20837 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
20838
20839         * image.c (mono_image_load_file_for_image): Cache loaded images in the
20840         image->files array.
20841
20842         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
20843         table as well.
20844
20845         * assembly.c (mono_assembly_load_references): Only load references
20846         once.
20847
20848         * class.c (mono_class_from_name): Avoid linear search of the 
20849         EXPORTEDTYPE table.
20850
20851         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
20852
20853 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
20854
20855         * image.h (MonoImage): Add 'field_cache' field.
20856
20857         * loader.c (mono_field_from_token): Cache field lookups.
20858         
20859         * reflection.c (mono_module_get_object): Fix name property.
20860
20861         * icall.c (ves_icall_get_enum_info): Update after changes to 
20862         mono_metadata_get_constant_index ().
20863
20864         * icall.c: Get rid of get_type_info icall, use a separate icall for
20865         each type property to avoid needless memory allocations. Fixes #51514.
20866
20867         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
20868         to avoid needless binary searches.
20869
20870         * class.c (class_compute_field_layout): Move the initialization of
20871         field->def_value to mono_class_vtable ().
20872
20873         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
20874         non-corlib types.
20875
20876         * object.c (mono_object_allocate): Make it inline.
20877
20878         * object.c (mono_object_allocate_spec): Make it inline.
20879         
20880 2003-12-02  Dick Porter  <dick@ximian.com>
20881
20882         * locales.c (create_NumberFormat): NumberFormatInfo construction.
20883         Patch by Mohammad DAMT (mdamt@cdl2000.com).
20884
20885 2003-12-01  Dick Porter  <dick@ximian.com>
20886
20887         * threads.c: Fix signature and call in CreateMutex and
20888         CreateEvent.
20889
20890 2003-12-01  Dick Porter  <dick@ximian.com>
20891
20892         * icall.c: 
20893         * locales.c: Implement string compares and searching
20894
20895         * object.h: Add extra Thread field
20896
20897 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
20898
20899         * reflection.c (fixup_method): Add support for MonoCMethod.
20900
20901 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
20902
20903         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
20904
20905         * reflection.c (assembly_name_to_aname): Allow extra characters in
20906         assembly names. Fixes #51468.
20907
20908 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
20909
20910         * exception.c (mono_exception_from_name_domain): New helper function.
20911
20912         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
20913         exception object in the correct domain.
20914
20915         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
20916         formatting + make a copy a the input data.
20917
20918         * loader.c (mono_get_method_from_token): Methods which contain
20919         native code do not have entries in the ImplMap.
20920
20921         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
20922         Thanks to Gonzalo for spotting this.
20923         
20924         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
20925         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
20926
20927         * assembly.h (mono_assembly_load_from): Split the second part of 
20928         assembly loading into a new public function.
20929
20930         * exception.h (mono_get_exception_bad_image_format): New function.
20931
20932 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
20933
20934         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
20935         Enumerate all modules inside a dynamic assembly. Fixes #51293.
20936         
20937         * icall.c: Add new icall for creating dynamic methods.
20938
20939         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
20940
20941         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
20942
20943         * reflection.c (mono_reflection_create_dynamic_method): New icall to
20944         create a dynamic method.
20945
20946         * reflection.c (resolve_object): New helper function.
20947
20948         * reflection.c: Generalize ReflectionMethodBuilder and the functions
20949         which manipulate it so they can also work on dynamic methods.
20950
20951         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
20952         creating the MonoReflectionMethodAux structure if it is not needed.
20953         
20954         * reflection.h verify.c: Update after changes to object layout.
20955
20956         * reflection.c (method_builder_encode_signature): Fix compilation on
20957         gcc 2.95.x.
20958
20959 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
20960
20961         * appdomain.h: Added support for context static fields. Added static_data
20962           field to MonoAppContext and renamed thread_static_fields to a more
20963           generic special_static_fields in MonoAppDomain, since it can now contain
20964           context static fields.
20965         * domain.c: Updated hashtable name.
20966         * object.c: Replaced field_is_thread_static() for a more generic
20967           field_is_special_static() which also checks for context static attribute.
20968           In mono_class_vtable(), added support for static context fields.
20969         * threads.c: Changed methods that manage thread static fields to more
20970           generic methods so they can be reused both for thread and context static
20971           data.
20972         * threads.h: Declared some new methods.
20973
20974 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
20975
20976         * reflection.h: Update after changes to the managed types.
20977
20978         * reflection.c (encode_custom_modifiers): New helper function.
20979
20980         * reflection.c (method_encode_signature): Emit custom modifiers.
20981
20982         * reflection.c (field_encode_signature): Emit custom modifiers.
20983
20984 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
20985
20986         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
20987
20988         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
20989         implementation.
20990
20991         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
20992         icall.
20993
20994         * object.c (mono_field_get_value_object): New function.
20995
20996         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
20997         specific.
20998
20999 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
21000
21001         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
21002         return a preallocated out-of-memory exception instance.
21003
21004         * object.c (out_of_memory): Use the new function.
21005
21006         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
21007         flag is before the custom modifiers. Fixes #49802.
21008
21009 2003-11-16  Martin Baulig  <martin@ximian.com>
21010
21011         * class.c (mono_class_is_open_constructed_type): Implemented the
21012         MONO_TYPE_GENERICINST case.
21013
21014 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
21015
21016         * assembly.c (mono_assembly_fill_assembly_name): New function to
21017         fill out the MonoAssemblyName structure.
21018         (mono_assembly_open): Use the new function.
21019
21020         * icall.c (fill_reflection_assembly_name): New helper function.
21021
21022         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
21023         new function.
21024
21025         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
21026
21027 2003-11-15  Martin Baulig  <martin@ximian.com>
21028
21029         * class.c (mono_class_is_open_constructed_type): New public
21030         function; checks whether a type is an open constructed type,
21031         ie. whether it still contains type parameters.
21032         (mono_class_inflate_generic_type): If we're a type parameter and
21033         the inflated type is also a MONO_TYPE_(M)VAR, return the original
21034         type.
21035
21036         * class.h (MonoGenericInst): Added `guint32 is_open'.
21037
21038         * loader.c (method_from_methodspec): Check whether we're an open
21039         or closed constructed type and set `ginst->is_open'.
21040
21041         * reflection.c (mono_reflection_bind_generic_parameters): Check
21042         whether we're an open or closed constructed type and set
21043         `ginst->is_open'.
21044         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
21045         from open constructed types.
21046
21047 2003-11-15  Martin Baulig  <martin@ximian.com>
21048
21049         * reflection.c (mono_reflection_bind_generic_parameters): If we're
21050         a generic instance (instead of a generic type declaration) with
21051         unbound generic parameters, bind them to our actual types.
21052
21053 2003-11-14  Martin Baulig  <martin@ximian.com>
21054
21055         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
21056
21057         * reflection.c (mono_reflection_bind_generic_parameters): If we're
21058         an interface type, populate `res->interfaces' with instantiated
21059         versions of all the interfaces we inherit.
21060
21061 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
21062
21063         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
21064         when MONO_PATH is set but doesn't contain the install dir.
21065
21066 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21067
21068         * icall.c:
21069         (ves_icall_Type_GetInterfaces): don't return an interface twice when
21070         it's also implemented in base classes. Fixes bug #50927.
21071
21072 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
21073
21074         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
21075         if this method is called from a finalizer. Fixes #50913.
21076
21077 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
21078
21079         * threads.c: Implement VolatileRead/VolatileWrite
21080
21081         * icall.c: Add new icalls for VolatileRead/VolatileWrite
21082
21083 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
21084
21085         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
21086         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
21087         2.95.3.
21088
21089         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
21090         from Peter Ross (pro@missioncriticalit.com).
21091         
21092 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
21093
21094         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
21095
21096 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
21097
21098         * assembly.c (mono_assembly_load_references): Disable check because it
21099         triggers on older corlibs which lots of people have.
21100
21101 2003-11-12  Jackson Harper  <jackson@ximian.com>
21102
21103         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
21104         load corlib.dll if mscorlib.dll is not found.
21105         * assembly.h: Remove corlib name define.
21106         * class.c:
21107         * domain.c:
21108         * image.c: Change corlib name to mscorlib.
21109         
21110 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
21111
21112         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
21113
21114 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
21115
21116         * appdomain.h: Added loader_optimization here to sync with the C#
21117         code, and add disallow_binding_redirects field.
21118
21119 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
21120
21121         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
21122
21123         * reflection.c (mono_image_build_metadata): Fix crash on modules
21124         with no types.
21125
21126         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
21127
21128         * icall.c (ves_icall_get_method_info): Return callingConvention as
21129         well.
21130
21131         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
21132         namespaces from the EXPORTEDTYPE table as well.
21133
21134         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
21135         from all modules inside the assembly.
21136         
21137 2003-11-11  Martin Baulig  <martin@ximian.com>
21138
21139         * reflection.c (mono_reflection_bind_generic_parameters): Make
21140         this work for interfaces.
21141
21142 2003-11-11  Martin Baulig  <martin@ximian.com>
21143
21144         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
21145
21146 2003-11-11  Martin Baulig  <martin@ximian.com>
21147
21148         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
21149         "MonoInflatedMethod" and "MonoInflatedCtor".
21150
21151 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
21152
21153         * reflection.c (resolution_scope_from_image): Use the assembly table
21154         from the manifest module, since other modules don't have it.
21155
21156         * debug-helpers.c (mono_type_full_name): New helper function.
21157
21158         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
21159
21160         * image.c (mono_image_load_file_for_image): New public function which
21161         is a replacement for the load_file_for_image in class.c.
21162
21163         * assembly.c (mono_assembly_load_module): A wrapper for the function
21164         above which does assembly association and reference loading too.
21165
21166         * class.c (mono_class_from_name): Call mono_assembly_load_module.
21167
21168 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21169
21170         * appdomain.c: not all of the attributes for the full assembly name
21171         are required and the order doesn't matter. Fixes bug #50787.
21172
21173 2003-11-10  Dick Porter  <dick@ximian.com>
21174
21175         * locales.c: Use platform-endian UTF16
21176
21177 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
21178
21179         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
21180         
21181 2003-11-10  Martin Baulig  <martin@ximian.com>
21182
21183         * metadata.c
21184         (mono_metadata_load_generic_params): Make this actually work.
21185
21186         * reflection.c (mono_reflection_bind_generic_parameters): If our
21187         parent is a generic instance, pass all the `types' to it, no
21188         matter whether it has the same number of type parameters or not.
21189
21190 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
21191
21192         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
21193
21194         * assembly.c (mono_assembly_load_references): Move the image<->assembly
21195         assignment code to this function so it gets called recursively for all
21196         modules.
21197
21198         * image.c (load_modules): Remove the assembly assignment since it is
21199         now done by mono_assembly_load_references.
21200         
21201         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
21202         Add 'module' argument.
21203         (mono_module_get_types): New helper function.
21204         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
21205
21206 2003-11-08  Martin Baulig  <martin@ximian.com>
21207
21208         * class.c (mono_class_inflate_generic_method): Interface method
21209         don't have a header.
21210
21211         * reflection.c (mono_image_get_methodspec_token): Take an
21212         additional `MonoGenericInst *' argument instead of reading it from
21213         the header; this is necessary to support interfaces.
21214         (mono_image_create_token): Pass the `MonoGenericInst *' from the
21215         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
21216         (inflated_method_get_object): Take an additional `MonoGenericInst *'
21217         argument.
21218
21219         * reflection.h (MonoReflectionInflatedMethod): Added
21220         `MonoGenericInst *ginst'.
21221
21222 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
21223
21224         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
21225
21226 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
21227
21228         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
21229
21230 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
21231
21232         * reflection.c 
21233         (reflection_methodbuilder_from_method_builder):
21234         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
21235         initialize a ReflectionMethodBuilder structure.
21236         (mono_image_get_methodbuilder_token):
21237         (mono_image_get_ctorbuilder_token): New functions to emit memberref
21238         tokens which point to types in another module inside the same assembly.
21239
21240         * reflection.c: Use the new helper functions.
21241         
21242         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
21243
21244         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
21245         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
21246
21247         * reflection.c (resolution_scope_from_image): Emit a moduleref if
21248         neccesary.
21249
21250         * reflection.c (mono_image_build_metadata): Emit metadata only for the
21251         current module. Emit the manifest only for the main module.
21252
21253         * reflection.c (mono_image_create_token): Add assertion when a 
21254         memberref needs to be created.
21255
21256         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
21257
21258         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
21259         larger buffer for the custom attribute blob. Fixes #50637.
21260         
21261 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21262
21263         * threadpool.c: notify listener on async processing handles after
21264         invoking the async callback. Thanks to Zoltan.
21265
21266 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
21267
21268         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
21269         avoid code duplication.
21270
21271         * reflection.h (MonoDynamicImage): New type which is currently unused,
21272         but will be used through the ref.emit code in place of 
21273         MonoDynamicAssembly.
21274
21275         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
21276         object layout.
21277
21278         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
21279         a MonoDynamicImage instead of just a MonoImage.
21280         
21281         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
21282         icalls to ModuleBuilder but keep their semantics, so they will work
21283         with moduleb->assemblyb. This will change later.
21284         
21285 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
21286
21287         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
21288         object layout.
21289
21290         * reflection.c (mono_image_build_metadata): Avoid creation of a default
21291         main module, since it is now done by the managed code.
21292
21293 2003-11-03  Martin Baulig  <martin@ximian.com>
21294
21295         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
21296         `ginst->klass' here.
21297         (method_encode_methodspec): Don't use the `ginst->generic_method's
21298         klass if it's a generic instance, use `ginst->klass' in this case.
21299
21300 2003-11-03  Martin Baulig  <martin@ximian.com>
21301
21302         * reflection.c (mono_image_get_generic_method_param_info):
21303         Removed, use mono_image_get_generic_param_info() instead.
21304         (mono_image_get_type_info): Write the GenericParam table before
21305         the Method table.  This is neccessary because in the GenericParam
21306         table, type parameters of the class (ie. '!0' etc.) must come
21307         before the ones from its generic methods (ie. '!!0' etc).
21308
21309 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
21310
21311         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
21312
21313 2003-11-02  Martin Baulig  <martin@ximian.com>
21314
21315         * reflection.c (create_generic_typespec): Take a
21316         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
21317         the generic parameters from it.
21318
21319 2003-11-02  Martin Baulig  <martin@ximian.com>
21320
21321         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
21322         instead of a `MonoClassField *' since we just need the type.
21323         (create_generic_typespec): New static function.  Creates a
21324         TypeSpec token for a generic type declaration.
21325         (mono_image_get_generic_field_token): New static function.
21326         (mono_image_create_token): If we're a FieldBuilder in a generic
21327         type declaration, call mono_image_get_generic_field_token() to get
21328         the token.
21329
21330 2003-11-02  Martin Baulig  <martin@ximian.com>
21331
21332         * reflection.h
21333         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
21334         `MonoReflectionGenericInst *declaring_type' and
21335         `MonoReflectionGenericInst *reflected_type' fields.
21336
21337         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
21338         `MonoReflectionGenericInst *declaring_type' and a
21339         `MonoReflectionGenericInst *reflected_type' argument instead of a
21340         single `MonoReflectionGenericInst *type' one.  Set
21341         `res->declaring_type' and `res->reflected_type' from them.
21342         (mono_reflection_inflate_field): Likewise.      
21343
21344 2003-11-02  Martin Baulig  <martin@ximian.com>
21345
21346         * class.c (mono_class_setup_vtable): Don't store generic methods
21347         in the vtable.  
21348
21349 2003-11-02  Martin Baulig  <martin@ximian.com>
21350
21351         * reflection.h (MonoReflectionGenericInst): Added
21352         `MonoReflectionType *declaring_type'.
21353
21354         * reflection.c (mono_reflection_bind_generic_parameters): Use
21355         `if (tb->parent)' instead of `klass->parent'.
21356
21357 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
21358
21359         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
21360         with an empty ASSEMBLY table.
21361
21362         * reflection.c (mono_image_build_metadata): Avoid using the same loop
21363         variable in the inner and outer loops.
21364
21365 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
21366
21367         * metadata.h (mono_metadata_make_token): Put parentheses around macro
21368         argument.
21369
21370         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
21371         
21372         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
21373         icalls. Instead, do everything in managed code. This is needed since
21374         it is hard to restore the original domain etc. in unmanaged code in the
21375         presence of undeniable exceptions.
21376
21377         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
21378         New icalls to push and pop appdomain refs.
21379
21380 2003-10-31  Martin Baulig  <martin@ximian.com>
21381
21382         * class.c (inflate_generic_type): Renamed to
21383         mono_class_inflate_generic_type() and made it public.
21384
21385         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
21386         New interncall.
21387
21388         * loader.c (mono_field_from_memberref): Also set the retklass for
21389         typespecs.
21390
21391         * fielder.c (mono_image_get_inflated_field_token): New static
21392         method; creates a metadata token for an inflated field.
21393         (mono_image_create_token, fixup_method): Added support for
21394         "MonoInflatedField".
21395         (fieldbuilder_to_mono_class_field): New static function.
21396         (mono_reflection_inflate_field): New public function.
21397
21398         * reflection.h
21399         (MonoReflectionGenericInst): Added `MonoArray *fields'.
21400         (MonoReflectionInflatedField): New typedef.     
21401
21402 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
21403
21404         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
21405         for Solaris and other platforms without s6_addr16
21406
21407 2003-10-30  Martin Baulig  <martin@ximian.com>
21408
21409         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
21410         argument instead of two.
21411         (mono_class_inflate_generic_signature): Likewise.
21412         (inflate_generic_header): Likewise.
21413         (mono_class_inflate_generic_method): Likewise.  In addition, if
21414         `ginst->klass' is set, it becomes the new `method->klass'.
21415
21416         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
21417         field.
21418
21419         * reflection.c (encode_generic_method_sig): Write a 0xa as the
21420         first byte. [FIXME]
21421         (method_encode_methodspec): If we have generic parameters, create
21422         a MethodSpec instead of a MethodRef.
21423         (fixup_method): Added support for "MonoInflatedMethod" and
21424         "MonoInflatedCtor".
21425         (mono_image_create_token): Added support for "MonoInflatedMethod"
21426         and "MonoInflatedCtor".
21427         (inflated_method_get_object): New static function; returns a
21428         managed "System.Reflection.MonoInflatedMethod" object.
21429         (mono_reflection_bind_generic_method_parameters): Return a
21430         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
21431         (mono_reflection_inflate_method_or_ctor): Likewise.
21432         (mono_image_get_generic_method_param_info): Initialize unused
21433         fields to zero.
21434         (mono_image_get_generic_param_info): Likewise.
21435
21436         * reflection.h (MonoReflectionInflatedMethod): New public
21437         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
21438         "S.R.MonoInflatedCtor" classes.
21439
21440         * loader.c (method_from_memberref): If we're a TypeSpec and it
21441         resolves to a generic instance, inflate the method.
21442
21443 2003-10-28  Dick Porter  <dick@ximian.com>
21444
21445         * object.c (mono_runtime_run_main): Convert command-line arguments
21446         into utf8, falling back to the user's locale encoding to do so.
21447
21448 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
21449
21450         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
21451         at this time.
21452
21453         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
21454
21455         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
21456         up icalls at method definition time. Partially fixes #33569.
21457
21458 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
21459
21460         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
21461         marshalling of arrays. Fixes #50116.
21462
21463         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
21464
21465         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
21466         points to a vtable in the dying appdomain.
21467
21468         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
21469         listeners into unmanaged code inside the lock.
21470
21471         * object.c (mono_class_vtable): Turn off typed allocation in non-root
21472         domains and add some comments.
21473
21474 2003-10-25  Martin Baulig  <martin@ximian.com>
21475
21476         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
21477
21478         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
21479
21480         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
21481         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
21482         currently parsing.  Create the generic class and store it in
21483         `generic_inst->klass' before parsing the type arguments.  This is
21484         required to support "recursive" definitions; see mcs/tests/gen-23.cs
21485         for an example.
21486         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
21487         to support recursive typespec entries.
21488
21489         * class.c (mono_class_setup_parent): If our parent is a generic
21490         instance, we may get called before it has its name set.
21491         (mono_class_from_generic): Splitted into
21492         mono_class_create_from_generic() and mono_class_initialize_generic().
21493
21494 2003-10-25  Martin Baulig  <martin@ximian.com>
21495
21496         * icall.c (ves_icall_Type_BindGenericParameters): Return a
21497         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
21498         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
21499         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
21500
21501         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
21502         (create_typespec): Likewise.
21503         (mono_reflection_bind_generic_parameters): Return a
21504         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
21505         (mono_reflection_inflate_method_or_ctor): New public function.
21506
21507         * reflection.h (MonoReflectionGenericInst): New typedef.        
21508
21509 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
21510
21511         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
21512         inside the domain lock. Fixes #49993.
21513         
21514         * object.c (mono_class_vtable): When typed allocation is used, 
21515         allocate vtables in the GC heap instead of in the mempool, since the
21516         vtables contain GC descriptors which are used by the collector even
21517         after the domain owning the mempool is unloaded.
21518
21519         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
21520
21521         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
21522         reflect what it does. Also invalidate mempools instead of freeing
21523         them if a define is set.
21524
21525         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
21526         of the appdomain.
21527         
21528         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
21529         hold the finalizable objects in this domain.
21530
21531         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
21532         appdomain.
21533
21534         * appdomain.c (mono_domain_set): New function to set the current
21535         appdomain, but only if it is not being unloaded.
21536
21537         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
21538         appdomain which is being unloaded.
21539         
21540         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
21541         unloading of the root appdomain.
21542
21543         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
21544         icall to execute a method in another appdomain. Intended as a 
21545         replacement for InternalSetDomain, which can confuse the code 
21546         generation in the JIT.
21547
21548         * appdomain.c (mono_domain_is_unloading): New function to determine
21549         whenever an appdomain is unloading.
21550
21551         * appdomain.c (mono_domain_unload): New function to correctly unload
21552         an appdomain.
21553
21554         * assembly.c (mono_assembly_load_references): Check that an assembly
21555         does not references itself.
21556
21557         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
21558         domain manually, it asks the finalizer thread to do it, then waits for
21559         the result. Also added a timeout.
21560
21561         * icall.c: Register the new icalls.
21562
21563         * threads.h threads.c: Export the mono_gc_stop_world and 
21564         mono_gc_start_world functions.
21565         
21566         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
21567         function to fill out the mempool with 0x2a.
21568
21569 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
21570
21571         * reflection.h (MonoReflectionMethodAux): New structure to store
21572         information which is rarely used, thus is not in the MonoMethod
21573         structure.
21574
21575         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
21576         store the aux info.
21577
21578         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
21579         and marshalling info into the aux structure.
21580
21581         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
21582         from the aux structure.
21583
21584         * loader.c (mono_method_get_param_names): Retrieve the param names from
21585         the aux structure.
21586         
21587 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
21588
21589         * exception.h exception.c: Add AppDomainUnloadedException && fix 
21590         warning.
21591
21592 2003-10-21  Dick Porter  <dick@ximian.com>
21593
21594         * socket-io.c
21595         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
21596         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
21597
21598 2003-10-21  Martin Baulig  <martin@ximian.com>
21599
21600         * reflection.c (mono_reflection_bind_generic_parameters):
21601         `klass->parent' is NULL for interfaces.
21602
21603 2003-10-21  Martin Baulig  <martin@ximian.com>
21604
21605         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
21606
21607 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
21608
21609         * exception.c (mono_exception_from_name_msg): New helper function for
21610         creating exceptions and initializing their message field.
21611
21612         * exception.c: Simplify functions using the new helper.
21613
21614         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
21615         New function.
21616
21617         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
21618         mono_raise_exception, since otherwise gcc doesn't generate the function
21619         epilog for raise_exception, confusing the stack unwinding in the JIT.
21620         Fixes #45043.
21621
21622         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
21623         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
21624         Fixes #49499.
21625
21626 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21627
21628         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
21629         utf8.
21630
21631 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
21632
21633         * icall.c: Removed GetUninitializedObject method because
21634           AllocateUninitializedClassInstance does the same.
21635
21636 2003-10-18  Martin Baulig  <martin@ximian.com>
21637
21638         * class.c (inflate_generic_signature): Renamed to
21639         mono_class_inflate_generic_signature() and made it public.
21640         (my_mono_class_from_generic_parameter): New static function; if we
21641         don't already have the generic parameter's MonoClass, create a
21642         very simple one which is just used internally in the runtime and
21643         not passed back to managed code.
21644
21645         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
21646
21647         * metadata.h (MonoMethodSignature): Moved the
21648         `MonoGenericParam *gen_params' to the MonoMethodHeader.
21649         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
21650
21651         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
21652         ves_icall_MonoMethod_GetGenericArguments(); this is now an
21653         interncall on the MonoMethod class, not on MethodInfo.
21654         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
21655         calling mono_reflection_bind_generic_method_parameters() directly.
21656
21657         * loader.c (mono_method_get_signature): If this is a MethodSpec;
21658         return the already computed `method->signature'.
21659         (method_from_methodspec): New static function to load a method
21660         from a MethodSpec entry.
21661         (mono_get_method_from_token): Call the new method_from_methodspec()
21662         for MethodSpec tokens.  
21663         (mono_get_method_from_token): If we're a generic method, load the
21664         type parameters.
21665
21666         * reflection.c (mono_image_get_memberref_token): Allow
21667         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
21668         table.
21669         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
21670         (mono_image_create_token): First check whether it's a generic
21671         method (so we'd need to create a MethodSpec), then do the other
21672         two alternatives.
21673         (mono_reflection_bind_generic_method_parameters): Return a
21674         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
21675         called directly from the interncall.
21676
21677 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
21678
21679         * reflection.c (load_public_key): Move loading of the public key
21680         into managed code.
21681
21682         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
21683
21684         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
21685         fields.
21686
21687         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
21688         culture, hash_alg and public_key. Fixes #49555.
21689
21690 2003-10-17  Martin Baulig  <martin@ximian.com>
21691
21692         * class.h (MonoGenericInst): Moved this declaration here and added
21693         `MonoMethod *generic_method'.
21694
21695         * icall.c
21696         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
21697         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
21698
21699         * metadata.c (mono_metadata_type_equal): Two types of
21700         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
21701         index; ie. don't compare the address of the `MonoGenericParam'
21702         structure.
21703         (mono_metadata_load_generic_params): Removed the `MonoMethod
21704         *method' argument.
21705
21706         * metadata.h (MonoGenericInst): Moved declaration to class.h.
21707         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
21708
21709         * reflection.c (method_encode_signature): Encode the number of
21710         generic parameters.
21711         (encode_generic_method_sig): New static function.
21712         (method_encode_methodspec): New static function; creates an entry
21713         in the MethodSpec table for a generic method.
21714         (mono_image_get_methodspec_token): New static function.
21715         (mono_image_create_token): Call mono_image_get_methodspec_token()
21716         for generic methods.
21717         (mono_reflection_bind_generic_method_parameters): New public
21718         function.  Instantiates a generic method.
21719
21720 2003-10-16  Martin Baulig  <martin@ximian.com>
21721
21722         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
21723         *gen_params' here from MonoMethodHeader.
21724
21725         * metadata.c (mono_metadata_parse_method_signature): If we have
21726         generic parameters, initialize `method->gen_params' and then set
21727         the correct `type->data.generic_param' in all the parameters.
21728
21729 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
21730
21731         * threads.c (mono_threads_get_default_stacksize): New function to 
21732         return the default stacksize.
21733
21734         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
21735         termination of the finalizer thread, since the previous method had
21736         race conditions. Fixes #49628.
21737
21738         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
21739         as for the other managed threads.
21740
21741 2003-10-16  Martin Baulig  <martin@ximian.com>
21742
21743         * class.c (inflate_generic_signature): Copy `generic_param_count'
21744         and `gen_params'.
21745
21746         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
21747         New interncall.
21748
21749         * metadata.c (mono_metadata_parse_method_signature): Actually set
21750         the `method->generic_param_count' here.
21751         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
21752
21753 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
21754
21755         * object.h: Add a new field to TypedRef to simplify the implementation
21756         of the REFANY opcodes in the JIT.
21757
21758         * icall.c: Make use of the new field.
21759
21760         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
21761         dynamically.
21762
21763 2003-10-15  Martin Baulig  <martin@ximian.com>
21764
21765         * class.c (mono_class_from_gen_param): Renamed to
21766         mono_class_from_generic_parameter() and moved most of the
21767         functionality from mono_reflection_define_generic_parameter()
21768         here; ie. we create a "real" class here.
21769         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
21770         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
21771         previously been called.
21772
21773         * class.h (MonoGenericParam): Moved the declaration of this struct
21774         here from metadata.h and added `MonoMethod *method'.
21775
21776         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
21777         interncall.
21778
21779         * loader.c (mono_get_method_from_token): If we have any generic
21780         parameters, call mono_metadata_load_generic_params() to read them
21781         from the MONO_TABLE_GENERICPAR.
21782
21783         * metadata.c (mono_metadata_load_generic_params): Added
21784         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
21785
21786         * metadata.h (MonoMethodSignature): Replaced
21787         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
21788         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
21789
21790         * reflection.c (mono_reflection_define_generic_parameter): Moved
21791         most of the functionality into the new
21792         mono_class_from_generic_parameter(); set the `method' field if
21793         we're a method parameter.       
21794
21795 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
21796
21797         * marshal.c (emit_struct_conv): if native size is 0
21798         emit no code.
21799
21800 2003-10-14  Martin Baulig  <martin@ximian.com>
21801
21802         * icall.c: The generics API has changed in the spec since it was
21803         added to System.Type; these modifications make it match the spec
21804         again.
21805         (ves_icall_Type_GetGenericParameters): Renamed to
21806         `ves_icall_Type_GetGenericArguments'.
21807         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
21808         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
21809         `ves_icall_MonoType_get_HasGenericArguments'.
21810         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
21811         `ves_icall_MonoType_get_IsGenericParameter'.
21812         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
21813         this is no interncall anymore.
21814         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
21815         `ves_icall_TypeBuilder_get_IsGenericParameter'.
21816
21817 2003-10-14  Martin Baulig  <martin@ximian.com>
21818
21819         * reflection.c (mono_reflection_bind_generic_parameters): Also
21820         inflate generic methods if we're reading the class from IL.
21821
21822 2003-10-13  Martin Baulig  <martin@ximian.com>
21823
21824         * reflection.c (mono_reflection_define_generic_parameter): This
21825         method isn't called directly from the icall anymore; take a
21826         `MonoReflectionAssemblyBuilder *' so we can use this for type and
21827         method generic parameters.
21828         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
21829         (method_builder_encode_signature): Encode generic parameters.
21830         (mono_image_get_method_info): Write generic params to the
21831         MONO_TABLE_GENERICPARAM table.
21832
21833         * reflection.h (MonoReflectionMethodBuilder): Added
21834         `MonoArray *generic_params'.
21835
21836         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
21837
21838         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
21839         wrapper for mono_reflection_define_generic_parameter().
21840         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
21841
21842 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
21843
21844         * marshal.h: Add missing function to fix build.
21845
21846         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
21847         the SetLastError pinvoke attribute.
21848
21849         * marshal.c (mono_marshal_set_last_error): New helper function called
21850         by the generated code.
21851         
21852         * marshal.c (mono_mb_emit_branch): New helper function.
21853
21854         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
21855
21856         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
21857         classes as parameters and return values of delegates. Fixes #29256. 
21858
21859 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
21860
21861         * locales.c: use gint32 in non HAVE_ICU case
21862
21863 2003-10-11  Martin Baulig  <martin@ximian.com>
21864
21865         * mono-debug.c (mono_debug_add_method): Added a workaround for
21866         bug #48591.
21867
21868 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
21869
21870         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
21871         delegates passed to native code must use the STDCALL calling 
21872         convention. Fixes #35987.
21873
21874 2003-10-10  Martin Baulig  <martin@ximian.com>
21875
21876         * class.c (inflate_generic_type): If we're inflating for a generic
21877         type instance (and not for a generic method), return
21878         MONO_TYPE_MVAR unchanged.
21879
21880 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21881
21882         * string-icalls.c: Join ignores null strings in the source array.
21883         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
21884         * threads.c: GetAvailableTheads is slightly more accurate.
21885
21886 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
21887
21888         * threads.h threads.c : add mono_threads_set_default_stacksize
21889         and pass default to CreateThread calls.
21890
21891 2003-10-09  Dick Porter  <dick@ximian.com>
21892
21893         * icall.c:
21894         * locales.h:
21895         * locales.c: Internal calls for constructing CultureInfo and
21896         related objects from libicu (if its available.)
21897
21898 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
21899
21900         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
21901
21902 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21903
21904         * threadpool.c: added an argument to async_invoke_thread that is the
21905         item to process, pass the MonoAsyncResult to the thread start function
21906         when creating a new thread. This way we don't need to acquire any lock
21907         when we're creating a new thread. Readded a semaphore for faster
21908         response times (instead of that Sleep i added).
21909
21910 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
21911
21912         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
21913         get daylight change dates better on Windows, fix handling
21914         of platforms without tm_gmtoff.
21915
21916 2003-10-06  Martin Baulig  <martin@ximian.com>
21917
21918         * class.c (inflate_generic_method): Renamed to
21919         mono_class_inflate_generic_method() and made public.
21920         (mono_class_init): Don't inflate the generic methods here.
21921         (mono_class_from_generic): Added `gboolean inflate_methods'
21922         argument.  Inflate the methods here.
21923
21924         * loader.c (mono_method_get_param_names): Ignore instances of
21925         generic types for the moment.
21926
21927         * reflection.c (fixup_method): Added support for inflated methods.
21928         (mono_image_create_token): Use mono_image_get_methodref_token()
21929         for inflated methods.
21930         (mono_custom_attrs_from_param): Ignore instances of generic types
21931         for the moment.
21932         (mono_reflection_bind_generic_parameters): New public function.
21933         Moved all the functionality from
21934         ves_icall_Type_BindGenericParameters() here and added support for
21935         dynamic types.
21936         (mono_reflection_define_generic_parameter): Initialize
21937         `klass->methods' here.
21938
21939         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
21940         functionality into mono_reflection_define_generic_parameter().
21941         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
21942         TypeBuilder, return that TypeBuilder.
21943
21944 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21945
21946         * appdomain.c: removed mono_delegate_semaphore.
21947
21948         * threadpool.c:
21949         (mono_thread_pool_add): moved hash table creation inside and the thread 
21950         creation outside of the critical region.
21951         (mono_thread_pool_finish): removed obsolete code.
21952         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
21953         continue or exit the thread depending on the queue.
21954
21955 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
21956
21957         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
21958         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
21959         handle more bool marshalling options
21960
21961 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
21962
21963         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
21964         arrays of structs. Also add a more descriptive error message when
21965         a structure member is marshalled as LPArray.
21966
21967 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
21968
21969         * marshal.c (mono_marshal_get_native_wrapper): Add support for
21970         marshalling arrays of complex types. Fixes #29098. Also remove an
21971         usused and incomplete function.
21972
21973 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
21974
21975         * gc.c: report heap_size - free_bytes as total memory allocated
21976         (bug#49362).
21977
21978 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
21979
21980         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
21981         fix timezone handling problems on Windows.
21982         
21983         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
21984         asserts when the year is outside the range handled by ms the functions.
21985
21986         * class.c (setup_interface_offsets): If the class is an interface,
21987         fill out its interface_offsets slot.
21988
21989 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21990
21991         * threadpool.c: mark threadpool threads as background.
21992
21993 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
21994
21995         * decimal.c - define DECINLINE to nothing if not using GCC
21996
21997 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
21998
21999         * assembly.c: More refcount fixes.
22000
22001 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22002
22003         * string-icalls.c: if we're not trimming, return the same string.
22004         When not splitting, don't create a new string.
22005
22006 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22007
22008         * image.c:
22009         (mono_image_open): increment the ref_count inside the critical section.
22010
22011 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
22012
22013         * image.c (mono_image_open): Fix reference counting bug.
22014
22015 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
22016
22017         * marshal.c (mono_marshal_type_size) struct alignment changed for 
22018         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
22019         64bits. Avoid leak in mono_marshal_get_native_wrapper when
22020         mono_lookup_pinvoke_call throws.        
22021
22022 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
22023
22024         * reflection.c (mono_reflection_parse_type): Fix #49114.
22025
22026         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
22027         temporary workaround for cygwin header problem.
22028
22029         * object.c (mono_object_isinst): Synchronize this with the code
22030         generated by the JIT for casts.
22031
22032 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
22033
22034         * reflection.c (encode_type): Fix #38332.
22035
22036 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
22037
22038         * marshal.c (mono_marshal_method_from_wrapper): New function to return
22039         the original method from the wrapper method.
22040
22041 2003-09-25  Martin Baulig  <martin@ximian.com>
22042
22043         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
22044         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
22045         (ves_icall_Type_get_IsGenericInstance): New interncall.
22046
22047 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
22048
22049         * object.c: fix cast warning in big endian code.
22050
22051 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
22052
22053         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
22054         
22055 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22056
22057         * assembly.c: don't call check_env from mono_assembly_load. It's
22058         already done once in mono_assemblies_init and may cause headaches when
22059         multiple threads are loading assemblies.
22060
22061 2003-09-19  Martin Baulig  <martin@ximian.com>
22062
22063         * reflection.c (mono_reflection_define_generic_parameter): Don't
22064         allocate `klass->methods', set `klass->flags' to
22065         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
22066
22067 2003-09-18  Martin Baulig  <martin@ximian.com>
22068
22069         * class.c (mono_class_init): Don't create `class->methods' if it's
22070         already initialized.
22071
22072         * metadata.c (mono_metadata_load_generic_params): Make this
22073         actually work.
22074
22075         * reflection.c (mono_reflection_define_generic_parameter): Set
22076         parent class and interfaces from the constraints.
22077
22078         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
22079         to keep this struct in sync with the declaration in TypeBuilder.cs.
22080
22081 2003-09-17  Martin Baulig  <martin@ximian.com>
22082
22083         * metadata.h (MonoType): Replaced the data's `int type_param'
22084         field with `MonoGenericParam *generic_param'.
22085         (MonoGenericParam): Added `MonoClass *klass'.
22086
22087         * class.c (mono_class_from_gen_param): Removed the
22088         `MonoImage *image' and `int type_num' arguments.
22089
22090         * metadata.c (mono_metadata_parse_generic_param): New static
22091         method; creates a MonoGenericParam which just contains the index.
22092         (do_mono_metadata_parse_type): Call
22093         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
22094         MONO_TYPE_MVAR.
22095
22096         * reflection.c (mono_image_typedef_or_ref): Generic type
22097         parameters may be in the same assembly, but never use a typedef
22098         for them.
22099         (mono_reflection_define_generic_parameter): We're now creating a
22100         "real" class for the type parameter; it's now safe to call
22101         mono_class_from_mono_type() on the class'es type, it'll do the
22102         right thing.
22103
22104 2003-09-16  Martin Baulig  <martin@ximian.com>
22105
22106         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
22107         `symfile->range_entry_size' and `symfile->class_entry_size' here;
22108         the `symfile' data structure must be fully initialized before it
22109         gets added to the table.
22110
22111 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
22112
22113         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
22114
22115         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
22116         class init trampolines.
22117
22118 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
22119
22120         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
22121         to the built-in profiler to turn off time and allocation profiling
22122         respectively.
22123
22124 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
22125
22126         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
22127         g_direct_equal.
22128
22129         * debug-helpers.c (mono_method_full_name): Print the wrapper type
22130         in human readable form.
22131
22132 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
22133
22134         * reflection.c icall.c: Fixed warnings.
22135
22136         * image.c (load_class_names): Use a temporary hash table to hold the
22137         namespaces in order to avoid doing many string comparisons.
22138
22139         * image.h: Fix typo.
22140
22141         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
22142         Pass NULL instead of g_direct_equal to the GHashTable constructor 
22143         since the NULL case is short-circuited inside g_hash_table_lookup, 
22144         leading to better performance.  
22145
22146         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
22147         obtain the first custom attribute for a given index. Depends on the
22148         CustomAttribute table being sorted by the parent field.
22149
22150         * reflection.c (mono_custom_attrs_from_index): Use the new function 
22151         for better performance.
22152
22153 2003-09-07  Martin Baulig  <martin@ximian.com>
22154
22155         * class.c (mono_class_init): If we're a generic instance, inflate
22156         all our methods instead of loading them from the image.
22157         (mono_class_from_generic): Set `class->methods = gklass->methods'.
22158
22159 2003-09-07  Martin Baulig  <martin@ximian.com>
22160
22161         * mono-debug-debugger.c: Added support for constructors.
22162
22163 2003-09-06  Martin Baulig  <martin@ximian.com>
22164
22165         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
22166         New interncall.
22167
22168         * reflection.c (mono_reflection_setup_generic_class): Call
22169         ensure_runtime_vtable() to create the vtable.
22170
22171 2003-09-05  Martin Baulig  <martin@ximian.com>
22172
22173         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
22174         MONO_TYPE_MVAR.
22175
22176 2003-09-04  Martin Baulig  <martin@ximian.com>
22177
22178         * reflection.c (mono_reflection_define_generic_parameter): Generic
22179         parameters start with zero.
22180
22181 2003-09-04  Martin Baulig  <martin@ximian.com>
22182
22183         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
22184
22185         * reflection.h (MonoReflectionGenericParam): New typedef.
22186         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
22187         the generic parameters from the managed TypeBuilder.
22188
22189         * reflection.c (mono_reflection_define_generic_parameter): New function.
22190         (mono_reflection_create_runtime_class): Encode generic parameters.
22191         (mono_reflection_setup_generic_class): New function; this is
22192         called after adding adding all generic params to the TypeBuilder.
22193         (encode_type): Added MONO_TYPE_VAR.
22194
22195 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
22196
22197         * class.h class.c (mono_class_needs_cctor_run): Moved this method
22198         here from the JIT.
22199
22200         * assembly.h assembly.c: Moved the AOT loading code into an assembly
22201         load hook.
22202
22203 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
22204
22205         * reflection.h reflection.c class.h class.c: Delete duplicate 
22206         definition of mono_type_get_name () from reflection.c and export the
22207         one in class.c.
22208
22209         * class.c: Class loading fixes from Bernie Solomon 
22210         (bernard@ugsolutions.com).
22211
22212         * reflection.c: Endianness fixes from Bernie Solomon 
22213         (bernard@ugsolutions.com).
22214         
22215 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
22216
22217         * assembly.h assembly.c: Define a file format version for AOT
22218         libraries.
22219         
22220         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
22221
22222         * appdomain.h (MonoJitInfo): New field to determine whenever the
22223         code is domain neutral.
22224         
22225 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
22226
22227         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
22228
22229 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
22230
22231         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
22232         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
22233         Avoid caching the result since strings must be domain specific. Fixes
22234         #48050.
22235
22236 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
22237
22238         * marshal.c (mono_marshal_init): Make this callable multiple times
22239         since it is hard to find a correct place to call it.
22240
22241         * object.c (mono_runtime_class_init): Execute static constructors in
22242         the correct appdomain.
22243
22244         * image.c (build_guid_table): Handle the case when multiple images have
22245         the same GUID.
22246
22247 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22248
22249         * icall.c: added a couple of icalls for System.Web.
22250
22251 2003-08-28  Martin Baulig  <martin@ximian.com>
22252
22253         * icall.c (ves_icall_Type_BindGenericParameters): Use
22254         `klass->generic_inst' instead of `&klass->byval_arg' in the
22255         mono_type_get_object() call.  The returned type must be
22256         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
22257
22258 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
22259
22260         * NOTES: New file.
22261
22262         * object.c (mono_class_proxy_vtable): Make it thread safe.
22263
22264         * pedump.c: Fix warning.
22265
22266         * object.c appdomain.h: Get rid of metadata_section. 
22267         It is no longer needed and it was causing deadlocks with domain->lock.
22268
22269         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
22270
22271 2003-08-26  Martin Baulig  <martin@ximian.com>
22272
22273         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
22274
22275 2003-08-26  Martin Baulig  <martin@ximian.com>
22276
22277         * pedump.c (main): Call mono_metadata_init(),
22278         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
22279         and mono_loader_init().
22280
22281 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
22282
22283         * loader.h: Add missing include to fix build.
22284
22285         * image.h: mono_image_load_references is no more.
22286
22287         * assembly.c: Reworked assembly loading to make it really thread safe.
22288         After these changes, the assembly returned by mono_assembly_open is
22289         fully initialized, i.e. all its references assemblies are loaded.
22290
22291         * assembly.c (mono_image_load_references): Renamed to 
22292         mono_assembly_load_references, and made private, since clients no
22293         longer need to call it.
22294
22295         * class.c: Removed calls to mono_assembly_load_references, since it was
22296         a source of deadlocks.
22297
22298         * loader.h loader.c class.h class.c: Protect data structures using a 
22299         new lock, the loader lock.
22300
22301         * class.c (mono_class_setup_vtable): Create temporary hash tables and
22302         GPtrArrays only when needed.
22303
22304         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
22305         into empty structures by mcs. Fixes pinvoke7.cs.
22306         
22307         * domain.c (mono_init): Call a new initialization function.
22308
22309         * appdomain.c (mono_runtime_init): Call the new initializer function
22310         of the marshal module.
22311
22312         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
22313         inserted into empty structures by mcs. Fixes pinvoke7.cs.
22314
22315         * marshal.h marshal.c: Added locks around the wrapper caches to make
22316         this module thread safe.
22317
22318         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
22319         this argument. Fixes pinvoke1.exe.
22320
22321 2003-08-25  Lluis Sanchez <lluis@ximian.com>
22322
22323         * object.h: Added call_type field to MonoMethodMessage and the corresponding
22324         enumeration of values. Removed fields to store remote call output values in
22325         MonoAsyncResult. Not needed any more.
22326         * object.c: Initialize call_type and async_result fields in mono_message_init.
22327         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
22328         dispatching the message.
22329         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
22330         async call to finish. To do it use a message with EndInvoke call type.
22331
22332 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
22333
22334         * loader.h loader.c (mono_method_hash_marhal_info): New function which
22335         determines whenever a method has marshalling info.
22336
22337 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22338
22339         * assembly.c: fix the build on windows.
22340
22341 2003-08-22 Lluis Sanchez <lluis@ximian.com>
22342
22343         * object.cs: Fixed bug #47785.
22344
22345 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
22346
22347         * string-icalls.c (StringReplace): If their are no occurances of
22348         the old string found return a reference to the supplied
22349         string. This saves some memory and matches MS behavoir.
22350         
22351 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22352
22353         * socket-io.c: fixed compilation for systems that define AF_INET6
22354         and don't define SOL_IP/SOL_IPV6.
22355
22356 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
22357
22358         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
22359         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
22360
22361         * rawbuffer.c rawbuffer.h: Make this module thread safe.
22362
22363         * domain.c: Make this module thread safe.
22364
22365         * domain.c (mono_init): Call new initialization function.
22366
22367         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
22368         reference types too. Fixes #38812.
22369
22370         * image.c (mono_image_init): Fixed warnings.
22371
22372         * class.c (mono_class_from_typeref): Handle assembly load failure
22373         correctly.
22374
22375         * appdomain.c (add_assemblies_to_domain): Handle the case when
22376         the references of an assembly are not yet loaded.
22377
22378         * metadata.c image.c assembly.c: Moved initialization of global
22379         variables to a separate function called at startup since lazy 
22380         initialization of these variables is not thread safe.
22381         
22382         * image.c assembly.c: Made this module thread safe by adding locks in 
22383         the appropriate places.
22384
22385         * domain.c (mono_init): Call the new initialization functions of the
22386         three modules.
22387
22388 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
22389
22390         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
22391           make a direct call. It is proxy's work to make the call asynchronous.
22392           mono_delegate_end_invoke(): If the targe is a proxy, just collect
22393           the return values.
22394         * object.cs: mono_method_call_message_new(): read AsyncResult and
22395           state object from parameters list, if this info is requested.
22396         * object.h: Added fields to store remote call output values in
22397           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
22398
22399 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
22400
22401         * object.h: add needed fields to MonoThread.
22402         * threads.c, threads.h: allow registering a function to cleanup data
22403         allocated per thread by the JIT.
22404
22405 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
22406
22407         * loader.h: portability fix by Bernie Solomon
22408         * <bernard@ugsolutions.com>.
22409
22410 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
22411
22412         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
22413         return a MonoArray. This simplifies the code and also ensures that
22414         the cache allways contains an object reference as a value.
22415
22416         * icall.c (ves_icall_get_parameter_info): Simplified using the new
22417         function.
22418
22419 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22420
22421         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
22422         fixes a problem with byte ordering when getting the address family for
22423         a socket.
22424
22425 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
22426
22427         * .cvsignore: Added monosn.
22428
22429         * reflection.h reflection.c loader.c: Added support for parameter
22430         marshalling to dynamically created types. Fixes #47295.
22431
22432 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
22433
22434         * rand.c: remove useless warnings.
22435
22436 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
22437
22438         * class.c: implemented ldtoken for methods and fieldrefs.
22439
22440 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22441
22442         * threadpool.c: when mono_async_invoke was called, no one took care of
22443         monitoring the queue. So if the method invoked took some time and we
22444         got new async invoke requests after 500 ms (the thread created waited
22445         that long in WaitForSingleObject), the new async invoke was not called
22446         until the previous one finished.
22447
22448         This is fixed now. Thanks to Totte for helping with it.
22449
22450 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22451
22452         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
22453
22454 2003-08-11  Martin Baulig  <martin@ximian.com>
22455
22456         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
22457
22458 2003-08-06  Martin Baulig  <martin@ximian.com>
22459
22460         * mono-debug-debugger.c: Added support for static fields,
22461         properties and methods.
22462
22463 2003-08-06  Martin Baulig  <martin@ximian.com>
22464
22465         * mono-debug-debugger.c: Don't store the MonoString's vtable to
22466         make this work for applications with multiple application domains.
22467
22468 2003-08-04  Martin Baulig  <martin@ximian.com>
22469
22470         * mono-debug-debugger.c: Completely reworked the type support; the
22471         most important thing is that we're now just using one single
22472         `MonoType' instance per type.
22473
22474 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
22475
22476         * mono-endian.h, mono-endian.c, icall.c: Added icall
22477         ves_icall_System_Double_AssertEndianity to assert double word endianity
22478         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
22479
22480 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
22481
22482         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
22483         support, icalls and fixes.
22484
22485 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
22486
22487         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
22488         classes that are a punctuation character in .NET is not the same a
22489         g_unichar_ispunct.
22490
22491 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
22492
22493         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
22494
22495 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
22496
22497         * icall.c: Add new MemCopy internalcall.
22498         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
22499         Simplified code; It is not necessary to handle all the cases here,
22500         as the C# code takes care of it.  Only handle the case of the name
22501         resource embedded into the assembly.
22502
22503         Changed signature to return the data pointer and the size of the
22504         data. 
22505
22506 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
22507
22508         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
22509         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
22510
22511 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
22512
22513         * socket-io.c: ignore EINTR error in select.
22514
22515 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
22516
22517         * class.h, class.c: removed unused subclasses field in MonoClass.
22518
22519 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
22520
22521         * icall.c: improve fix of get_base_definition(). If the parent class
22522           doesn't have the mehod, look at the parent of the parent.
22523         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
22524           to check if a parameter is an in or out parameter
22525           (PARAM_ATTRIBUTE_IN is not set by default).
22526           mono_method_return_message_restore(): Use mono_class_value_size to
22527           get the size of a value type. mono_type_stack_size (parameterType)
22528           does not return the correct value if parameterType is byRef.
22529           mono_load_remote_field(), mono_load_remote_field_new(),
22530           mono_store_remote_field(), mono_store_remote_field_new():
22531           raise exception if the remote call returns an exception.
22532
22533 2003-07-28  Martin Baulig  <martin@ximian.com>
22534
22535         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
22536         method.  This is a wrapper around mono_runtime_invoke() which
22537         boxes the instance object if neccessary.
22538
22539 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
22540
22541         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
22542         metadata.h, row-indexes.h, verify.c: first cut of generics support.
22543
22544 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
22545
22546         * icall.c: disable mcs bug workaround.
22547
22548 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
22549
22550         * object.c (mono_runtime_class_init): Take the metadata_section
22551         mutex before obtaining the domain mutex.
22552
22553         * appdomain.h: Added definition of metadata_section mutex here. 
22554
22555         * object.c: define metadata_mutex here.
22556
22557 2003-07-24  Ravi Pratap  <ravi@ximian.com>
22558
22559         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
22560         fixed.
22561
22562 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
22563
22564         * reflection.c: Fix bug #46669
22565
22566 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22567
22568         * exception.c:
22569         * exception.h:
22570         * icall.c:
22571         * object.h: fill in the type name for TypeLoadException.
22572
22573 2003-07-23  Ravi Pratap  <ravi@ximian.com>
22574
22575         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
22576         relationship between TypeBuilders while compiling corlib) and bug
22577         45993 (Array types returned from the runtime while compiling
22578         corlib were from the loaded corlib).
22579
22580 2003-07-22  Martin Baulig  <martin@ximian.com>
22581
22582         * mono-debug-debugger.c: Reworked the type support a bit more;
22583         distinguish between types and classes.
22584
22585 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
22586
22587         * icall.c: add IsArrayImpl icall.
22588
22589 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
22590
22591         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
22592         initializing real_size only once. Also fix bug #46602.
22593
22594 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
22595
22596         * object.c: Renamed mono_metadata_section to metadata_section.
22597
22598 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
22599
22600         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
22601           empty array if the type is an array. Fixed.
22602           ves_icall_MonoMethod_get_base_definition: if the base method
22603           is abstract, get the MethodInfo from the list of methods of
22604           the class.
22605         * reflection.c: ParameterInfo.PositionImpl should be zero-based
22606           and it was 1-based. Fixed in mono_param_get_objects.
22607
22608 2003-07-20  Martin Baulig  <martin@ximian.com>
22609
22610         * mono-debug.h: Set version number to 31.
22611         (mono_debug_init): Added `MonoDomain *' argument.
22612
22613         * mono-debug-debugger.c: Reworked the type support; explicitly
22614         tell the debugger about builtin types; pass the `klass' address to
22615         the debugger.
22616
22617 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
22618
22619         * image.c: Allow new metadata tables to be loaded without a
22620         warning. Also update the warning message to give the new constant value.
22621                 
22622 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
22623
22624         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
22625         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
22626         array type representation changes.
22627
22628 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
22629
22630         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
22631         on Environment.Exit () call.
22632
22633 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
22634
22635         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
22636         requires a matching corlib.
22637
22638 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
22639
22640         * Changelog: My editor decided to add a CR to each line. Sorry about that.
22641           Committed again without the CRs.
22642         
22643 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
22644
22645         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
22646           getting it from the "this" socket instance. Did not work
22647           if the socket is a subclass of Socket.
22648           Also fixed bug #35371.
22649
22650 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
22651
22652         * metadata.c: fixed size for TypedByRef.
22653         * loader.c: when searching for a method, consider the vararg amrker.
22654         * unicode.c, decimal.c: constify some arrays.
22655
22656 2003-07-15  Dick Porter  <dick@ximian.com>
22657
22658         * socket-io.c: Fixed compilation for gcc < 3.2.
22659
22660         Fixed compilation for machines that don't have AF_INET6 (thanks to
22661         Bernie Solomon <bernard@ugsolutions.com> for that part.)
22662
22663         Fixed compile warnings.
22664         
22665         Fixed formatting and line endings.
22666
22667 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
22668
22669         * socket-io.h:
22670         * socket-io.c: Added IPv6 support.
22671
22672 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
22673
22674         * class.c (mono_class_is_assignable_from): New function to implement
22675         the is_assignable_from logic. Used by mono_object_isinst, 
22676         Type::IsAssignableFrom () and the interpreter.
22677
22678         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
22679         Object, even interfaces.
22680         
22681         * object.c (mono_object_isinst): Implement in terms of 
22682         is_assignable_from.
22683
22684         * icall.c (ves_icall_type_is_assignable_from): New icall.
22685
22686 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
22687
22688         * domain.c (foreach_domain): fix compiler warning.
22689
22690 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
22691
22692         * image.c (load_metadata_ptrs): use g_strndup because strndup is
22693         not available on all plattforms
22694
22695 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
22696
22697         * image.h image.c: Store the metadata version string in MonoImage.
22698         * icall.c: New icall to retrieve the image version.
22699         * reflection.c (create_dynamic_image): Fill in the image version field
22700         * reflection.c (build_compressed_metadata): Use the image version
22701         from the image structure.
22702
22703 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22704
22705         * appdomain.c: modified comment.
22706         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
22707         That will be its last iteration when mono_gc_cleanup is called from
22708         mono_runtime_cleanup and before the domain is unloaded.
22709
22710         Fixes bug #45962.
22711
22712 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
22713
22714         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
22715         attributes.
22716
22717 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
22718
22719         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
22720         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
22721         Bernie Solomon <bernard@ugsolutions.com>.
22722
22723 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
22724
22725         * object.c, object.h: provide mono_object_new_fast() for faster
22726         allocation in some special cases.
22727
22728 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
22729
22730         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
22731         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
22732
22733 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
22734
22735         * threadpool.c: fix leaks.
22736
22737 2003-07-01  Dick Porter  <dick@ximian.com>
22738
22739         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
22740         using MonoGHashTables.  Fixes threadpool bug posted to list.
22741
22742 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
22743
22744         * image.h, image.c: added support to load an assembly from a byte array.
22745         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
22746         assembly bundle support.
22747
22748 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
22749
22750         * threadpool.c (mono_thread_pool_add): keep a reference to the
22751         AsyncResult to prevent GC
22752
22753 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
22754
22755         * class.c: leak fix.
22756
22757 2003-06-25  Dick Porter  <dick@ximian.com>
22758
22759         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
22760         for the async object, the WaitHandle object will close the handle.
22761         Fixes bug 45321.
22762
22763 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
22764
22765         * class.c: in mono_array_class_get (), lookup from the hash with the
22766         same type we insert: this works around a bug in
22767         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
22768         lluis. The real fix will have to wait for after the release.
22769
22770 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
22771
22772         * icall.c: fix memory leak when getting type members.
22773
22774 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
22775
22776         * reflection.c: added more pubtoken special cases.
22777
22778 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
22779
22780         * class.c: handle field offset correctly when class size
22781         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
22782
22783 2003-06-20  Martin Baulig  <martin@ximian.com>
22784
22785         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
22786         *image' field.
22787
22788 2003-06-20  Martin Baulig  <martin@ximian.com>
22789
22790         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
22791
22792 2003-06-20  Martin Baulig  <martin@ximian.com>
22793
22794         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
22795         just distinguish between variables in registers and variables at
22796         an offset relative to a register.
22797
22798 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22799
22800         * icall.c: #ifdef out latest changes until mcs is fixed.
22801
22802 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
22803
22804         * icall.c: return members in metadata order.
22805
22806 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
22807
22808         * icall.c: avoid infinite loop in GetTimeZoneData.
22809
22810 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
22811
22812         * icall.c: added Marshal.Prelink/All icalls.
22813
22814 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
22815
22816         * object.c, object.h: fix warnings and do some overflow checking
22817         when creating arrays.
22818
22819 2003-06-17  Dick Porter  <dick@ximian.com>
22820
22821         * file-io.h:
22822         * file-io.c: File attributes need to be tweaked slightly when
22823         passed from the managed to the w32 world.
22824
22825 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
22826         * profiler.h profiler-private.h profiler.c: Rework last patch
22827         based on suggestion by Paolo.
22828         
22829 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
22830
22831         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
22832         instruction level coverage data collection.
22833         * profiler.h profiler.c (: Added new callback function which can be
22834         used by the profiler to limit which functions should have coverage
22835         instrumentation.
22836         * profiler.c (mono_profiler_load): Call g_module_build_path to
22837         generate the file name of the profiler library.
22838
22839 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
22840
22841         * profiler.c, profiler.h, profiler-private.h: added basic block 
22842         coverage profiling API.
22843
22844 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
22845
22846         * reflection.c (mono_reflection_create_runtime_class): Add support
22847         for events in dynamically generated code.
22848
22849         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
22850         not allocated.
22851
22852 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
22853
22854         * icall.c: when getting timezone info, return reasonable values if we
22855         can't get the actual data.
22856
22857 2003-06-14  Dick Porter  <dick@ximian.com>
22858
22859         * threads.c (start_wrapper): Remove the reference to the thread
22860         object in the TLS data, so the thread object can be finalized.
22861         This won't be reached if the thread threw an uncaught exception,
22862         so those thread handles will stay referenced :-( (This is due to
22863         missing support for scanning thread-specific data in the Boehm GC
22864         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
22865
22866 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
22867
22868         * reflection.c: ensure streams and tables are first allocated with
22869         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
22870
22871 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
22872
22873         * icall.c: fixed GetElementType for byrefs (bug# 44792).
22874
22875 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
22876
22877         * reflection.c (mono_reflection_create_runtime_class): Add support for
22878         properties to dynamically created classes.
22879         * reflection.c: Fix a few places where non-MonoObjects were inserted
22880         into the tokens hashtable.
22881
22882 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
22883
22884         * object.c: some support to handle out of memory exceptions.
22885
22886 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
22887
22888         * marshal.c (mono_marshal_get_native_wrapper): support reference
22889         return types
22890
22891 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
22892
22893         * object.h, object.c: more portability stuff from Bernie Solomon.
22894         Unexport mono_object_allocate(). Added mono_object_unbox ().
22895         Set exitcode when an unhandled exception is thrown.
22896
22897 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
22898
22899         * marshal.c (mono_marshal_get_native_wrapper): use custom
22900         marshaler for return types.
22901
22902 2003-06-10  Dick Porter  <dick@ximian.com>
22903
22904         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
22905         ip_mreq is available
22906
22907 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
22908
22909         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
22910         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
22911         by Bernie Solomon <bernard@ugsolutions.com>.
22912
22913 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
22914
22915         * gc.c (mono_gc_init): Avoid error message on shutdown when
22916         GC_DONT_GC=1 is used.
22917
22918         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
22919         New icall to return the GUID of a module.
22920
22921 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
22922
22923         * class.c: ensure instance size always includes the parent's size
22924         even whem class size is set explicitly (fixes bug#44294).
22925
22926 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
22927
22928         * profiler.h, profiler.c: made the simple profiler thread-safe,
22929         get more accurate timing info. Allow the loading of an
22930         externally-developed profiler module.
22931
22932 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
22933
22934         * marshal.c (mono_marshal_get_native_wrapper): improved
22935         class/byref arguments.
22936         (mono_marshal_get_native_wrapper): better string marshaling support.
22937
22938 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
22939
22940         * class.c: ensure .pack and .size are handled correctly and
22941         simplified layout of static fields.
22942
22943 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
22944
22945         * appdomain.c
22946         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
22947
22948         * loader.c (mono_lookup_pinvoke_call): look for modules in the
22949         current directory (fix bug 44008)
22950
22951 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
22952
22953         * marshal.c (mono_marshal_get_native_wrapper): started support for
22954         custom marshalers.
22955         (mono_delegate_to_ftnptr): consider marshalling specifications
22956
22957 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
22958
22959         * reflection.c, reflection.h: emit custom marshal info.
22960
22961 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22962
22963         * object.c: free the GError.
22964         * icall.c: added CloseEvent_internal.
22965         * threads.[ch]:
22966         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
22967         call.
22968
22969 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
22970
22971         * loader.c (mono_method_get_signature): Add support for dynamic
22972         assemblies.
22973
22974 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
22975
22976         * reflection.c: fixed bug #43905.
22977
22978 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
22979
22980         * class.c, domain.c, icall.c, metadata.h, object.h: support for
22981         handling TypedReference and ArgIterator.
22982         * loader.c, loader.h: added function to get signature at call site.
22983
22984 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
22985
22986         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
22987         data readonly. Buglets and warning fixes. Some MethodSpec support.
22988
22989 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
22990
22991         * class.h, class.c, object.c: remove relative numbering support.
22992
22993 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
22994
22995         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
22996         free the string, until we get a chance to fix Gtk#
22997
22998 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22999
23000         * marshal.c: revert last patch.
23001
23002 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
23003
23004         * icall.c: updates for new mono_class_vtable() not calling
23005         the type constructor anymore.
23006
23007 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
23008
23009         * object.h, object.c: separate vtable creation from type
23010         initialization. Make running the .cctor thread safe.
23011
23012 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
23013
23014         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
23015
23016 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
23017
23018         * loader.c (mono_get_method): consider calling convention
23019
23020 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
23021
23022         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
23023         to return the invisible global type for a module.
23024
23025         * reflection.c (mono_image_build_metadata): Emit global fields too.
23026
23027 2003-05-20  Peter Williams  <peterw@ximian.com>
23028
23029         * loader.c (mono_lookup_internal_call): Add a few newlines.
23030
23031 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
23032
23033         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
23034         literal strings.
23035
23036         * appdomain.c (set_domain_search_path): Recalculate search path when
23037         AppDomainSetup.PrivateBinPath changes.
23038
23039         * object.c (mono_class_compute_gc_descriptor): It turns out some
23040         parts of the class libs (like System.Thread) holds pointers to
23041         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
23042         to treat native int a pointer type here.
23043         
23044 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
23045
23046         * appdomain.h, domain.c: add hashtable for jump target resolution.
23047
23048 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
23049
23050         * reflection.h reflection.c icall.c: Added new icalls 
23051         GetManifestResourceInfoInternal, GetModulesInternal and support
23052         infrastructure.
23053
23054 2003-05-16  Dick Porter  <dick@ximian.com>
23055
23056         * icall.c:
23057         * file-io.h:
23058         * file-io.c: Implement System.IO.MonoIO::GetTempPath
23059
23060 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
23061
23062         * object.c: mono_store_remote_field: little fix to previous patch.
23063
23064 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
23065
23066         * class.c: add constructors to array classes.
23067         * icall.c: special case array construction for InternalInvoke (),
23068
23069 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
23070
23071         * class.h class.c reflection.c object.c: Added support for field
23072         defaults in dynamically generated classes.
23073
23074 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
23075
23076         * reflection.c: properly encode charset for ddlimport.
23077
23078 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
23079
23080         * threads.c: allow compiling without GC.
23081
23082 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
23083
23084         * appdomain.h, object.c, object.h, threads.c, threads.h: added
23085         handling of thread static data.
23086
23087 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
23088
23089         * reflection.h, reflection.c: added mono_custom_attrs_free ().
23090
23091 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
23092
23093         * class.c (mono_array_class_get): always set the serializable flags
23094         (mono_array_class_get): always set the SEALED attribute for array types
23095
23096 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
23097
23098         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
23099         attributes (fix for bug 42021).
23100
23101 2003-05-12  Dick Porter  <dick@ximian.com>
23102
23103         * gc.c: Don't run finalizers when the finalizer thread is
23104         finishing up, because the default domain has already been
23105         destroyed.
23106
23107 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
23108
23109         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
23110         value is null, we should throw an exception.   This is slightly
23111         different than the other conventions used for the constructor.
23112
23113 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23114
23115         * socket-io.c: fixed windows build.
23116
23117 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23118
23119         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
23120
23121 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
23122
23123         * object.c (mono_string_new_wrapper): Compatibility fix for MS
23124         compilers.
23125
23126 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
23127
23128         * class.c (mono_class_layout_fields): Add experimental GC aware
23129         auto layout facility. Requires class library changes to work correctly.
23130
23131         (mono_class_setup_vtable): Avoid overriding explicit interface
23132         method implementations. Fixes iface3.exe test.
23133
23134         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
23135         object reference.
23136         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
23137         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
23138
23139         * metadata.h: Add new type classification macro which determines
23140         whenever the type holds an object reference.
23141
23142 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
23143
23144         * marshal.c (mono_marshal_get_native_wrapper): cleanups
23145
23146 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
23147
23148         * gc.c (finalizer_thread): Work around a GC bug.
23149
23150 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
23151
23152         * marshal.c (emit_struct_conv): allow unions
23153
23154         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
23155
23156 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
23157
23158         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
23159
23160 2003-05-06  Martin Baulig  <martin@ximian.com>
23161
23162         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
23163
23164 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23165
23166         * socket-io.c:
23167         (Select_internal): allow NULLs, don't create arrays if not needed.
23168         Coupled with Socket.cs changes.
23169
23170         * threadpool.c:
23171         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
23172         register a finalizer for it that will close the semaphore handle. This
23173         fixes the leak and make Lupus' test run with > 4080 loops.
23174
23175 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
23176
23177         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
23178         Jerome Laban (bug #42287)
23179
23180 2003-05-02  Martin Baulig  <martin@ximian.com>
23181
23182         * debug-mono-symfile.h
23183         (MonoSymbolFile): Moved declaration into mono-debug.h.
23184         (MonoDebugMethodJitInfo): Likewise.
23185         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
23186         argument.
23187         (_mono_debug_address_from_il_offset): Take a
23188         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
23189
23190         * mono-debug.h
23191         (MonoDebugDomainData): New struct.
23192         (mono_debug_get_domain_data): New function.
23193         (mono_debug_add_method): Take an additional `MonoDomain *'
23194         argument.
23195         (mono_debug_source_location_from_address): Likewise.
23196         (mono_debug_il_offset_from_address): Likewise.
23197         (mono_debug_address_from_il_offset): Likewise.
23198
23199 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
23200
23201         * reflection.c: one more check for null type in custom attrs.
23202
23203 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23204
23205         * reflection.c: avoid warning (comparison is always false due to limited
23206         range of data type).
23207
23208 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23209
23210         * icall.c: throw an exception in Type.GetField if the argument 'name'
23211         is NULL.
23212
23213 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
23214
23215         * reflection.c: fixed handling of enums in named arguments to custom
23216         attributes (bug #42123).
23217
23218 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
23219
23220         * reflection.c: use the right array element type and handle
23221         a null for a Type argument, too.
23222
23223 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
23224
23225         * reflection.c: handle arrays as arguments to custom attributes.
23226
23227 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
23228
23229         * reflection.c: handle a string value in a custom attr
23230         ctor that takes an object.
23231
23232 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
23233
23234         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
23235         (fix bug #42063)
23236
23237 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
23238
23239         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
23240
23241 2003-04-27  Martin Baulig  <martin@ximian.com>
23242
23243         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
23244         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
23245         MONO_DEBUGGER_EVENT_BREAKPOINT.
23246         (mono_breakpoint_trampoline_code): Removed.
23247         (mono_debugger_event_handler): The last argument is now a
23248         `guint32'.
23249         (mono_debugger_insert_breakpoint_full): Removed the
23250         `use_trampoline' argument.
23251         (mono_debugger_method_has_breakpoint): Likewise.
23252         (mono_debugger_trampoline_breakpoint_callback): Renamed to
23253         mono_debugger_breakpoint_callback(); take the method and
23254         breakpoint number as arguments.
23255
23256 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
23257
23258         * metadata.c: fix off by one when loading parameters attributes.
23259
23260 2003-04-24  Martin Baulig  <martin@ximian.com>
23261
23262         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
23263
23264 2003-04-24  Martin Baulig  <martin@ximian.com>
23265
23266         * mono-debug-debugger.c: Moved all code which interacts with the
23267         Mono Debugger here.
23268
23269         * debug-mono-symfile.c: This code now just deals with the symbol
23270         file itself, the debugger code is now in mono-debug-debugger.c.
23271
23272 2003-04-23  Martin Baulig  <martin@ximian.com>
23273
23274         * mono-debug.c (mono_debug_source_location_from_il_offset):
23275         New method; like mono_debug_source_location_from_address(), but
23276         takes an IL offset instead of a machine address.
23277
23278 2003-04-23  Martin Baulig  <martin@ximian.com>
23279
23280         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
23281         `line' field; this is now computed by the debugger.
23282
23283 2003-04-23  Martin Baulig  <martin@ximian.com>
23284
23285         * mono-debug.[ch]: New files.  This is the new debugging interface.
23286
23287         * mono-debug-debugger.[ch]: New files.  Moved all code which
23288         interacts with the Mono Debugger here.
23289
23290 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
23291
23292         * domain.c (mono_init): initialize mono_defaults.monitor_class
23293
23294 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
23295
23296         * reflection.c (method_encode_code): Add a spicy exception to help
23297         future compiler authors.
23298
23299 2003-04-21  Martin Baulig  <martin@ximian.com>
23300
23301         * icall.c
23302         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
23303         Make this work with relative pathnames; g_filename_to_uri() needs
23304         an absolute filename.
23305
23306 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
23307
23308         * icall.c: Track name changes in Object and ValueType.
23309
23310 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
23311
23312         * metadata.c (mono_type_stack_size): size should be a multiple of
23313         sizeof (gpointer)
23314
23315 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23316
23317         * gc.c:
23318         (internal_domain_finalize): moved into mono_domain_finalize. No need
23319         to create another thread because the finalizers will be run in the
23320         finalizer thread.
23321         
23322         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
23323         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
23324         to be run (MS does this too).
23325
23326 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
23327
23328         * object.c (mono_class_compute_gc_descriptor): Update comment.
23329
23330         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
23331
23332         * image.h: Add synchronized wrapper cache.
23333
23334         * image.c (do_mono_image_open): Initialize cache.
23335
23336         * reflection.c (create_dynamic_mono_image): Initialize cache.
23337
23338 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23339
23340         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
23341         ves_icall_System_Buffer_ByteLengthInternal.
23342
23343 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
23344
23345         * reflection.c: setup klass->nested_in earlier. Allow
23346         a dash in the assembly name.
23347
23348 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
23349
23350         * metadata.c (mono_type_to_unmanaged): dont access
23351         type->data.klass for MONO_TYPE_OBJECT
23352         (mono_type_to_unmanaged): consider System.Delegate class
23353
23354 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
23355
23356         * class.c: just setup supertypes in the proper place instead of
23357         initializing the full element class for arrays.
23358
23359 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
23360
23361         * class.c: ensure the element class of arrays is initialized.
23362         Setup the supertype info for array classes, too.
23363
23364 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
23365
23366         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
23367
23368 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23369
23370         * Makefile.am: re-added -m option when running cygpath. This way,
23371         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
23372         separator.
23373         * mono-config.c: same codepath for locating mono config file for WIN32
23374         and the rest.
23375         * assembly.c: if mono_assembly_setrootdir is called, don't override
23376         the value set.
23377
23378 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23379
23380         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
23381         MONO_ASSEMBLIES variable.
23382
23383 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
23384
23385         * icall.c: added Assembly::GetNamespaces() icall.
23386
23387 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23388
23389         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
23390
23391 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
23392
23393         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
23394         * object.c: fixed bug in the construction of vtable for proxies
23395
23396 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
23397
23398         * object.c (mono_array_new): Mark mono_array_new as an icall.
23399
23400 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23401
23402         * class.c: fixed test for public method when overriding interfaces.
23403         Closes bug #40970.
23404
23405 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
23406
23407         * appdomain.h, domain.c: added mono_domain_foreach() to
23408         be able to access the currently loaded appdomains.
23409         * object.c: make string interning work across sppdomains.
23410         Mark some functions for use as icalls.
23411
23412 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
23413
23414         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
23415
23416         * reflection.h reflection.c: Allocate long living data using 
23417         GC_MALLOC_ATOMIC so the collector does not need to scan it.
23418
23419         * reflection.c: Double the allocation size in streams instead of
23420         increasing it, to prevent unneccesary copying on large assemblies.
23421         
23422         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
23423         creation if the assembly does not have the Run flag set.
23424
23425 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
23426
23427         * class.h: avoid the C++ keywords in header files (Jerome Laban
23428         spotted and fixed this).
23429
23430 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23431
23432         * object.c:
23433         (mono_unhandled_exception): fill in the arguments for the
23434         UnhandledException event. Only trigger that event for the default
23435         domain (as MS does).
23436
23437 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
23438
23439         * object.c: Improve typed allocation stuff based on suggestions from
23440         Paolo. Also turn it on if the GC library supports it.
23441
23442 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
23443
23444         * object.c object.h class.h: Added experimental typed allocation
23445         facility using the interfaces in gc_gcj.h.
23446
23447         * os/gc_wrapper.h: Added new include files.
23448         
23449 2003-04-03  Martin Baulig  <martin@ximian.com>
23450
23451         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
23452         which is not yet enabled by default.
23453
23454         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
23455         functions.
23456         (mono_gc_lock, mono_gc_unlock): New static functions.
23457
23458         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
23459         functions; stop/start the world for the garbage collector.  This
23460         is using the windows API; we need to complete the SuspendThread()/
23461         ResumeThread() implementation in the io-layer to make this work on Unix.
23462         (mono_gc_push_all_stacks): New public function; tells the garbage
23463         collector about the stack pointers from all managed threads.
23464
23465 2003-04-03  Martin Baulig  <martin@ximian.com>
23466
23467         * object.h (MonoThread): Added `gpointer stack_ptr'.
23468
23469         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
23470
23471 2003-04-03  Martin Baulig  <martin@ximian.com>
23472
23473         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
23474
23475 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
23476
23477         * reflection.c (typebuilder_setup_fields): Initialize field.first and
23478         field.last.
23479
23480 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
23481
23482         * loader.c (mono_lookup_internal_call): Report the corlib that is
23483         out of sync.
23484
23485 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
23486
23487         * icall.c (ves_icall_type_GetTypeCode): fixed check for
23488         System.DBNull (it's class not valuetype).
23489
23490 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
23491
23492         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
23493         if the array method was already assigned a token (fixes bug#40646).
23494
23495 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
23496
23497         * reflection.c (mono_reflection_get_type): Attempt type resolve even
23498         if no assembly is given.
23499
23500 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
23501
23502         * metadata.h: Added the new tables.
23503
23504         * row-indexes.h: Added definitions for new tables.
23505
23506         * metadata.c: Add schemas for new tables, and add support for
23507         computing the sizes of them.
23508
23509         * class.c: Update for handling the new type cases.
23510
23511 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
23512
23513         * metadata.h (MONO_TYPE_IS_VOID): new macro
23514
23515 2003-03-31  Martin Baulig  <martin@ximian.com>
23516
23517         * threads.h (MonoThreadCallbacks): Added `thread_created'.
23518
23519         * threads.c (mono_thread_new_init): Call `thread_created' in the
23520         mono_thread_callbacks.
23521
23522 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
23523
23524         * loader.h: added marshalbyrefobject_class to mono_defaults
23525         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
23526         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
23527           generation of output parameters.
23528           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
23529         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
23530           contextbound and the target object belongs to the context of the caller.
23531         * object.h: added context and unwrapped_server variables in MonoRealProxy.
23532         * object.c: Implemented support for interfaces and abstract classes
23533           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
23534           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
23535
23536 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
23537
23538         * class.h class.c (mono_class_is_subclass_of): New function.
23539         
23540         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
23541         routines for most common case (calls from ArrayList::ToArray).
23542
23543         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
23544         routine so programs which call Environment::Exit() can be profiled.
23545
23546         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
23547         Added MONO_ARCH_SAVE_REGS.
23548
23549         * icall.c (ves_icall_type_is_subtype_of): Use new function.
23550
23551 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
23552
23553         * blob.h: Add a couple of new MonoType types definitions.
23554
23555         * tabledefs.h: Add a couple of new call convs.
23556
23557 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
23558
23559         * reflection.h (MonoReflectionDynamicAssembly): track changes in
23560         the layout of the class.
23561
23562         * reflection.c (alloc_table): double the size on overflow to avoid
23563         unnecessary copying.
23564
23565         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
23566         avoid filling out metadata tables and blobs. Also set mb->ilgen to
23567         null so it can be garbage collected.
23568         
23569 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
23570
23571         * reflection.c (mono_reflection_get_type): Return the resolved type
23572         only if it is in the assembly we searched.
23573
23574         * reflection.c (ensure_runtime_vtable): Initialize method slots.
23575
23576         * class.c (mono_class_setup_vtable): Set the slot of the overriding
23577         method.
23578
23579 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23580
23581         * appdomain.c:
23582         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
23583         the right one is 'file:///blah', but MS allows it.
23584         * assembly.c:
23585         (mono_assembly_open): allow 'file://blah'
23586
23587         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
23588
23589 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
23590
23591         * socket-io.c: fixes bug #40310.
23592
23593 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
23594
23595         * reflection.c (mono_reflection_parse_type): handle deeply nested
23596         types correctly.
23597
23598         * reflection.c (mono_image_create_token): Use unique token values
23599         since they will be put into a hash table.
23600
23601         * class.c (mono_class_setup_vtable): If a method occurs in more than
23602         one place in the vtable, and it gets overriden, then change the
23603         other occurances too.
23604
23605         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
23606         object as return type.
23607
23608 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
23609
23610         * icall.c: Deleted "ToString" implementation for double and float
23611         because they are full implemented in managed code.
23612
23613 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
23614
23615         * reflection.c, reflection.h: implemented and exported functions
23616         to retrieve info about custom attributes.
23617
23618 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23619
23620         * appdomain.c: moved Uri handling to assembly.c
23621         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
23622         work when using a file Uri in *nix and windows.
23623
23624         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
23625         GetReferencedAssemblies.
23626
23627 2003-03-18  Dick Porter  <dick@ximian.com>
23628
23629         * icall.c: Rename a couple of internal calls
23630
23631         * threads.c: Set the thread state to Stopped when a thread exits.
23632         Fixes bug 39377.
23633
23634 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
23635
23636         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
23637         New icall.
23638
23639         * object.c (mono_class_vtable): fix warning.
23640
23641 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
23642
23643         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
23644
23645         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
23646         memory.
23647         (method_encode_clauses): Create exception info structures in the right
23648         order.
23649         (mono_reflection_setup_internal_class): Initialize supertypes field.
23650
23651         * class.c object.c: Handle interfaces which implement other interfaces 
23652         correctly.
23653
23654         * class.h class.c: Move the supertypes array initialization code into 
23655         a separate function so it can be used for dynamic types too. Also call
23656         it earlier, in mono_class_init(), since it can be used before the
23657         type is initialized.
23658
23659 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23660
23661         * Makefile.am:
23662         * assembly.c:
23663         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
23664
23665         * appdomain.c:
23666         * appdomain.h:
23667         * marshal.c:
23668         * object.c: remove warnings.
23669
23670 2003-03-13  Martin Baulig  <martin@ximian.com>
23671
23672         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
23673         (MonoDebugLexicalBlockEntry): New types.
23674
23675         * debug-mono-symfile.c
23676         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
23677
23678 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23679
23680         * process.c: ret can be any non-zero value accroding to MS doc.
23681
23682 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
23683
23684         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
23685         fixing a warning for a miss-used prototype, would have cause
23686         random memory corruption.
23687
23688 2003-03-07  Martin Baulig  <martin@ximian.com>
23689
23690         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
23691         getting really annoying ....
23692
23693 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
23694
23695         * reflection.c (fixup_method): added support for array methods.
23696
23697 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
23698
23699         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
23700         (pointed out by Michael Adams).
23701
23702 2003-03-04  Dick Porter  <dick@ximian.com>
23703
23704         * icall.c: Temporarily reverted the Double and Single ToString()
23705         change, because it broke nunit.
23706
23707 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
23708
23709         * object.h, threads.h: make include files compatible with C++
23710         (patch by Jerome Laban <jlaban@wanadoo.fr>).
23711
23712 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
23713
23714         * icall.c: Erased ToString helper functions for Double and Single.
23715         Now, that implementations ar all in managed code (Double and Single
23716         Formatters).
23717
23718 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
23719
23720         * appdomain.c: Added method for initializing the default context of
23721         a domain. Added internal call for getting the default context.
23722         * appdomain.h: Added context variable in MonoDomain struct.
23723         * domain.c: mono_domain_set also sets the default context of the domain
23724         * icall.c: Mapped internal method InternalGetDefaultContext.
23725         * object.c: mono_object_get_virtual_method returns always a remoting
23726         wrapper if the object is a transparent proxy.
23727         mono_runtime_invoke_array: when creating an object by calling the
23728         constructor, if the created object is a proxy, then the constructor should
23729         be called using the a remoting wrapper.
23730
23731 2003-03-03  Dick Porter  <dick@ximian.com>
23732
23733         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
23734         variable so it compiles on solaris.  Problem spotted by
23735         Christopher Taylor <ct@cs.clemson.edu>
23736
23737 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23738
23739         * appdomain.c:
23740         (get_info_from_assembly_name): don't leak value.
23741
23742         * icall.c:
23743         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
23744         result.
23745
23746 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
23747
23748         * assembly.c: export mono_image_load_references ().
23749         * class.c: handle function pointers. mono_class_from_name() now
23750         supports nested type names directly.
23751
23752 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
23753
23754         * reflection.h reflection.c: Encode already created dynamic methods 
23755         and fields correctly as a DEF instead of a REF.
23756
23757         * reflection.c: Get rid of the force_ref argument to 
23758         mono_image_typedef_or_ref since it was wrong in the first place.
23759
23760         * string-icalls.c: add error checking to string constructors according
23761         to the MSDN docs.
23762
23763         * reflection.c: Emit types in the order their TypeBuilders were 
23764         created. Previously, a new table index was assigned to each type before
23765         the tables were emitted. This was wrong because the signature blob
23766         might already refer to a type by its original table index.
23767
23768 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
23769
23770         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
23771         change.
23772         
23773 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23774
23775         * Makefile.am: make assemblies dir have \ instead of / on windows.
23776
23777 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
23778
23779         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
23780         iterate over the NESTEDCLASS table using a linear search since the
23781         table is not guaranteed to be sorted by the secondary key.
23782
23783         * class.c (mono_class_create_from_typedef): fixed up call to
23784         mono_metadata_nesting_typedef.
23785         
23786 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
23787
23788         * marshal.c (mono_string_to_byvalstr): clear the memory as
23789         suggested by Jerome Laban <jlaban@wanadoo.fr>
23790
23791 2003-02-26  Dick Porter  <dick@ximian.com>
23792
23793         * process.c: Cope with padding in .rsrc blocks
23794
23795 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
23796
23797         * metadata.h: reverted the filter_len change, it breaks reflection
23798         
23799 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
23800
23801         * metadata.h: added a new field to store the filter_len
23802         
23803
23804 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
23805
23806         * reflection.c: handle custom attributes for types and members
23807         created with Reflection.Emit (bug#38422).
23808
23809 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
23810
23811         * reflection.c: define RTSpecialName automatically for constructors for
23812         compatibility with MS.NET.
23813
23814         * reflection.c (mono_reflection_create_runtime_class): initialize
23815         nested_in field of dynamically created classes.
23816
23817 2003-02-22  Martin Baulig  <martin@ximian.com>
23818
23819         * debug-mono-symfile.h: Incremented version number.
23820
23821 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
23822
23823         * object.h icall.c process.c: fix warnings.
23824
23825 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
23826
23827         * appdomain.h appdomain.c:
23828         (mono_domain_try_type_resolve): split the 
23829         name_or_tb argument into a name and a tb argument.
23830         (mono_domain_has_type_resolve): new function to check whenever the
23831         application has registered a TypeResolve event handler.
23832         
23833         * icall.c reflection.h reflection.c: move the type resolve logic into
23834         mono_reflection_get_type () so it will be invoked when 
23835         Assembly::GetType () is called.
23836
23837         * reflection.c:
23838         (mono_reflection_get_type): renamed to get_type_internal.
23839         (mono_reflection_get_type): fixed type name generation so it works 
23840         for nested types too.
23841         (mono_reflection_get_type): call has_type_resolve () to avoid the 
23842         costly type name generation if there is no resolve event handler.
23843
23844 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
23845
23846         * class.c, image.c: load exported types from file references.
23847
23848 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
23849
23850         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
23851           used to cache the managed methods used to create proxies and make 
23852           remote invocation of methods.
23853         * class.h: Added in MonoVTable a flag to indicate that a class needs 
23854           to be remotely created.
23855         * object.c: Modified the method mono_class_vtable(). It now initializes 
23856           the remote flag of the vtable. Modified mono_object_new_specific(), 
23857           so now it checks the remote flag.
23858         * icall.c: Added a couple of internal methods, one for enabling instance 
23859           creation interception for a type, and one for creating objects bypassing
23860           the remote check.
23861
23862 2003-02-18  Martin Baulig  <martin@ximian.com>
23863
23864         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
23865         New interncall to get a method's metadata token.
23866
23867         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
23868         New interncall for the debugger.
23869
23870 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
23871
23872         * class.c (mono_class_setup_vtable): allocate supertype array
23873
23874 2003-02-18  Martin Baulig  <martin@ximian.com>
23875
23876         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
23877
23878 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23879
23880         * reflection.c:
23881         (assembly_name_to_aname): jump over unknown properties (i've found
23882         something like: 'type, assembly, version=xxx, custom=null, public...',
23883         so now will ignore custom=null and still get the rest of the values).
23884
23885 2003-02-17  Dick Porter  <dick@ximian.com>
23886
23887         * threads.c: Have Thread.Start() wait for a semaphore to signal
23888         that the thread has set up all its local data.  This fixes bug
23889         34323, where Abort() raced the new thread's TLS data.
23890
23891         Also removes the handle_store() call from start_wrapper, because
23892         threads are now always created suspended and there is no longer a
23893         race between the parent and child threads to store the info.
23894
23895 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
23896
23897         * image.c: explain the #- heap issue in a message, hopefully
23898         avoiding FAQs on mono-list.
23899
23900 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23901
23902         * icall.c:
23903         (GetEntryAssembly): if the domain has not invoked
23904         AppDomain.ExecuteAssembly yet, return the assembly of the default
23905         AppDomain.
23906
23907 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
23908
23909         * class.c (mono_ldtoken): make it work in dynamic assemblies.
23910
23911 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
23912
23913         * metadata.c, reflection.c: simple speedup to type hash
23914         and equals code.
23915
23916 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
23917
23918         * image.c, image.h, class.c, assembly.c: move module loading
23919         to MonoImage. When loading metadata, consider alignemnet from
23920         the start of metadata, not from the metadata address in memory.
23921
23922 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
23923
23924         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
23925         AssemblyBuilder objects. Factored out custom attribute creation into
23926         a separate function.
23927         (create_custom_attr): new function to create custom attributes.
23928
23929 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
23930
23931         * Makefile.am: Got tired of typing the full pathname to pedump.
23932         Until there is another option, am installing this.
23933
23934 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
23935
23936         * class.c (class_compute_field_layout): always set field->parent 
23937         (mono_ldtoken): use mono_defaults.fieldhandle_class;
23938
23939 2003-02-11  Dick Porter  <dick@ximian.com>
23940
23941         * threads-types.h:
23942         * monitor.c: Rewrote Monitor, making lock much faster and
23943         Pulse/Wait work as specified.  Also uses much fewer handles, and only
23944         creates them as needed.
23945
23946         * exception.c: Added SynchronizationLockException
23947
23948         * threads.c: Deleted old Monitor implementation.  The new one is
23949         in a new file.
23950
23951 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
23952
23953         * class.c: handled TypedReference type code. Set the correct size for
23954         class data. Setup interface_offsets for interface classes, too.
23955
23956 2003-02-09  Martin Baulig  <martin@ximian.com>
23957
23958         * debug-mono-symfile.h: Reflect latest symbol writer changes.
23959
23960 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
23961
23962         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
23963         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
23964         * object.c: fixed mono_object_get_virtual_method () for interfaces.
23965         * verify.c: check for code that runs after the end of the method.
23966
23967 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
23968
23969         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
23970         "System.Math::Round2".
23971         * sysmath.h: Added Floor, Round and Round2 definitions.
23972         * sysmath.c: Modified certain functions that were not 100% compliant
23973         with MS.NET (math precision) and added the implementation of Floor,
23974         Round and Round2.
23975
23976 2003-02-07  Martin Baulig  <martin@ximian.com>
23977
23978         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
23979
23980 2003-02-07  Martin Baulig  <martin@ximian.com>
23981
23982         * debug-mono-symfile.c: Reflected latest symwriter changes.
23983         (mono_debug_create_mono_symbol_file): Removed.
23984         (mono_debug_open_mono_symbol_file): Take an argument which
23985         specifies whether to create a dynamic symbol file.
23986
23987 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
23988
23989         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
23990
23991 2003-02-05  Martin Baulig  <martin@ximian.com>
23992
23993         * reflection.c (mono_image_build_metadata): Make this public,
23994         protect it against being called multiple times, don't create
23995         resources and don't build the compressed metadata here.
23996         (mono_image_create_pefile): Do this here.
23997
23998         * icall.c
23999         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
24000
24001 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24002
24003         * socket-io.c: fixed bug #36322.
24004
24005 2003-02-06  Piers Haken <piersh@friskit.com>
24006
24007         * appdomain.[ch]:
24008         * class.h:
24009         * debug-mono-symfile.c:
24010         * icall.c:
24011         * loader.c:
24012         * mono-config.c:
24013         * monosn.c:
24014         * reflection.c:
24015         * socket-io.c: warning cleanups
24016
24017 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
24018
24019         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
24020         function. works like remoting invoke, but does a check for the Proxy first.
24021
24022 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
24023
24024         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
24025
24026 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
24027
24028         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
24029         array of pointers.
24030         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
24031         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
24032
24033         * object.c (mono_store_remote_field_new): used by the new jit
24034         instead of mono_store_remote_field
24035         (mono_load_remote_field_new): used by the new jit
24036         instead of mono_load_remote_field
24037
24038 2003-02-05  Patrik Torstensson
24039
24040         * appdomain.c: changed unload to take the domain id instead
24041         of domain
24042         
24043         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
24044
24045
24046 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24047
24048         * appdomain.c: don't look for assemblies in ApplicationBase if
24049         PrivateBinPathProbe is set.
24050
24051 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24052
24053         * object.c: make the first argument in main_args contain the absolute
24054         path to the assembly. Fixes bug #37511.
24055
24056 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24057
24058         * icall.c: get correct UTC offset for countries not using daylight
24059         time saving. Fixes bug #30030.
24060
24061 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24062
24063         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
24064         and 1 are the family).
24065
24066 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
24067
24068         * icall.c (ves_icall_InternalExecute): removed wrong assertion
24069
24070         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
24071
24072 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
24073
24074         * reflection.c: added support for SignatureHelper tokens, which is
24075         needed by the Calli opcode.
24076
24077         * reflection.h: track changes to SignatureHelper class.
24078
24079         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
24080
24081 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24082
24083         * appdomain.c: fixed loading assemblies from PrivateBinPath.
24084
24085 2003-02-03  Patrik Torstensson
24086         * appdomain.[c|h], domain.c : 
24087          - Added support for getting a domain via domain id
24088          - Support for setting and getting domain from System.AppDomain 
24089            (used in cross appdomain channel)
24090          - Added support for get/set for a MonoAppContext on a thread 
24091            (Context class in System.Runtime.Remoting.Contexts),
24092          - Removed hack in Get/SetData and ExecuteAssembly.
24093         
24094         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
24095         the managed world to get control when a proxy is created.
24096
24097         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
24098         
24099 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
24100
24101         * icall.c
24102         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
24103         Populate the codebase field as well.
24104
24105 2003-02-02  Martin Baulig  <martin@ximian.com>
24106
24107         * debug-mono-symfile.c
24108         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
24109         (mono_debug_symfile_add_method): Allow interncalls.
24110
24111 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24112
24113         * icall.c: throw parse exception if strtod fails or the string is empty.
24114
24115 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
24116
24117         * marshal.c: handle object type separately from defined
24118         class types.
24119
24120 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
24121
24122         * marshal.c: handle NATIVE_LPSTR for strings when it's
24123         explicitly specified.
24124
24125 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
24126
24127         * reflection.c, reflection.h, icall.c: setup the reflection
24128         handle cache for ModuleBuilders and AssemblyBuilders.
24129
24130 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
24131
24132         * reflection.c (reflection_methodbuilder_to_mono_method): set
24133         pinvoke flag
24134
24135 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24136
24137         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
24138
24139 2003-01-29  Dick Porter  <dick@ximian.com>
24140
24141         * threads.c: No need for the fake_thread kludge now that Thread
24142         doesn't run a class constructor
24143         
24144 2003-01-29  Dick Porter  <dick@ximian.com>
24145
24146         * threads.c: Use g_direct_hash instead of the rather bogus
24147         g_int_hash
24148
24149 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
24150
24151         * marshal.c (mono_marshal_get_native_wrapper): add check for null
24152         (fix pinvoke12.exe)
24153         (mono_marshal_get_struct_to_ptr): generate valid IL code
24154         (mono_marshal_get_ptr_to_struct): generate valid IL code
24155         (*): correctly set sig->pinvoke, we need to memdup the signature
24156         to do that
24157
24158 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
24159
24160         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
24161         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
24162
24163 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
24164
24165         * profiler.c: provide more callers information.
24166
24167 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
24168
24169         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
24170
24171         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
24172
24173         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
24174
24175 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
24176
24177         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
24178         exception instead of going into an infinite loop on dates which it 
24179         can't yet handle.
24180
24181         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
24182         out-of-range exception if needed.
24183
24184         * class.c (mono_class_setup_vtable): allow a virtual method to provide
24185         an implementation for an interface method and to override an inherited
24186         method at the same time. 
24187         Imagine a scenario when a virtual method is used to override a
24188         virtual abstract method in a parent class, and this same method 
24189         provides an implementation for an method inherited from an interface. 
24190         In this case, the interface resolution code will set im->slot, which 
24191         means that the virtual method override pass will skip this method 
24192         which means a pointer to the abstract method inherited from the parent
24193         will remain in the vtable of this non-abstract class.
24194
24195         * class.c: (mono_class_setup_vtable): continue search for a real 
24196         method if only an abstract method is found.     
24197
24198 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
24199
24200         * reflection.c: add size to encoding for ByValStr and ByValArray
24201         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
24202
24203 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
24204
24205         * class.c (mono_class_setup_vtable): pass the override info as an
24206         argument.
24207
24208         * class.c (mono_class_setup_vtable): set the slot of overriding methods
24209         correctly.
24210         
24211         * reflection.c (ensure_runtime_vtable); add support for method 
24212         overrides.
24213         
24214 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
24215
24216         * reflection.c (resolution_scope_from_image): Hack to work to work with
24217         dynamic assemblies.
24218
24219         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
24220         added a 'force_ref' argument to force this function to allways return 
24221         a TypeRef. This is needed by mono_image_get_memberref_token ().
24222         
24223 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
24224
24225         * reflection.c (mono_image_get_type_info): interfaces really don't have
24226         a parent.
24227
24228         * reflection.c (mono_image_basic_init): fill out missing fields of
24229         image structure.
24230
24231         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
24232         dynamic assemblies. This is required so dynamic assemblies show up in
24233         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
24234         Type::GetType() etc. This is consistent with MS behaviour.
24235
24236         * image.c image.h reflection.c: add newly created classes to the name 
24237         cache so mono_class_get () will find them.      
24238
24239 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
24240
24241         First part of changes to get IKVM.NET running under mono.
24242         
24243         * appdomain.h, appdomain.c: added new function 
24244         mono_domain_try_type_resolve() which will emit TypeResolve events. 
24245         This function will call AppDomain::DoTypeResolve to do the actual work.
24246
24247         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
24248         moved existing code dealing with dynamic tokens to a new function 
24249         called mono_reflection_lookup_dynamic_token (). This function will 
24250         raise TypeResolve events when appropriate. Since reflection.c is not 
24251         part of libmetadata, a new hook function called 
24252         mono_lookup_dynamic_token() is added to class.c which will call this.
24253
24254         * assembly.h assembly.c: make the invoke_load_hook function public,
24255         so it can be called for dynamic assemblies.
24256
24257         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
24258
24259         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
24260         type isn't found.
24261
24262         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
24263         MonoGHashTable, since it contains pointers to objects which the GC 
24264         needs to track.
24265
24266         * assembly.c (search_loaded): remove unused variable.
24267         
24268 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
24269
24270         * object.c: fixed issue exposed by gcc-generated IL programs
24271         that use RVA data for pointers.
24272
24273 2003-01-25  Martin Baulig  <martin@ximian.com>
24274
24275         * threads.c (start_wrapper): Moved the initialization of
24276         `start_func' above the mono_new_thread_init() call to which we
24277         pass it as argument.
24278
24279 2003-01-24  Martin Baulig  <martin@ximian.com>
24280
24281         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
24282         the MonoThread pointer.
24283
24284 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
24285
24286         * icall.c: Rename `PowImpl' to Pow.
24287
24288 2003-01-23  Dick Porter  <dick@ximian.com>
24289
24290         * threads.c (start_wrapper): Create a Thread object if needed, so
24291         the Main() thread can do the class initialisation in a subthread
24292         that has been set up to allow managed code execution.
24293
24294         Pass the thread ID instead of the MonoThread pointer to the thread
24295         start and attach callbacks.  This change is required, because the
24296         jit thread start callback must be called _before_ the Thread
24297         object can be created.
24298         
24299         (mono_thread_init): Removed much object creation code that is no
24300         longer needed.  No managed code is called from here now.
24301
24302         * object.c (mono_runtime_exec_managed_code): Create a subthread
24303         for Main, and call back to the runtime to use it.
24304         Set the exit code when Main exits.
24305
24306         * gc.c: Make sure domain finalisation happens in a subthread.
24307         Re-enable threaded GC, fixing bug 31333 (again).
24308
24309         * environment.c: System.Environment internall calls (so far just
24310         ExitCode is here, the others are still in icall.c)
24311
24312         * appdomain.c (mono_runtime_cleanup): All threads running managed
24313         code should have finished before mono_runtime_cleanup() is
24314         reached, so no need to clean up threads.
24315
24316 2003-01-22  Martin Baulig  <martin@ximian.com>
24317
24318         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
24319         `gpointer func' arguments.      
24320         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
24321         but added `MonoThread *thread' argument.
24322         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
24323
24324         * threads.c (mono_new_thread_init): Added `gpointer func' argument
24325         and pass it to the mono_thread_start_cb callback.
24326         (mono_install_thread_callbacks): New public function to install a
24327         set of callbacks which are set by the debugger.
24328         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
24329
24330 2003-01-22  Martin Baulig  <martin@ximian.com>
24331
24332         * Makefile.am: Install debug-mono-symfile.h.
24333
24334 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
24335
24336         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
24337
24338 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
24339
24340         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
24341         * class.c (mono_ptr_class_get): correctly set access levels of pointers
24342         (mono_array_class_get): correctly set access levels of arrays
24343
24344 2003-01-20      Patrik Torstensson
24345         * image.h (MonoAssemblyName): changed major, minor, build, revision
24346         from signed to unsigned.
24347
24348 2003-01-20  sean kasun <skasun@azstarnet.com>
24349
24350         * reflection.c (load_cattr_value): Now this handles
24351         MONO_TYPE_SZARRAY.  Fixes bug #35629
24352
24353 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
24354
24355         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
24356         integer value
24357
24358 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24359
24360         * decimal.c: fixed bug #26056.
24361
24362 2003-01-17  Martin Baulig  <martin@ximian.com>
24363
24364         * gc.c: Raise an ExecutionEngineException instead of using g_error().
24365
24366 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24367
24368         * exception.[ch]:
24369         (mono_get_exception_type_initialization): new function.
24370
24371         * object.c: throw a TypeInitializationException when an exception is
24372         thrown invoking the class constructor.
24373
24374 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24375
24376         * reflection.c: fixed attribute reading.
24377
24378 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24379
24380         * icall.c:
24381         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
24382         provided, look for the type in the calling assembly and then in
24383         mscorlib; if the assembly name is provided, only try that one.
24384
24385 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
24386
24387         * object.c: register the vtable before there is a chance it's
24388         queried again recursively.
24389
24390 2003-01-13  Duncan Mak  <duncan@ximian.com>
24391
24392         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
24393         gc-internal.h. 
24394         
24395 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
24396
24397         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
24398
24399 2003-01-11  Martin Baulig  <martin@ximian.com>
24400
24401         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
24402         this to 20 for the release.
24403
24404 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
24405
24406         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
24407
24408         * loader.c (mono_method_get_marshal_info): bug fix
24409
24410         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
24411         structures with explicit layout
24412
24413 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
24414
24415         * profiler.c: made the output more readable (and sorted). 
24416         Added caller information for the allocation profiler.
24417
24418 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
24419
24420         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
24421
24422 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24423
24424         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
24425         to get value types.
24426         
24427 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
24428
24429         * object.c, profiler.h, profiler.c, profiler-private.h:
24430         Added object allocation profiler.
24431
24432 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
24433
24434         * reflection.h, reflection.c: handle global methods.
24435         Compress blob entries.
24436
24437 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
24438
24439         * marshal.c: fix compilation.
24440
24441 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
24442
24443         * loader.c (mono_method_get_marshal_info): impl.
24444
24445         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
24446
24447 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24448
24449         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
24450         for reference types.
24451
24452 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
24453
24454         * loader.c: fixed off by one error in loaded parameter names.
24455
24456 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
24457
24458         * marshal.c (mono_marshal_get_icall_wrapper): like
24459         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
24460         instead of a MonoMethod.
24461
24462 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24463
24464         * decimal.c: fixed bug #36537.
24465
24466 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
24467
24468         * marshal.c: throw a missing method exception if a
24469         P/Invoke method is not found.
24470
24471 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
24472
24473         * icall.c: allow a null this for constructors.
24474
24475 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
24476
24477         * icall.c: raise the proper exceptions if the arguments to the
24478         internal Invoke are incorrect.
24479
24480 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
24481
24482         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
24483
24484 2003-01-03  Martin Baulig  <martin@ximian.com>
24485
24486         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
24487
24488 2002-12-31  Martin Baulig  <martin@ximian.com>
24489
24490         * debug-mono-symfile.c: Completely rewrote the type section.
24491         Instead of using individual malloc()ed fields, we use one big
24492         continuous memory area and offsets into this area.
24493         See the comments in the source code for details.
24494
24495 2002-12-30  Martin Baulig  <martin@ximian.com>
24496
24497         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
24498
24499 2002-12-30  Martin Baulig  <martin@ximian.com>
24500
24501         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
24502         line number table in this data blob instead of using an external
24503         pointer.
24504
24505 2002-12-28  Martin Baulig  <martin@ximian.com>
24506
24507         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
24508
24509 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
24510
24511         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
24512         as a boxed return type.
24513
24514 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
24515
24516         * appdomain.c
24517         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
24518         g_build_filename to properly get separators on the filename created.
24519
24520         * object.h: Small change, introduce MonoMarshalByRefObject to
24521         track the layout of that structure in the C# universe as we make
24522         changes there.
24523
24524 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
24525
24526         * object.c: removed assert to allow static fields on interfaces.
24527         * loader.c: a TypeSpec may be used for any type, not just arrays.
24528
24529 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
24530
24531         * class.c, class.h: added mono_class_array_element_size ().
24532         Ignore static methods in interfaces.
24533
24534 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24535
24536         * threads.c: fixed the build under cygwin.
24537
24538 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
24539
24540         * reflection.c: handle nullref constants. Allocate keys for
24541         reflection handles with the GC.
24542
24543 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
24544
24545         * threads.c, threads.h: added mono_thread_get_abort_signal()
24546         to get a suitable signal for thread abort.
24547
24548 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
24549
24550         * metadata.c: fix handling of ExportedType table.
24551
24552 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24553
24554         * icall.c: added WriteWindowsDebugString internal call.
24555
24556 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24557
24558         * reflection.h: added fields to match C# implementation.
24559
24560 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24561
24562         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
24563
24564 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
24565
24566         * gc.h, gc-internal.h: Rename header for GC internal calls to
24567         gc-internal.h from gc.h as to not clash with Boehm GC having its
24568         header installed as <gc.h> in outside include paths.
24569         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
24570         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
24571
24572 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24573
24574         * icall.c: assign minor, build and revision in FillName.
24575
24576 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
24577
24578         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
24579         Added support for running code generated by Reflection.Emit.
24580
24581 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24582
24583         * appdomain.c: check for NULL argument in LoadFrom.
24584
24585 2002-12-10  Dick Porter  <dick@ximian.com>
24586
24587         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
24588
24589 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24590
24591         * appdomain.c: fix buglet when building exe file name.  Handle full
24592         assembly name (needed after latest changes to AssemblyName).
24593         * image.c:
24594         (mono_image_close): free some hashtables.
24595
24596 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
24597
24598         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
24599         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
24600         on some systems (redhat 7.3) 
24601
24602 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
24603
24604         * threads.c: delete the critical section of a sync block,
24605         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
24606
24607 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
24608
24609         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
24610
24611 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24612
24613         * appdomain.[ch]: handle the assembly preload event to try loading the
24614         assemblies using the paths we have in the current domain.
24615
24616         * assembly.[ch]: created an assembly preload hook that is called to try
24617         loading the assembly by other means that the ones provided here.
24618
24619         * domain.c: initialize the domain search path.
24620
24621         From now on, assemblies (TODO: except corlib and System) are loaded
24622         according to these rules when using mono_assembly_load ():
24623
24624                 1. It tries to load the assembly from the ApplicationBase
24625                 of the current domain appending .dll and .exe (TODO: have to
24626                 try loading from name/name.dll and name/name.exe).
24627
24628                 2. It tries the search path specified in PrivateBinPath for the
24629                 current domain (if any).
24630
24631                 3. Previous behavior.
24632
24633 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
24634
24635         * icall.c: implemented GetInterfaceMap() related icall.
24636         * domain.c, loader.h: load MethodInfo in mono_defaults.
24637
24638 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
24639
24640         * gc.c: disable the finalizer thread for now, untill all the issues
24641         with it are resolved.
24642
24643 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
24644
24645         * string-icalls.c: handle embedded nulls in string ctor when the
24646         length is specified.
24647
24648 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
24649
24650         * class.c: look for explicit interface implementation in parent
24651         classes, too.
24652
24653 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
24654
24655         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
24656
24657 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
24658
24659         * gc.c: protect handles with a critical section.
24660
24661 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24662
24663         * icall.c:
24664         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
24665         parameters. If no assembly specified, try getting the type from all
24666         the assemblies in the current domain, else, load the assembly and get
24667         the type from it.
24668
24669 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24670
24671         * marshal.c: applied patch from Aleksey Demakov that fixes
24672         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
24673
24674 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24675
24676         * icall.c: fixed get_location.
24677
24678 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
24679
24680         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
24681         declarations to make it work with older gcc. 
24682
24683         * loader.c (mono_get_method): set signature->pinvoke for native calls
24684
24685 2002-11-20  Dick Porter  <dick@ximian.com>
24686
24687         * threads.c (mono_thread_init): Set the main thread's handle
24688
24689 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
24690
24691         * gc.c: allow compilation without GC support. Changed to match the
24692         mono coding style.
24693
24694 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
24695
24696         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
24697
24698 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
24699
24700         * reflection.c: set a public key token on the core assemblies.
24701
24702 2002-11-18  Dick Porter  <dick@ximian.com>
24703
24704         * threads.c: Split out some thread initialisation so that other
24705         files can set the start callback function.
24706
24707         * gc.c: Run finalisers in a separate thread, to avoid stack
24708         overflow.  Fixes bug 31333.
24709
24710         * appdomain.c: Set up GC finalisation thread.
24711
24712         * reflection.c: 
24713         * object.c: 
24714         * domain.c: Use gc.h macros for GC_malloc
24715         
24716 2002-11-15  Dick Porter  <dick@ximian.com>
24717
24718         * threadpool.c: 
24719         * threads.c:
24720         * appdomain.c: Removed mono_runtime_init_with_attach(),
24721         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
24722         merging the extra parameter with the existing function.  Removed
24723         unneeded code in mono_thread_attach().
24724
24725 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
24726
24727         * image.c (mono_image_loaded_by_guid): a method to get loaded
24728         images by guid. 
24729         (load_metadata_ptrs): we store the guid as string.
24730
24731 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
24732
24733         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
24734
24735         * metadata.c (mono_guid_to_string): imported method form Zoltan
24736         Varga (slightly modified)
24737
24738         * assembly.c (mono_assembly_open): load precompiled code
24739
24740         * loader.h (MonoMethod): we store the method token for use in the
24741         aot compiler. 
24742
24743 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24744
24745         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
24746         the hook function called when an assembly is loaded.
24747         
24748         * domain.c: Modified file.
24749         (mono_domain_assembly_load): removed hash table insertion of assemblies.
24750
24751         Fixes bug #33196.
24752
24753 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
24754
24755         * reflection.c: Map PEFileKind to the value expected by the WinNT
24756         image loader. 
24757
24758 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24759
24760         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
24761         Read until the buffer is filled completely.
24762
24763 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24764
24765         * icall.c: implemented MonoType.InternalGetEvent ().
24766
24767 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24768
24769         * appdomain.c: implemented InitAppDomainSetup. Delayed
24770         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
24771         the entry_assembly.
24772
24773         * assembly.c: base_dir is now an absolute path ending with
24774         G_DIR_SEPARATOR.
24775
24776         * icall.c: modified get_location according to the above changes.
24777
24778         * object.c: init AppDomain.SetupInformation for the default domain after
24779         we have the entry assembly.
24780
24781         * domain.c: when unloading a domain, setup = NULL.
24782
24783 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
24784
24785         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
24786
24787 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
24788
24789         * object.h, object.c: introduced mono_object_get_virtual_method ()
24790         to lookup the method invoked on an object when a callvirt is done on
24791         a method.
24792         * icall.c: make MethodInfo::Invoke() always do a virtual call.
24793
24794 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24795
24796         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
24797         current domain when loaded an assembly and failed to load it.
24798
24799         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
24800
24801 2002-10-31  Dick Porter  <dick@ximian.com>
24802
24803         * icall.c: 
24804         * file-io.h: 
24805         * file-io.c: Return the error status in a parameter, as the
24806         GetLastError() value has long since been blown away if we try and
24807         look it up in a subsequent internal call invocation.  Delete the
24808         GetLastError() internal call, because it's useless.
24809
24810 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
24811
24812         * class.[ch]: added cast_class to fix bug 29517
24813
24814 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
24815
24816         * marshal.c: create valid IL code in the filter clause:
24817         the new JIT is less forgiving:-)
24818
24819 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24820
24821         * icall.c: removed get_property internal call.
24822
24823 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
24824
24825         * appdomain.h domain.c: Added an ID to appdomains.
24826         
24827         * threads.c threads.h icall.c: Implement icall
24828         Thread:GetDomainID(), and remove unused icall 
24829         CurrentThreadDomain_internal.
24830
24831 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24832
24833         * icall.c: Don't recurse through the base types in GetConstructor.
24834         Fixes bug #32063. 
24835
24836 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
24837
24838         * mempool.h, mempool.c: added mono_mempool_empty() and
24839         mono_mempool_stats().
24840
24841 2002-10-23  Dick Porter  <dick@ximian.com>
24842
24843         * file-io.c: 
24844         * file-io.h: 
24845         * icall.c: Added MonoIO.GetFileType internal call
24846
24847 2002-10-17  Dick Porter  <dick@ximian.com>
24848
24849         * appdomain.c (mono_runtime_cleanup): Don't signal the async
24850         delegate semaphore before waiting for all threads to finish,
24851         because new threads can also call async delegates.  Fixes bug
24852         32004.
24853
24854         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
24855         of 3 seconds, in case another async job is queued.  (This part is
24856         needed because the bug fix reintroduced the 3s exit lag.)  This
24857         makes the mono_runtime_shutdown flag superfluous.
24858
24859 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
24860
24861         * reflection.c: include ehader size in method section headers.
24862         Really check for suplicated modules entries.
24863
24864 2002-10-17  Martin Baulig  <martin@gnome.org>
24865
24866         * debug-mono-symfile.c: Added back support for locals.
24867
24868 2002-10-14  Martin Baulig  <martin@gnome.org>
24869
24870         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
24871         MONO_TYPE_VOID.
24872
24873 2002-10-14  Martin Baulig  <martin@gnome.org>
24874
24875         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
24876         mono_class_get() instead of looking in the class cache. 
24877
24878 2002-10-13  Martin Baulig  <martin@gnome.org>
24879
24880         * debug-mono-symfile.c: Set version number to 28, include the
24881         signature in method names.
24882
24883 2002-10-13  Martin Baulig  <martin@gnome.org>
24884
24885         * debug-mono-symfile.h: Set version number to 27.
24886
24887 2002-10-11  Martin Baulig  <martin@gnome.org>
24888
24889         * gc.c: Don't register/unregister NULL pointers as disappearing links.
24890
24891 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
24892
24893         * metadata.c, metadata.h: added helper function to allocate signatures.
24894
24895 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24896
24897         * icall.c: added internal call to get the location of machine.config.
24898
24899 2002-10-08  Martin Baulig  <martin@gnome.org>
24900
24901         * debug-mono-symfile.c: Ignore classes with a pending init for the
24902         moment.
24903
24904 2002-10-03  Dick Porter  <dick@ximian.com>
24905
24906         * threads.c: Freebsd pthread_t is a pointer
24907
24908 2002-10-03  Dick Porter  <dick@ximian.com>
24909
24910         * socket-io.c: Implemented GetHostName_internal
24911
24912 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24913
24914         * mono-config.c:
24915         (mono_config_parse_file): don't leak the text.
24916
24917 2002-10-02  Martin Baulig  <martin@gnome.org>
24918
24919         * debug-mono-symfile.c: Added support for methods.
24920
24921 2002-10-01  Martin Baulig  <martin@gnome.org>
24922
24923         * debug-mono-symfile.c: Don't emit methods and line numbers for
24924         the dynamic symbol file, just write the type table.  We can easily
24925         have an external helper program which creates a symbol file for an
24926         IL file.        
24927
24928 2002-10-01  Dick Porter  <dick@ximian.com>
24929
24930         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
24931         Only add the handle to the cleanup array when we're about to
24932         launch the thread.  Bug 31425 deadlocked when the test was run on
24933         mono under w32.
24934
24935 2002-10-01  Martin Baulig  <martin@gnome.org>
24936
24937         * debug-mono-symfile.c: Added support for properties.
24938
24939 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
24940
24941         * reflection.c: unaligned store fix from Mark Crichton
24942         <crichton@gimp.org>.
24943
24944 2002-09-27  Martin Baulig  <martin@gnome.org>
24945
24946         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
24947         New interncall.
24948
24949 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
24950
24951         * assembly.h, assembly.c: use a sane API to hook into the assembly
24952         loading process instead of a useless special-purpouse hack
24953         (ngen needs a hook, too, for example).
24954
24955 2002-09-27  Dick Porter  <dick@ximian.com>
24956
24957         * threads.c (mono_thread_init): Call GetCurrentProcess() so
24958         io-layer can set up some process handle info.  Not needed on w32,
24959         but doesn't hurt either.
24960
24961         * process.c: Pass the program name in the second parameter to
24962         CreateProcess, so the path is searched.  Include the working
24963         directory. Implemented process name, process enumeration, and some
24964         process detail internal calls.
24965         
24966         * icall.c: Added internal calls for process lookup, and some
24967         process details
24968
24969 2002-09-26  Martin Baulig  <martin@gnome.org>
24970
24971         * assembly.c (mono_install_open_assembly_hook): New global
24972         function to install a function to be invoked each time a new
24973         assembly is loaded.
24974         (mono_assembly_open): Run this callback function if set.
24975
24976         * debug-mono-symfile.c: Put back line numbers for the dynamic
24977         symbol file and also record the .il file as source file.  This
24978         allows us to install the temporary symbol file as `file.dbg' just
24979         like a compiler-generated one.
24980
24981 2002-09-26  Nick Zigarovich <nick@chemlab.org>
24982
24983         * Corrected typo in gc.c (BOHEM vs BOEHM).
24984
24985 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24986
24987         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
24988         GetProperties. Also avoid calling g_slist_length in GetProperties and
24989         GetMethods.
24990
24991 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
24992
24993         * reflection.c: avoid unaligned stores (bug spotted by
24994         Mark Crichton  <crichton@gimp.org>).
24995
24996 2002-09-25  Martin Baulig  <martin@gnome.org>
24997
24998         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
24999         instead of guint64 for addresses and added prologue/epilogue info.
25000
25001 2002-09-25  Martin Baulig  <martin@gnome.org>
25002
25003         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
25004         store line number info.  For the dynamic symbol file, we only need
25005         to provide the JIT generated dynamic line number info for the dynamic
25006         symbol file.
25007
25008 2002-09-25  Martin Baulig  <martin@gnome.org>
25009
25010         * debug-mono-symfile.h: Incremented version number.
25011
25012 2002-09-24  Martin Baulig  <martin@gnome.org>
25013
25014         * class.c (mono_debugger_class_init_func): New global function
25015         pointer variable.
25016         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
25017         call it.
25018
25019         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
25020         function.  This is called via the mono_debugger_class_init_func
25021         hook to add all types to the dynamic type table.
25022         (ves_icall_MonoDebugger_GetType): New interncall to get a class
25023         from its metadata token.
25024
25025         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
25026         New interncall for the debugger.
25027
25028 2002-09-24  Nick Drochak <ndrochak@gol.com>
25029
25030         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
25031         before using it in case it is null.
25032         
25033 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
25034
25035         * metadata.c: allow custom modifiers in local var signatures
25036         (bug spotted by Zoltan Varga).
25037
25038 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
25039
25040         * class.c: deal with the <Module> class that may have a NULL vtable.
25041         Eliminate warnings.
25042
25043 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
25044
25045         * image.c, image.h: more strong name helpers.
25046         * monosn.c: more work: convert pem keys to cryptoapi format.
25047
25048 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
25049
25050         * string-icalls.c: speedup IndexOf.
25051
25052 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
25053
25054         * icall.c: updates from Zoltan.2.Varga@nokia.com.
25055
25056 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
25057
25058         * icall.c: cleanup: use mono_object_domain ().
25059
25060 2002-09-23  Martin Baulig  <martin@gnome.org>
25061
25062         * debug-mono-symfile.c: Improved type support.
25063
25064 2002-09-22  Martin Baulig  <martin@gnome.org>
25065
25066         * debug-mono-symfile.c: Added support for reference types and strings.
25067
25068 2002-09-22  Martin Baulig  <martin@gnome.org>
25069
25070         * debug-mono-symfile.c: Started to work on the type table.
25071
25072 2002-09-21  Martin Baulig  <martin@gnome.org>
25073
25074         * debug-mono-symfile.c: Largely reworked the symbol table format.
25075         The symbol table is now incrementally updated each time a new
25076         method is added.  We're now also using our own magic and version
25077         so that you don't need to recompile all your classes if the
25078         dynamic table changes.
25079         (mono_debug_update_mono_symbol_file): Removed.
25080         (mono_debug_symfile_add_method): New function to add a method.
25081
25082 2002-09-21  Martin Baulig  <martin@gnome.org>
25083
25084         * icall.c
25085         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
25086         New interncall.
25087
25088         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
25089         New interncall to get a method from its metadata token.
25090
25091 2002-09-21  Martin Baulig  <martin@gnome.org>
25092
25093         * debug-mono-symfile.c: Create type table.
25094
25095 2002-09-20  Martin Baulig  <martin@gnome.org>
25096
25097         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
25098
25099 2002-09-20  Martin Baulig  <martin@gnome.org>
25100
25101         * debug-mono-symfile.c: Provide information about params and locals.
25102
25103 2002-09-20  Martin Baulig  <martin@gnome.org>
25104
25105         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
25106         New interncall.
25107
25108         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
25109         interncall to get a method from its metadata token.
25110
25111 2002-09-20  Martin Baulig  <martin@gnome.org>
25112
25113         * debug-mono-symfile.c: Added a few checks for method->header
25114         being non-NULL.  This should never happen, but for the moment
25115         let's use a g_warning() rather than a g_assert().
25116
25117 2002-09-19  Mark Crichton  <crichton@gimp.org>
25118
25119         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
25120         even if support for it isn't present.  Added an #ifdef to fix this.
25121
25122         * socket-io.c: Added checks back for Solaris support.
25123
25124 2002-09-19  Martin Baulig  <martin@gnome.org>
25125
25126         * debug-mono-symfile.c (read_string, write_string): Reflect latest
25127         changes in the symbol file format.
25128
25129 2002-09-18  Martin Baulig  <martin@gnome.org>
25130
25131         * debug-mono-symfile.c: Set version number to 21.
25132
25133 2002-09-18  Dick Porter  <dick@ximian.com>
25134
25135         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
25136         on netbsd.  Fixes bug 30051.
25137
25138 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25139
25140         * reflection.c:
25141         (set_version_from_string): little fix.
25142
25143 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
25144
25145         * monosn.c, Makefile.am: added strong name utility.
25146         * reflection.h, reflection.c: implemented delayed signing,
25147         locale, version and hash id assembly attributes.
25148
25149 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
25150
25151         * loader.c, metadata.c: load param attributes in signatures.
25152
25153 2002-09-16  Martin Baulig  <martin@gnome.org>
25154
25155         * debug-mono-symfile.c: Added string table with all method names.
25156
25157 2002-09-14  Martin Baulig  <martin@gnome.org>
25158
25159         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
25160         fast method lookup.
25161
25162 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
25163
25164         * reflection.c: record the public key token of referenced assemblies.
25165
25166 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
25167
25168         * image.c, image.h: added functions to get the strong name and the
25169         public key of an assembly.
25170         * pedump.c: use them.
25171
25172 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
25173
25174         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
25175
25176 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
25177
25178         * marshal.c (mono_marshal_get_managed_wrapper): Added
25179         MONO_TYPE_BOOLEAN 
25180
25181 2002-09-11  Martin Baulig  <martin@gnome.org>
25182
25183         * gc.c: Call GC_unregister_disappearing_link() on all links when
25184         finalizing them, this is necessary to aviod a crash in boehm's
25185         finalize handler.
25186
25187 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
25188
25189         * gc.c: handle GetTarget for finalized objects spotted and fixed by
25190         nick@chemlab.org.
25191
25192 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
25193
25194         * icall.c: implemented MonoType::Module.
25195         * reflection.c, reflection.h: mono_module_get_object () from
25196         Tomi Pakarinen <tomi.pakarinen@welho.com>.
25197
25198 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
25199
25200         * icall.c: ignore overridden methods in GetMethods ().
25201         Fix for FieldInfo::SetValue().
25202         * object.c: handle float/double in runtime invoke.
25203
25204 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
25205
25206         * object.c: allow a constructor to be called again on an object.
25207
25208 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
25209
25210         * class.h, class.c: move field layout code to it's own function and
25211         export it. Get an interface id earlier. Move fields in MonoClass
25212         so they are more cache friendly and align the bitfields.
25213         * loader.c: temporary handle get_param_names() for a runtime method.
25214         * reflection.c, reflection.h: more code to handle runtime creation of
25215         types.
25216
25217 2002-09-09  Martin Baulig  <martin@gnome.org>
25218
25219         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
25220         signature with the pinvoke field being set for the actual call.
25221
25222 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
25223
25224         * icall.c: removed some unused icalls. Start of map of glib charsets
25225         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
25226
25227 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
25228
25229         * debug-helpers.c: break infinite loop (found and fixed by
25230         Holger Arnold <harnold@gmx.de>).
25231
25232 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
25233
25234         * icall.c: target may be null in create_delegate.
25235
25236 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
25237
25238         * marshal.c: handle a boolean return type.
25239
25240 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
25241
25242         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
25243
25244 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
25245
25246         * gc.c: fix weakreferences.
25247
25248 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
25249
25250         * icall.c: added icall to get default codepage.
25251
25252 2002-09-03  Dick Porter  <dick@ximian.com>
25253
25254         * threads.h: 
25255         * threads.c: Use MonoThread instead of MonoObject where
25256         apropriate.
25257
25258         Store running thread objects in a hash table, so that we have all
25259         the info to hand when waiting for them to finish
25260         (means we don't need OpenThread() any more, so mingw builds should
25261         be fully functional again.)
25262
25263         * verify.c:
25264         * object.h: Added thread ID to MonoThread
25265
25266 2002-09-03  Martin Baulig  <martin@gnome.org>
25267
25268         * icall.c (System.Reflection.Assembly::get_location): New interncall.
25269
25270 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25271
25272         * icall.c: fixed leak in get_temp_path. Thanks lupus.
25273
25274 2002-09-03  Martin Baulig  <martin@gnome.org>
25275
25276         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
25277         argument to store the end address of the disassembled instruction.
25278
25279         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
25280         here from debug-symfile.h.
25281         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
25282         JIT into this struct.
25283         (MonoSymbolFile): Added `char *image_file' field.
25284         (MonoDebugGetMethodFunc): Removed.
25285         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
25286         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
25287         (mono_debug_find_method): New method.
25288
25289         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
25290         create a full symbol file.
25291         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
25292         and static symbol files.
25293         (mono_debug_find_method): The symbol file keeps an internal method hash,
25294         call this to get a MonoDebugMethodInfo from a MonoMethod.
25295
25296         * debug-symfile.[ch]: Removed.
25297
25298 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
25299
25300         * image.c (do_mono_image_open): Remove linker version check.
25301
25302 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
25303
25304         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
25305         wrappers for instance methods.
25306         
25307 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25308
25309         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
25310
25311 2002-08-28  Dick Porter  <dick@ximian.com>
25312
25313         * Makefile.am: Export HOST_CC for w32 builds
25314
25315 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
25316
25317         * file-io.c process.c: MonoString are null terminated, no
25318         need for mono_string_to_utf16() anymore.
25319
25320 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
25321
25322         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
25323
25324 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
25325
25326         * icall.c, reflection.h: speedup System.MonoType.
25327
25328 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
25329
25330         * reflection.c: allow null as the value of a string argument in
25331         custom attributes constructors.
25332
25333 2002-08-27  Martin Baulig  <martin@gnome.org>
25334
25335         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
25336         `trampoline_address' field.
25337
25338 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
25339
25340         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
25341         check (fixes bug #29486) 
25342
25343 2002-08-27  Martin Baulig  <martin@gnome.org>
25344
25345         * debug-mono-symfile.c: Changed the file format in a way that allows us
25346         open it read-only and to use a specially malloced area for all the
25347         dynamic data.  We can now also generate a symbol file on-the-fly if we're
25348         debugging IL code and there is no MCS generated symbol file for it.
25349
25350 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
25351
25352         * object.c: added a define for a good string and array
25353         creation speedup (not enabled by default because we need to deal with
25354         the synch stuff).
25355
25356 2002-08-26  Martin Baulig  <martin@gnome.org>
25357
25358         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
25359         function to create a dynamic symbol file.  This is used by the
25360         debugger to create a symbol file for IL code on-the-fly.
25361
25362 2002-08-26  Martin Baulig  <martin@gnome.org>
25363
25364         * loader.c (mono_lookup_pinvoke_call): Include the error message
25365         from g_module_error() in the error message.
25366
25367 2002-08-24  Martin Baulig  <martin@gnome.org>
25368
25369         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
25370         function to update the symbol file.  The symbol file is mmap()ed
25371         writable, but private.  This allows us to install the symbol file
25372         together with the assembly.
25373
25374 2002-08-24  Martin Baulig  <martin@gnome.org>
25375
25376         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
25377         but they can read the new symbol file format which mcs is now creating.
25378
25379         * debug-symfile.c (mono_debug_find_source_location): Moved to
25380         debug-mono-symfile.c; this is now operating on the new symbol file.
25381
25382 2002-08-23  Martin Baulig  <martin@gnome.org>
25383
25384         * debug-helpers.c (mono_method_desc_from_method): New function to get
25385         a MonoMethodDesc from a MonoMethod.
25386
25387 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
25388
25389         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
25390         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
25391
25392 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
25393
25394         * string-icalls.[ch]: make helper methods static.
25395
25396 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25397
25398         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
25399         types to it and to SetValueInternal.
25400
25401         * object.c: Moved handle_enum label to its proper place. This was the
25402         f... bug! ;-)
25403
25404         This time i compiled mcs and gtk-sharp and they both work.
25405
25406 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25407
25408         * icall.c: reverted partially my previous patch until 
25409         object.c:set_value handles enums correcly.
25410
25411 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25412
25413         * icall.c:
25414         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
25415         (ves_icall_System_Environment_get_MachineName): removed warning when
25416         compiling under cygwin.
25417
25418 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
25419
25420         * object.c: fixed field_get_value() for reference types.
25421
25422 2002-08-22  Dick Porter  <dick@ximian.com>
25423
25424         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
25425         Don't free a buffer while it's still needed.  Patch from Jonathan
25426         Liger <Jonathan.liger@wanadoo.fr>
25427
25428 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
25429
25430         * icall.c (ves_icall_System_Environment_get_Platform): Add new
25431         internal call.
25432
25433 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
25434
25435         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
25436         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
25437
25438         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
25439         we call unmanaged code which throws exceptions.
25440
25441 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
25442
25443         * appdomain.h: added per-domain entry_assembly.
25444         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
25445         arguments.
25446         * icall.c: Assembly::GetEntryAssembly icall.
25447         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
25448         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
25449
25450 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
25451
25452         * appdomain.h, gc.c: added mono_domain_finalize ().
25453
25454 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25455
25456         * object.c:
25457         (mono_print_unhandled_exception): changed g_warning by g_printerr
25458         because g_log has a 1024 characters limit (yeah, i got a big stack
25459         trace). Don't print exception name, that should be in ToString 
25460         returned string.
25461
25462 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25463
25464         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
25465         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
25466
25467 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25468
25469         * object.c:
25470         (mono_print_unhandled_exception): after previous commit, i realized
25471         that MS calls ToString on the exception. I changed this function to
25472         do that. This way we get stack_trace for free.
25473
25474 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25475
25476         * object.c:
25477         (mono_print_unhandled_exception): invoke Message property instead of
25478         getting 'message' field from Exception. Don't allocate memory for
25479         'trace' and 'message' if not needed.
25480
25481 2002-08-18  Dick Porter  <dick@ximian.com>
25482
25483         * unicode.c: Fix asserts to match Encoder.cs checks
25484
25485 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
25486
25487         * marshal.c: fix unaligned store issue and a few wrong
25488         opcode argument types.
25489
25490 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25491
25492         * icall.c: added GetUninitializedObjectInternal internal call.
25493
25494 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
25495
25496         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
25497         to the right domain.
25498
25499 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
25500
25501         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
25502
25503         * class.c (class_compute_field_layout): set blittable to false for Strings
25504
25505         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
25506
25507 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
25508
25509         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
25510         first chunk of code to create types at runtime. Code to
25511         handle ReflectedType/DeclaringType. Make reflection handles
25512         domain specific.
25513
25514 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
25515
25516         * class.c: set correct name in arrays.
25517
25518 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
25519
25520         * appdomain.c (mono_domain_transfer_object): make it work with
25521         valuetypes. bug fixes.
25522
25523 2002-08-12  Dick Porter  <dick@ximian.com>
25524
25525         * object.h: Rename some parameters to avoid c++ keywords (Patch
25526         from Joseph Wenninger <kde@jowenn.at>)
25527
25528 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
25529
25530         * icall.c: added icall to implement Assembly.GetFile*.
25531
25532 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
25533
25534         * reflection.h, reflection.c: code to embed managed resources.
25535
25536 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
25537
25538         * class.c: move all the type size stuff into
25539         class_compute_field_layout().
25540
25541 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
25542
25543         * class.c: ensure enums have always the correct instance size.
25544         * unicode.c: remove wrong assert.
25545
25546 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
25547
25548         * assembly.c: fix mem corruption issue.
25549         * image.h, image.c: added mono_image_get_resource () to access
25550         managed resources.
25551         * icall.c: implemented Assembly.EntryPoint property and some
25552         Managed Resources related internalcalls.
25553
25554
25555 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
25556
25557         * image.c, image.h: impemented mono_image_get_entry_point ().
25558         * appdomain.c: use mono_image_get_entry_point.
25559
25560 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
25561
25562         * reflection.c: support the object type argument when loading
25563         custom attributes.
25564
25565 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
25566
25567         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
25568         String as return type.
25569
25570 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
25571
25572         * reflection.c: fix encoding of named args for custom attrs to match
25573         the ms implementation. Read them back when instantiating custom
25574         attributes.
25575
25576 2002-08-02  Radek Doulik  <rodo@ximian.com>
25577
25578         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
25579         by Dietmar as quick fix
25580         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
25581         16 as stack size, used on more places as quick fix before Dietmar
25582         will fix it properly
25583
25584 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
25585
25586         * object.h, object.c: added accessors for fields and properties.
25587
25588 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
25589
25590         * class.c, class.h: made mono_class_get_field_from_name ()
25591         loop on parent types.
25592         Added mono_class_get_property_from_name ().
25593
25594 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
25595
25596         * class.c, class.h: move the code to setup the type vtable in its own
25597         function so that it can be reused also for types created at runtime.
25598         Eliminate the "class" identifier from the header file.
25599         * reflection.c: setup the vtable for enums so that we can create
25600         objects for use in SetConstant ().
25601
25602 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
25603
25604         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
25605         instead of the delegate itself as this pointer (bug #28383)
25606
25607 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
25608
25609         * marshal.c (mono_marshal_get_managed_wrapper): added return type
25610         conversions.
25611
25612 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
25613
25614         * loader.c: don't set the pinvoke bit on icalls.
25615
25616 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
25617
25618         * debug-helpers.c (mono_method_full_name): only print a number to
25619         indicate wrapper type (so that the output is more readable in traces).
25620
25621 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
25622
25623         * class.c (mono_class_init): include method override patch from Paolo
25624
25625 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
25626
25627         * icall.c: fixed GetTypeCode().
25628
25629 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
25630
25631         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
25632         use real delegate invoke function to make it work with multicast
25633         delegates (fix bug# 28291).
25634
25635 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
25636
25637         * object.c: load constant strings.
25638
25639 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
25640
25641         * reflection.c: no magic numbers.
25642         * tabledefs.h: security action enum.
25643
25644 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
25645
25646         * assembly.c: fix possible memory corruption.
25647
25648 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
25649
25650         * reflection.h, reflection.c: added support for linking resources.
25651         * verify.c: check we have an updated corlib.
25652
25653 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
25654
25655         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
25656         string arrays.
25657         (mono_marshal_string_array): null terminate unmanaged string arrays.
25658         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
25659
25660 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
25661
25662         * icall.c: Type.GetType () can now return also types from the
25663         calling assembly.
25664
25665 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
25666
25667         * loader.h, loader.c: stack walking support.
25668         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
25669         GetCallingAssembly.
25670
25671 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
25672
25673         * marshal.c: added optimisations for blittable types 
25674
25675         * class.c (mono_array_class_get): do not set blittable attribute on arrays
25676         (mono_class_setup_mono_type): set blittable attribute for single
25677         and double.
25678
25679         * marshal.c (mono_string_utf8_to_builder): impl.
25680         (mono_string_builder_to_utf8): impl.
25681         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
25682
25683 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
25684
25685         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
25686         (mono_marshal_get_managed_wrapper): impl. byref types
25687
25688 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25689
25690         * icall.c:
25691         (search_method): don't display debug message. 
25692
25693 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
25694
25695         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
25696
25697 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
25698
25699         * appdomain.c: set the missing filename when throwing exception.
25700
25701 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
25702
25703         * metadata.c (mono_type_size): code cleanup
25704         (mono_type_stack_size): removed some test code
25705
25706 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
25707
25708         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
25709         mono_get_exception_file_not_found now.
25710
25711         * exception.c (mono_exception_from_name_two_strings): New version
25712         that will call a constructor with two string arguments. 
25713         (mono_get_exception_file_not_found): New helper routine, used to
25714         report file-not-found errors.
25715
25716 2002-07-20  Dick Porter  <dick@ximian.com>
25717
25718         * process.h:
25719         * process.c: Pass file handles to CreateProcess
25720         
25721         * icall.c:
25722         * file-io.h:
25723         * file-io.c: Implemented CreatePipe
25724
25725 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
25726
25727         * metadata.c (mono_get_param_info): set alignment for value types
25728
25729 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
25730
25731         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
25732         Constify mono_domain_assembly_open().
25733         * loader.c: handle null namespace in icalls.
25734
25735 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
25736
25737         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
25738         (emit_str_to_ptr_conv): marshal object as structs
25739
25740         * metadata.c (mono_type_to_unmanaged): marshal object as structs
25741
25742         * marshal.c (mono_marshal_get_runtime_invoke): support value types
25743
25744 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
25745
25746         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
25747         (mono_marshal_get_native_wrapper): we an now return value types
25748
25749 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
25750
25751         * verify.c: more checks implemented.
25752
25753 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
25754
25755         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
25756         (fix bug #27695)
25757         (mono_marshal_get_native_wrapper): allow byref arguments
25758         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
25759         impl. PtrToStringXXX methods
25760         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
25761         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
25762         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
25763         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
25764         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
25765
25766 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
25767
25768         * reflection.c: fix buglet in parsing an assembly name.
25769
25770 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
25771
25772         * marshal.c (emit_ptr_to_str_conv): first impl.
25773
25774 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
25775
25776         * object.c, class.h: cache the vtable in the class as suggested by
25777         vargaz@freemail.hu (Zoltan Varga).
25778
25779 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
25780
25781         * class.h, loader.c: added mono_field_from_token().
25782         * verify.c: first cut of type checking code.
25783
25784 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
25785
25786         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
25787
25788 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
25789
25790         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
25791         (fix bug #27782)
25792         (mono_marshal_get_remoting_invoke): impl.
25793         (mono_delegate_begin_invoke): impl.
25794         (mono_mb_emit_save_args): impl.
25795         (mono_delegate_end_invoke): impl.
25796         (mono_marshal_get_delegate_begin_invoke):
25797         (mono_marshal_get_delegate_end_invoke):
25798         (mono_marshal_get_delegate_invoke): generate a special name for
25799         those methods (including the signature) and associate them whith
25800         the delegate class. 
25801
25802 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
25803
25804         * reflection.[ch]: 
25805         (mono_reflection_type_from_name): now it has a MonoImage parameter
25806         which is used as the default image to search the type in. If the image
25807         is NULL or getting the type from it fails, it defaults to corlib.
25808
25809         * icall.c: changed 1 call to mono_reflection_type_from_name to match
25810         new parameter.
25811
25812 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
25813
25814         * reflection.c: update the parameter table index.
25815
25816 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
25817
25818         * domain.c: don't include the mark byte in the string hash.
25819
25820 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
25821
25822         * icall.cs: icall for Type.GetTypeCode ().
25823         * verify: a couple of fixes and disabled local initialization checks.
25824
25825 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
25826
25827         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
25828
25829         * debug-helpers.c (mono_method_full_name): print the type of the
25830         runtime wrapper
25831
25832         * metadata.c (mono_signature_hash): a hash function for signatures
25833         (mono_signature_hash): better hash algorithm
25834
25835         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
25836
25837         * debug-helpers.c (mono_method_full_name): this can now generate
25838         method names with signatures
25839
25840         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
25841         method dont have this pointers.
25842
25843 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
25844
25845         * reflection.c: fixup typebuilder tokens.
25846         * image.c: fix buglet.
25847         * marshal.h: remove whitespace.
25848         * metadata.h, metadata.c: reinstate code that was removed.
25849         * verify.c: handle catch directives and fix another couple of bugs.
25850
25851 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
25852
25853         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
25854         (mono_marshal_get_native_wrapper): make it comp. with the old code
25855         (mono_marshal_get_native_wrapper): support boolean
25856         (mono_marshal_get_managed_wrapper): support more types
25857
25858 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
25859
25860         * class.c (class_compute_field_layout): compute class->blittable attribute.
25861
25862 2002-07-09  Dick Porter  <dick@ximian.com>
25863
25864         * threads.c: Make the thread cleaning up cope with threads that
25865         call ExitThread()
25866
25867 2002-07-08  Radek Doulik  <rodo@ximian.com>
25868
25869         * reflection.c (method_encode_code): use non-translated values to
25870         compute finally_start, this fixes exception handling on ppc, yay!
25871
25872         * decimal.h (struct signscale): fix endianess
25873
25874 2002-07-07  Radek Doulik  <rodo@ximian.com>
25875
25876         * reflection.c: swap box_val and not val
25877
25878 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
25879
25880         * reflection.c, reflection.h: handle full assembly info in type name.
25881         Handle Type arguments when loading custom attributes.
25882         * icall.c: updated to use new mono_reflection_type_from_name () method.
25883
25884 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25885
25886         * loader.c:
25887         (method_from_memberref): also print assembly name when method not found.
25888
25889 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25890
25891         * icall.c:
25892         (ves_icall_TypeGetProperties): fixed bug #27473. 
25893
25894 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25895
25896         * reflection.c: display image name and token when cannot find the
25897         .ctor for an attribute.
25898
25899 2002-07-05  Martin Baulig  <martin@gnome.org>
25900
25901         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
25902
25903 2002-07-04  Dick Porter  <dick@ximian.com>
25904
25905         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
25906         compile on mingw.  This will cause mingw builds to not wait for
25907         subthreads to terminate after the main thread does.  I've lodged a
25908         bug with the mingw developers for them to wrap OpenThread().
25909
25910 2002-07-03  Dick Porter  <dick@ximian.com>
25911
25912         * threads.c: Store thread IDs instead of handles, because
25913         GetCurrentThread() returns a pseudohandle and therefore stores
25914         useless values.  mono_thread_cleanup() continues checking the
25915         array of threads until it is empty, to cope with subthreads
25916         spawning new threads after the main thread has finished.
25917
25918         * profiler.h:
25919         * profiler.c:
25920         * profiler-private.h: Pass the thread ID to thread profiler
25921         functions, instead of a handle
25922
25923 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
25924
25925         * verify.c: fixes to make it more usable.
25926         * pedump.c: added --verify code to verify IL code in an assembly.
25927
25928 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
25929
25930         * reflection.c: turn errors into warnings to allow compiling corlib.
25931
25932 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
25933
25934         * reflection.c: add special cases to compile corlib.
25935
25936 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
25937
25938         * reflection.c: handle properties with only a set method.
25939
25940 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
25941
25942         * opcodes.h: add enum with opcodes in opval order.
25943
25944 2002-07-01  Dick Porter  <dick@ximian.com>
25945         
25946         * object.h:
25947         * object.c (mono_runtime_run_main): Removed unneeded argument
25948
25949 2002-06-28  Martin Baulig  <martin@gnome.org>
25950
25951         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
25952
25953 2002-06-27  Dick Porter  <dick@ximian.com>
25954
25955         * threads.c: Store the handle in both the parent thread and in the
25956         subthread, to minimise the time between starting a new thread and
25957         storing its ID.
25958
25959 2002-06-26  Dick Porter  <dick@ximian.com>
25960
25961         * appdomain.c (mono_runtime_cleanup): Close the socket library
25962         after all the threads have finished, not before
25963
25964 2002-06-26  Martin Baulig  <martin@gnome.org>
25965
25966         * debug-symfile.c (mono_debug_find_source_location): Added
25967         `guint32 *line_number' argument.  If it's not NULL, store the line number
25968         there and return the file name without the line number.
25969
25970 2002-06-25  Dick Porter  <dick@ximian.com>
25971
25972         * icall.c:
25973         * process.h:
25974         * process.c: Process forking and other support functions
25975
25976 2002-06-25  Dick Porter  <dick@ximian.com>
25977
25978         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
25979         things dont happen when the image is closed.
25980         (mono_image_lookup_resource): Walk the resource section looking
25981         for a particular entry
25982
25983         * cil-coff.h: PE resource section decoding
25984
25985 2002-06-25  Dick Porter  <dick@ximian.com>
25986         
25987         * assembly.h:
25988         * assembly.c: 
25989         (mono_assembly_foreach): Accessor functions to walk the list of
25990         loaded assemblies
25991         (mono_assembly_set_main):
25992         (mono_assembly_get_main): Process methods need to know which
25993         assembly is the "main" one
25994
25995         * object.c (mono_runtime_run_main): Record the main assembly
25996
25997         * debug-helpers.c: Fix typo
25998
25999 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
26000
26001         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
26002         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
26003
26004 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
26005
26006         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
26007
26008 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
26009
26010         * image.c (do_mono_image_open): Initialize reference count,
26011         otherwise we leak the MonoImage.
26012
26013 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
26014
26015         * reflection.c: small tweak to handle self-hosting.
26016
26017 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
26018
26019         * reflection.c: fix type name parse code.
26020
26021 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
26022
26023         * reflection.c: break out of the loop.
26024         * image.c: special case corlib.
26025
26026 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
26027
26028         * reflection.c: add all the custom attrs at the end to ensure the
26029         ctors have been properly initialized when the attributes are defined
26030         in the current assembly.
26031
26032 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
26033
26034         * reflection.c: handle correctly multiple-nested types.
26035
26036 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
26037
26038         * row-indexes.h: fix typos.
26039         * reflection.c: adjust for typos and fix method_def_or_ref
26040         encoding in MethodImpl table.
26041
26042 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
26043
26044         * reflection.c: fix entry point patching (thanks Serge!).
26045
26046 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
26047
26048         * verify.c: add check for System.Exception
26049
26050 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
26051
26052         * image.c, class.c: minifix for code just c&p'ed.
26053         * reflection.c: warning fix.
26054         * object.h, loader.h, domain.c: load also StringBuilder.
26055
26056 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
26057
26058         * marshal.h, marshal.c: some support code to handle complex marshaling.
26059
26060 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
26061
26062         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
26063         Better signatures with vtable error dump.
26064
26065 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
26066
26067         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
26068
26069 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
26070
26071         * icall.c (ves_icall_Type_GetField): impl.
26072
26073 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
26074
26075         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
26076         to retrieve a marshal description blob for a field or param.
26077
26078 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
26079
26080         * reflection.h, reflection.c: change order of nested type emission
26081         to avoid table corruption. The NestedTypes table is sorted.
26082         * icall.c: change order of GetConstructor results to workaround mcs bug.
26083
26084 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
26085
26086         * reflection.h, reflection.c: handle field and param marshal
26087         information.
26088
26089 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
26090
26091         * icall.c, marshal.c marshal.h: more Marshal class implementation.
26092
26093 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
26094
26095         * reflection.c: fix call convention.
26096
26097 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
26098
26099         * reflection.h, reflection.c: mono_image_get_memberref_token()
26100         takes a type instead of a class, now. Added
26101         mono_image_get_array_token() to create tokens for the special
26102         multi-dim array methods.
26103
26104 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
26105
26106         * assembly.c: handle modules (no assembly table). Split
26107         loading references in its own function.
26108         * class.c: handle moduleref resolution scope.
26109         * image.c, image.h: cache module name in image.
26110
26111 2002-06-07  Martin Baulig  <martin@gnome.org>
26112
26113         * reflection.c (mono_image_get_type_info): Only add a class layout entry
26114         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
26115
26116 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
26117
26118         * icall.c: more signature fixes that used uint instead of int.
26119
26120 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
26121
26122         * reflection.c: fixed signature of field refs.
26123
26124 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
26125
26126         * class.c, reflection.c: handle typerefs of nested types
26127         (both on read and when writing files).
26128
26129 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
26130
26131         * icall.c: fix method signatures that tried to workaround the previous
26132         typo, d'oh!
26133
26134 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
26135
26136         * debug-helpers.c: fix typo.
26137
26138 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
26139
26140         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
26141         rewrote the PE/COFF writing code (our programs are understood by the
26142         ms runtime, now).
26143
26144 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
26145
26146         * gc.c, gc.h, icall.c: weakreference support.
26147
26148 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
26149
26150         * Makefile.am, mono-config.c: use $(sysconfdir).
26151
26152 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
26153
26154         * icall.c: changed default precision of Double.ToString() to 15.
26155         Fixed memory leak. Unified with Single.ToString.
26156
26157 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
26158
26159         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
26160
26161 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
26162
26163         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
26164         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
26165         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
26166         and myself.
26167
26168 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
26169
26170         * debug-symfile.c, sysmath.c: yet more compilation fixes.
26171
26172 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
26173
26174         * reflection.c, socket-io.c: more compilation fixes.
26175
26176 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
26177
26178         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
26179         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
26180         unicode.c: warning and compiler compatibility fixes.
26181
26182 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
26183
26184         * class.h, metadata.c: fixed warnings/compilation errors.
26185
26186 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
26187
26188         * Makefile.am, mono-config.c, mono-config.h: configuration file
26189         support routines.
26190         * loader.c, loader.h: make Dll mapping configurable at runtime in the
26191         config file. Export methods to insert and lookup mappings.
26192
26193 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
26194
26195         * reflection.c: handle types and boxed objects in custom attr
26196         constructors.
26197
26198 2002-05-30  Martin Baulig  <martin@gnome.org>
26199
26200         * debug-symfile.c
26201         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
26202
26203 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
26204
26205         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
26206         to lookup the implmap row for a P/Invoke method.
26207         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
26208         P/Invoke method from the runtime on an as needed basis.
26209
26210 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
26211
26212         * metadata.c (mono_metadata_parse_signature): impl.
26213
26214 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
26215
26216         * class.c: handle .pack directive.
26217
26218 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
26219
26220         * object.c: initialize static fields with RVA data.
26221
26222 2002-05-25  Martin Baulig  <martin@gnome.org>
26223
26224         * debug-symfile.c
26225         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
26226
26227 2002-05-24  Martin Baulig  <martin@gnome.org>
26228
26229         * debug-symfile.c
26230         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
26231         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
26232         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
26233
26234 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
26235
26236         * object.c: special case string ctros in invoke.
26237         * gc.c: silly whitespace changes.
26238
26239 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
26240
26241         * threadpool.[ch]: impl. a threadpool that can
26242         be used by mint and mono.
26243
26244 2002-05-22  Martin Baulig  <martin@gnome.org>
26245
26246         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
26247         The first argument is now a `MonoReflectionModuleBuilder *', the return
26248         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
26249         `methods' field to get the method builder.  The `token' argument is the
26250         unfixed token.
26251
26252         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
26253         invalid characters instead of g_assert_not_reached()ing.  This seems
26254         to be the behaviour of mscorlib.
26255
26256 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
26257
26258         * object.c (mono_runtime_invoke_array): applied patch from Rachel
26259         Hestilow to fix bug #25104
26260
26261 2002-05-21  Martin Baulig  <martin@gnome.org>
26262
26263         * debug-symfile.c (mono_debug_find_source_location): New function.
26264         Looks up an IL offset in the line number table and returns the source
26265         location as a string.
26266
26267 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26268
26269         * icall.c:
26270         (mono_double_ToStringImpl): changed %f by %g until we have something
26271         better.
26272
26273 2002-05-21  Nick Drochak  <ndrochak@gol.com>
26274
26275         * icall.c : Use different name for Math.Pow's icall.  Needed to check
26276         parameters first in C#.
26277
26278 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
26279
26280         * icall.c, reflection.h: added icall to get info about an event.
26281
26282 2002-05-20  Radek Doulik  <rodo@ximian.com>
26283
26284         * object.c (mono_value_box): don't use memcpy for boxing on BIG
26285         endian
26286         (mono_value_box): don't use memcpy for small sizes on
26287         architectures with unaligned access
26288
26289 2002-05-20  Martin Baulig  <martin@gnome.org>
26290
26291         * reflection.c (mono_reflection_setup_internal_class): Don't crash
26292         if `tb->parent == NULL'.
26293         (mono_reflection_create_internal_class): New function.  This is
26294         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
26295         for enum types.
26296
26297         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
26298         New interncall.
26299
26300 2002-05-19  Martin Baulig  <martin@gnome.org>
26301
26302         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
26303         argument to get the length, don't default to the array length.
26304
26305 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
26306
26307         * assembly.c (mono_assembly_setrootdir): New function used to
26308         override the MONO_ASSEMBLIES directory.
26309
26310 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
26311
26312         * icall.c: ValueType_GetHashCode() initialize local var.
26313
26314 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
26315
26316         * reflection.c: sort custom attributes table.
26317
26318 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
26319
26320         * reflection.c: support named args in custom attributes (write support).
26321
26322 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
26323
26324         * reflection.c: fix finally position calculation.
26325
26326 2002-05-15  Radek Doulik  <rodo@ximian.com>
26327
26328         * reflection.c: fixed endianess at many places
26329
26330         * icall.c (ves_icall_InitializeArray): comment out debug msg
26331
26332 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
26333
26334         * object.c (mono_unhandled_exception): new function to handle
26335         unhandled exceptions.
26336         (mono_unhandled_exception): call the UnhandledException event.
26337         (mono_runtime_delegate_invoke): impl.
26338
26339 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
26340
26341         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
26342         returns the RVA, not the direct pointer to the data. Handle the case
26343         when the class size is fixed.
26344
26345 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
26346
26347         * reflection.c: fix some endianess issues.
26348
26349 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
26350
26351         * object.c (mono_runtime_invoke): is now able to catch exceptions.
26352
26353         * threads.c (mono_thread_init): added a callback which is invoked
26354         at thread start.
26355
26356 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
26357         
26358         * icall.c: make GetHashCode return non-negative values.
26359
26360 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
26361
26362         * object.c, icall.c, gc.c: revert to address-based hashcode.
26363
26364 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
26365
26366         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
26367
26368 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
26369
26370         * icall.c, class.c: special case <Module>.
26371
26372 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
26373
26374         * icall.c: fix bug in GetNow().
26375
26376 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
26377
26378         * object.c (mono_runtime_class_init): make sure that we call all
26379         static class constructors.
26380
26381 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
26382
26383         * reflection.c: sort methodsemantics table.
26384
26385 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
26386
26387         * reflection.h, reflection.c: honour init locals setting.
26388
26389 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
26390
26391         * icall.c: copied Double ToStringImpl for Single ToStringImpl
26392
26393 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
26394
26395         * reflection.c: support ContructorBuilders in attribute blob creation.
26396
26397 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
26398
26399         * reflection.c: some changes to build a binary that can be run
26400         directly in windows.
26401
26402 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
26403
26404         * loader.c: print a big message when an icall can't be found.
26405
26406 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26407
26408         * string-icalls.c: fix bug 24248.
26409
26410 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
26411
26412         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
26413         icall.c, reflection.h: separate assembly loading by pathname and by
26414         assembly name. Use the MONO_PATH env var to search for assemblies.
26415
26416 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
26417
26418         * assembly.c, image.h: add some support for assemblies
26419         with multiple modules.
26420         * class.c, class.h: export mono_class_from_typeref().
26421         * loader.c: remove duplicated code and use mono_class_from_typeref(),
26422         instead.
26423
26424 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
26425
26426         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
26427         documentation says (the ECMA one is correct).
26428
26429 2002-05-02  Dick Porter  <dick@ximian.com>
26430
26431         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
26432         Don't name the synchronisation mutex.
26433
26434 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
26435
26436         * rand.c
26437         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
26438         Make the prototypes match.
26439         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
26440         Same.
26441
26442         * icall.c
26443         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
26444         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
26445         all systems have tm.tm_zone, so use strftime() with %Z to print
26446         the timezone abreviation into a temp string.
26447
26448         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
26449         rather than mono_array_addr() on a MonoString on Big Endian
26450         machines.
26451
26452 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
26453
26454         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
26455         fix bug 24041
26456
26457 2002-04-30  Dick Porter  <dick@ximian.com>
26458
26459         * socket-io.c: Cope with SOCKET being an integer rather than a
26460         pointer now.
26461
26462         * threads.c: Added Thread_free_internal, to deal with thread
26463         handle cleanup.  Moved calls to handle_store() and handle_remove()
26464         to start_wrapper(), so each can only be called once.  Allocate
26465         synchronisation blocks with GC_malloc(), and use GC finalisation
26466         to close the handles.
26467
26468         * icall.c: added System.Threading.Thread::Thread_free_internal
26469
26470 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
26471
26472         * icall.c: support Environment.Exit, CommandLineArgs().
26473
26474 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
26475
26476         * object.c, object.h: added mono_runtime_run_main () and
26477         mono_runtime_get_main_args () for use in System.Environment.
26478
26479 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
26480
26481         * gc.c: fix thinko, enable actual finalization since the jit is now
26482         fixed.
26483
26484 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
26485
26486         * gc.c, object.c: take into account that an object may be offset wrt the address
26487         returned by GC_malloc().
26488
26489 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
26490
26491         * image.c: handle files without entries in the assembly table (modules).
26492
26493 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
26494
26495         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
26496         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
26497         allowed to be null when it's System.Object class setup.
26498
26499 2002-04-27  Martin Baulig  <martin@gnome.org>
26500
26501         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
26502         if `tb->parent == NULL' rather than crashing.
26503
26504 2002-04-28  Nick Drochak  <ndrochak@gol.com>
26505
26506         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
26507         calling acos() where asin() should have been called.
26508
26509 2002-04-26  Martin Baulig  <martin@gnome.org>
26510
26511         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
26512         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
26513         there's a subdirectory called `System', but we don't want to read that
26514         subdirectory as an assembly.
26515
26516 2002-04-25  Martin Baulig  <martin@gnome.org>
26517
26518         * debug-symfile.c: Reflect latest MonoString changes.
26519
26520 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
26521
26522         * rand.c, rand.h: instance method icalls need to have an explicit
26523         this pointer as first argument in the C implementation.
26524
26525 2002-04-25  Nick Drochak <ndrochak@gol.com>
26526
26527         * icall.c: Fix typo in map for GetNonZeroBytes
26528
26529 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
26530
26531         * string-icalls.c : String does now passes unit tests without any 
26532         errors, the following changes has been made:
26533         
26534         Implemented replace methods.
26535         Renaming of methods to (try) follow the standard.
26536         Fixed compare ordinal
26537         Made all memory allocated directly to function instead of via icall function.
26538         Small performance fix in is_in_array function
26539                         
26540  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
26541
26542         c (mono_string_Internal_ctor_charp_int_int):
26543         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
26544         sindex < 0, throw ArgumentOutOfRangeException instead of
26545         ArgumentNullException.
26546
26547         Added new check for length == 0, however
26548         I need to make it return String.Empty from the C code.
26549         
26550         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
26551         that calculate the length for us here.
26552         
26553         (mono_string_Internal_ctor_sbytep_int_int): Replaced
26554         mono_string_new_utf16 with mono_string_new, since value is utf8.
26555
26556 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
26557
26558         * object.c: register the object for finalization if needed.
26559         Allocate one more char in the string for the terminating 0 char.
26560
26561 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
26562
26563         * class.c, class.h, image.c: check if a type implemenst a destructor.
26564         Use the proper key for array class lookups.
26565         * icall.c: register the icalls in the System.GC class.
26566         * gc.c, gc.h: GC-related functions and icalls.
26567
26568 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26569
26570         * icall.c:
26571         * socket-io.c:
26572         * unicode.c: free some strings gotten from mono_string_to_utf8 and
26573         changed a couple of free () by g_free ().
26574
26575         * decimal.c: one-liner in the comments for decimal2string ().
26576
26577 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
26578
26579         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
26580
26581 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
26582
26583         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
26584         * object.c (mono_runtime_invoke_array) : handle null in params
26585
26586 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
26587
26588         * string-icalls.c: fixed bug in split (one off bug)
26589
26590 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
26591
26592         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
26593         * icalls.c: added String::Equals as internal method
26594
26595 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
26596
26597         * threads.c: fixed bug in the double interlocked functions
26598
26599 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
26600
26601         * threads.c: implemented all of the new interlocked icalls.
26602         * string-icalls.c: fix a bug in insert.
26603         * icalls.c: added the icalls for interlocked, removed old string functions.
26604         
26605 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
26606
26607         * loader.c: fix off-by-one error when reading argument names.
26608
26609 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
26610
26611         * profiler.c: win32 counter implementation (untested).
26612         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
26613         (the latter needs testing and more complete impl. from win32 folks).
26614
26615 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
26616
26617         * object.c: mono_array_new_full workaround mono_array_class_get
26618         problem.
26619
26620 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
26621
26622         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
26623         * object.h (mono_string_chars): Changed casting type.
26624
26625 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
26626
26627         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
26628                            method signatures to use gunichar2 instead of gint16.
26629
26630 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
26631
26632         * object.h, object.c: domain-specific versions of mono_object_new and
26633         mono_array_new.
26634
26635 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
26636
26637         * object.c: changed String layout
26638
26639         * string-icalls.c (mono_string_Internal_ctor_chara): added
26640         internal string constructors.
26641
26642 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
26643
26644         * threads.c: pass 'this' to the thread start routine.
26645
26646 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26647
26648         * string-icalls.c: fix IndexOf and LastIndexOf. Now
26649         InternalCompareStr don't call twice mono_string_cmp_char for the last
26650         character. Improved performance in mono_string_cmp_char.
26651
26652 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
26653
26654         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
26655         code into its own library: libmonoruntime.
26656
26657 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
26658
26659         * object.h, object.c: changed array format so that szarrays do not
26660         require a bounds structure.
26661         * icall.c, appdomain.c: support for new szarray format.
26662
26663 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
26664
26665         * metadata.c: compare also the retuns type when comparing signatures:
26666         we didn't do this as an optimization since really overloaded methods
26667         must differ also in the arguments, but this doesn't work with
26668         low-level IL code (or when using explicit conversion operators: see
26669         bug#23498 for an example).
26670
26671 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
26672
26673         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
26674
26675 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
26676
26677         * icall.c: make MonoType::GetElementType its own icall.
26678
26679 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
26680
26681         * icall.c: remove MonoMethod_get_Name().
26682         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
26683         object.
26684
26685 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
26686
26687         * string-icalls.c: optimized a few methods.
26688
26689 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
26690
26691         * icall.c: added all new string internal calls
26692         * string-icalls.c: added, new string internal call implementation.
26693         * object.c: added mono_string_new_size for allocating a string a size
26694
26695 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
26696
26697         * object.c (mono_object_isinst): use the same code as in the
26698         optimized x86 version.
26699
26700 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
26701
26702         * profiler.c: TSC-based timer code (faster and more accurate).
26703         Not hooked up in configure, yet (set USE_X86TSC to 1).
26704
26705 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
26706
26707         * profiler.c, profiler.h: track time spent compiling methods.
26708         * threads.c: track thread creation/destruction.
26709
26710 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
26711
26712         * profiler.c, profiler.h, profiler-private.h: profiling interface
26713         and sample implementation. Moved here so that it can be used also by
26714         the jit.
26715
26716 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
26717
26718         * reflection.c, reflection.h: keep types and other handles separate in
26719         the hash tables for referred tokens. Add guid for modules.
26720
26721 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
26722
26723         * assembly.c: fix bugs found with valgrind.
26724         * metadata.h, metadata.c: added mono_metadata_guid_heap().
26725
26726 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
26727
26728         * threads: added icall support for getting current domain for
26729                    the thread.
26730  
26731 2002-04-13  Martin Baulig  <martin@gnome.org>
26732
26733         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
26734         (MonoDebugVarInfo): Added `index' field for register based addresses.
26735         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
26736         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
26737         `MonoDebugVarInfo *params' and `guint32 this_offset' with
26738         `MonoDebugVarInfo *this_var'.
26739
26740         * debug-symfile.c (relocate_variable): New static function to write
26741         a location description for a local variable or method parameter.
26742
26743 2002-04-12  Martin Baulig  <martin@gnome.org>
26744
26745         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
26746         stack offset and begin/end scope address of a local variable.
26747         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
26748         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
26749         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
26750
26751         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
26752         Added new relocation types for start/end scope of a local variable.
26753
26754 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
26755
26756         * object.h: add mono_object_domain() macro.
26757         * reflection.c: handle typespecs.
26758         * icall.c: MonoMethod::get_Name() implementation.
26759
26760 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
26761
26762         * icall.c: String::GetHashCode() icall implementation.
26763
26764 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
26765
26766         * icall.c: String::IndexOfAny icall.
26767         * object.c, object.h: make array->max_length more useful.
26768         Intrduced mono_object_class() and mono_string_length() macros.
26769
26770 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26771
26772         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
26773         instead of g_unichar_isdigit.
26774
26775 2002-04-11  Nick Drochak  <ndrochak@gol.com>
26776
26777         * icall.c: Implement a simple Double.ToString().
26778
26779 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
26780
26781         * appdomain.h: only io-layer.h is supposed to be included.
26782         * icall.c: explicitly import environ. Fix warning.
26783
26784 2002-04-10  Nick Drochak  <ndrochak@gol.com>
26785
26786         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
26787                 return true even if it's not Daylight Savings time.
26788                 Only return false for the case where the function isn't
26789                 implemented for a plaform (read Windows).
26790
26791 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
26792
26793         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
26794         data with a mutex.
26795
26796 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
26797
26798         * mempool.c (mono_mempool_alloc): only use g_malloc when
26799         absolutely necessary.
26800
26801 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
26802
26803         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
26804
26805         * class.c (mono_class_vtable): use domain mempool to allocate vtable
26806         (mono_class_proxy_vtable): use domain mempool
26807
26808 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
26809
26810         * appdomain.h, appdomain.c: split initialization that requires the
26811         execution engine support into mono_runtime_init().
26812
26813 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
26814
26815         * class.c (mono_class_init): don't include vtable inside MonoClass
26816         to save some memory, gather some statistics.
26817         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
26818
26819 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
26820
26821         * icall.c: internalcall implementation for ValueType.Equals().
26822
26823 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
26824
26825         * object.c (mono_message_init): moved 
26826         (mono_runtime_exec_main): new arch. independent impl.
26827         (mono_runtime_invoke_array): new method - like
26828         mono_runtime_invoke, but you can pass an array of objects.
26829         (mono_remoting_invoke): new arch. independent impl.
26830         (mono_message_invoke): new arch. independent impl.
26831         (mono_runtime_class_init): new arch. independent impl.
26832         (mono_runtime_object_init): new arch. independent impl.
26833
26834 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
26835
26836         * metadata.c, object.c, reflection.c: documented the exported
26837         functions.
26838
26839 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
26840
26841         * icall.c: simpler code to pass the assembly builder data to corlib.
26842         Implement GetNestedTypes() internalcall.
26843
26844 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
26845
26846         * class.c: warn if a type can't be loaded.
26847
26848 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
26849
26850         * image.h: typedef MonoImageOpenStatus
26851         * types.h: removed unused file
26852         
26853 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
26854
26855         * icall.c: Enum_ToObject accepts enum value arguments.
26856
26857 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
26858
26859         * class.c: move initialization of properties, events and nested
26860         classes, so that they happen for interfaces, too.
26861
26862 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
26863
26864         * icall.c: cleanup some ugly casts in Array_SetValue*.
26865
26866 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
26867
26868         * icall.c: the values array fro enums is of the correct type, now.
26869         Implement (correctly) getFullName instead of assQualifiedName for
26870         MonoType.
26871         * reflection.h, reflection.c: added mono_type_get_name ().
26872
26873 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
26874
26875         * assembly.c, image.h: for each MonoImage, record from wich assembly
26876         it was loaded.
26877         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
26878         Make Type.Assembly work.
26879
26880 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
26881
26882         * debug-symfile.h: use char* instead of gpointer to avoid
26883         unnecessary casts.
26884
26885         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
26886
26887         * icall.c (ves_icall_InternalExecute): impl. FielSetter
26888         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
26889
26890 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
26891
26892         * icall.c (mono_message_init): impl. (code cleanup)
26893         (ves_icall_InternalExecute): impl. FieldGetter
26894
26895         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
26896         defined we call all (non-static)methods through the vtable. 
26897
26898 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
26899
26900         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
26901         finalizer even though the memory is still referenced (and the chunk of
26902         memory is not freed).
26903
26904 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
26905
26906         * assembly.c: fix brokeness.
26907
26908 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
26909
26910         * class.c: kill some warnings. Check explicit interface method
26911         implementation also without considering the namespace.
26912         Load also literal strings in static class data.
26913
26914 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
26915
26916         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
26917         (default_assembly_name_resolver): Make the resolver take the
26918         "base" directory where the assembly was originally defined, so we
26919         can load DLLs that are in the same directory as the assembly that
26920         is being referenced.
26921
26922 2002-03-28  Dick Porter  <dick@ximian.com>
26923
26924         * file-io.h: 
26925         * file-io.c:
26926         * socket-io.c: 
26927         * unicode.h: 
26928         * unicode.c: Warning cleanups
26929
26930 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
26931
26932         * object.h, reflection.h: use the correct type instead of MonoObject.
26933
26934 2002-03-28  Martin Baulig  <martin@gnome.org>
26935
26936         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
26937         (mono_debug_update_symbol_file): Initialize classes if necessary.
26938
26939 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
26940
26941         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
26942         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
26943
26944 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
26945
26946         * assembly.h: fix function prototype.
26947         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
26948         * mono-endian.h: use const cast.
26949
26950 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
26951
26952         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
26953
26954 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
26955
26956         * loader.c: don't assert when a typeref can't be loaded, give
26957         a chance to the runtime to trow an exception instead.
26958         * loader.h: fix warning.
26959
26960 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
26961
26962         * class.c (mono_class_proxy_vtable): added proxy support
26963
26964 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
26965
26966         * icall.c: removed last of PAL calls, added System.Environment
26967         * file-io.h, file-io.c: MonoIO implementation
26968         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
26969
26970 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
26971
26972         * appdomain.c: do not use the byte marker in ldstr table lookup.
26973         * debug-helpers.c: allow two ':' to separate class and method name.
26974         * object.c: allocate arrays bounds with the GC, too.
26975         * verify: add a few more checks.
26976
26977 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
26978
26979         * reflection.c: output also literal strings. Allocate parameter data
26980         with GC_malloc() (thanks, Martin, for catching this!).
26981
26982 2002-03-26  Martin Baulig  <martin@gnome.org>
26983
26984         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
26985         include the `this' offset in the `param_offsets'.
26986
26987 2002-03-25  Martin Baulig  <martin@gnome.org>
26988
26989         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
26990         mono_debug_get_class() function to get the classes. Added new
26991         relocation types for arrays and strings.
26992         (mono_debug_get_class): New static function to search in all
26993         referenced assemblies for a metadata token.
26994
26995         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
26996
26997 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
26998
26999         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
27000         hold gc-allocated objects. Make the string heap a stream like the
27001         others. Removed duplicated code when writing stream info.
27002         Added asserts to catch possible buffer overflows. Set the sorted map
27003         for tables that need sorting. Added some documentation.
27004
27005 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
27006
27007         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
27008         for interned strings and vtables.
27009
27010 2002-03-24  Martin Baulig  <martin@gnome.org>
27011
27012         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
27013         it in the array since it was created with g_slist_prepend().
27014
27015 2002-03-24  Martin Baulig  <martin@gnome.org>
27016
27017         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
27018         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
27019         (mono_debug_method_from_token): Renamed to
27020         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
27021         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
27022
27023         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
27024         relocation types.
27025
27026         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
27027
27028 2002-03-24  Martin Baulig  <martin@gnome.org>
27029
27030         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
27031         (mono_debug_method_from_token): New func.
27032
27033         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
27034         New interncall, calls mono_debug_local_type_from_signature().
27035         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
27036         calls mono_debug_method_from_token().
27037
27038 2002-03-23  Martin Baulig  <martin@gnome.org>
27039
27040         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
27041         specifies the number of bytes to be converted, not the array size.
27042         Return the number of chars, not the number of bytes.
27043         (ves_icall_iconv_get_chars): The `byteCount' argument
27044         specifies the number of bytes to be converted, not the array size.
27045
27046 2002-03-23  Martin Baulig  <martin@gnome.org>
27047
27048         * reflection.h (MonoReflectionSigHelper): New type.
27049
27050         * reflection.c (mono_reflection_sighelper_get_signature_local),
27051         (mono_reflection_sighelper_get_signature_local): New functions.
27052
27053         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
27054         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
27055         interncalls.
27056
27057 2002-03-23  Martin Baulig  <martin@gnome.org>
27058
27059         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
27060         is_writeable is set.
27061         (mono_raw_buffer_update): New function to write the modified map
27062         back to disk.
27063
27064         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
27065
27066         * debug-symfile.c (mono_debug_update_symbol_file): Call
27067         mono_raw_buffer_update() when done writing.
27068
27069 2002-03-23  Martin Baulig  <martin@gnome.org>
27070
27071         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
27072
27073         * debug-symfile.c: Added support for arguments and local variables.
27074
27075 2002-03-23  Dick Porter  <dick@ximian.com>
27076
27077         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
27078         protected by ifdefs, hence breaking the w32 build.
27079
27080 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
27081
27082         * object.c: implement is_interned() the right way.
27083
27084 2002-03-21  Martin Baulig  <martin@gnome.org>
27085
27086         * debug-symfile.[ch]: New files to handle debugging information
27087         files. There's also support to dynamically update these symbol
27088         files to include machine dependent information.
27089
27090 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
27091
27092         * threads.c (mono_thread_create): new function to create thread
27093         from C
27094
27095 2002-03-20  Martin Baulig  <martin@gnome.org>
27096
27097         * icall.c (ves_icall_InternalInvoke): Create a new object if the
27098         method is a constructor.
27099         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
27100         points to ves_icall_InternalInvoke().
27101
27102 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
27103
27104         * file-io.c: Flush shouldn't throw exceptions.
27105
27106 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
27107
27108         * file-io.c: FileStream flush support; FileSetLength now
27109         restores file pointer.
27110
27111 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
27112
27113         * class.c: set image for pointer classes.
27114
27115 2002/03/19  Nick Drochak <ndrochak@gol.com>
27116
27117         * sysmath.c: Forgot one.
27118
27119 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
27120
27121         * sysmath.c: Avoid redefining existing names.
27122
27123 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
27124
27125         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
27126         handled by runtime as icall rather than dllimport from libm.so
27127         * file-io.c, file-io.h: fixed handle argument type.
27128
27129 2002-03-18  Dick Porter  <dick@ximian.com>
27130
27131         * reflection.c (mono_image_get_type_info): rename interface to
27132         iface, because of "#define interface struct" on windows.
27133
27134 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
27135
27136         * class.c, class.h: rename and export mono_ptr_class_get().
27137         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
27138         * reflection.c, reflection.h, icall.c: better/saner type name
27139         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
27140         method signatures.
27141
27142 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
27143
27144         * class.c (mono_class_init): removed hardcoded GHC_SLOT
27145
27146         * icall.c (ves_icall_InternalInvoke): impl.
27147
27148 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
27149
27150         * reflection.c: output the interface map table, too.
27151
27152 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
27153
27154         * class.c (class_compute_field_layout): separate computation of 
27155         static field layout
27156
27157 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
27158
27159         * icall.c: added System.Buffer support.
27160         * file-io.c: moved file icalls from PAL to FileStream.
27161
27162 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
27163
27164         * icall.c (ves_icall_System_Object_GetHashCode): impl.
27165
27166 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
27167
27168         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
27169
27170 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
27171
27172         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
27173
27174 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
27175
27176         * debug-helpers.{c,h}: moved here from monograph some useful functions
27177         to locate a method by name/signature in a class or image. Included
27178         also a small and flexible IL disassembler.
27179
27180 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
27181
27182         * reflection.c: fixup tokens in methods with small header size, too.
27183
27184 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
27185
27186         * object.c (mono_string_to_utf8): remove assert(!error), instead
27187         print a warning. 
27188
27189 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
27190
27191         * icall.c: update to the new mono_Array_class_get interface.
27192
27193 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
27194
27195         * appdomain.c, object.c: Boehm-GC enable.
27196         * icall.c: make get_data_chunk() support split data requests.
27197         Ensure a class is initialized in more cases. Return only the first
27198         property found in GetProperties() or the compiler gets confused. 
27199         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
27200         * reflection.h, reflection.c: add fixup mechanism for field and method
27201         tokens. Initialize assembly->typeref in a single place. Output
27202         properties after events. Support custom attributes for events, too.
27203         Typo fix for paramter custom attrs.
27204
27205 2002-03-07  Martin Baulig  <martin@gnome.org>
27206
27207         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
27208
27209 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
27210
27211         * class.c (mono_array_class_get): fix. for multi. dim. arrays
27212
27213 2002-03-06  Martin Baulig  <martin@gnome.org>
27214
27215         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
27216         non-zero lower bounds. See testcases #F10-#F13.
27217
27218 2002-03-05  Martin Baulig  <martin@gnome.org>
27219
27220         * exception.c (mono_get_exception_argument_out_of_range): New exception.
27221
27222         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
27223         ves_icall_System_Array_GetValue(), only calculate the absolute array position
27224         here.
27225         (ves_icall_System_Array_SetValue): Likewise.
27226         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
27227         as argument and does the actual work. This function is used when copying a
27228         multi-dimensional array.
27229         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
27230         now do all the widening conversions of value types.
27231         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
27232
27233 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
27234
27235         * class.c: remove some magic numbers and use the smbolic names,
27236         instead. Added init_events() to load event info at class init time.
27237         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
27238         and mono_metadata_methods_from_event().
27239         * reflection.h, reflection.c: added support for writing out the evnets
27240         related information.
27241
27242 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
27243
27244         * reflection.h, icall.c: use a different method (GetInterfaces)
27245         to gather interface info and add isbyref, isprimitive and
27246         ispointer to the ves_icall_get_type_info() return value.
27247
27248 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
27249
27250         * class.h: stared adding support for events.
27251         * icall.c: split find_members implementation. Added debug icall to get
27252         the address of an object.
27253         * reflection.c: handle TypeBuilders in mono_type_get_object().
27254
27255 2002-03-01  Martin Baulig  <martin@gnome.org>
27256
27257         * icall.c (ves_icall_System_Array_GetLength): This must throw an
27258         ArgumentOutOfRangeException(), not an ArgumentException().
27259         (ves_icall_System_Array_GetLowerBound): Likewise.
27260         (ves_icall_System_Array_GetValue): Improved argument checking.
27261         (ves_icall_System_Array_SetValue): Improved argument checking.
27262
27263 2002-03-01  Martin Baulig  <martin@gnome.org>
27264
27265         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
27266         called with invalid arguments rather than just dying with g_assert().
27267         (ves_icall_System_Array_SetValue): Likewise.
27268         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
27269         raise a NotImplementedException instead.
27270         (ves_icall_System_Array_GetLength): Added argument checking.
27271         (ves_icall_System_Array_GetLowerBound): Added argument checking.
27272
27273 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
27274
27275         * object.h (mono_assert): new macros mono_assert and
27276         mono_assert_not_reached
27277
27278 2002-02-28  Martin Baulig  <martin@gnome.org>
27279
27280         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
27281         and "System::String::IsInterned" to "System::String::_IsInterned".
27282
27283 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
27284
27285         * icall.c: remove hacks for typebuilder. Added icall to create a
27286         modified type from a tybebuilder.
27287         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
27288         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
27289         to create a backing MonoClass for a TypeBuilder.
27290
27291 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
27292
27293         * class.c, class.h: more refactoring of class init.
27294         Export mono_class_setup_mono_type() and mono_class_setup_parent().
27295
27296 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
27297
27298         * marshal.c, marshal.h: start of marshaling interface.
27299
27300 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
27301
27302         * icall.c: fix order in assembly qualified name icall.
27303
27304 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
27305
27306         * class.c: do not free str, since we store it in the hash table.
27307         * reflection.h: add label field to MonoILExceptionInfo.
27308         * reflection.c: handle references to more than one assembly. Handle
27309         case when there isn't a module created in the assembly.
27310
27311 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
27312
27313         * class.c: Fix typo. Start refactoring of class init code.
27314
27315 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
27316
27317         * appdomain.c: exit with 1 on error.
27318         * class.c: we already have the name in MonoClassField.
27319         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
27320         MonoStreamHeader instead of an offset of image->raw_metadata.
27321
27322 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
27323
27324         * appdomain.c (mono_init): Be even more descriptive about the error.
27325
27326 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
27327
27328         * appdomain.c: give the user an informative message when corlib can't
27329         be loaded.
27330
27331 2002-02-26  Martin Baulig  <martin@gnome.org>
27332
27333         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
27334         New icall to get the time zone data.
27335
27336 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
27337
27338         * reflection.c: set virtual and raw size of section correctly.
27339         * threads.c: transfer domain information to newly created threads.
27340
27341 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
27342
27343         * class.c: when instancing a class in a domain, load the default
27344         vaules for static fields from the constant table. Fix System.Enum to
27345         not be an enum.
27346         * icall.c: implement Object::GetType() internalcall. Implemented
27347         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
27348         Fixed checking of binding flags in find_members().
27349         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
27350         * reflection.c: handle enumerations when writing to the constant
27351         table. Use a different object cache for types.
27352
27353
27354 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
27355
27356         * object.c (mono_object_isinst): fix for arrays
27357
27358         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
27359
27360 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
27361
27362         * object.c: don't use mprotect ()  and fix intern pool hash table
27363         lookup for big endian systems.
27364
27365 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
27366
27367         * icall.c: change type_is_subtype_of () signature.
27368
27369 2002-02-21  Mark Crichton  <crichton@gimp.org>
27370
27371         * rand.c, rand.h: Added random number generator for
27372         System.Security.Cryptography classes.
27373
27374         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
27375
27376         * icall.c: Added System.Security.Cryptography calls.
27377
27378 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
27379
27380         * class.c, icall.c, metadata.c: better support for pointer types.
27381         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
27382         * reflection.c: Add support for getting custom attrs for properties
27383         and simplify some code.
27384
27385 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
27386
27387         * icall.c: change getToken () and add custom attribute GetBlob()helper
27388         method.
27389         * reflection.h: add custom attrs array to the reflection builder structures.
27390         * reflection.c: encode and emit custom attributes for all the relevant
27391         reflection objects. Cache fieldref and methodref tokens. Change
27392         mono_image_create_token() interface to take a MonoDynamicAssembly.
27393         More complete custom attributes decoder. Load custom attributes for
27394         Assembly, Field, Method and Constructor objects, too. Make the
27395         returned array an Attribute[] one, not object[]. Added
27396         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
27397         custom attribute constructor.
27398
27399 2002-02-20  Dick Porter  <dick@ximian.com>
27400
27401         * icall.c:
27402         * rawbuffer.c:
27403         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
27404         problem code out for now).
27405
27406 2002-02-19  Radek Doulik  <rodo@ximian.com>
27407
27408         * object.c (mono_ldstr): use hash table to avoid multiple swapping
27409
27410 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
27411
27412         * icall.c: register the GetCustomAttributes method.
27413         * object.c, object.h: add mono_string_new_len ().
27414         * reflection.h, reflection.c: added mono_runtime_invoke(),
27415         mono_install_runtime_invoke(). Added
27416         mono_reflection_get_custom_attrs () to load custom attributes and
27417         create the attribute objects.
27418
27419 2002-02-19  Dick Porter  <dick@ximian.com>
27420         * threads-dummy-types.c:
27421         * threads-dummy-types.h:
27422         * threads-dummy.c:
27423         * threads-dummy.h:
27424         * threads-pthread-types.c:
27425         * threads-pthread-types.h:
27426         * threads-pthread.c:
27427         * threads-pthread.h:  Deleted obsolete files
27428
27429 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
27430
27431         * class.c (mono_class_vtable): runtime init the class when we
27432         allocate static class data.
27433
27434         * icall.c (ves_icall_System_Array_SetValue): check for null values.
27435
27436         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
27437         and String - but we will need generic marshalling support in the
27438         future. 
27439         (mono_init): set the domain name in a ms compatible way
27440
27441         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
27442         String[].
27443
27444 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
27445
27446         * object.c (mono_array_clone): use alloca() instead of g_malloc  
27447         for sizes
27448
27449         * appdomain.c (mono_domain_unload): impl.
27450
27451 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
27452
27453         * appdomain.c, object.c: fix intern pool implementation.
27454         * class.c: fix alignment code.
27455
27456 2002-02-16  Radek Doulik  <rodo@ximian.com>
27457
27458         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
27459         and s2 > s1, just copy lower bytes to be compatible with little
27460         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
27461         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
27462
27463         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
27464         force big_endian to be 1 for big endian machines 
27465         (ves_icall_iconv_new_decoder): ditto
27466
27467 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
27468
27469         * socket-io.c (convert_sockopt_level_and_name): If the system
27470         doesn't define SOL_IP or SOL_TCP, get them by hand using
27471         getprotobyname() and caching the values (because this could be a
27472         slow operation).
27473         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
27474         Use the appropriate struct when the system does support it. Ie,
27475         not all systems have struct ip_mreqn so use struct ip_mreq when
27476         appropriate.
27477
27478 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
27479
27480         * reflection.c: handle finally clauses.
27481
27482 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
27483
27484         * socket-io.c: use g_snprintf() instead of snprintf.
27485
27486 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
27487
27488         * reflection.c (mono_param_get_objects): Cast second argument to
27489         mono_method_get_param_names to a const char** to silence the
27490         compiler warning.
27491
27492         * appdomain.c (mono_domain_assembly_open): Put parens around the
27493         truth statement in the for-loop.
27494
27495         * unicode.c (iconv_convert): Got rid of a compiler warning about
27496         int i being unused when the system has a new iconv.
27497         (iconv_get_length): Same.
27498
27499         * image.c (load_class_names): Cast the second argument to
27500         g_hash_table_insert() to char* to hush compiler warnings about the
27501         arg being a const.
27502         (mono_image_open): Same here.
27503
27504         * socket-io.c: Don't conditionally include sys/filio.h or
27505         sys/sockio.h here anymore since we now get them from
27506         io-layer/io-layer.h
27507         (inet_pton): If the system doesn't support inet_aton, implement
27508         using inet_addr and also #define INADDR_NONE if it isn't defined
27509         by the system.
27510
27511 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
27512
27513         * metadata.c, metadata.h: added function to get packing and size info
27514         of a typedef.
27515         * reflection.h, reflection.c: handle field RVA data. Save info about
27516         the table layout if needed. Assign typedef indexes to all the types
27517         before dumping the info about them to avoid forward reference problems.
27518
27519 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
27520
27521         * socket-io.c (convert_sockopt_level_and_name): ifdef
27522         SO_ACCEPTCONN because it is not defined on my system (old debian)
27523
27524 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
27525
27526         * opcode.c: use stddef.h to get NULL.
27527
27528 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
27529
27530         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
27531         for FIONBIO, FIONREAD and SIOCATMARK.
27532         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
27533         define INADDR_NONE and besides, inet_addr() is deprecated and
27534         should not be used. Use inet_pton() instead - it also has the
27535         added bonus that it can easily handle IPv6 addresses as well.
27536         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
27537
27538 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
27539
27540         * decimal.c: remove _MSC_VER conditional.
27541
27542 2002-02-13  Dick Porter  <dick@ximian.com>
27543
27544         * socket-io.c: 
27545         * icall.c: Internal calls for Blocking, Select, Shutdown,
27546         GetSocketOption and SetSocketOption
27547
27548 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
27549
27550         * assembly.cs: better resolver: use it instead of some kludgy
27551         code.
27552
27553 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
27554
27555         * reflection.c: the best way to speed-up the compiler is to avoid
27556         infinite loops.
27557
27558 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
27559
27560         * class.c (mono_class_vtable): changed the object layout
27561         (obj->vtable->class). 
27562         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
27563
27564 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
27565
27566         * assembly.c: look for assemblies in the assembly dir, too.
27567
27568 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
27569
27570         * class.c: fix thinko in mono_class_from_type().
27571
27572 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
27573
27574         * exception.h, exception.c: added TypeLoadException.
27575         * object.h, object.c: added mono_array_clone ().
27576         * icall.c: handle throwOnError in AssemblyGetType().
27577         Added Array.Clone().
27578         * opcode.h, opcode.c: use a single value for the opcode val.
27579         Compile fix for non-gcc compilers.
27580
27581 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
27582
27583         * opcodes.c, opcodes.h: export interesting info about opcodes.
27584
27585 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
27586
27587         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
27588         icalls. 
27589
27590         * class.c (class_compute_field_layout): set element_class for enums
27591         (mono_class_create_from_typedef): set element_class for normal classes
27592
27593         * icall.c (ves_icall_System_Enum_get_value): impl.
27594
27595         * class.c (mono_class_create_from_typedef): do not set valuetype
27596         flag for System.ValueType and System.Enum
27597
27598 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
27599
27600         * unicode.c (iconv_convert): fix big endian problem.
27601
27602 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
27603
27604         * class.c: add asserts if we are ever going to scribble over memory.
27605         * socket-io.c: not all systems have AF_IRDA defined.
27606
27607 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
27608
27609         * class.c (class_compute_field_layout): do not consider static
27610         fields to compute alignment
27611
27612 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
27613
27614         * appdomain.c (mono_appdomain_get): impl.
27615         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
27616
27617 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
27618
27619         * icall.c: ignore "file://" prefix when loading an assembly.
27620
27621 2002-01-23  Dick Porter  <dick@ximian.com>
27622
27623         * socket-io.c:
27624         * icall.c:
27625         * Makefile.am: Added socket support
27626
27627 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
27628
27629         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
27630         code back.  This should return the assemblies that are loaded by
27631         the runtime on behalf of an application domain. 
27632
27633         The current implementation is still broken, it just returns every
27634         assembly loaded, but until we get real applications domain this
27635         will do.
27636
27637 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
27638
27639         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
27640         AppDomain object.
27641
27642 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
27643
27644         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
27645         the mono_class_from_name lookup.
27646         (ves_icall_get_parameter_info): ditto.
27647         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
27648         method.
27649         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
27650
27651 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
27652
27653         * class.c: load also nested classes on class init.
27654         System.ValueType instance methods gets passed boxed
27655         values, unless methods in derived classed that get a pointer to the
27656         data.
27657         * icall.c: use better name parsing code in GetType().
27658         * image.c, image.h: add mono_image_loaded ().
27659         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
27660         * reflection.c, reflection.h: added mono_reflection_parse_type().
27661
27662 2002-01-22  Veronica De Santis <veron78@interfree.it>
27663
27664         * icall.c : Added mapping of internal calls for Manual and Auto reset events
27665         * threads.c : Added the implementation of internal calls for events
27666         * threads.h : Added prototypes of internal calls for events
27667         
27668 2002-01-21  Radek Doulik  <rodo@ximian.com>
27669
27670         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
27671
27672 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
27673
27674         * class.c (mono_class_init): set min_align to 1 (instead of 0)
27675         (mono_class_value_size): use min_align
27676
27677 2002-01-20  Dick Porter  <dick@ximian.com>
27678
27679         * threads.h:
27680         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
27681         so it compiles on w32.
27682
27683 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
27684
27685         * metadata.c (mono_type_stack_size): impl.
27686
27687         * class.c (mono_class_get_field): impl. memberref token
27688
27689 2002-01-16 Veronica De Santis <veron78@@interfree.it>
27690
27691         * icall.h : Added the internal calls mapping for CreateMutex_internal
27692                     and ReleaseMutex_internal.
27693         * threads.h : Added the prototype of mutexes internal calls.
27694         * threads.c : Added the implementations of mutexes internal calls.
27695
27696 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
27697
27698         * metaparse.h: removed unused file.
27699         * reflection.c, reflection.h: added stream_data_align () function 
27700         to align data in streams and keep stream aligned. Add support for
27701         exception support in method headers.
27702
27703 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
27704
27705         * unicode.c: make iconv_convert () return the number of bytess written
27706         in the output buffer.
27707
27708 2002-01-15  Dick Porter  <dick@ximian.com>
27709         * threads.c: Make the runtime's idea of infinite timeouts coincide
27710         with the class library's
27711
27712         Fix a particularly egregious bug in mono_thread_cleanup(). That
27713         code was so utterly bogus it must have been written on a Monday.
27714
27715 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
27716
27717         * reflection.h: add subtypes field to TypeBuilder.
27718         * reflection.c: encode constants for literal fields.
27719         Handle subtypes. Fix user string token (and add a zero byte)
27720         at the end.
27721         
27722 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
27723
27724         * class.c (mono_class_init): bug fix: assign slot numbers for
27725         abstract methods.
27726
27727 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
27728
27729         * reflection.c: don't try to output a code RVA for abstract methods.
27730         Small fixes for method header format. Output parameter info to the
27731         ParamDef table. Save method overriding info to MethodImpl table.
27732         Fix property support. Allow typedef.extends to be a type in the
27733         building assembly.
27734         * verify.c: fix off-by-one error.
27735
27736 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
27737
27738         * class.c: fix mono_class_from_mono_type () for szarray types.
27739         Remove unused cache check in mono_class_from_type_spec().
27740         * icall.c: *type_from_name () functions handle simple arrays and byref.
27741         * reflection.c: handle byref and szarray types. Handle methods without
27742         body (gets P/Invoke compilation working). Handle types and fields in
27743         get_token ().
27744         * reflection.h: add rank to MonoTypeInfo.
27745
27746 2002-01-10  Dick Porter  <dick@ximian.com>
27747
27748         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
27749         internal calls
27750
27751 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
27752
27753         * icall.c: initialize class in type_from_handle ().
27754         Loop also in parent classes for get_method ().
27755         * reflection.c: properly encode class and valuetype types.
27756         Start on encoding TypeBuilder types. Handle fieldrefs.
27757         Use correct length when registering a user string.
27758         Handle ConstructorBuilder and MonoMethod in get_token ().
27759         Make mono_type_get_object () aware of cached types.
27760         * object.c: back out change to mono_string_new ().
27761
27762 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
27763         * object.c: mono_string_new should return a NULL when the string 
27764         passed in is NULL -- not try to deference it.
27765         
27766 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
27767
27768         * icall.c: hack to make IsSubType work for TypeBuilders.
27769         * reflection.c: emit constructors before methods.
27770         Retrieve param names in mono_param_get_objects().
27771
27772 2002/01/05  Nick Drochak  <ndrochak@gol.com>
27773
27774         * Makefile.am: fix list of headers and sources so automake 1.5
27775         doesn't complain. Removed \# at end of list.
27776
27777 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
27778
27779         * reflection.c: get token for a method ref. Set return type of
27780         constructor to void.
27781         * loader.c: debug message.
27782         * class.c: typo fix.
27783
27784 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
27785
27786         * icall.c: fix array init with rank > 1. FindMembers
27787         loops in parent class as well.
27788         * image.c: do not insert nested types in name cache.
27789         * reflection.c: warning fix.
27790         * reflection.h: add override method (for interface impl).
27791
27792 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
27793
27794         * metadata.c: fix customattr decoding.
27795
27796 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
27797
27798         * rawbuffer.cs: Added native Win32 implementation, avoids using
27799         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
27800
27801 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
27802
27803         * class.c: make the low-level routines handle the cache.
27804
27805 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
27806
27807         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
27808
27809 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
27810
27811         * class.c: fix mono_array_element_size() for objects.
27812         * class.h, class.c: add properties to MonoClass and load them
27813         at init time.
27814         * icall.c: check with isinst() when assigning a value to an array
27815         instead of requiring the classes to match exactly.
27816         Implemented icall for System.Type::GetType().
27817         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
27818         enums. Handle bindingflags when looking for methods and fields.
27819         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
27820         and mono_metadata_methods_from_property().
27821         * reflection.h, reflection.c: added structures for propreties,
27822         parameters and enums. Implemented mono_property_get_object() and
27823         mono_param_get_objects().
27824
27825 2001-12-18  Dick Porter  <dick@ximian.com>
27826
27827         * file-io.c: Use mono_string_to_utf16() instead of
27828         mono_string_chars()
27829
27830         * object.c: Added mono_string_to_utf16(), which copies the non
27831         NULL-terminated MonoString into a new double-null-terminated
27832         buffer.
27833
27834 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
27835
27836         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
27837
27838 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
27839
27840         * file-io.c: raise exceptions if handle is invalid.
27841
27842 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
27843
27844         * assembly.c: yet another check for mscorlib.
27845         * class.c, class.h: load nesting info for classes.
27846         * icall.c: many new functions to support the Reflection classes.
27847         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
27848         * reflection.h, reflection.c: mono_image_create_token(),
27849         mono_assembly_get_object(), mono_type_get_object(),
27850         mono_method_get_object(), mono_field_get_object(): methods to return
27851         objects that parallel the C representation of assemblies, types,
27852         methods, fields.
27853
27854 2001-12-11  Dick Porter  <dick@ximian.com>
27855
27856         * icall.c:
27857         * file-io.c: Internal calls for file IO.
27858
27859 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
27860
27861         * tabledefs.h: missing FileAttributes.
27862         * verify.h, verify.c: use is_valid_string () to simplify and check for
27863         valid strings more correctly. Fix warnings and speeling.
27864         Check more tables: Filed, File, ModuleRef, StandAloneSig.
27865         Check code: branches, maxstack, method calls.
27866
27867 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
27868
27869         * object.c (mono_object_allocate): removed static, so that the jit
27870         can allocate value types.
27871
27872         * icall.c (ves_icall_System_DateTime_GetNow): impl.
27873
27874 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
27875
27876         * class.c: init enum types right away and register the
27877         token->MonoClass map in mono_class_create_from_typedef ().
27878         * verify.h, verify.c: first cut of the verifier.
27879         * pedump.c: add --verify switch to verify metadata tables.
27880         * tabledefs.h: add some missing enums.
27881
27882 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
27883
27884         * class.c (mono_install_runtime_class_init): impl.
27885         (mono_class_init): renamed mono_class_metadata_init to
27886         mono_class_init, also removed the metadata_inited flag
27887
27888         * object.c (mono_object_isinst): use faster algorithm
27889
27890 2001-11-30  Radek Doulik  <rodo@ximian.com>
27891
27892         * mono-endian.h: reverted last change
27893         added function prototypes
27894
27895         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
27896         add mono-endian.c back
27897
27898         * mono-endian.c: returned back, as Paolo pointed out, it's needed
27899         for unaligned access, I've mistaked it with endianess. I am
27900         sorry.
27901         (mono_read16): fix reverted endianess
27902         (mono_read64): ditto
27903         (mono_read32): ditto
27904
27905 2001-11-30  Dick Porter  <dick@ximian.com>
27906
27907         * exception.c: Implement mono_exception_from_name()
27908
27909 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
27910
27911         * metadata.h, metadata.c: remove params_size and locals_size and their
27912         calculation from the metadata code: they are only usefult to the
27913         interp.
27914
27915 2001-11-29  Radek Doulik  <rodo@ximian.com>
27916
27917         * object.c (mono_ldstr): swap bytes here, it's probably not the
27918         best place, but works for me now, I'll redo it once I know mono
27919         better, also note that I add PROT_WRITE and don't reset back, also
27920         note that it's only affects big endians, so x86 should be OK
27921
27922         * mono-endian.h (read16): use just glib macros for both endians
27923
27924         * mono-endian.c: removed as glib macros are used in in
27925         mono-endian.h so we don't need to care about endianess for read
27926         macros as glib does that for us already
27927
27928 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
27929
27930         * class.h, class.h: take minimum alignment into consideration so
27931         that the fields of a class remain aligned also when in an array.
27932
27933 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
27934
27935         * loader.h, loader.c: add mono_method_get_param_names().
27936         * class.c: 0-init class fields.
27937
27938 2001-11-26  Dick Porter  <dick@ximian.com>
27939
27940         * icall.c:
27941         * threads-types.h:
27942         * threads.c: New file that handles System.Threading on all platforms
27943
27944         * object.c: 
27945         * object.h: Remove the synchronisation struct from MonoObject,
27946         replace it with a pointer that gets initialised on demand
27947
27948         * Makefile.am: Replace all the system-specific threading code with
27949         a single file that uses the new wrapper library
27950
27951 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
27952
27953         * class.c, class.h: add mono_install_trampoline() so that the runtime
27954         can register a function to create a trampoline: removes the ugly
27955         requirement that a runtime needed to export arch_create_jit_trampoline.
27956         * object.h, object.c: added mono_install_handler() so that the runtime
27957         can install an handler for exceptions generated in C code (with
27958         mono_raise_exception()). Added C struct for System.Delegate.
27959         * pedump.c: removed arch_create_jit_trampoline.
27960         * reflection.c: some cleanups to allow registering user strings and
27961         later getting a token for methodrefs and fieldrefs before the assembly
27962         is built.
27963         * row-indexes.h: updates and fixes from the new ECMA specs.
27964
27965 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
27966
27967         * class.h, class.c: add enum_basetype field to MonoClass.
27968         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
27969         to get index in the constant table reated to a field, param or
27970         property.
27971         * reflection.h, reflection.c: handle constructors. Set public-key and
27972         version number of the built assembly to 0.
27973         * row-indexes.h: update from new ECMA spec.
27974
27975 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
27976
27977         * class.h, class.c: add a max_interface_id to MonoClass.
27978         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
27979         since it's used to do that. Added mono_type_type_from_obj().
27980         Make GetType() return NULL instead of segfaulting if the type was not
27981         found. Handle simple arrays in assQualifiedName.
27982         * object.h: add a struct to represent an Exception.
27983         * reflection.c: output call convention in method signature.
27984         Add code to support P/Invoke methods and fixed offsets for fields.
27985
27986 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
27987
27988         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
27989         the value.
27990         * icall.c: use mono_array_addr instead of array->vector: fixes the
27991         reflection image writing.
27992         * reflection.c: init call convention byte to 0 in method signature.
27993         Encode the property signature. Don't output property-related methods
27994         twice. Really process the properties for a type (don't cast a field to
27995         a property, my mom always told me that).
27996         Fix 64 bit issues in pointer alignment in a different and more
27997         readable way.
27998
27999 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
28000
28001         * loader.h: Removed type class from MonoDefaults, added monotype
28002
28003         * loader.c: Loaded MonoType, removed loading of Type
28004
28005         * icall.c (my_mono_new_object): Now returns a System.MonoType,
28006         and fills in System.Type._impl with a RuntimeTypeHandle rather
28007         than the actual MonoClass *
28008
28009         (ves_icall_type_from_handle): change from type_class to
28010         monotype_class
28011
28012         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
28013         implemented
28014
28015         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
28016         implemented
28017
28018         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
28019
28020         (ves_icall_System_Reflection_Assembly_GetType): implemented
28021
28022         (ves_icall_System_MonoType_assQualifiedName): implemented
28023
28024         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
28025
28026 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
28027
28028         * assembly.c (mono_assembly_open): Implement a cache for the
28029         assemblies. 
28030
28031         (mono_assembly_close): only destroy the assembly when the last
28032         reference is gone.
28033         
28034 2001-11-09  Dick Porter  <dick@ximian.com>
28035
28036         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
28037
28038 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
28039
28040         * class.c (mono_class_metadata_init): bug fix: compute the right slot
28041
28042 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
28043
28044         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
28045         from Martin Weindel.
28046         * object.h: add mono_string_chars ().
28047
28048 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
28049
28050         * reflection.c (build_compressed_metadata): Eliminates warnings
28051         and uses 64-bit clean code.
28052
28053         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
28054         (mono_type_equal): Change signature to eliminate warnings.
28055
28056 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
28057
28058         * icall.c, loader.c: remove the internalcall array constructors.
28059         Changes to match the new MonoArray structure.
28060         * object.h, object.c: an array object doesn't allocate an extra
28061         vector. Add mono_array_new_full () to create jagged arrays easily.
28062
28063 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
28064
28065         * metadata.h, metadata.c: add mono_metadata_field_info () to
28066         retreive all the info about a field from vairous tables.
28067         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
28068         * class.h, class.c: augment MonoClassField with more info.
28069         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
28070         policy and load a field's RVA if needed.
28071
28072 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
28073
28074         * class.c (mono_class_metadata_init): create a trampoline for all
28075         virtual functions instead of actually compiling them.
28076
28077 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
28078
28079         * class.h, class.c: include name in MonoClassField.
28080         * class.c: fix fundamental type of System.Object and System.String.
28081         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
28082         tokens in ldtoken.
28083         * icall.c: remove internalcalls for the Reflection stuff that is now
28084         done in C# code.
28085         * loader.c: mono_field_from_memberref () implementation.
28086         * mono-endian.c: thinko (s/struct/union/g).
28087         * object.c, object.h: make the mono_string_* prototypes actually use
28088         MonoString instead of MonoObject.
28089         * reflection.c, reflection.h: updates for changes in the reflection
28090         code in corlib: we use C structures that map to the actual C# classes.
28091         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
28092         fat method header if needed and use the info from the ILGenerator for
28093         methods. Handle fields in types. Misc fixes.
28094
28095 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
28096
28097         * class.c (mono_class_metadata_init): bug fix: always allocate
28098         space for static class data
28099
28100 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
28101
28102         * class.c (mono_compute_relative_numbering): use relative
28103         numbering to support fast runtime type checks.
28104
28105 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
28106
28107         * class.c (mono_class_create_from_typeref): added debugging output
28108         to print class name when MonoDummy is returned instead of real class
28109
28110 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
28111
28112         * class.c (mono_class_metadata_init): interface offset table now
28113         contains pointers into the vtable - this is more efficient for the jit
28114
28115 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
28116
28117         * class.c (mono_class_metadata_init): use a temporary vtable (the
28118         old algorithm only worked for the interpreter, but not for the jit)
28119
28120 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
28121
28122         * loader.c (method_from_memberref): use mono_class_get to get the
28123         class of an array instead of using System.Array directly.
28124         (mono_get_method): also add MEMBERREF methods to the method cache
28125         which usefull for arrays.
28126
28127 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
28128
28129         * pedump.c (arch_compile_method): added to compute vtable entry
28130
28131         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
28132         number of interfaces.
28133         
28134         * class.h: merged MonoArrayClass into MonoClass
28135
28136         * class.c (mono_class_create_from_typedef): compute the vtable size and
28137         allocate space to include the vtable inside MonoClass
28138         (mono_class_metadata_init): initialize the vtable
28139
28140 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
28141
28142         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
28143         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
28144         * image.c: endian fixes by Laurent Rioux.
28145         * object.h, object.c: rename MonoStringObject to MonoString and
28146         MonoArrayObject to MonoArray. Change some function names to conform to
28147         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
28148         guint16* as first argument, so don't use char*.
28149         Provide macros to do the interesting things on arrays in a portable way.
28150         * threads-pthread.c: updates for the API changes and #include <sched.h>
28151         (required for sched_yield()).
28152         * icall.c: updates for the API changes above.
28153         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
28154         platforms that need them.
28155
28156 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
28157
28158         * class.c: set the correct type for all the fundamental
28159         type when loading the class.
28160
28161 2001-10-05  Dick Porter  <dick@ximian.com>
28162
28163         * threads-pthread.c (pthread_mutex_timedlock): Simple
28164         compatibility version for C libraries that lack this call.
28165
28166 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
28167
28168         * class.c: MonoTypes stored in MonoClass are stored as
28169         fundamental MonoTypes when the class represents a
28170         fundamental type (System.Int32, ...).
28171         The TypeHandle return by ldtoken is a MonoType*.
28172         * icall.c: ves_icall_get_data_chunk () write out all the
28173         PE/COFF stuff. Implement ves_icall_define_method (),
28174         ves_icall_set_method_body (), ves_icall_type_from_handle ().
28175         * image.c: properly skip unknown streams.
28176         * loader.h, loader.c: add type_class to mono_defaults.
28177         * metadata.c, metadata.h: export compute_size () as
28178         mono_metadata_compute_size () with a better interface.
28179         Typo and C&P fixes.
28180         * pedump.c: don't try to print the entry point RVA if there is no entry point.
28181         * reflection.c, reflection.h: many cleanups, fixes, output method
28182         signatures and headers, typedef and typeref info, compress the metadata
28183         tables, output all the heap streams, cli header etc.
28184         * row-indexes.h: typo fixes.
28185
28186 2001-10-04  Dick Porter  <dick@ximian.com>
28187
28188         * object.h: Add a synchronisation mutex struct to MonoObject
28189
28190         * object.c (mono_new_object): Initialise the object
28191         synchronisation mutexes
28192
28193         * icall.c: System.Threading.Monitor internal calls
28194         
28195         * threads-pthread.h:
28196         * threads-pthread.c: System.Threading.Monitor internal calls
28197
28198         * threads-types.h: New file, includes the system-specific thread
28199         structures
28200         
28201         * threads-pthread-types.h:
28202         * threads-pthread-types.c: New files, handle pthread-specific
28203         synchronisation types
28204
28205         * threads-dummy-types.h: 
28206         * threads-dummy-types.c: New files of dummy support for
28207         thread-specific types
28208
28209         * metadata.c:
28210         * image.c:
28211         * pedump.c: include mono-endian.h not endian.h
28212         
28213         * Makefile.am: More threads files.
28214         Name mono-endian.h not endian.h
28215
28216 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
28217
28218         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
28219         stuff and implement a few more bits.
28220         * icall.c: a field needs to be dereferenced twice. Do not use the same
28221         name for two variables in the same scope.
28222         * image.c, image.h: cleanups.
28223
28224 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
28225
28226         * class.c (mono_class_metadata_init): bug fix: compute the right size
28227
28228 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
28229
28230         * icall.c: implemented some of the Reflection internalcalls.
28231         * image.c, image.h: start writing out the PE/COFF image.
28232         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
28233         that does the reverse than decode_blob_size ().
28234         * object.c: use mono_metadata_encode_value (). Move here
28235         temporary implementation of mono_string_to_utf8 ().
28236         * rawbuffer.c: make malloc_map static.
28237
28238 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
28239
28240         * metadata.c: fix type comparison for arrays.
28241         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
28242         Added a couple of new classes to monodefaults.
28243         * icall.c: added a couple of Reflection-related internalcalls.
28244         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
28245         Added a byval_arg MonoType to MonoClass.
28246
28247 2001-09-28  Dick Porter  <dick@ximian.com>
28248
28249         * icall.c:
28250         * threads-pthread.h: 
28251         * threads-pthread.c: Implemented internal calls for
28252         LocalDataStoreSlot operations.  Applied mutexes around all shared
28253         data.  Reworked the thread creation and Start() operations to
28254         avoid a race condition.
28255         
28256         * threads-dummy.h:
28257         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
28258
28259 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
28260
28261         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
28262
28263 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
28264
28265         * class.c, loader.c: warn and return NULL instead of erroring out.
28266         * icall.c: added System.AppDomain::getCurDomain().
28267         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
28268
28269 2001-09-25  Dick Porter  <dick@ximian.com>
28270
28271         * threads-pthread.h:
28272         * threads-pthread.c: Implemented timed thread joining and added
28273         System.Threading.Thread::Join_internal internal call
28274
28275         * icall.c: Added System.Threading.Thread::Join_internal internal call
28276
28277         * threads-dummy.h:
28278         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
28279
28280 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
28281
28282         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
28283         mono_string_intern () to implement the semantics of the ldstr opcode
28284         and the interning of System.Strings.
28285         * icall.c: provide hooks to make String::IsIntern and String::Intern
28286         internalcalls.
28287
28288 2001-09-23  Dick Porter  <dick@ximian.com>
28289
28290         * threads-dummy.c: 
28291         * threads-dummy.h: New files of dummy threading routines
28292
28293         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
28294         support code based on system specifics
28295
28296         Rename PTHREAD_LIBS to THREAD_LIBS
28297         
28298 2001-09-23  Dick Porter  <dick@ximian.com>
28299
28300         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
28301         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
28302         internal calls.
28303         (mono_thread_init): Set up a Thread object instance to return when
28304         the main thread calls Thread.CurrentThread
28305         (mono_thread_cleanup): Wait for all subthreads to exit
28306
28307         * icall.c: New internal calls for System.Threading.Thread::Sleep
28308         (including Schedule) and CurrentThread
28309
28310         * threads.h: New file, to insulate thread-specific stuff from the
28311         rest of the code
28312
28313 2001-09-21  Dick Porter  <dick@ximian.com>
28314
28315         * threads-pthread.h: 
28316         * threads-pthread.c: New file, for handling pthreads-style
28317         threading support.  Start() now starts a new thread and executes
28318         the ThreadStart delegate instance.
28319
28320         * icall.c: Added the internalcall for
28321         System.Threading.Thread::Start_internal
28322
28323         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
28324
28325 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
28326
28327         * loader.c: work around the different signatures for delegates
28328         constructors csc generates in compiled code vs the ones compiled in mscorlib.
28329
28330 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
28331
28332         * class.h, class.c: add mono_class_get_field_from_name ().
28333         * *: Fix C comments and other ANSI C issues.
28334
28335 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
28336
28337         * endian.h, assembly.c: fix some endianness issues.
28338
28339 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
28340
28341         * loader.h, load.c: add delegate_class to mono_defaults.
28342         Handle runtime provided methods in mono_get_method ().
28343
28344 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
28345
28346         * loader.c (mono_get_method): use pinvoke for internal call
28347
28348         * icall.c: use pinvoke for internal call
28349
28350         * loader.c (method_from_memberref): set the method name
28351
28352 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
28353
28354         * metadata.c: help the compiler generate better code for
28355         mono_class_from_mono_type ().
28356
28357 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
28358
28359         * class.c (mono_class_metadata_init): delayed computing of the
28360         class size to mono_class_metadata_init ()
28361
28362 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
28363
28364         * class.c, class.h: add an interfaces member to MonoClass.
28365         * image.c, image.h: add assembly_name field to MonoImage
28366         from the assembly table.
28367         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
28368
28369 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
28370
28371         * class.c: Handle Array in mono_class_from_mono_type ().
28372         * metadata.c, pedump.c: some endian fixes.
28373
28374 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
28375
28376         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
28377         * metadata.c: fix small problem introduced with the latest commit.
28378
28379 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
28380
28381         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
28382         We don't need a MonoMetadata pointer anymore to compare signatures in
28383         mono_metadata_signature_equal (), update callers.
28384         Reduced memory usage an number of allocations for MonoMethodHeader and
28385         MonoMethodSignature.
28386
28387 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
28388
28389         * metadata.c: added compare for szarray.
28390
28391 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
28392
28393         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
28394         and add a couple more types to it and mono_defaults. Give an hint on
28395         classes that need implementing in our corlib and are referenced
28396         in mscorlib.
28397
28398 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
28399
28400         * class.h, class.c: keep track if a class is also an Enum.
28401         * loader.c: Implement a couple more types for use in libffi
28402         marshalling. Gives better diagnostics when failing to dlopen
28403         a library. Set method->klass for P/Invoke methods, too.
28404
28405 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
28406
28407         * class.c, class.h: add a MonoType this_arg to MonoClass that
28408         represents a pointer to an object of the class' type that
28409         can be used by the interpreter and later the type cache.
28410         Add best guess alignment info for valuetype objects.
28411
28412 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
28413
28414         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
28415         into MonoType: one less level of indirection and allocation and
28416         simplifies quite a bit of code. Added cache for MonoTypes that are
28417         used frequently, so that we don't need to allocate them all the time.
28418
28419 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
28420
28421         * class.c (mono_class_create_from_typedef): System.Enum is also a
28422         value type, although it does not derive from System.ValueType
28423         (maybe a bug in the ms compiler?)
28424
28425         * metadata.c (mono_type_size): return the right size for value types
28426
28427         * loader.c (mono_get_method): only initialize method header if not abstract
28428
28429         * class.c (mono_class_from_mono_type): use mono_default values. 
28430
28431 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
28432
28433         * *: use MonoClass pointers instead of <type_tokens>
28434         
28435         * class.h: new flag: metadata_inited.
28436
28437         * class.c (mono_class_metadata_init): impl.
28438         (mono_class_instance_size): impl.
28439         (mono_class_data_size): impl.
28440
28441 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
28442
28443         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
28444         MonoClass now has the name and name_space fields. 
28445         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
28446         mono_get_method () takes and optional MonoClass as argument.
28447         Removed mono_typedef_from_name() and added mono_class_token_from_name()
28448         instead that takes advantage of a map from class names to typedef
28449         tokens in MonoImage.
28450
28451 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
28452
28453         * metadata.c: zero is not a valid alignment boundary.
28454         Merge MONO_TYPE_VOID in default decoding code.
28455
28456 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
28457
28458         * image.h: merged MonoMetadata into MonoImage
28459
28460         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
28461         identify the type of elements.
28462
28463 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
28464
28465         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
28466         * cil-coff.h: split MonoMSDOSHeader and add size info.
28467         * image.c: add some consistency checks.
28468         * metadata.c: fix row size computation: one programmer
28469         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
28470         add explanation for the locator routine.
28471         Fix decoding of size in method header.
28472         
28473 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
28474
28475         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
28476         (g_concat_dir_and_file): Bring g_concat_dir_and_file
28477         function from gnome-libs.  This uses the right path separator
28478         based on the OS, and also works around a bug in some systems where
28479         a double slash is not allowed. 
28480         (default_assembly_name_resolver): Use g_concat_dir_and_file
28481         (mono_assembly_open): ditto.
28482
28483 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
28484
28485         * metadata.c (mono_metadata_signature_equal): impl.
28486
28487         * *: void is now a realy MonoType (instead of using NULL)
28488         
28489         * metadata.c (do_mono_metadata_parse_type): use
28490         mono_metadata_parse_type to parse void value.
28491
28492 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
28493
28494         * metadata.c, metadata.h: in the signature and method header store
28495         only the space required for holding the loca vars and incoming arguments.
28496
28497 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
28498
28499         * metadata.c (do_mono_metadata_parse_type): treat void like any
28500         other type (instead of assigning NULL);
28501
28502 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
28503
28504         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
28505
28506 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
28507
28508         * image.c (do_mono_image_open): added a cache for arrays.
28509
28510 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
28511
28512         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
28513         decode a single column from a row in a metadata table and changes
28514         to take advantage of it in the typedef locator (gives a nice speed up).
28515         Store offset info for function params.
28516
28517 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
28518
28519         * image.h (MONO_IMAGE_IS_CORLIB): removed 
28520
28521 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
28522
28523         * assembly.c: how could mono_assembly_close () had ever worked?
28524         * metadata.c, metadata.h: provide offset info for local vars.
28525         Implement mono_type_size () to take care of alignment as well
28526         as size (it was mono_field_type_size in cli/class.c before).
28527
28528 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
28529
28530         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
28531
28532         * assembly.h (CORLIB_NAME): set to corlib.dll
28533
28534         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
28535
28536 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
28537
28538         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
28539         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
28540         tokentype.h: massive namespace cleanup.
28541
28542 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
28543
28544         * metadata.h, metadata.c: decode exception clauses when parsing method header.
28545
28546 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
28547
28548         * metadata.c (mono_metadata_free_type): added check for type !=
28549         NULL (void) before calling mono_metadata_free_type()
28550
28551 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
28552
28553         * metadata.h, row_indexes.h: added header with enumerations to use
28554         to index in the columns from tables in metadata and to decode coded
28555         tokens: we should start using this instead of embedding magic numbers
28556         all over the code.
28557
28558 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
28559
28560         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
28561         Move metadata_t info from cli_image_info_t to MonoImage, where
28562         it's easily accessible. Changed all the uses accordingly.
28563         Added the method and class caches to MonoImage.
28564         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
28565         and mono_metadata_decode_value () signature to be more consistent
28566         with the other parse functions (and simplify code). Taken advantage
28567         of zero-length array allocation with GCC. Removed reduntant (and
28568         wrong) MonoFieldType struct and use MonoParam instead. Changed
28569         mono_metadata_parse_field_type () to use common code for parsing.
28570         Added mono_metadata_typedef_from_field () and
28571         mono_metadata_typedef_from_method () to lookup a typedef index from a
28572         field or method token.
28573         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
28574
28575 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
28576
28577         * metadata.c (mono_metadata_parse_field_type): Implement. 
28578         (do_mono_metadata_parse_type): Split engine from
28579         mono_metadata_parse_type, so that we can create smaller structures
28580         for things that just have one pointer to the MonoType (look at
28581         the MonoFieldType)
28582
28583 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
28584
28585         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
28586         as Jan Gray found out, it is incorrect. 
28587
28588 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
28589
28590         * assembly.c: Implement asssembly loading.  This loads an image
28591         and loads all the referenced assemblies.  Come to think of it, we
28592         could always do lazy loading of the assemblies. 
28593
28594         * image.c (mono_image_open): Keep loaded images in a hashtable.
28595
28596         * image.h (MonoImage): Add reference count.
28597
28598 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
28599
28600         * assembly.c (mono_assembly_open): Keep track of the file name in
28601         case the assembly has no ASSEMBLY table.
28602
28603         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
28604         from get.c here.
28605
28606 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
28607
28608         * metadata.c, metadata.h: decode local vars in method header
28609         parse function. Change callers accordingly.
28610
28611 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
28612
28613         * metadata.h, cil-coff.h: protect against multiple inclusion.
28614         Added some new structures to hold information decoded from metadata:
28615         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
28616         and relevant decoding/free functions.
28617         * metadata.c: implement decoding functions. Add warning for out of bounds
28618         index in mono_metadata_locate(). Implement mono_get_method () to retreive
28619         all the info about a method signature and invocation. Remove check on
28620         uninitialized local var in parse_mh() and fix memory leak.
28621
28622 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
28623
28624         * metadata.h: More macros.
28625
28626         * tokentype.h: New file.
28627
28628 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
28629
28630         * assembly.c: added a consistency check and initialize
28631         some structures with g_new0().
28632         * metadata.c: fixed a couple more bugs in table size computation
28633         and add other checks for out-of bound access to metadata.
28634
28635 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
28636
28637         * metatada.c: fix bugs computing table sizes. Spew a
28638         warning when index in string heap is out of bounds.
28639
28640 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
28641
28642         * metadata.h: Add a couple of macros to manipulate tokens. 
28643
28644 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
28645
28646         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
28647         cli_section_tables).
28648
28649 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
28650
28651         * metadata.c (mono_metadata_user_string): New function, provides
28652         access to the UserString heap. 
28653
28654 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
28655
28656         * metadata.c: Add inline documentation.
28657
28658 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
28659
28660         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
28661         files. 
28662
28663 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
28664
28665         * typeattr.h: New file, TypeAttribute flags. 
28666
28667 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
28668
28669         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
28670         mono_assembly_ensure_section): Section loading code.
28671         (load_section_tables): Load the sections.
28672
28673         * mono/metadata/metadata.c (mono_metadata_locate_token,
28674         mono_metadata_locate): Functions to locate the information
28675         definition given a token or a table and an index.
28676         (mono_metadata_compute_table_bases): New.
28677         (compute_size): New function to compute the sizes of the various
28678         tables.
28679
28680         * mono/metadata/metadata.h: Finish listing the different index
28681         types. 
28682
28683         * mono/metadata/pedump.c: Improve to dump new information.
28684
28685 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
28686
28687         * mono/metadata/metadata.c: Entered all the tables matching
28688         Beta2. 
28689
28690         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
28691
28692
28693